1. 程式人生 > >【推薦系統】評估指標總結

【推薦系統】評估指標總結

準確率指標:

該型別的指標大部分是推薦演算法優化的目標,衡量著推薦演算法的優劣。

  1. 準確率。推薦給使用者的商品中,屬於測試集的比例,數學公式$P(L_{u})=\frac{L_{u}\bigcap B_{u}}{L_{u}}$ 。整個測試集的準確率為 $P_{L}=\frac{1}{n}\sum_{u\epsilon U}P(L_{u})$
  2. 召回率。測試集中有多少在使用者的推薦列表中。數學公式$R(L_{u})=\frac{L_{u}\bigcap B_{u}}{ B_{u}}$。整個測試集的召回率為$R_{L}=\frac{1}{n}\sum_{u\epsilon U}R(L_{u})$
  3. F1值。準確率和召回率的加權,數學公式 $F_{\beta }=\frac{(1+\beta ^{2})PR}{\beta ^{2}P+R}$。
  4. Ranking Score。數學公式 $R=\frac{1}{|E^{U}|}\sum_{ui\epsilon E^{U}}\frac{p_{ui}}{M-k_{u}}$ 其中$E^{U}$ 表示測試集中所有的邊的集合,如果使用者u對商品i在測試集中,則$E_{ui}=1$,$p_{ui}$表示商品i在使用者u的推薦列表中的位置,分母$M-k_{u}$表示使用者u的所有商品數目中除了使用者已經購買過的商品外的所有商品。該值越小,說明測試集中的商品越靠前。
  5. Hit ratio。數學公式 [email protected]=\frac{Number of Hits @K}{|GT|}$. 分母是所有的測試集合,分子是每個使用者前K箇中屬於測試集合的個數的總和,該指標衡量是召回率,該指標越大越好。
  6. NDCG。數學定義 [email protected]=Z_{k}\sum_{i=1}^{K}\frac{2^{r_{i}}-1}{log_{2}(i+1)}$。ri表示在第i個位置時的“等級關聯性”,一般可以用0/1處理,如果該位置的物品在測試集合中,則ri=1,否則為0。另外ZK是歸一化係數,表示後面的那一個累加求和公式的最好情況下的和的倒數,也就是ri
    =1都滿足的情況下的後面那一坨的總和,為了使得NDCG計算出來的數值i都在0-1之內。
  7. 交叉熵。這個指標作為其餘機器學習的優化目標用的比較多,該指標在https://arxiv.org/pdf/1708.05031.pdf中首先被提出來。論文假設如果使用者u購買了物品i,則$y_{ui}=1$否則$y_{ui}=0$,則最終的機器學習的模型的優化目標為 $L=-\sum_{(u,i)\epsilon \mathbf{Y}\bigcup\mathbf{Y^{-}}}(y_{ui}log\hat{y}_{ui}+(1-y_{ui})log(1-\hat{y}_{ui}))$ 。
  8. MAE。該指標對適合對資料集擁有打分進行評估,例如豆瓣影評,上面存在對每個電影的1-5的打分。數學公式 $MAE=\frac{\sum_{(u,i)\epsilon E^{U}|y_{ui}-\hat{y}_{ui}}|}{|E^{U}|}$ 表示所有測試集中推薦預測的分和實際使用者打的分的差異,該值越小越好。
  9. RMSE。該指標同樣適用於對評分為數值打分的情景。數學公式 $RMSE=\sqrt{\frac{\sum_{(u,i)\epsilon E^{U}}(y_{ui}-\hat{y}_{ui})^{2}}{|E^{U}|}}$ 含義類似於MAE。

非準確率指標:

該型別的指標過載衡量推薦的結果的“個性化”“多樣性”“新穎性”等指標,推薦的的願景之一就是“千人千面”,推薦給每個人的商品都是隻是他本人的興趣使然,抑或是根據本人興趣進行擴充套件的商品集合。至於為什麼要進行興趣擴充套件,因為“過擬合”同樣是推薦系統面臨的重要挑戰之一,關於推薦系統的“過擬合”現象,在這裡不做展開。

  1. Hamming distance. 數學公式 $H=\frac{1}{N(N-1)}\sum_{(i,j)\epsilon N,i\neq j}(1-\frac{c(i,j)}{K})$ 其中$c(i,j)$表示使用者 i,j 前K個推薦結果中有多少是相同的個數,N表示所有的使用者數目。海明距離能夠有效衡量兩個使用者推薦列表的差異,該值越大越說明使用者之間的推薦結果越不相同,差異性越大。
  2. Intrasimilarity ,內部相關性。數學公式 $I=\frac{1}{N}\sum_{u\epsilon U}(\frac{1}{K(K-1)\sum_{\alpha \neq \beta }s_{\alpha \beta }})$ 其中$s_{\alpha \beta }$表示商品$\alpha \beta $的相似度,相似的計算方式可以是Jaccard係數,皮爾森相關係數,向量餘弦法等。對於使用者u的推薦列表,如果物品與物品之間的相似度越大,說明推薦給使用者的商品比較單一,推薦演算法越發現不了新的物品;反之,如果該值越小,則推薦的物品越豐富,越有利於對使用者的興趣進行擴充套件。
  3. Popularity,流行度指標。數學公式 $N=\frac{1}{N}\sum_{\alpha \epsilon O_{R}^{u}}\frac{d_{\alpha }}{K}$ 其中$O_{R}^{u}$表示使用者u的前K個推薦物品的集合,$d_{\alpha }$表示$\alpha$的被多少使用者購買過,購買次數越多,則該商品越流行。該指標越大,說明推薦演算法傾向於推薦“熱度”越大、越流行的商品;反之,則越傾向於推薦比較冷門的物品,越能反映出使用者的興趣。