推荐系统:技术、评估及高效算法_评价系统的三个性能指标

(90) 2024-06-21 11:01:01

实验指标

系统推荐 系统未推荐 喜 欢 真 阳 率 ( T P ) 假 阴 率 ( F N ) 不 喜 欢 假 阳 率 ( F P ) 真 阴 率 ( T N ) \begin{array}{c|lcr} & \text{系统推荐} & \text{系统未推荐} \\ \hline 喜欢 & 真阳率(TP) & 假阴率(FN) \\ 不喜欢 & 假阳率(FP) & 真阴率(TN)\\ \end{array} 系统推荐(TP)(FP)系统未推荐(FN)(TN)

1.Accurrary(准确率)

​ 准确率代表预测正确的结果总样本的百分比

​ 缺点:如果样本不均衡,准确率就会失效
A c c u r a c y = N u m b e r   O f   C o r r e c t   P r e d i c t i o n s T o t a l   N u m b e r   O f   P r e d i c t i o n s Accuracy = \frac{Number\ Of\ Correct\ Predictions}{Total\ Number\ Of\ Predictions} Accuracy=Total Number Of PredictionsNumber Of Correct Predictions

A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy = \frac{TP + TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN

2.Precision(查准率)

系统推荐的内容中用户喜欢的商品所占比例
P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP

3.Recall(召回率)

用户喜欢的东西有多少被推荐了

召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。

例如:肿瘤预测中不放过任何一个肿瘤
R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP
推荐系统:技术、评估及高效算法_评价系统的三个性能指标 (https://mushiming.com/)  第1张

图 1 precision and recall
4.P-R曲线

​ precision和recall是一对矛盾的度量,基于此,我们引出P-R曲线这个概念,若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者。为了综合考虑precision和recall的性能度量,我们在下面继续提出新的度量方式。

​ “平衡点(Break-Even Point, 简称BEP)”就是这样的一个度量,它是“precision = recall”时的取值。

推荐系统:技术、评估及高效算法_评价系统的三个性能指标 (https://mushiming.com/)  第2张

图 2 P-R曲线
5.F-measure

​ BEP过于简化,所以继续提出F1度量:
F − m e a s u r e = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F-measure=\frac{2*precision*recall}{precision+recall} Fmeasure=precision+recall2precisionrecall

6.ROC(Receiver Operating Characteristic) and AUC(Area under curve)

ROC曲线综合考虑学习器在不同任务下的“期望泛化能力”的好坏,或者说是“一般情况下”泛化性能的好坏,是研究学习器泛化性能的有力工具。

​ 真阳率和假阳率比率曲线:最终被推荐但用户不喜欢的推荐物品所占比例

Tips:挖掘潜在销售同时又对最小化市场成本感兴趣情况下,ROC曲线要比准确率-召回率曲线更适用。

ROC曲线和PR曲线相似,如果另一条ROC曲线完全包住另一条曲线,则证明前者的性能优于后者,但是如果两条曲线有交叉,那么久很难比较出来,此时如果要比较两者的性能,就需要比较ROC曲线下的面积,即AUC。 

推荐系统:技术、评估及高效算法_评价系统的三个性能指标 (https://mushiming.com/)  第3张

图 3 ROC曲线
7.nDCG(Normalized Discounted cumulative gain, 归一化折损累计增益)

nDCG是判断排名质量的指标

推荐系统:技术、评估及高效算法_评价系统的三个性能指标 (https://mushiming.com/)  第4张

图 4 nDCG计算流程
  • 高关联度的结果比一般关联度的结果更影响最终的指标得分

  • 有高关联度的结果出现在更靠前的位置的时候,指标会越高

  • 排名的结果应该与执行的查询(规范化)无关

    k表示推荐系统中top-k, rel表示第k个物品的相关性或者评分。假设我们共推荐k个电影,rel可以是用户对第i部电影的评分。

    1)累积增益CG

    ​ CG就是将每个推荐结果相关性的分支(分数)累加后作为整个推荐列表的得分
    C G k = ∑ i = 1 k r e l i CG_{k}=\sum_{i=1}^{k}{rel_i} CGk=i=1kreli

    2)折损累积增益DCG

    ​ CG的一个缺点是没有考虑每个推荐结果处于不同位置对整个推荐效果的影响,例如我们总是希望相关性高的结果应该排在前面。显然,如果相关性低的结果排在靠前的位置会严重影响用户的体验,所以在CG的基础上引入位置影响因素, 即DCG(Discounted Cumulative Gain), 这里指的是对于排名靠后推荐结果的推荐效果进行“打折处理”:
    D C G k = ∑ i = 1 k r e l i l o g 2 ( i + 1 ) DCG_k=\sum_{i=1}^{k}\frac{rel_i}{log_{2}{(i+1)}} DCGk=i=1klog2(i+1)reli

    D C G k = ∑ i = 1 k 2 r e l i − 1 l o g 2 ( i + 1 ) DCG_k=\sum_{i=1}^{k}\frac{2^{rel_i}-1}{log_{2}{(i+1)}} DCGk=i=1klog2(i+1)2reli1

    3)归一折损累积增益(nDCG)

    ​ 不同的推荐列表无法横向比较,所以提出nDCG,将DCG进行归一化处理。
    I D C G k = ∑ i = 1 ∣ R E L ∣ 2 r e l i − 1 l o g 2 ( i + 1 ) IDCG_k=\sum_{i=1}^{\left|REL\right|}\frac{2^{rel_i}-1}{log_{2}{(i+1)}} IDCGk=i=1RELlog2(i+1)2reli1

    ​ IDCG=最好的DCG,指的是推荐系统为用户返回的最好的推荐列表。

N D C G k = D C G k I D C G k NDCG_k = \frac{DCG_k}{IDCG_k} NDCGk=IDCGkDCGk

8.HR(Hit ratio)

​ 分母是所有的测试集合,分子表示每个用户top-K列表中属于测试集合的个数的总和。
H R @ K = N u m b e r   o f   H i t s @ K G T HR@K = \frac {Number\ of\ Hits@K} {GT} HR@K=GTNumber of Hits@K

9.RMSE(均方根误差)

​ 系统在已知用户-物品对(u,i)的真实评分 r u i r_{ui} rui情况下再测试集 τ \tau τ上生成预测评分 r u i r_{ui} rui
R M S E = 1 ∣ τ ∣ ∑ ( u , i ) ∈ τ ( r ^ u i − r u i ) 2 RMSE = \sqrt{\frac{1}{\left|\tau\right|}\sum_{(u,i)\in\tau}({\hat r_{ui}-r_{ui}})^2} RMSE=τ1(u,i)τ(r^uirui)2

10.MAE(平均绝对误差)

M A E = 1 τ ∑ ( u , i ) ∈ τ ∣ r ^ u i − r u i ∣ MAE=\frac{1}{\tau}\sum_{(u,i)\in\tau}\left|{
{\hat r_{ui}-r_{ui}}}\right|
MAE=τ1(u,i)τr^uirui

11.Average Precision

​ AP是PR曲线下面的面积,通常来说一个越好的模型,AP值越高,MAP是多个类别AP的平均值,对每个类的AP再求平均,就得到了MAP的值,MAP的大小在[0,1]区间,越大越好。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DlHkBIUl-56)(/Users/yee/Library/Application Support/typora-user-images/image-.png)]

图 3 PR曲线

A v e P = ∫ 0 1 p ( r )   d r AveP = \int_{0}^{1} p(r)\, {\rm d}r AveP=01p(r)dr

其中, p ( k ) p(k) p(k)表示精准率, r e l ( k ) rel(k) rel(k)是一个指标函数,如果排名k的项目是相关文档,则等于1,否则等于0.
A v e P = ∑ k = 1 n P ( k ) ∗ r e l ( k ) n u m b e r   o f   r e l e v a n t   d o c u m e n t s AveP=\frac{\sum_{k=1}^{n}{P(k)}*{rel(k)}}{number\ of\ relevant\ documents} AveP=number of relevant documentsk=1nP(k)rel(k)

12.MAP(Mean Average Precision)

​ MAP计算的是N个用户的平均精度的均值。
M A P = ∑ q = 1 N A v e P ( q ) N MAP = \frac{\sum_{q=1}^{N}{AveP(q)}}{N} MAP=Nq=1NAveP(q)

13.Average Recall (AR)

I o U = A r e a   o f   O v e r l a p A r e a   o f   U n i o n IoU = \frac{Area\ of\ Overlap}{Area\ of\ Union} IoU=Area of UnionArea of Overlap

​ IoU相当于两个重叠的部分除以两个区域的集合

​ Recall x IoU curve

A R = 2 ∫ 0.5 1 r e c a l l ( I o U ) d ( I o U ) AR=2 \int_{0.5}^{1}recall(IoU)d(IoU) AR=20.51recall(IoU)d(IoU)

14.MAR(Mean Average Recall)

m A R = ∑ i = 1 k A R i K mAR = \frac{\sum_{i=1}^{k}AR_i}{K} mAR=Ki=1kARi

15.MRR(Mean Reciprocal Rank)

​ 平均倒数排名是一种统计量度,用于评估对查询样本生成可能响应列表的任何过程,按正确性概率排序。 查询响应的倒数排名是第一个正确答案的排名的乘法倒数:第一名 1,第二名 1⁄2,第三名 1⁄3,依此类推。 平均倒数排名是查询样本 Q的结果倒数排名的平均值.

​ 其中 ${\displaystyle {\text{rank}}_{i}} 指 的 是 第 i 个 用 户 的 第 一 个 推 荐 有 效 值 的 排 名 位 置 , 指的是第 i 个用户的第一个推荐有效值的排名位置, iQ$表示用户个数

​ 平均倒数秩的倒数对应于秩的调和平均数。
M R R = 1 ∣ Q ∣ ∑ i = 1 ∣ Q ∣ 1 r a n k i MRR = \frac{1}{\left|Q\right|}\sum_{i=1}^{\left|Q\right|}\frac{1}{rank_i} MRR=Q1i=1Qranki1

18.Coverage(覆盖率)

​ 覆盖率(Coverage)描述一个推荐系统对物品长尾的发掘能力。最简单的定义为推荐系统能够推荐出来的物品占总物品集合的比例。

​ 假设系统的用户集合为 U U U,总物品集合为 I I I,推荐系统给每个用户推荐一个长度为N的物品列表 R ( u ) R(u) R(u):
c o v e r a g e = U u ∈ U R ( u ) ∣ I ∣ coverage = \frac{U_{u\in U }R(u)}{\left|I\right|} coverage=IUuUR(u)
​ 可以通过研究物品在推荐列表中出现的次数的分布描述推荐系统挖掘长尾的能力。如果这个分布比较平,那么说明推荐系统的覆盖率比 较高,而如果这个分布比较陡峭,说明这个推荐系统的覆盖率比较低。在信息论和经济学中有两个著名的指标可以用来定义覆盖率。

​ 1. 信息熵:

​ p(i)表示物品i的流行度除以所有的物品流行度之和。
H = − ∑ i = 1 n p ( i ) l o g p ( i ) H = -\sum_{i=1}^{n}p(i)logp(i) H=i=1np(i)logp(i)
​ 2. 基尼系数:
G i n i = 1 n − 1 ∑ j = 1 n ( 2 j − n − 1 ) p ( i j ) Gini = \frac{1}{n-1}\sum_{j=1}^{n}(2j-n-1)p(i_j) Gini=n11j=1n(2jn1)p(ij)
​ 这里,是按照物品流行度p从小到大排序的物品列表中的第j个物品。

​ 评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。

16.Diversity(多样性)

R ( u ) R(u) R(u)表示用户 u u u的推荐列表
D i v e r s i t y ( R ( u ) ) = ∑ i , j ∈ R ( u ) , i ≠ j 1 − S i m ( i , j ) 1 2 ∣ R ( u ) ∣ ( ∣ R ( u ) ∣ − 1 ) Diversity(R(u)) = \frac{\sum_{i,j\in R(u),i\ne j}1-Sim(i,j)}{\frac{1}{2}\left|R(u)\right|(\left|R(u)\right|-1)} Diversity(R(u))=21R(u)(R(u)1)i,jR(u),i=j1Sim(i,j)
​ 推荐系统整体的多样性可以用如下公式表示:
D i v e r s i t y = 1 ∣ U ∣ ∑ u ∈ U D i v e r s i t y ( R ( u ) ) Diversity = \frac{1}{\left|U\right|}\sum_{u\in U}Diversity(R(u)) Diversity=U1uUDiversity(R(u))

17.Novelty(新颖性)

Z u Z_u Zu表示推荐给用户的n个item集合
N o v e l t y i = 1 Z u − 1 ∑ j ∈ Z u [ 1 − S i m ( i , j ) ] ,   i ∈ Z u Novelty_i = \frac{1}{Z_u-1}\sum_{j\in Z_u}[1-Sim(i,j)],\ i\in Z_u Noveltyi=Zu11jZu[1Sim(i,j)], iZu

18.ILD

c i c_i ci代表item

N ( u i ) N(u_i) N(ui)代表 u i u_i ui的邻居
I L D = 1 ∣ L ∣ ∑ u i ∈ L 1 c i ( c i − 1 ) ∑ ( v k , v j ) ∈ N ( u i ) d i s t ( v k , v j ) . ILD=\frac{1}{\left|L\right|}\sum_{u_i\in L}\frac{1}{c_i(c_i-1)}\sum_{(v_k,v_j)\in N(u_i)}dist(v_k,v_j). ILD=L1uiLci(ci1)1(vk,vj)N(ui)dist(vk,vj).

I L S ( R ) = 2 k ( k − 1 ) ∑ i ∈ R j ≠ i ∑ i ∈ R S i m ( i , i ) ILS(R)=\frac{2}{k(k-1)}\sum_{i\in R_j\ne i}\sum_{i\in R}{Sim(i,i)} ILS(R)=k(k1)2iRj=iiRSim(i,i)

​ ILS主要针对单个用户,一般来说ILS值越大,单个用户推荐列表多样性越差,其中,i和j为Item,k为推荐列表长度,sim为相似性度量。

图 2 ILS公式与意义

19.Limited Area Under the Curve (LAUC)

在AUC的基础上取前k个item计算面积
A U C = ∑ i = 2 m ( x i − x i − 1 ) ∗ ( y i + y i − 1 ) 2 AUC = \sum_{i=2}^{m}\frac{(x_i-x_{i-1})*(y_i+y_{i-1})}{2} AUC=i=2m2(xixi1)(yi+yi1)

参考文献

[1]https://en.wikipedia.org/wiki/Evaluation_measures_(information_retrieval)#Mean_average_precision

[2] https://en.wikipedia.org/wiki/Mean_reciprocal_rank

[3] Schröder G, Thiele M, Lehner W. Setting goals and choosing metrics for recommender system evaluations[C]//UCERSTI2 workshop at the 5th ACM conference on recommender systems, Chicago, USA. 2011, 23: 53.

[4] https://zhuanlan.zhihu.com/p/

[5] https://www.guoyaohua.com/classification-metrics.html#%E5%A4%9A%E5%88%86%E7%B1%BB%E9%97%AE%E9%A2%98

[6] 机器学习 作者:周志华

[7] https://www.jianshu.com/p/1137c51de993

THE END

发表回复