ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

推荐系统——(一)推荐系统评测

2020-03-04 19:41:13  阅读:233  来源: 互联网

标签:rui 评测 推荐 系统 用户 物品 sum


文章目录

学习一下推荐系统相关的知识,记录项亮《推荐系统实践》中的重要内容。


一个完整的推荐系统一般需要用户、物品提供者和提供推荐系统的网站三个参与方。
预测准确度是推荐系统领域的重要质变,但是准确的预测并不代表好的推荐(因为用户可能不管你推不推荐都会购买,失去了推荐的意义)。

1、推荐系统实验方法

(1)离线实验offline experiment

通过日志系统获得用户行为数据,然后进行训练和测试。

  • 优点:不需要有对实际系统的控制权;不需要用户参与实验;速度快、可以测试大量算法。

  • 缺点:无法计算商业上敢信的指标(如点击率、转化率等);离线实验的指标和商业指标存在差距。

(2)用户调查user study

在上线测试前,需要一些真实用户在需要测试的推荐系统上完成一些任务,观察和记录他们的行为,并让他们回答一些问题。

  • 优点:可以获得与用户主观感受有关的指标;相对在线实验风险低。

  • 缺点:成本很高;双盲实验的设计很困难;测试环境和真实环境下的行为可能有差异。

(3)在线实验online experiment

AB测试。优点:可以公平获得不同算法实际在线时的性能指标;缺点:周期很长。

2、评测指标

离线实验的优化目标:最大化预测准确度,使得覆盖率>A,多样性>B,新颖性>C,其中A、B、C的取值应该视不同的应用而定。

(1)用户满意度

通过用户调查或在线实验获得。

在线系统中,用户满意度主要通过一些对用户行为的统计得到,如购买率、点击率、转换率、反馈收集。

(2)预测准确度(最重要的推荐系统离线评测指标)

可以通过离线实验计算。实际操作过程中,推荐系统可能更偏向于对用户进行TopN的推荐。

① 评分预测

根据用户对物品的历史评分学习用户的兴趣模型,并预测用户在将来看到一个物品的评分。

评分预测的预测准确度一般通过均方根误差RMSE和平均绝对误差MAE计算。

对于测试集中的一个用户u和物品i,令rui是用户u对物品i的实际评分,那么rui^\hat{r_{ui}}rui​^​是推荐算法给出的预测评分,那么:

RMSE=u,iT(ruirui^)TRMSE = \frac{\sqrt{\sum_{u,i∈T}{(r_{ui} - \hat{r_{ui}})}}}{|T|} RMSE=∣T∣∑u,i∈T​(rui​−rui​^​)​​

MAE=u,iTruirui^TMAE = \frac{\sum_{u,i∈T}{|r_{ui} - \hat{r_{ui}}|}}{|T|} MAE=∣T∣∑u,i∈T​∣rui​−rui​^​∣​

优缺点:RMSE加大了对预测不准的用户物品评分的惩罚(平方的惩罚),因而对系统的评测更加苛刻。如果评分系统是基于整数建立的,那么对预测结果取整会降低MAE的误差。

② TopN推荐

TopN的预测准确率一般通过准确率(precision)/召回率(recall)度量。

令R(u)是根据用户在训练集上的行为给用户做出的推荐列表,而T(u)是用户在测试集上的行为列表。那么推荐结果的召回率定义为:

Recall=uUR(u)T(u)uUT(u)Recall = \frac{\sum_{u∈U}{|R(u)∩T(u)|}}{\sum_{u∈U}{T(u)}} Recall=∑u∈U​T(u)∑u∈U​∣R(u)∩T(u)∣​

推荐结果的准确率定义为:

Precision=uUR(u)T(u)uUR(u)Precision = \frac{\sum_{u∈U}{|R(u)∩T(u)|}}{\sum_{u∈U}{R(u)}} Precision=∑u∈U​R(u)∑u∈U​∣R(u)∩T(u)∣​

一般会选取不同推荐列表的长度N,计算出一组准确率/召回率,然后画出准确率/召回率曲线。

(3)覆盖率

覆盖率描述一个推荐系统对物品长尾(非主流物品)的发掘能力。

  • 定义1:假设用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u),总物品集合为I,那么推荐系统的覆盖率为:
    Coverage=uUR(u)I Coverage = \frac{|∪_{u∈U}R(u)|}{|I|} Coverage=∣I∣∣∪u∈U​R(u)∣​
  • 定义2:信息熵 H=i=1np(i)logp(i)H = -\sum_{i=1}^{n}{p(i)logp(i)}H=−∑i=1n​p(i)logp(i),其中p(i)是物品i的流行度处于所有物品流行度之和。基尼系数G=1n1j=1n(2jn1)p(ij)G = \frac{1}{n-1} \sum_{j=1}^{n}{(2j-n-1)p(i_j)}G=n−11​∑j=1n​(2j−n−1)p(ij​),其中iji_jij​是按照物品流行度p()从小到大排序的物品列表中的第j个物品。
    马太效应: 一个系统是否会增加热门物品和非热门物品的流行差距。很多主流的推荐算法(如协同过滤)是具有马太效应的。检测的方法:如果G1是从初始用户行为中计算出的物品流行度的基尼系数,G2是从推荐列表中计算出的物品流行度的基尼系数,如果G2>G1,该算法就具有马太效应。

(4)多样性

多样性描述了推荐列表中物品两类之间的不相似性。假设s(i,j)∈[0,1]定义了物品i和j之间的相似度,那么用户u的推荐列表R(u)的多样性定义为:
Diversity=1i,jR(u),ijs(i,j)12R(u)(R(u)1)Diversity = 1 - \frac{\sum_{i,j∈R(u),i≠j}{}s(i,j)}{\frac{1}{2}|R(u)|(R(u)|-1)} Diversity=1−21​∣R(u)∣(R(u)∣−1)∑i,j∈R(u),i​=j​s(i,j)​

而推荐系统的整体多样性可以定义为所有用户推荐列表多样性的平均值:

Diversity=1UuUDiversity(R(u))Diversity = \frac{1}{|U|}\sum_{u∈U}{Diversity(R(u))}Diversity=∣U∣1​u∈U∑​Diversity(R(u))
一般认为推荐的内容要符合用户偏好多样性分布。

(5)新颖性

评测新颖性最简单的方法是利用推荐结果的平均流行度,但是要准确地统计还需要做用户调查。

(6)惊喜度

如果推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么惊喜度很高;而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。
参考论文:
Yuan Cao Zhang、Diarmuid Ó Séaghdha、Daniele Quercia和 Tamas Jambor的“Auralist: introducing serendipity into music recommendation.”。
Tomoko Murakami、Koichiro. Mori和Ryohei Orihara的“ Metrics for evaluating the serendipity of recommendation lists”。

(7)信任度

度量推荐系统的信任度只能通过问卷调查方式。提高推荐系统的信任度有两种方法:①增加推荐系统的透明度,即提供推荐解释;②考虑用户的社交网络信息,利用用户的好友信息给用户做推荐。

(8)实时性

需要实时地更新推荐列表来满足用户新的行为变化;能够将新加入系统的物品推荐给用户(推荐系统处理物品冷启动的能力)。

(9)健壮性

衡量一个推荐系统抗击作弊的能力。主要利用模拟攻击,向数据集注入噪声,对比注入噪声前后的推荐列表的差别。在实际系统中,提高系统健壮性的方法:①选择健壮性高的算法;②设计推荐系统时尽量使用代价较高的用户行为;③在使用数据前,进行攻击检测,对数据进行清理。

标签:rui,评测,推荐,系统,用户,物品,sum
来源: https://blog.csdn.net/qq_40709702/article/details/104660052

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有