推荐系统
Posted lessmore
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统相关的知识,希望对你有一定的参考价值。
推荐系统是feed流背后的服务,从今日头条到手机百度、淘宝,所有app都有feed化的趋势,重要性不言而喻,这里说说我了解的推荐系统,有疏漏之处烦请指正。
相关资料
项亮的《推荐系统》想必都有耳闻,虽然成书较早内容和现在主流的embeding、神经网络方法有所不同,仍有助于了解领域相关知识。
较新的资料多是一些google等大厂的概述性paper,很有实用价值:
Ad Click Prediction: a View from the Trenches
Deep Neural Networks for YouTube Recommendations
Practical Lessons from Predicting Clicks on Ads at Facebook
Wide & Deep Learning for Recommender Systems
深度学习在搜索业务中的探索与实践
概述
从一条请求
排序
推荐系统的目标有很多需要考虑,点击率,时长,互动,最终判断是否上线的指标是留存,但是很难说清楚提升留存的原因,没有对留存直接建模,而是多模型融合,对点击、评论、时长和各类互动目标都训练一个模型,然后再调一个复杂的融合公式,以最后融合的分数作为排序的标准。
融合公式怎么弄,形式是加权求和还是累乘尚没有标准,超参数也是实验调出来的,自动搜参可以解决每次更新模型都要人工实验调整融合公式的烦恼;
多个模型带来的成本,解决方案是multitask,主要是共享神经网络的embeding部分,因为模型的大部分参数都在这部分。通常将相近的目标融合,或者密集的共享给稀疏的,这里同样没有行之有效的方法,需要尝试后给结论。
模型
lr,fm, mlp,通常都是几部分混合在一起,实践中约复杂拟合能力越强。
特征
推荐系统中一个item会大量展示,有大量数据做充分学习,id类特征作用最强,离散特征用处较小。
候选
传统是协同过滤和人工设计的规则召回,进化到使用模型,需要解决的问题是,从数量级亿级别的item中挑选出;需要保持多样性;
使用模型最直接的做法,对item 和 user 做embeding,问题抽象为从亿级别向量中寻找与给定向量内积最小的top k个向量。为了加速搜索过程,有kd-tree,ball-tree,fast ball tree等方法,效率都可以做到毫秒级。
另外一个困难时如何衡量一个召回的作用。
explore & exploit
冷启动:最简单的强插,要注意保量不足、过快。更有的可以做固定加权和动态加权,还有更理想的基于社交关系做冷启动。
多样性,同样很难衡量,有各种方法做打散,基于规则的,基于embeding向量算距离的,
以上是关于推荐系统的主要内容,如果未能解决你的问题,请参考以下文章