推荐系统遇上深度学习 (十六)-- 详解推荐系统中的常用评测指标


本文地址:http://www.6aiq.com/article/1547893052799
知乎专栏 点击关注
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出

最近阅读论文的过程中,发现推荐系统中的评价指标真的是五花八门,今天我们就来系统的总结一下,这些指标有的适用于二分类问题,有的适用于对推荐列表 topk 的评价。

1、精确率、召回率、F1 值

我们首先来看一下混淆矩阵,对于二分类问题,真实的样本标签有两类,我们学习器预测的类别有两类,那么根据二者的类别组合可以划分为四组,如下表所示:

235468cc03f74c89a0287a577e822c26.png

上表即为混淆矩阵,其中,行表示预测的 label 值,列表示真实 label 值。TP,FP,FN,TN 分别表示如下意思:TP(true positive):表示样本的真实类别为正,最后预测得到的结果也为正;

FP(false positive):表示样本的真实类别为负,最后预测得到的结果却为正;

FN(false negative):表示样本的真实类别为正,最后预测得到的结果却为负;

TN(true negative):表示样本的真实类别为负,最后预测得到的结果也为负.

可以看到,TP 和 TN 是我们预测准确的样本,而 FP 和 FN 为我们预测错误的样本。

基于混淆矩阵,我们可以得到如下的评测指标:

准确率

准确率表示的是分类正确的样本数占样本总数的比例,假设我们预测了 10 条样本,有 8 条的预测正确,那么准确率即为 80%。

用混淆矩阵计算的话,准确率可以表示为:
45ce25ccfdb54849af7ba1faf61b922a.png

精确率/召回率

精确率表示预测结果中,预测为正样本的样本中,正确预测为正样本的概率;
召回率表示在原始样本的正样本中,最后被正确预测为正样本的概率;

二者用混淆矩阵计算如下:
7dee1aa954c947aeb10a94f94126936a.png

F1 值

为了折中精确率和召回率的结果,我们又引入了 F-1 Score,计算公式如下:
26fd4f697be24afba8b4c258f9ca6ba4.png

2、AUC

AUC 定义为 ROC 曲线下方的面积:

ROC 曲线的横轴为“假正例率”(False Positive Rate,FPR),又称为“假阳率”;纵轴为“真正例率”(True Positive Rate,TPR),又称为“真阳率”,

假阳率,简单通俗来理解就是预测为正样本但是预测错了的可能性,显然,我们不希望该指标太高。
6b003cc3d57b4c2ea6a94a4c1c74839e.png

真阳率,则是代表预测为正样本但是预测对了的可能性,当然,我们希望真阳率越高越好。
e700e6d5f41d4d7eaefbf7054b772ba0.png

下图就是我们绘制的一张 ROC 曲线图,曲线下方的面积即为 AUC 的值:
8e3035c7a30c464db1cf14a6dc55d1cc.png

AUC 还有另一种解释,就是测试任意给一个正类样本和一个负类样本,正类样本的 score 有多大的概率大于负类样本的 score

3、Hit Ratio(HR)

在 top-K 推荐中,HR 是一种常用的衡量召回率的指标,其计算公式如下:
209642879f1e493e8c77651ca052c045.png

分母是所有的测试集合,分子式每个用户 top-K 推荐列表中属于测试集合的个数的总和。举个简单的例子,三个用户在测试集中的商品个数分别是 10,12,8,模型得到的 top-10 推荐列表中,分别有 6 个,5 个,4 个在测试集中,那么此时 HR 的值是 (6+5+4)/(10+12+8) = 0.5。

4、Mean Average Precision(MAP)

在了解 MAP(Mean Average Precision) 之前,先来看一下 AP(Average Precision), 即为平均准确率。

对于 AP 可以用这种方式理解: 假使当我们使用 google 搜索某个关键词,返回了 10 个结果。当然最好的情况是这 10 个结果都是我们想要的相关信息。但是假如只有部分是相关的,比如 5 个,那么这 5 个结果如果被显示的比较靠前也是一个相对不错的结果。但是如果这个 5 个相关信息从第 6 个返回结果才开始出现,那么这种情况便是比较差的。这便是 AP 所反映的指标,与 recall 的概念有些类似,不过是“顺序敏感的 recall”。
比如对于用户 u, 我们给他推荐一些物品,那么 u 的平均准确率定义为:
a58fc1cad7a54f1a8e9e171dcdbb92ae.png

6d6d318af5c046d19a612736c4e4e496.png

因此该 user 的 AP 为(1 + 0.66 + 0.5) / 3 = 0.72

那么对于 MAP(Mean Average Precision),就很容易知道即为所有用户 u 的 AP 再取均值 (mean) 而已。那么计算公式如下:
460a2d37d8e646aeb129a9f293b2db83.png



5、Normalized Discounted Cummulative Gain(NDCG)

对于 NDCG,我们需要一步步揭开其神秘的面纱,先从 CG 说起:

CG

我们先从 CG(Cummulative Gain)说起, 直接翻译的话叫做“累计增益”。 在推荐系统中,CG 即将每个推荐结果相关性 (relevance) 的分值累加后作为整个推荐列表 (list) 的得分。即
7c5addad6f944212bc517623d23aee85.png

这里, rel-i 表示处于位置 i 的推荐结果的相关性,k 表示所要考察的推荐列表的大小。

DCG

CG 的一个缺点是没有考虑每个推荐结果处于不同位置对整个推荐效果的影响,例如我们总是希望相关性高的结果应排在前面。显然,如果相关性低的结果排在靠前的位置会严重影响用户体验, 所以在 CG 的基础上引入位置影响因素,即 DCG(Discounted Cummulative Gain), “Discounted”有打折,折扣的意思,这里指的是对于排名靠后推荐结果的推荐效果进行“打折处理”:
1fc691c1a7c2427992ab93eda0c8a13e.png

从上面的式子可以得到两个结论:

1)推荐结果的相关性越大,DCG 越大。

2)相关性好的排在推荐列表的前面的话,推荐效果越好,DCG 越大。

NDCG

DCG 仍然有其局限之处,即不同的推荐列表之间,很难进行横向的评估。而我们评估一个推荐系统,不可能仅使用一个用户的推荐列表及相应结果进行评估, 而是对整个测试集中的用户及其推荐列表结果进行评估。 那么不同用户的推荐列表的评估分数就需要进行归一化,也即 NDCG(Normalized Discounted Cummulative Gain)。

在介绍 NDCG 之前,还需要了解一个概念:IDCG. IDCG, 即 Ideal DCG, 指推荐系统为某一用户返回的最好推荐结果列表, 即假设返回结果按照相关性排序, 最相关的结果放在最前面, 此序列的 DCG 为 IDCG。因此 DCG 的值介于 (0,IDCG] ,故 NDCG 的值介于 (0,1],那么用户 u 的 NDCG@K 定义为:
e612c8aa36254b44aa0f9d641600b98b.png

因此,平均 NDCG 计算为:
64feb2f734f143d6b264c072ba57da46.png

NDCG 的完整案例

看了上面的介绍,是不是感觉还是一头雾水,不要紧张,我们通过一个案例来具体介绍一下。

假设在 Baidu 搜索到一个词,得到 5 个结果。我们对这些结果进行 3 个等级的分区,对应的分值分别是 3、2、1,等级越高,表示相关性越高。假设这 5 个结果的分值分别是 3、1、2、3、2。

因此 CG 的计算结果为 3+1+2+3+2 = 11。DCG 的值为 6.69,具体见下表:
99392ed479404bd487ca596148f05d71.png

理想状况下,我们的 IDCG 排序结果的相关性应该是 3,3,2,2,1,因此 IDCG 为 7.14(具体过程不再给出),因此 NDCG 结果为 6.69/7.14 = 0.94。

6、Mean Reciprocal Rank (MRR)

MRR 计算公式如下:
25c170ed794f435b836917e7e3a1bbe9.png

其中 |Q| 是用户的个数,ranki 是对于第 i 个用户,推荐列表中第一个在 ground-truth 结果中的 item 所在的排列位置。

举个例子,有三个用户,推荐列表中正例的最小 rank 值分别为 3,2,1,那么 MRR=(1 + 0.5 + 0.33) / 3 = 0.61

7、ILS

ILS 是衡量推荐列表多样性的指标,计算公式如下:
d846f2a882304d9da447c4b7453c6d54.png

如果 S(bi,bj) 计算的是 i 和 j 两个物品的相似性,如果推荐列表中物品越不相似,ILS 越小,那么推荐结果的多样性越好。

8、代码实践

本文实践了部分上面提到的评价指标,git 地址为:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-Evaluation-metrics

参考目录为:
647853b66ae84f589a70e7204a947267.png

参考文献

1、https://blog.csdn.net/simple_the_best/article/details/52296608

2、https://blog.csdn.net/u010670689/article/details/73196054

3、https://www.cnblogs.com/wzyj/p/8976185.html

4、https://blog.csdn.net/u014313009/article/details/38944687

作者:石晓文的学习日记
链接:https://www.jianshu.com/p/665f9f168eff
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


本文地址:http://www.6aiq.com/article/1547893052799
知乎专栏 点击关注
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出