推荐系统衡量指标总结

论文相关

最近在看推荐系统相关的一些论文和文章,将一些较好的资源和论文放在这里记录一下

  • https://zhuanlan.zhihu.com/p/52169807
    • 讲述了youtube推荐系统的精妙之处
  • https://zhuanlan.zhihu.com/p/61827629(https://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ==&mid=2650411547&idx=1&sn=76dd53c96bd97ec37c9d078a402f7eb0)
    • youtube推荐系统当中serving部分为什么使用带权重的LR,为什么预测的是用户的观看时长
  • https://mp.weixin.qq.com/s/CGZosNuRvMg-tKjgqnZ6XQ
    • 总结了一些推荐系统方面的论文

几个常用指标的总结

  • 召回率:
  • 精准率:
  • AUC:
    • 真阳性
    • 假阳性

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 \space of \space hits @K}{|GT|} HR@K=GTNumber of hits@K
假如有三个用户,在测试集当中分别有10,12,8个商品,而top-10推荐列表当中分别命中了6,5,4个。那么HR@10 = (5+5+4)/(10+12+8)=0.5

MAP(Mean Average Precision):

  • 考虑了推荐列表的排序
  • 给用户 u u u推荐一些物品,它的平均准确率: A P ( u ) = 1 ∣ Ω u ∣ ∑ i ∈ Ω u ∑ j ∈ Ω u h ( p u j < p u i ) + 1 p u i AP(u) = \frac{1}{|\Omega_u|} \sum_{i \in \Omega_u} \frac{\sum_{j \in \Omega_u} h(p_{uj} < p_{ui})+1}{p_{ui}} AP(u)=Ωu1iΩupuijΩuh(puj<pui)+1
    其中 Ω u \Omega_u Ωu 表示推荐给用户列表当中的真正正确的商品, ∣ Ω u ∣ |\Omega_u| Ωu表示其个数
    p u i p_{ui} pui:表示物品 i i i在推荐列表当中的位置
    h ( p u j < p u i ) h(p_{uj} < p_{ui}) h(puj<pui):表示物品 j j j 是否在物品 i i i 之前,如果是则为1,否则为0,所以 ∑ j ∈ Ω u h ( p u j < p u i ) \sum_{j \in \Omega_u} h(p_{uj} < p_{ui}) jΩuh(puj<pui) 表示所有在物品 i i i 之前的用户感兴趣的物品有多少个
  • MAP 就是在对所有的用户做一个平均: M A P = 1 ∣ U ∣ ∑ u ∈ U A P ( u ) MAP = \frac{1}{|U|} \sum_{u \in U} AP(u) MAP=U1uUAP(u) 其中 U U U表示用户的集合

NDCG(Normalized Discounted Cummulative Gain)

  • CG(累积增益): 将推荐列表当中每个推荐的相关性累加起来,作为这个推荐列表的得分
  • C G k = ∑ i = 1 k r e l i CG_k = \sum_{i=1}^k rel_i CGk=i=1kreli,其中 r e l i rel_i reli 表示在推荐列表当中处于位置 i i i 的元素的相关性得分
  • DCG:由于CG没有考虑推荐列表当中元素位置的影响,所以。。。这里对于排名靠后的元素进行打折处理。 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
  • IDCG: idea DCG,最好的推荐
  • NDCG: N D C G u @ k = D C G u @ k I D C G u , 这 是 归 一 化 的 过 程 NDCG_u@k = \frac{DCG_u@k}{IDCG_u}, 这是归一化的过程 NDCGu@k=IDCGuDCGu@k, N D C G @ k = 1 ∣ U ∣ ∑ u ∈ U N D C G u @ k NDCG@k = \frac{1}{|U|} \sum_{u \in U} NDCG_u@k NDCG@k=U1uUNDCGu@k

MRR(Mean Reciprocal Rank)

  • M R R = 1 ∣ U ∣ ∑ u = 1 ∣ U ∣ 1 r a n k u MRR = \frac{1}{|U|} \sum_{u=1}^{|U|} \frac{1}{rank_u} MRR=U1u=1Uranku1,其中 r a n k u rank_u ranku 表示对用用于u的推荐列表,第一个用户感兴趣的物品所在的位置。 U U U表示总的用户集合

参考文章

  • auc/ROC讲解的不错:https://www.jianshu.com/p/4dde15a56d44
  • 推荐系统的相关指标:https://zhuanlan.zhihu.com/p/38875570

你可能感兴趣的:(算法与数据结构)