推荐系统(2)——评测指标

news/2024/5/19 22:15:29 标签: 推荐算法, 机器学习

根据评测体系来评价一个推荐系统的好坏,由于推荐系统是和实际收益挂钩,所以需要考虑三方(用户,物品提供者和平台)的利益,实现最大化的三方共赢。

接下来从 实 验 方 法 , 评 测 指 标 和 评 测 维 度 \red{实验方法,评测指标和评测维度} 进行介绍
在这里插入图片描述

1 实验方法

通过实验来获取评价指标,主要有三个:

1.1 离线实验(offline experiment)

在一个离线的数据集上完成,不需要一个实际的系统作为支撑,只需要有一个从日志中提取的数据集即可。
1、步骤
a)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集;
b)将数据集按照一定的规则分成训练集和测试集;
c)在训练集上训练用户兴趣模型,在测试集上进行预测;
d)通过事先定义的离线指标,评测算法在测试集上的预测结果。

2、优点

  • 不需要用户参与
  • 速度快,可以实验多种算法模型
  • 不需要搭建一个完整的推荐系统

3、缺点

  • 数据的稀疏性限制了适用范围,如果一个数据集没有包括某用户的历史行为,则无法进行推荐的评价。
  • 评价只具有客观性,没法获得客户的主观评价(真实评价更为重要)
  • 难以找到离线评价指标在线真实反馈(点击率、转化率、点击深度、购买客单价、购买商品类别等)之间的关联关系;

1.2 用户调查(User study)

通过一些真实用户,让他们在需要测试的推荐系统上完成一些任务。记录用户的行为,并让他们回答一些问题。最后,我们通过分析他们的行为和答案,了解测试系统的性能。

1、优点

可以获得用户主观感受的指标,出错后容易弥补;

2、缺点

  • 招募测试用户代价较大(人工成本高);
  • 无法组织大规模的测试用户,统计意义不足;

1.3 在线实验(online experiment)

在完成离线实验和用户调查之后,可以将系统上线做AB测试,将它和旧算法进行比较。

在线实验最常用的评测算法是【A/B测试】,它通过一定的规则将用户随机分成几组,对不同组的用户采用不同的算法,然后通过统计不同组的评测指标,比较不同算法的好坏。

1、A/Btest 核心思想

a) 多个方案并行测试;
b) 每个方案只有一个变量不同;
c) 以某种规则优胜劣汰。

A/B测试必须是单变量,在推荐系统的评价中,唯一变量就是 推荐的算法模型。

2、优点

可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标;

3、缺点

周期较长,必须进行长期的实验才能得到可靠的结果;

4、切分流量

大型网站做AB测试,可能会因为不同团队同时进行各种测试对结果造成干扰,所以切分流量是AB测试中的关键。
不同的层以及控制这些层的团队,需要从一个统一的地方获得自己AB测试的流量,而不同层之间的流量应该是正交的(不存在线性关系)

1.4 总结

一般来说,一个新的推荐算法最终上线,需要完成上述的3个实验。

  • 首先,通过离线实验证明它在很多离线指标上优于现有的算法;
  • 其次,通过用户调查确定用户满意度不低于现有的算法;
  • 最后,通过在线AB测试确定它在我们关心的指标上优于现有的算法;

2 评测指标

当前推荐系统性能的评测有许多定性和定量的指标

2.1 预测准确度

度量推荐系统预测用户行为的准确度,可以离线实验下获取,对于学术研究有很大的用处,根据研究方向的不同,主要分为预测评分准确度TopN推荐

在一个推荐系统中, r u a r_{ua} rua是用户u对物品a的真实评分, r u a ′ r_{ua}^{'} rua是系统的预测评分, E p E^p Ep表示测试集。
1) 预测评分准确度
通过预测结果和用户的实际评分的距离来进行度量,所以一般采用最常用的MAE和RMSE。

  • 平均绝对误差(MAE)
    M A E = 1 ∣ E p ∣ ∑ ( u , a ) ∈ E p ∣ r u , a − r u , a ′ ∣ MAE = \frac{1}{|E^p|}\sum_{(u,a)\in E^p}|r_{u,a}-r_{u,a}^{'}| MAE=Ep1(u,a)Epru,aru,a
  • 均方根误差(EMSE)
    R M S E = 1 ∣ E p ∣ ∑ ( u , a ) ∈ E p ( r u , a − r u , a ′ ) 2 RMSE=\sqrt {\frac{1}{|E^p|}\sum_{(u,a)\in E^p}(r_{u,a}-r_{u,a}^{'})^2} RMSE=Ep1(u,a)Ep(ru,aru,a)2

Netflix认为均方根误差加大了对预测错误的用户物品评分的惩罚,所以更加严格,此外,如果一个评测采用整数评分,对预测结果取整数会降低MAE的误差。

2) TopN推荐
给用户推荐一个推荐列表,这就是TopN推荐,这也更符合实际的需求。一般采用准确率和召回率进行评测。T(u)是根据用户在训练集上的行为给用户做出的推荐列表,R(u)是用户在测试集上的行为列表。

  • 准确率(precise)

p r e c i s e = T P T P + F P , 在 这 里 是 P = ∑ ∣ R ( u ) ∩ T ( u ) ∣ ∑ ∣ R ( u ) ∣ precise = \frac{TP}{TP+FP},在这里是P = \frac{\sum|R(u)\cap T(u)|}{\sum|R(u)|} precise=TP+FPTPP=R(u)R(u)T(u)

  • 召回率(recall)
    R e c a l l = T P T P + T N , h e r e I s , R = ∑ ∣ R ( u ) ∩ T ( u ) ∣ ∑ ∣ T ( u ) ∣ Recall = \frac{TP}{TP+TN},here Is, R = \frac{\sum|R(u)\cap T(u)|}{\sum|T(u)|} Recall=TP+TNTP,hereIs,R=T(u)R(u)T(u)

2.2 用户满意度

顾名思义,只能通过用户调查和在线测试进行获取,无法离线实验获取。

  • 用户调查:通过调查问卷,充分考虑用户的各方面体验,针对问题进行回答。

  • 在线测试:一般情况下,可以采用用户点击率,停留时间,转化率进行度量。

2.3 覆盖率(coverage)

描述一个推荐系统对物品长尾的发掘能力,即是推荐出来的物品张总物品的比例。对于假设系统的用户集合为U,推荐系统给每个用户推荐一个长度为N的物品列表R(u),覆盖率公式为:
c o v e r a g e = ∣ ∪ R ( u ) ∣ I coverage = \frac{|\cup R(u)|}{I} coverage=IR(u)
覆盖率是内容提供者关心的指标,覆盖率为100%的推荐系统可以将每个物品都推荐给至少一个用户。

除了推荐物品的占比,还可以通过研究物品在推荐列表中出现的次数分布,更好的描述推荐系统的挖掘长尾的能力。如果分布比较平,说明推荐系统的覆盖率很高;如果分布陡峭,说明分布系统的覆盖率较低。

信息论和经济学中有两个著名指标,可以定义覆盖率:

  • 信息熵
    H = − ∑ i = 1 n p i l o g ( p i ) , p i 是 物 品 i 的 流 行 度 / 所 有 物 品 的 流 行 度 之 和 H = -\sum_{i=1}^{n} p_ilog(p_i), p_i是物品i的流行度/所有物品的流行度之和 H=i=1npilog(pi),pii/

  • 基尼指数(Gini index)
    G = 1 n − 1 ∑ j = 1 n ( 2 j − n − 1 ) p i j G = \frac{1}{n-1}\sum_{j=1}^{n} (2j-n-1)p_{i_j} G=n11j=1n(2jn1)pij
    p i j p_{i_j} pij是按照物品流行度p(i)从小到大排序的物品列表中第j个物品
    在这里插入图片描述

  • 评测马太效应

    马太效应,是指强者越强,弱者越弱的效应。推荐系统的初衷是希望消除马太效应,使得各物品都能被展示给对它们感兴趣的人群。

    但是,很多研究表明,现在的主流推荐算法(协同过滤)是具有马太效应的。评测推荐系统是否具有马太效应可以使用基尼系数。

    如,G1是从初始用户行为中计算出的物品流行度的基尼系数,G2是从推荐列表中计算出的物品流行度的基尼系数,那么如果G1<G2,就说明推荐算法具有马太效应。

2.4 多样性

为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同兴趣的领域,即需要具有多样性。

多样性描述了推荐列表中物品两两之间的不相似性。假设s(i,j)在[0,1]区间定义了物品i和j之间的相似度,那么用户u的推荐列表R(u)的多样性定义如下:

d i v e r s i t y ( R ( u ) ) = 1 − ∑ s ( i , j ) 1 2 ∣ R ( u ) ∣ ( ∣ R ( u ) ∣ − 1 ) diversity(R(u)) = 1-\frac{\sum s(i,j)}{\frac{1}{2}|R(u)|(|R(u)|-1)} diversity(R(u))=121R(u)(R(u)1)s(i,j)

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

D i v e r s i t y = 1 ∣ U ∣ ∑ d i v e r s i t y ( R ( u ) ) Diversity = \frac{1}{|U|}\sum diversity(R(u)) Diversity=U1diversity(R(u))

2.5 新颖性

新颖性也是影响用户体验的重要指标之一。它指的是向用户推荐非热门非流行物品的能力。

评测新颖度最简单的方法,是利用推荐结果的平均流行度,因为越不热门的物品,越可能让用户觉得新颖。

此计算比较粗糙,需要配合用户调查准确统计新颖度。

2.6 惊喜度

推荐结果和用户的历史兴趣不相似,但却让用户满意,这样就是惊喜度很高。

目前惊喜度还没有公认的指标定义方式,最近几年研究的人很多,深入研究可以参考一些论文。

2.7 信任度

如果用户信任推荐系统,就会增加用户和推荐系统的交互。

提高信任度的方式有两种:

  • 增加系统透明度
    提供推荐解释,让用户了解推荐系统的运行机制。

  • 利用社交网络,通过好友信息给用户做推荐
    通过好友进行推荐解释

度量信任度的方式,只能通过问卷调查。

2.8 实时性

推荐系统的实时性,包括两方面:

  • 实时更新推荐列表满足用户新的行为变化;
  • 将新加入系统的物品推荐给用户;

2.9 健壮性

任何能带来利益的算法系统都会被攻击,最典型的案例就是搜索引擎的作弊与反作弊斗争。

健壮性(robust,鲁棒性)衡量了推荐系统抗击作弊的能力。

2011年的推荐系统大会专门有一个推荐系统健壮性的教程,作者总结了很多作弊方法,最著名的是行为注入攻击(profile injection attack)。就是注册很多账号,用这些账号同时购买A和自己的商品。此方法针对亚马逊的一种推荐方法,“购买商品A的用户也经常购买的其他商品”。

评测算法的健壮性,主要利用模拟攻击:

a)给定一个数据集和算法,用算法给数据集中的用户生成推荐列表;
b)用常用的攻击方法向数据集中注入噪声数据;
c)利用算法在有噪声的数据集上再次生成推荐列表;
d)通过比较攻击前后推荐列表的相似度评测算法的健壮性。

提高系统健壮性的方法:

  • 选择健壮性高的算法;
  • 选择代价较高的用户行为,如购买行为比浏览行为代价高;
  • 在使用数据前,进行攻击检测,从而对数据进行清理。

2.10 商业目标

设计推荐系统时,需要考虑最终的商业目标。不同网站具有不同的商业目标,它与网站的盈利模式息息相关。

总结:

笑死
对于可以离线优化的指标,在给定覆盖率、多样性、新颖性等限制条件下,应尽量优化预测准确度。

3 评测维度

增加评测维度就是为了知道一个推荐算法在什么时候性能最好,一般评测维度分3种:

  • 用户维度
    主要包括用户的人口统计学信息、活跃度以及是不是新用户等;
  • 物品维度
    包括物品的属性信息、流行度、平均分以及是不是新加入的物品等;
  • 时间维度
    包括季节,是工作日还是周末,白天还是晚上等;

如果推荐系统的评测报告中,包含了不同维度下的系统评测指标,就能帮我们全面了解系统性能。


上一篇:推荐系统(1)——简介
下一篇:推荐系统(3)——个性化推荐系统架构


http://www.niftyadmin.cn/n/948401.html

相关文章

推荐系统(4)——推荐算法1(基于内容和协同过滤)

文章目录1 基于内容的推荐&#xff08;Content Based&#xff09;1.1 原理1.2 算法流程1.3 优/缺点2 协同过滤&#xff08;Collaborative Filtering&#xff09;2.1 CF的理论基础&#xff08;1&#xff09;U-U矩阵相似度计算&#xff08;Pearson系数&#xff09;&#xff08;2&…

推荐系统(3)——个性化推荐系统架构

关于推荐系统的技术架构&#xff0c;我认为应该是作为一个初学者首先需要认识的。 1 推荐系统架构图——baseline4 根据以上的很简单的架构图可以看出&#xff0c;一个推荐系统可以概括为f(U,I,C)f(U, I, C)f(U,I,C)&#xff1a;基于用户(User)物品(Item)场景(Context)信息&a…

常用损失函数及其应用场景

文章目录1 Regression1.1 均方误差&#xff08;MSE&#xff09;/L2损失1.2 均方根误差&#xff08;root mean suqare error,RMSE&#xff09;1.3 平均绝对误差MAE/L1损失1.4 平均偏差误差&#xff08;Mean Bias Error&#xff09;1.5 平均绝对百分比误差&#xff08;Mean Absol…

推荐系统(5)——推荐算法2(POLY2-FM-FFM-GBDT-MLR)

文章目录1 CTR简介2 逻辑回归——融合多种特征的推荐模型2.1 基于逻辑回归的推荐流程2.2 LR的数学形式2.3 逻辑回归在推荐上的优劣分析3 从FM到FFM——特征自动交叉的解决方案3.1为什么需要特征交叉&#xff1f;——辛普森悖论3.2 POLY2模型——特征交叉的开始3.3 什么是FM1 从…

GBDT和xgboost原理、比较分析、面试总结

在介绍&#xff08;Gradient Boosting Decesion Tree&#xff0c;GBDT&#xff09;之前&#xff0c;需要先引入一些基础知识&#xff0c;从前向分步算法到梯度提升算法&#xff08;Gradient Boosting&#xff09; 文章目录1 前向分步&#xff08;Forward Step&#xff09;2 梯度…

推荐系统(6)——推荐算法3(深度学习时代来临:AutoRec,Deep Crossing,NeuralCF,PNN,WideDeep,FNN,DeepFM,NFM)

文章目录1 AutoRec——神经网络推荐算法的开端1.1 自编码器1.2 AutoRec模型结构1.3 AutoRec的推荐过程1.4 模型的特点和局限2 Deep Crossing——深度学习推荐算法的完整应用2.1 Deep Crossing的应用场景2.2 Deep Crossing的模型结构1 特征2 网络结构2.3 Deep Crossing的革命性意…

softmax函数用于多分类问题的解读

在多分类问题中&#xff0c;我们常常使用softmax作为输出层函数。下面来介绍softmax函数。 1 softmax数学形式&#xff1a; 通过数学表达式&#xff0c;我们可以看到&#xff0c;softmax函数将向量映射为一个概率分布&#xff08;0&#xff0c;1&#xff09;对于n维向量最后映…

推荐系统(7)——推荐算法4(深度学习时代来临:模型结构上的突破)ACF、DIN、DIEN、DRN

文章目录1 ACF&#xff0c;DIN——注意力机制在推荐上的应用1.1 AFM——NFM的交叉特征Attention得分1.2 DIN——淘系广告商品推荐的业务角度1.3 注意力机制对于推荐系统的启发2 DIEN——序列模型在推荐上的应用2.1 为什么时序信息对于推荐是重要的&#xff1f;2.2 DIEN的模型架…