推薦系統研究中常用的評價指標
- 2020 年 3 月 9 日
- 筆記
「 本文主要介紹了推薦系統中常用的評價指標,包括評分預測指標,集合推薦指標,排名推薦指標以及多樣性和穩定性等。」
本文來源:蘇一 https://zhuanlan.zhihu.com/p/67287992
整理了一下過去大半年中所看推薦系統相關文獻中出現過的評價指標,如果大家發現有本文遺漏的評價指標歡迎在評論區中指出,我再補充進來。
目錄
一、概述
二、常用的評估指標
三、其他的評估指標
一、概述
自推薦系統研究開始以來,對預測和推薦結果的評估一直都是十分重要的環節,一個推薦演算法的優劣直接體現在其在這些評估指標上的表現。一般來說,按照推薦任務的不同,最常用的推薦品質度量方法可以劃分為三類:(1)對預測的評分進行評估,適用於評分預測任務。(2)對預測的item集合進行評估,適用於Top- N推薦任務。(3)按排名列表對推薦效果加權進行評估,既可以適用於評分預測任務也可以用於Top-N推薦任務。。
這三類度量方法對應的具體評價指標分別為:
(a)評分預測指標:如準確度指標:平均絕對誤差(MAE)、均方誤差根(RMSE)、標準化平均誤差(NMAE);以及覆蓋率(Coverage)
(b)集合推薦指標:如精密度(Precision)、召回(Recall)、 ROC和AUC
(c)排名推薦指標:如half-life和discounted cumulative gain等
本文餘下的部分將針對這些指標進行詳細介紹
二、常用的評估指標
「1、quality of the predictions」
為了衡量RS結果的準確性,通常使用一些最常見的預測誤差指標的計算,其中平均絕對誤差(Mean Absolute Error,MAE)及其相關指標:均方誤差(Mean Squared Error,MSE)、均方根誤差(Root Mean Squared Error,RMSE)和標準平均絕對誤差(Normalized Mean Absolute Error,NMAE)是其中最具有代表性的指標。
符號定義
U代表測試集中user集合,I代表測試集中item集合, 代表u對i的評分,●代表空缺的評分( =●代表u沒有對i評過分), 代表預測的u對i的評分,
代表測試集中既有用戶u評分記錄,又有模型產生的預測評分的item集合,
「1.1平均絕對誤差(Mean Absolute Error,MAE)」
單個用戶u的 「標準平均絕對誤差(NMAE)」 為
,其中 和 分別為用戶u評分區間的最大值和最小值。
「1.2均方根誤差(Root Mean Squared Error,RMSE)」
將上式的根號去掉即是 「均方誤差(Mean Squared Error,MSE)」
「1.3覆蓋率(Coverage)」
覆蓋率最簡單的定義是,推薦系統能夠推薦出來的物品佔總物品的比例。覆蓋率越高表明模型能夠針對更多的item產生推薦,從而促進長尾效應的挖掘。我們將 定義為u的近鄰集合,那麼我們可以將覆蓋率定義如下:
除此之外,資訊熵和基尼係數也可以用來度量覆蓋率。
「2、quality of the set of recommendations」
由於數據稀疏和冷啟動問題的存在,有時直接預測用戶對item的評分是困難的,為此有學者提出了Top- N推薦方法,即不預測用戶對item的評分,而是根據user-item的隱式交互(例如點擊、收藏)來生成一組用戶最有可能喜歡的items集合推薦給用戶。
在本小節,我們將對Top-N推薦中最廣泛使用的推薦品質度量指標展開介紹。它們分別是:(1)Precision,表示推薦項目總數中相關推薦項目的比例;
(2)召回,表示相關推薦項目數量中相關推薦項目的比例;
(3)f1,表示精確性和召回的結合。
(4)ROC與AUC
符號定義
R(u)代表根據用戶在訓練集上的行為給用戶做出的推薦列表,T(u)代表用戶在測試集上的行為列表。
「2.1Precision」
「2.2Recall」
「2.3F1」
「2.4 Receiver Operating Characteristic(ROC)與AUC(Area under curve)」
AUC指標表示ROC(receiver operator curve)曲線下的面積,它衡量一個推薦系統能夠在多大程度上將用戶喜歡的商品與不喜歡的商品區分出來。
由於ROC曲線繪製步驟比較繁瑣,可以用以下方法來近似計算系統的AUC:每次隨機從相關商品集,即用戶喜歡的商品集中選取一個商品α ,與隨機選擇的不相關商品 β 進行比較,如果商品α 的預測評分值大於商品β 的評分,那麼就加一分,如果兩個評分值相等就加0.5分。這樣獨立地比較n 次,如果有n′ 次商品α 的預測評分值大於商品β 的評分,有n′′次兩評分值相等,那麼AUC就可以近似寫作:
顯然,如果所有預測評分都是隨機產生的,那麼AUC=0.5。因此AUC大於0.5的程度衡量了演算法在多大程度上比隨機推薦的方法精確。AUC指標僅用一個數值就表徵了推薦演算法的整體表現,而且它涵蓋了所有不同推薦列表長度的表現。但是AUC指標沒有考慮具體排序位置的影響,導致在ROC曲線面積相同的情況下很難比較演算法好壞,所以它的適用範圍也受到了一些限制。
「2.5 Hit Rate (HR)」
HR是目前TOP-N推薦研究中十分流行的評價指標,其公式如上所示,其中#users是用戶總數,而#hits是測試集中的item出現在Top- N推薦列表中的用戶數量。
「2.6 Average Reciprocal Hit Rank (ARHR)」
ARHR也是目前Top-N推薦中十分流行的指標,它是一種加權版本的HR,它衡量一個item被推薦的強度,公式如下:
其中權重 是推薦列表中位置的倒數。
「3、quality of the list of recommendations」
當推薦項目的數量很大時,用戶會更加重視推薦列表中排在前面的item。這些item中發生的錯誤比列表中排在後面的item中的錯誤更嚴重。按排名列表對推薦效果進行加權評估的方法考慮了這種情況。在最常用的排名度量指標中,有以下標準資訊檢索度量:
(a)半衰期(half-life),假設當用戶遠離頂部的推薦時,他們的興趣指數下降;
(b)貼現累積增益(discounted cumulative gain),其中衰減函數是對數函數。
(c)排序偏差準確率(rank-biased precision,RBP),以等比數列衰減
「3.1HL」
半衰期效用指標(half-life utility)是在用戶瀏覽商品的概率與該商品在推薦列表中的具體排序值呈指數遞減的假設下提出的,它度量的是推薦系統對一個用戶的實用性也即是用戶真實評分和系統默認評分值的差別。用戶 u 的期望效用定義為:
式中, α 表示用戶u對商品α 的實際評分;而 α 為商品α 在用戶u的推薦列表中的排名;d 為默認評分(如說平均評分值);h 為系統的半衰期,也即是有50%的概率用戶會瀏覽的推薦列表的位置。顯然,當用戶喜歡的商品都被放在推薦列表的前面時,該用戶的半衰期效用指標達到最大值。
「3.2discounted cumulative gain」
折扣累計收益(discounted cumulative gain, DCG)的主要思想是用戶喜歡的商品被排在推薦列表前面比排在後面會更大程度上增加用戶體驗,定義為:
式中, 表示排在第i 位的商品是否是用戶喜歡的;ri = 1表示用戶喜歡該商品;ri =0 表示用戶不喜歡該商品;b是自由參數一般設為2;L為推薦列表長度。
由於在用戶與用戶之間,DCGs沒有直接的可比性,所以我們要對它們進行歸一化處理。最糟糕的情況是,當使用非負相關評分時DCG為0。為了得到最好的,我們把測試集中所有的條目置放在理想的次序下,採取的是前K項並計算它們的DCG。然後將原DCG除以理想狀態下的DCG就可以得到「歸一化折扣累計收益(Normalized Discounted Cumulative Gain,NDCG)」 ,它是一個0到1之間的數。
「3.3排序偏差準確率(rank-biased precision,RBP)」
與 DCG 指標不同,排序偏差準確率(rank-biased precision,RBP)假設用戶往往先瀏覽排在推薦列表首位的商品然後依次以固定的概率p瀏覽下一個,以1−p的概率不再看此推薦列表。RBP定義為:
RBP和DCG指標的唯一不同點在於RBP把推薦列表中商品的瀏覽概率按等比數列遞減,而DCG則是按照log調和級數形式。
「3.4 Mean Reciprocal Rank (MRR)」
MRR是把正確的item在推薦列表中的排序取倒數作為它的準確度,再對所有的問題取平均。相對簡單,舉個例子:有3個query如下圖所示:
(黑體為返回結果中最匹配的一項),那麼MRR值為:(1/3 + 1/2 + 1)/3 = 11/18=0.61
「3.5 Mean Average Precision (MAP)」
平均準確率MAP,假使當我們使用google搜索某個關鍵詞,返回了10個結果。當然最好的情況是這10個結果都是我們想要的相關資訊。但是假如只有部分是相關的,比如5個,那麼這5個結果如果被顯示的比較靠前也是一個相對不錯的結果。但是如果這個5個相關資訊從第6個返回結果才開始出現,那麼這種情況便是比較差的。這便是AP所反映的指標,與recall的概念有些類似,不過AP是「順序敏感的recall。
對於用戶u ,給他推薦一些物品,那麼u 的平均準確率為:
其中,Ωu表示ground-truth的結果, 表示i物品在推薦列表中的位置, $displaystyle p_{uj}<p_{ui}$ 表示物品j排在i前面。<="" p="">
MAP表示所有用戶u的AP取均值
三、其他的評估指標
大多數文章討論了試圖提高評分預測任務的推薦結果(RMSE、MAE等)準確性的方法,在Top- N推薦的精確性、召回、ROC等方面嘗試改進也是很常見的。但是,為了獲得更高的用戶滿意度,還應考慮其他目標,例如主題多樣性、新穎性和推薦的公平性等等。
目前,該領域對生成具有多樣性和創新性建議的演算法越來越感興趣,即使以犧牲準確性和精度為代價。為了評估這些方面,學界提出了各種衡量建議新穎性和多樣性的指標。
- 「多樣性和新穎性」
假設
為物品i,j之間的相似性,那麼用戶u的推薦列表R(u)的多樣性可以定義為:
除了多樣性以外,新穎性也是影響用戶體驗的重要指標之一。它指的是向用戶推薦非熱門非流行商品的能力。推薦流行的商品縱然可可能在一定程度上提高了推薦準確率但是卻使得用戶體驗的滿意度降低了。度量推薦新穎性最簡單的方法是利用推薦商品的相似度。推薦列表中商品與用戶已知商品的相似度越小,對於用戶來說,其新穎性就越高。由此得到推薦新穎性指標:
式中Zu表示推薦給用戶u的n個item集合
「2.穩定性」
預測和推薦的穩定性會影響用戶對RS的信任,如果一個推薦系統提供的預測在短時間內沒有發生強烈變化,則它是穩定的。Adomavicius和Zhang提出了穩定性的品質度量指標:Mean Absolute Shift(平均絕對位移,MAS)。
假設我們現有一系列已知的用戶評分數據集合R1,我們根據R1對一組用戶未評分的item集合進行預測,得到一組預測評分數據集合P1。經過一段時間的交互後,用戶對一些未評分的item有了評分,此時我們再對P1中的item評分進行預測,得到新的預測評分數據集合P2,則MAS可表示為: