1. 程式人生 > >推薦系統排序(Rank)評價指標總結

推薦系統排序(Rank)評價指標總結

1.Mean Average Precision (MAP)

AP=nij=1P(j).yi,jnij=1yi,j
其中,
yi,j:排序中第j個元素對於查詢i是否是相關的;相關為1,不相關為0。
P(j)=k:πi(k)πi(j)y(i,k)πi(j)
其中,
πi(j)為j的排序位置。

例如,
rank_no    是否相關
1        1
2        0
3        1
4        0
5        1
6        0
則根據AP計算公式:
AP = (1*1 + (1/2) *0+ (2/3)*1 + (2/4)*0 + (3/5)*0 + (3/6)*0) /3 = …

舉例,第一項,P(1) = 它前面的項(包括自己)相關的個數除所在排序的位置(也就是1)。第一位及前面(前面沒有)相關的個數就是它本身,所以P()的分子就是1,分母也是1.所以取值為1。同時y值為1.最終的對應AP中的項就是1
其他以此類推。
AP的最大值為1(也就是當相關的全部排在不相關的前面的時候)
MAP就是對所有query的AP求平均。

2.Mean Reciprocal Rank (MRR)

這裡寫圖片描述
其中|Q|是查詢個數,ranki是第i個查詢,第一個相關的結果所在的排列位置。
舉例:
這裡寫圖片描述
對於三個查詢,每個查詢的ranki分別為3、2、1。所以,
M

RR=1/3(1/3+1/2+1/1)
(參考自Wikipedia)

3.NDCG

首先是DCG的定義:
這裡寫圖片描述

其中,
reli為排在第i個位置的物品實際的評價分值(也就是和查詢相關的程度)
舉例:
這裡寫圖片描述
所以:
這裡寫圖片描述

理想的DCG,也就是排序是最理想的情況(3,3,2,2,1,0):
這裡寫圖片描述

最終的NDCG為:
這裡寫圖片描述
(參考自Wikipedia)
以上是資訊檢索中常用的nDCG指標。考慮推薦中(二值評分–0,1)的情況。參考文獻【1】中,給出了更適合的描述(實際定義都是一樣。只是上面描述時,評分是連續的分值;而【1】中的描述考慮的是[0,1]分值):
這裡寫圖片描述

4.Kendall tau distance

也就是兩個排序間,評價存在分歧的對的數量。具體定義如下:
這裡寫圖片描述
其中,τ1(i)τ2(i)分別為元素i在兩個排序中的序位
如果兩個排序完全一樣。則Kendall tau distance位0。否則,如果兩個排序完全相反,則為n(n1)/2
通常 Kendall tau distance都會通過除以n(n1)/2來歸一化。

舉例:
這裡寫圖片描述

這裡寫圖片描述

從中可以看出有4個元素對在兩個排序中存在分歧。所以歸一化後的Kendall tau distance為:
這裡寫圖片描述
(參考自Wikipedia)
此外,參考文獻【1】中也有這個指標的介紹。略有不同,下面直接擷取供大家參考:
這裡寫圖片描述
5、Spearman’s ρ (斯皮爾曼的ρ)[1]
基本思想類似Kendall tau distance:比較兩個排序(通常一個是理想排序)的(排序值的)皮爾遜相關係數。
比如在推薦中,一個推薦排序列表採用物品實際的評分值(使用者實際的偏好程度) 排序。一個是你的模型對物品的實際排序。si,j表示你模型預測中,物品j在使用者i的推薦列表上的排序位置;yi,j表示按實際使用者i對物品的評分來排序時物品j在i的推薦列表上的排序位置。s¯ 表示si,j的平均值;y¯ 表示yi,j的平均值.。則:
這裡寫圖片描述
其中Ωtest為測試集

更多參考文獻:
【1】 Statistical Methods for Recommender Systems