推荐系统老司机的十条经验节选
来源:互联网 发布:禁毒知识网络竞赛 分数 编辑:程序博客网 时间:2024/06/06 08:53
原文地址:http://geek.csdn.NET/news/detail/124262
作者:陈开江@刑无刀,金融科技公司天农科技CTO,曾任新浪微博资深推荐算法工程师,考拉FM算法主管,先后负责微博反垃圾、基础数据挖掘、智能客服平台、个性化推荐等产品的后端算法研发,为考拉FM从零构建了个性化音频推荐系统。
文章对Xavier Amatriain在Recsys2016上的分享做出解读
一、隐式反馈比显式反馈要爽
所谓隐式反馈,就是用户发出这些行为时并不是为了表达兴趣/态度,只是在正常使用产品而已,反之,显式反馈就是用户在做这个操作时就是要表达自己的态度,如评分,投赞成/反对票。
Xavier Amatriain列举了隐式反馈的以下好处:
- 数据比显式反馈更加稠密。诚然,评分数据总体来说是很稀疏的,之前netflix的百万美元挑战赛给出的数据稀疏度大概是1.2%,毕竟评分数据是要消耗更多注意力的数据。
- 隐式反馈更代表用户的真实想法,比如你不是很赞成川普的观点,但是还是想经常看到他的内容(以便吐槽他),这是显式反馈无法捕捉的。而人们在Quora上投出一些赞成票也许只是为了鼓励一下作者,或者表达一些作者的同情,甚至只是因为政治正确而投,实际上对内容很难说真正感兴趣。
- 隐式反馈常常和模型的目标函数关联更密切,也因此通常更容易在AB测试中和测试指标挂钩。这个好理解,比如CTR预估当然关注的是点击这个隐式反馈。
二、深刻理解数据
三、为模型定义好学习任务
一个机器学习模型有三个因素构成:
- 训练数据(隐式反馈或者显式反馈)
- 目标函数(比如用户阅读一篇回答的概率)
- 衡量指标(比如准确率或者召回率)
Quora的首页是结合了多个用户隐式反馈的排序模型,给每一种用户行为建立一个预测模型,预测它发生的概率,结合每一种行为带来的长期价值大小,然后加权,即期望价值。这个例子里面的三元素也可定义清楚:
- 训练数据:用户的显式反馈和隐式反馈
- 目标函数:一个story的展示价值,量化定义为用户行为的期望价值
- 衡量指标:任何排序模型指标都可以
四、推荐可解释比精准更有意义
这里其实就是说推荐要展示出理由给用户,让用户知道每一项推荐的项目是怎么得到的。
五、矩阵分解大法好
Xavier Amatriain很推崇Matrix Factorization,因为它既有监督学习,又有无监督学习
两种学习方法就这样结合在一个算法里:
- 它可以用来降维,这部分通常是PCA这样的无监督学习算法承担的,矩阵分解得到的隐因子就是降维后的特征,可以直接作为其他学习算法的输入;
- 它还可以做聚类,比如Non-negative Matrix Factorization就常常用来做聚类;
- SVD就是一种回归,标准的监督学习。
矩阵分解还有一些变种:ALS(交替最小二乘),SVD++(结合特征的SVD),FM(因子机),TF(张量分解)。
总之,在推荐系统里,使劲压榨矩阵分解的效果。
六、万能的集成方法
Netflix的冠军模型,那可是100多种算法集成在一起的,真是应了那句话:比你效果好的模型还比你更努力。
实际上任何推荐系统也不可能是单一算法在起作用,而是多种算法集成在一起。集成方法理论上不会比你其中那个最好的算法差。在推荐系统中,你至少可以集成基于内容推荐和协同过滤两种。
本质上,集成算法是把某个模型的输出变成另一个模型的特征。如果你很难决策到底用哪个算法时,千万不要纠结,所有的都用,然后集成之。
集成还有一个好处就是:某个推荐算法可能更适合某个场景下,这样被集成的算法就可以各自handle各自擅长的场景,最后集大成。
具体集成方法可选的很多,如logistic regression,GBDT,Random Forest,ANN
- 推荐系统老司机的十条经验节选
- 推荐系统老司机的十条经验
- 推荐系统老司机的十条经验
- 【AI每日播报】推荐系统老司机的10条经验 深度学习应用大盘点
- 老司机总结出的21条开车经验
- 老司机总结出的21条开车经验
- 20条老司机总结的驾驶经验
- 老司机总结的21条即学即用经验
- 很宝贵!老司机总结出的21条开车经验
- 很宝贵!老司机总结出的21条开车经验
- 转:推荐系统十条经验和教训
- 新手必看一位老司机的十年开车经验
- 设计推荐系统的10条经验与教训
- Facebook老员工的十点经验
- Facebook老员工的十点经验
- 老司机总结出21条即学即用经验
- 老司机总结21条行车细节
- 老司机总结21条行车细节
- 【Log历练手册】Lomok StackOverflowError
- poj 2251
- iOS-去掉定位地址中不准确的楼层信息
- 02:计算(a+b)*c的值
- 第121届中国进出口商品交易会(广交会)-第一期会刊(参展商名录)
- 推荐系统老司机的十条经验节选
- 你应该使用Django admin的9个理由
- HDU 1569 方格取数(2) (二分图的最大点权独立集)
- 使用Mybatis Generator时遇到“Exception getting JDBC Driver”?
- eclipse代码格式化快捷键
- JavaScript高级程序设计(二)
- 微信小程序开发《二》:http请求的session管理
- 如何在PDF文件中插入一个空白页面
- 图解HTTP读书笔记(三 HTTP报文内的HTTP信息)