为什么一定要重视隐式反馈?
http://mp.weixin.qq.com/s?__biz=MzA4OTk5OTQzMg==&mid=2449231485&idx=1&sn=a2e6339cbaae58c4a9cde54ebdffff55
推荐系统所需要的核心数据是用户的反馈。
因为没有反馈就:
没有持续优化的标注数据
没有评价效果的真实数据
总之一句话:没有反馈数据,没有数据循环,不通透,产品的新陈代谢就有问题。
注意,我们说的用户反馈可不是用户打电话给客服说的“意见反馈”,而是对Item的喜好。
反馈数据的形式有多种:点击查看,收藏,看(听)完,加入购物车,付钱,评分,给评价……
这些反馈形式分为两种:隐式反馈和显式反馈。
上面列举的反馈方式中,评分是显式反馈,因为用户知道自己在表达态度, 并且用一种较量化的方式给出很明确的态度。其他的反馈则是用户使用产品时所留下的自然行为, 用户留下这些数据,目的并不是要告诉他的喜好,但是我们却可以从中“揣摩”到用户的喜好,这就是隐式反馈。
隐式反馈相对于显式反馈有以下特点:
1、数量会比显式反馈大很多,矩阵更稠密,更稳定;
2、用户自然发生,通常会更加真实全面地反应其态度;
3、更接近产品指标,如人均播放时长(视频),点击率(新闻);
Xavier Amatriain(Quora工程副总裁)在ACM Resys2016 上也分享过要重视隐式反馈的观点。见推荐系统老司机的十条经验。
隐式反馈面临的问题:
1、隐式反馈的负样本不明显
隐式反馈数据通常是 0-1 二值数据,理想情况 下应当把它当做“预测用户是否会对 Item 产生某种隐式反馈”的分类问题,分类问题则需要负样本,显然通常隐式反馈的负样本不那么明显。这是问题之一。
2、用RMSE去评价隐式反馈推荐模型
推荐的场景更多是推荐列表,关心的是排序,不论是“猜你喜欢”的综合列表推荐,还是Item-2-Item的相关推荐, 亦或是 feed 流推荐,关心排序胜过关心单个Item预测误差,而RMSE关心的是单个Item预测误差,因此用RMSE去评价隐式反馈推荐模型,就显得有些差强人意,这是问题之二。 ( HR 和 NDCG )
针对隐式反馈的矩阵分解主流有以下两种做法:
(1) Point Wise类:还是预测User对单个Item的偏好,最后根据偏好排序。
(2) Pair Wise类:对同一个User,直接考虑任意两个Item的顺序谁在前谁在后。
Point Wise类,以Collaborative Filtering for Implicit Feedback Datasets这篇论文为代表[1], 对此,优秀的实现有: implicit.als.AlternatingLeastSquares
AlternatingLeastSquares (Python实现)
为什么一定要重视隐式反馈?相关推荐
- 隐式反馈的去噪,模型取得巨大提升
Denoising Implicit Feedback for Recommendation! 本篇内容细节会涉及的更多一些,大家可以再次温故一遍,个人觉得非常有意思的一篇工作. 现实推荐问题的建模中 ...
- 用隐式反馈做推荐模型,你做对了吗
现在大家都习惯用隐式反馈来学习推荐模型,并作用于线上推荐系统(十方也不例外).大量的隐式反馈数据确实缓解了数据稀疏的问题,但是这些数据很多并没有反馈用户真正的需求.拿电商举例,大量的点击,并不会带来支 ...
- 用于推荐的隐式反馈去噪
** 用于推荐的隐式反馈去噪 ** 摘要 隐性反馈的普遍存在使得它们成为构建在线推荐系统的默认选择.虽然大量的隐式反馈缓解了数据稀疏问题,但缺点是它们在反映用户的实际满意度方面不够干净.例如,在电子商 ...
- 【矩阵分解六】处理隐式反馈-加权正则矩阵分解法WRMF (weighted regularized matrix factorization)
改进点(跟前几篇的SVD比): 一句话总结:当数据样本只有隐式反馈时,以前的数据建模方式便不再适用.原因:1.隐式反馈中默认只有正样本(one-class问题):2.未观测到的样本默认为负样本(显然不 ...
- 《推荐系统实战》读书笔记——在隐式反馈系统中如何给商品打分
之前看过的一本<pratical recommender systems>的读书笔记,这本书讲了很多网上看不到的,很实际的工程方面的考虑,规则为主,算法为辅.现在网上铺天盖地都是高大上的排 ...
- 【RS】Improving Implicit Recommender Systems with View Data - 使用浏览数据提升隐式推荐系统...
[论文标题]Improving Implicit Recommender Systems with View Data(IJCAI 18) [论文作者]Jingtao Ding , Guanghui ...
- 万恶之源:C语言中的隐式函数声明
1 什么是C语言的隐式函数声明 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自己主动依照一种隐式声明的规则,为调用函数的C代码产生汇编代码.以下是一个样例: int main(i ...
- mysql隐式转换造成索引失效的事故总结
隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误. 由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给mysql,这样 ...
- C语言中的隐式声明是什么,有什么危害?warning: implicit declaration of function ‘xxx’
今天编译一个代码,提示CUSTOM_LAYER里面有一个C文件函数gettimeofday()隐式声明,用man手册查了一下,需要包含头文件#include <sys/time.h> 那么 ...
- 什么是C语言中的隐式函数声明?
「1.什么是C语言的隐式函数声明」 在C语言中,函数在调用前不一定非要声明.如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码.下面是一个例子: int main(i ...
最新文章
- pyBoard Mini从安装到简单测试
- Maven编译jar出现:无法确定 T 的类型参数的异常的原因和处理方案
- [路由] -- Yii2 url地址美化与重写
- 英文版Ubuntu 16.04系统如何解决gedit中文显示乱码的问题
- [数据结构-严蔚敏版]P64循环队列-队列的顺序存储结构
- 产品经理之市场需求分析详解(非原创)
- 吞吐性能翻倍!搭载了第三代Tensor Core的A100是怎么做到的?
- process_进程池
- Android FrameWork——StatusBar
- 微服务体系三维可缩放模型
- HCIE-Security Day28:IPSec:实验(三)总部采用ISAKMP方式安全策略组与分支机构之间建立IPSec PN
- 洛谷P1640 [SCOI2010]连续攻击游戏(二分图)
- 帆软报表更新到服务器控件展示不出来_帆软报表问题汇总
- 【CodeForces 1253B --- Silly Mistake】
- Win7复制文件时出现:“您需要权限来执行操作!”(终极解决方法!)
- 基于51单片机俄罗斯方块游戏电路设计
- SD-WAN的驱动者:云计算
- java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit异常解决
- 三菱PlC计数器与定时的使用
- 网络游戏服务器开发(一)