关于信息流推荐系统中召回模块建模采样方式的讨论
大家好,我是CNU小学生,国内top10-20互联网公司小兵一枚,在此抛砖引玉,真诚希望各位读者不吝赐教。
1.信息流推荐系统中的召回业务
2019年知名互联网公司的信息流推荐系统项目可大致分为4个模块:用户画像,物品画像,召回,排序。
召回模块的功能是在为排序模块提供候选集。比如我们一共有1000万个item,召回业务要在1000万个item中选出用户可能感兴趣的1万个项目,然后排序模块经过自己的模型为item打分,选定top n来展示给用户并确定展示的顺序。
召回模块的特点有两点,第一快速,第二全面。如果现在有一个超准确超高效的排序模型可以瞬间对每个item精准打分,那么我们完全不需要召回模块,可惜算力不够,这个真没有。推荐流程在3000ms内没有给出推荐结果,对于绝绝绝大多数产品而言是不可接受的。这就决定了一个在线召回模型不会是一个比排序还复杂的模型。此外离线召回也要考虑耗时,因为信息流场景需要一定实时性。
场景1.美女图片类新闻
早上8点为用户展示美女图片类新闻效果比晚上8点差很多。因为早上8点用户在公交车上,晚上8点用户躺在沙发上。排序模型必须把“当前时间”这个维度考虑进去,进行特征工程,才能达到预期效果。
类似于场景1现象还有很多,有些是我们能理解的,有些是我们不能理解的,这类问题需要通过复杂的模型(含特征工程)才能给出用户满意的结果,解决这类问题是排序模型的价值体现。召回则要剔除细节因素,全面广泛且高效快速地选拔出用户可能喜欢的东西,把相对耗时的细节处理任务交给排序。