推荐系统通常分为召回和排序两个步骤
召回:
召回阶段的主要职责是:从千万量级的候选物品里,采取简单模型将推荐物品候选集合快速筛减到千级别甚至百级别,这样将候选集合数量降下来,之后在排序阶段就可以上一些复杂模型,细致地对候选集进行个性化排序。
排序:对多个召回方法的结果进行统一打分并排序,选出最优Top K。筛选:CTR预估的rank模型,相当于精排序:使用一个点击率预估模型(输入用户特征,内容特征,用户内容交叉特征等)对召回出来的内容进行排序
这里可以使用复杂的模型来对少量物品精准排序。对某个用户来说,即使精排推荐结果出来了,一般并不会直接展示给用户,可能还要上一些业务策略,比如去已读,推荐多样化,加入广告等各种业务策略。之后形成最终推荐结果,将结果展示给用户。
FM模型、GBDT+LR模型、DNN模型等
召回阶段工业界目前常规的做法是多路召回,每一路召回可能采取一个不同的策略。
对于近线部分来说,主要目的是实时收集用户行为反馈,并选择训练实例,实时抽取拼接特征,并近乎实时地更新在线推荐模型。这样做的好处是用户的最新兴趣能够近乎实时地体现到推荐结果里。
对于离线部分而言,通过对线上用户点击日志的存储和清理,整理离线训练数据,并周期性地更新推荐模型。对于超大规模数据和机器学习模型来说,往往需要高效地分布式机器学习平台来对离线训练进行支持。