《推薦系統實踐》(一)——推薦系統評測
一、預測準確度
<1>、評分預測
1.均方根誤差(RMSE)
(1)均方根(RMS)也稱為效值,公式: (2)均方根誤差(RMSE)是衡量“平均誤差”的一種較方便的方法。是引數估計值與引數真值之差的平方的期望值。在實際使用中通常真值只能用最可信賴的值。 公式: 其中X表示實際值,Y表示預測值
2.平均絕對誤差(MAE)
所有單個觀測值與算術平均值的偏差的絕對值的平均。
公式:
<2>、TopN推薦
網站提供推薦服務時給使用者的個性化推薦列表,這個列表被稱為TopN推薦。 TopN推薦的準確率一般通過準確率(Precision)/召回率(Recall)進行度量。
令R(u)是訓練集上給使用者做出的推薦列表,T(u)是使用者在測試及上的行為列表。 準確率定義: 召回率定義:
二、覆蓋率
作用:用於描述推薦系統對物品長尾的發掘能力。最簡單的定義為推薦出來的物品佔總物品集合的比例。 實際上為了更詳細的描述系統的發掘長尾的能力,需要統計推薦列表中不同物品出現次數的分佈。如果所有物品都出現在推薦列表中,並且出現的次數差不多,那麼推薦系統長尾發掘能力就較好。
在資訊理論和經濟學中有兩個著名的指標可以用來定義覆蓋率。
第一個指標——資訊熵
資訊熵是消除不確定性所需資訊量的度量,也即未知事件可能含有的資訊量。 其中p(i)是物品i的流行度除以所有物品流行度之和。
第二個指標——基尼係數
馬太效應:如果一個系統會增大熱門物品和非熱門物品的流行度差距,讓熱門的物品更加熱門,不熱門的物品更加不熱門,那這個系統就存在馬太效應。 推薦系統的初衷就是消除馬太效應,基尼係數就是評測推薦系統是否具有馬太效應的簡單辦法。
其中是按照物品流行度p從小到大排序的物品列表中第j個物品。
def GiniIndex(p):
j = 1
n = len(p)
G = 0
for item, weight in sorted(p.items(), key=itemgetter(1)):
G += (2 * j - n - 1) * weight
return G/float(n - 1)
三、多樣性
使用者的興趣是廣泛的,比如有的使用者即喜歡看動漫又喜歡看喜劇,往往使用者的興趣點會隨著時間變化,如果推薦列表只能夠覆蓋使用者的一個興趣點,而這個興趣點不是使用者時刻的興趣點,使用者就不會對推薦列表滿意。因此推薦列表需要儘量滿足使用者廣泛的興趣,即多樣性。
假設定義了物品 系統整體多樣性定義為所有使用者推薦列表多樣性的平均值: