推薦系統實踐 好的推薦系統

2021-08-07 09:32:02 字數 2513 閱讀 7302

一、好的推薦系統

1.什麼是推薦系統

從某種意義上說,推薦系統和搜尋引擎對於用語來說是兩個互補的工具。搜尋引擎滿足了使用者有明確目的時的主動查詢需求,而推薦系統能夠在使用者沒有明確目的的時候幫助他們發現感興趣的內容。

分為社會化推薦,基於內容的推薦和基於協同過濾的推薦。

目前廣告投放的技術主要分三種:

- 上下文廣告

- 搜尋廣告

- 個性化展示廣告

好的推薦系統不僅僅能夠準確**使用者的行為,而且能夠擴充套件使用者的視野,幫助使用者發現那些題目可能會感興趣,但卻不那麼容易發現的東西。

評分**的**準確度一般通過均方根誤差(rmse)和破軍絕對誤差(mae)計算。(公式見課本25頁)

假設我們用records存放使用者評分資料,令records[i]=[u,i,rui,pui],其中rui是使用者對物品i的實際評分,pui是演算法**出來的使用者u對物品i的評分,那麼下面的**分別實現了rmse和mae的計算過程:

def

rmse

(records):

return math.sqrt(sum([rui-pui]*(rui-pui) for u,i,rui,pui in records)/float(len(records)))

defmae

(records):

return sum([abs(rui-pui) for u,i,rui,pui, in records])/float(len(records))

netflix認為rmse加大了對**不准的使用者物品評分的懲罰,因此更加苛刻。研究表明,對**結果取整會降低mae的誤差

topn推薦一般是給使用者乙個個性化的推薦列表。準確率通過準確率(precision)/召回率(recall)度量。(公式見課本26頁)

下面的**準確計算量準確率和召回率:

def

precisionrecall

(test, n):

hit = 0

n_recall = 0

n_precision = 0

for user, item in test.items():

rank = recommend(user, n)

hit += len(rank & items)

n_recall += len(items)

n_precision += n

return [hit / (1.0 * n_recall), hit / (1.0 * n_precision)]

召回率曲線,選取不同的推薦列表長度n。

覆蓋率描述乙個推薦系統對物品長尾的發掘能力。(公式見課本27頁)

熱門排行榜的推薦覆蓋率是很低的,它只會推薦那些熱門的物品,這些物品在總物品中佔比例很小。乙個好的推薦系統不僅需要比較高的使用者滿意度,也需要較高的覆蓋率。資訊理論和經濟學中有兩個著名的指標可以用來定義覆蓋率,第乙個是資訊熵,第二個是基尼係數,見課本27頁。

下面**可以用來計算給定物品流行度分布後的基尼係數:

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)

推薦系統的初衷是為了消除馬太效應,使得各種物品都能被展示給對他們感興趣的某一類人群。

多樣性描述了推薦列表中物品兩兩之間的不相似性。公式見28頁。給使用者的推薦列表也需要滿足使用者廣泛的興趣。

新穎性是指給使用者推薦那些他們以前沒有聽說過的物品。如果推薦結果中物品的平均熱門程度較低,那麼推薦結果就可能有比較高的新穎性。

驚喜度是指如果推薦結果和使用者的歷史興趣不相似,但卻讓使用者覺得滿意,那麼就可以說推薦結果的驚喜度很高。而推薦的新穎性僅僅取決於使用者是否聽說過這個推薦結果。

信任度如果使用者信任該系統,那麼就會增加使用者和推薦系統的互動。增加有兩種方法:一是增加推薦系統的透明度,二是考慮社交網路的資訊。

實時性首先推薦系統需要實時更新推薦列表來滿足使用者新的行為變化。其次推薦系統需要能夠加入系統的物品推薦給使用者。

健壯性衡量的是乙個推薦系統抗作弊的能力。可以使用健壯性高的演算法,或者使用代價高的使用者行為,或者資料清洗。

商業目標一般來說,就是平均乙個使用者給公司帶來的盈利。

乙個推薦演算法,可能在某種情況下效能比較好,而增加評測維度的目的就是知道乙個演算法在什麼情況下效能最好,比如使用者維度(活躍度,是否新使用者),物品維度(物品屬性,平均分),時間維度(季節,週末)。

推薦系統實踐 項亮(1)好的推薦系統

目錄 第1章 好的推薦系統 1.1 什麼是推薦系統 1.2 個性化推薦系統的應用 1.2.1 電子商務 1.2.3 個性化 網路電台 1.2.4 社交網路 1.2.5 個性化閱讀 1.2.6 基於位置的服務 1.2.7 個性化郵件 1.2.8 個性化廣告 1.3 推薦系統評測 1.3.1 推薦系統實...

推薦系統實踐

實驗方法 測評指標 測評維度 使用者活躍度和物品流行度 長尾分布 一般來說,不活躍的使用者要麼是新使用者,要麼是只來過 一兩次的老使用者。那麼,不同活躍度的使用者喜歡的物品的流行度是否有差別?一般認為,新使用者傾向於瀏覽熱門的物品,因為他們對 還不熟悉,只能點選首頁的熱門物品,而老使用者會逐漸開始瀏...

推薦系統11 《推薦系統實踐》總結

在之前我也看了很多人寫的推薦系統的部落格,理論的 演算法的都有,多是個人的理解和感悟,雖然很深刻,但是對於自己而言還是不成系統,於是我參考大牛項亮編著的 推薦系統實踐 將該領域知識系統整理一遍,與大家一起學習。本系列對應的 請檢視 前面總結推薦系統常用的資料 演算法 架構等,具體內容清檢視本系列推薦...