一、什么是召回
我们来看一张图:
在推荐系统模型中,“召回(match)”指从全量信息集合中触发尽可能多的正确结果,并将结果返回给“排序”。
以搜索场景为例,我们搜索“浙江大学”,会弹出一系列内容,我们想要的系统中的相关内容有5条,系统一共检索出10条,3条是我们想要的。
召回率=系统检索到的相关内容条目/系统数据库中相关的条目=3/5
准确率=系统检索到的相关内容条目/系统所有检索到的总条目=3/10
推荐系统是类似的,只不过这个时候没有明确的检索词,是根据用户画像和内容画像的匹配为用户推荐相关的内容。
二、召回的方法
召回主要有四种方法:基于内容、协同过滤、时间排序、人工规则。
基于内容:根据用户画像和内容画像的匹配来召回,假设某用户的画像为 科技|0.2 动漫|0.7 吉他|0.5,系统就会推送有动漫、科技、吉他标签的内容给该用户。
协同过滤:分为基于用户、基于内容、基于模型的三种。
基于用户是计算用户之间的相似度,将用户A喜欢的推荐给用户B;基于内容是计算内容的相似度,内容a和内容b相似,那么用户A喜欢a,也将b推荐给他;基于模型是根据用户喜好建立推荐模型,实时预测用户喜欢的内容,并推荐给用户。
时间排序:在新用户的冷启动中,按照时间和热度做内容召回;从内容角度考虑,根据新闻的时效性,对热点新闻加大权重。
人工规则:在一些强关联的推荐业务中,比如OTA行业,如果用户定了机票,那么机场附近的酒店就有比较大的推荐权重。
三、今日头条的召回策略
今日头条用的召回策略主要是倒排,离线维护一个倒排,key可以是分类、主题、来源等,按照热度排序。线上召回可以快速根据用户兴趣做内容截断,筛选出较少一部分的高质量内容,进入storm在线模型进行排序。