您的位置:首页 > 其它

从工业角度谈推荐系统的过去、现在和未来(二)

2017-03-24 15:54 537 查看
一、推荐问题的理解

1.传统定义:

基于用户过去的行为习惯、用户间的关系、 item间的相似度、上下文等信息来估计一个可以自动预测user对item的喜欢程度的效用函数(utility function)。


也就是说:推荐就是根据用户的历史行为习惯、社交关系、兴趣偏好(长期偏好、短期兴趣)和用户当前所处的上下文环境等去判断用户的当前需求/感兴趣的的item。

2. 推荐引擎的核心部分可以看作是数据挖掘问题

此处详见:《推荐系统:技术、评估及高效算法》 那本大厚书。



作者认为推荐问题=数据挖掘+all those other things(user interface(UI,用户界面),系统要求(例如有效性、可扩展性、隐私。。。),serendipity(惊喜度),diversity(多样性),awareness(用户对item的认知度),explanations(可解释性)… …)

这个部分看了一些杂文,感觉上现在来说大家都很重视后面的要求,更多地考虑到覆盖率、多样性、新颖性、惊喜度、可解释性等多个维度的要求,避免片面追求相关性而导致的买什么只推荐什么,看什么只推荐什么的情况发生。

二、Netflix 百万大奖

2006年, NETFLIX 对外宣布,他们要设立一项大赛,公开征集电影推荐系统的最佳电脑算法,Netflix公开了大约1亿个1-5的匿名影片评级,数据集仅包含了影片名称。评价星级和评级日期,没有任何文本评价的内容。比赛要求参赛者预测Netflix的客户分别喜欢什么影片,并宣布第一个能把现有推荐系统的准确率提高 10% 的参赛者将获得一百万美元的奖金。

2009 年 9 月 21 日,来自全世界 186 个国家的四万多个参赛团队经过近三年的较量,终于有了结果。

1. 早期主要看预测准确度,评价指标用的是RMSE。

下图中

global average 也就是按照热度推荐,将当前最流行的一些电影推荐给所有的用户;

user average 分别对每一个用户的历史行为做一个统计分析,例如看哪一类的比较堵之类的,将最近流行的对应类型的电影推荐给该用户;

item average 分别对每一个电影做一个统计分析,例如这部电影一般都是什么时候被看的多、看这部电影的用户一般都多大之类的。





为什么工业界不用优化评分预测而转为优化排序列表啦?

补充1:推荐主要做的一件事情是主动帮助用户找到他最需要的信息,如何来做这个事情,一般就转化为一个优化问题。对于Netflix类似的电影推荐,由于许多用户看完一个电影以后都会对电影评分来表达自己对电影的满意程度。推荐这个优化问题一般都会选择一个损失函数,在这里损失函数就选择预测评分与实际评分的平均平方差的根(RMSE),来预测如果给用户推荐这部电影,用户的满意程度如何。但是这里边其实存在一个gap,用户其实希望看到的是从最满意到最不满意的一个排序(最满意的N个就是著名的topN了)。在很多情况下,RMSE下降了,但是topN排序并没有变好,甚至变差,这就是推荐的目标和损失函数不一致。

作者:严林

链接:https://www.zhihu.com/question/20391355/answer/72111353

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

补充2:评分预测关注的主要是分数,既预测的分数和真实分数的误差尽可能小;而TopN推荐侧重于推荐N个和用户喜好相似的物品列。亚马逊科学家的观点在于:TopN推荐更符合实际的需求。例如:将一部你喜欢的电影(真实打分为 4.5 分)预测为一般般(预测打分为 3.5 分)和将一部你觉得一般般的电影(真实打分为 3.5 分)预测为非常一般(预测打分为 2.5 分),对于用户来说,前者显得更糟糕。擅长对所有电影进行预测评分的推荐引擎并不一定能很好的预测排名靠前的 N 部电影。

作者:略懂略懂

链接:https://www.zhihu.com/question/20391355/answer/18059501

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

补充:**2017年3月份的一则新闻:Goodbye Stars, Hello Thumbs Up: Netflix Unveils New Rating System **NETFLIX公司宣布不再使用五个星星的评分制度,改用点赞模式。喜欢/不喜欢 二分类,并宣布从四月份开始实施生效。

再有兴趣的可以看:

Netflix推荐系统的最新解读:算法、商业价值与创新 [1]

Netflix推荐系统的最新解读:算法、商业价值与创新 [2]

三、Beyond rating 预测

推荐不只是评分预测,everything is recommendation!

推荐的发展历程:



1. Ranking

将推荐问题理解为排序问题,最终给用户一个排好序的item lists,baseline:popularity流行度

(1)为什么不用RMSE了:

此处原因见上一篇:从工业角度谈推荐系统的过去、现在和未来(二)

大体原因就是:

选择损失函数得需要目标导向,而topN更接近用户的真实需求,直接优化排序列表更符合目标(目标不同决定损失函数的不同),因为优化RMSE并不意味着排序列表得到了优化。例如若在高分段即topN段的商品评分预测非常差,在低分段商品评分预测非常好,会导致总体的评分预测很准,但可能前N个item的预测顺序完全不对了。

(2)LTR(learning to rank):

。。1. 机器学习问题:目标是基于训练数据(可以是偏序的partial order 或者是二分的(相关或不相关))构建一个ranking model。最终结果是一个sorted item lists

。。 2. LTR 是个性化的key element

。。3. LTR可以看作是标准的监督分类问题

。。4. LTR常用的评价指标:NDCG,MRR,FCP。。。

。。5. Recent research 都是直接优化ranking mearsures,而不是直接优化4th中的mearsures(不可导/不可微non-differentiable)。

2 Similarity(相似度/兴趣度(interestingness))

例如:quora上的相似问题推荐等

(1)特征:文本、共同浏览、主题等

(2)important for logged-out user case

(3)例如基于图的相似度:simrank,详细见:

SimRank–基于结构的相似度度量方法学习笔记

(4)相似度可以分为很多维度:metadata/tags的相似度、用户播放行为、用户评分行为等

将上面的用ensemble方法融合一下:用回归学权重或者是用一些MAB explore/exploit 方法

3. Social recommendation

例子1:推荐可以follow的用户 Based on:其他用户的follow情况、topic

follow情况、用户互动情况、用户相关的features。。。

例子2:infer推断用户对某一个topic的信赖度–即用户trust/expertise infrence Based

on:此topic下的答案、收到的赞成或反对、用户的推荐。。、 需注意:trust/expertise会在网络中传播

trust/expertise问题在其他的推荐算法中也应该被考虑进去

例子3:Social and trust-based recommendation 在社交网络中看用户node A 应该有多 trust

node C

常用的算法:

Advogato (Levien)

Appleseed (Ziegler and Lausen)

MoleTrust (Massa and Avesani)

TidalTrust (Golbeck)

Social connections 还可以和其他的算法相结合使用,例如可以和CF相结合,在算相似度的时候考虑到用户间friendship关系,或者是矩阵分解时加入社交影响因素。

4. Explore/exploit–两者之间的trade-off是所有的个性化推荐算法都需要考虑的一个重要问题

exploitation:消费已知的,靠what we know about the user right now获利

exploration:挖掘,用互动信息来learn more about the user

解决方法:muti-armed bandits

E&E问题详见:个性化推荐是不是伪命题论推荐系统的Exploitation和Exploration

5. 整体页面优化
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: