准确率指标:
该类型的指标大部分是推荐算法优化的目标,衡量着推荐算法的优劣。
- 准确率。推荐给用户的商品中,属于测试集的比例,数学公式P(Lu)=Lu⋂BuLuP(Lu)=Lu⋂BuLu 。整个测试集的准确率为 PL=1n∑uϵUP(Lu)PL=1n∑uϵUP(Lu)
- 召回率。测试集中有多少在用户的推荐列表中。数学公式R(Lu)=Lu⋂BuBuR(Lu)=Lu⋂BuBu。整个测试集的召回率为RL=1n∑uϵUR(Lu)RL=1n∑uϵUR(Lu)
- F1值。准确率和召回率的加权,数学公式 Fβ=(1+β2)PRβ2P+RFβ=(1+β2)PRβ2P+R。
- Ranking Score。数学公式 R=1|EU|∑uiϵEUpuiM−kuR=1|EU|∑uiϵEUpuiM−ku 其中EUEU 表示测试集中所有的边的集合,如果用户u对商品i在测试集中,则Eui=1Eui=1,puipui表示商品i在用户u的推荐列表中的位置,分母M−kuM−ku表示用户u的所有商品数目中除了用户已经购买过的商品外的所有商品。该值越小,说明测试集中的商品越靠前。
- Hit ratio。数学公式 HR@K=NumberofHits@K|GT|HR@K=NumberofHits@K|GT|. 分母是所有的测试集合,分子是每个用户前K个中属于测试集合的个数的总和,该指标衡量是召回率,该指标越大越好。
- NDCG。数学定义 NDCG@=Zk∑Ki=12ri−1log2(i+1)NDCG@=Zk∑i=1K2ri−1log2(i+1)。ri表示在第i个位置时的“等级关联性”,一般可以用0/1处理,如果该位置的物品在测试集合中,则ri=1,否则为0。另外ZK是归一化系数,表示后面的那一个累加求和公式的最好情况下的和的倒数,也就是ri=1都满足的情况下的后面那一坨的总和,为了使得NDCG计算出来的数值i都在0-1之内。
- 交叉熵。这个指标作为其余机器学习的优化目标用的比较多,该指标在https://arxiv.org/pdf/1708.05031.pdf中首先被提出来。论文假设如果用户u购买了物品i,则yui=1yui=1否则yui=0yui=0,则最终的机器学习的模型的优化目标为 L=−∑(u,i)ϵY⋃Y−(yuilogy^ui+(1−yui)log(1−y^ui))L=−∑(u,i)ϵY⋃Y−(yuilogy^ui+(1−yui)log(1−y^ui)) 。
- MAE。该指标对适合对数据集拥有打分进行评估,例如豆瓣影评,上面存在对每个电影的1-5的打分。数学公式 MAE=∑(u,i)ϵEU|yui−y^ui||EU|MAE=∑(u,i)ϵEU|yui−y^ui||EU| 表示所有测试集中推荐预测的分和实际用户打的分的差异,该值越小越好。
- RMSE。该指标同样适用于对评分为数值打分的情景。数学公式 RMSE=∑(u,i)ϵEU(yui−y^ui)2|EU|−−−−−−−−−−−−√RMSE=∑(u,i)ϵEU(yui−y^ui)2|EU| 含义类似于MAE。
非准确率指标:
该类型的指标重载衡量推荐的结果的“个性化”“多样性”“新颖性”等指标,推荐的的愿景之一就是“千人千面”,推荐给每个人的商品都是只是他本人的兴趣使然,抑或是根据本人兴趣进行扩展的商品集合。至于为什么要进行兴趣扩展,因为“过拟合”同样是推荐系统面临的重要挑战之一,关于推荐系统的“过拟合”现象,在这里不做展开。
- Hamming distance. 数学公式 H=1N(N−1)∑(i,j)ϵN,i≠j(1−c(i,j)K)H=1N(N−1)∑(i,j)ϵN,i≠j(1−c(i,j)K) 其中c(i,j)c(i,j)表示用户 i,j 前K个推荐结果中有多少是相同的个数,N表示所有的用户数目。海明距离能够有效衡量两个用户推荐列表的差异,该值越大越说明用户之间的推荐结果越不相同,差异性越大。
- Intrasimilarity ,内部相关性。数学公式 I=1N∑uϵU(1K(K−1)∑α≠βsαβ)I=1N∑uϵU(1K(K−1)∑α≠βsαβ) 其中sαβsαβ表示商品αβαβ的相似度,相似的计算方式可以是Jaccard系数,皮尔森相关系数,向量余弦法等。对于用户u的推荐列表,如果物品与物品之间的相似度越大,说明推荐给用户的商品比较单一,推荐算法越发现不了新的物品;反之,如果该值越小,则推荐的物品越丰富,越有利于对用户的兴趣进行扩展。
- Popularity,流行度指标。数学公式 N=1N∑αϵOuRdαKN=1N∑αϵORudαK 其中OuRORu表示用户u的前K个推荐物品的集合,dαdα表示αα的被多少用户购买过,购买次数越多,则该商品越流行。该指标越大,说明推荐算法倾向于推荐“热度”越大、越流行的商品;反之,则越倾向于推荐比较冷门的物品,越能反映出用户的兴趣。