召回层:召回解决的是从海量候选item中召回千级别的item问题
- 策略规则类:热度召回、LBS、历史行为重定向(买了又买、点了没买)、基于标签召回、业务特有的其他规则
模型类:模型类的模式是将用户和item分别映射到一个向量空间,然后用向量召回,这类有itemcf,usercf,embedding(word2vec),Graph embedding(node2vec等),DNN(如DSSM双塔召回,YouTubeDNN等),RNN(预测下一个点击的item得到用户emb和item emb);向量检索可以用Annoy(基于LSH),Faiss(基于矢量量化)。此外还见过用逻辑回归搞个预估模型,把权重大的交叉特征拿出来构建索引做召回
粗排层:本质上跟精排类似,只是特征和模型复杂度上会精简,此外也有将精排模型通过蒸馏得到简化版模型来做粗排
精排层:精排解决的是从千级别item到几十这个级别的问题
- 预估:lr,gbdt,fm及其变种(fm是一个工程团队不太强又对算法精度有一定要求时比较好的选择),widedeep,deepfm,NCF各种交叉,DIN,BERT,RNN
- 多目标:MOE,MMOE,MTL(多任务学习)
- 打分公式融合: 随机搜索,CEM(性价比比较高的方法),在线贝叶斯优化(高斯过程),带模型CEM,强化等
重排层:重排层解决的是展示列表总体最优,模型有 MMR,DPP,RNN系列(参考阿里的globalrerank系列)
展示层:
- 推荐理由:统计规则、行为规则、抽取式(一般从评论和内容中抽取)、生成式;排序可以用汤普森采样(简单有效),融合到精排模型排等等
- 首图优选:CNN抽特征,汤普森采样
探索与利用:随机策略(简单有效),汤普森采样,bandit,强化等
产品层:交互式推荐、分tab、多种类型物料融合
annoy地址:https://github.com/spotify/annoy
Annoy 是 Spotify 开源的高维空间求近似最近邻的库,在 Spotify 使用它进行音乐推荐。最邻近搜索(Nearest Neighbor Search, NNS)又称为“最近点搜索”(Closest point search),是一个在尺度空间中寻找最近点的优化问题。
Annoy 能够使用静态文件作为索引,意味着可以跨进程共享索引。它还创建了大量的基于只读文件的数据结构,这些数据结构被嵌入内存中,以便许多进程可以共享相同的数据。Annoy 的另一个好处是它试图最小化内存占用,因此索引非常小。
Faiss的全称是Facebook AI Similarity Search,是FaceBook的AI团队针对大规模相似度检索问题开发的一个工具,使用C++编写,有python接口,对10亿量级的索引可以做到毫秒级检索的性能。
简单来说,Faiss的工作,就是把我们自己的候选向量集封装成一个index数据库,它可以加速我们检索相似向量TopK的过程,其中有些索引还支持GPU构建,可谓是强上加强。
Maximal Marginal Relevance (a.k.a MMR) 算法目的是减少排序结果的冗余,同时保证结果的相关性。最早应用于文本摘要提取和信息检索等领域。在推荐场景下体现在,给用户推荐相关商品的同时,保证推荐结果的多样性,即排序结果存在着相关性与多样性的权衡。
目前工业界常用的推荐系统模型有哪些? - 知乎 https://www.zhihu.com/question/314773668
Faiss入门及应用经验记录 - MECH的文章 - 知乎 https://zhuanlan.zhihu.com/p/357414033
贝叶斯优化(原理+代码解读) - 养生的控制人的文章 - 知乎 https://zhuanlan.zhihu.com/p/390373572
高斯过程 Gaussian Processes 原理、可视化及代码实现 - 王桂波的文章 - 知乎 https://zhuanlan.zhihu.com/p/75589452
推荐重排算法之MMR - icebear的文章 - 知乎 https://zhuanlan.zhihu.com/p/102285855
NIPS2018|重排|相关性与多样性推荐的trade-off——DPP - 潜心的文章 - 知乎 https://zhuanlan.zhihu.com/p/420225843