《推薦系統實踐》讀書筆記
第1章 好的推薦系統
---1.1 什麼是推薦系統
- 推薦系統的任務就是聯繫用戶和物品,用於在用戶沒有明確目的的時候幫助他們發現感興趣的內容.
- 推薦系統能夠用於解決信息過載問題.
---1.2 個性化推薦系統的應用
- 推薦系統通常由前臺的展現界面,後臺的日誌系統以及推薦算法系統3部分構成的.
- 推薦系統在電商平臺(如Amazon),電影和視頻網站(如Netflix,YouTube),音樂電臺,社交網絡(如Facebook),個性化閱讀(Google Reader)都有大量應用.
---1.3 推薦系統評測
- 一個好的推薦系統是可以令用戶,物品提供者和提供推薦系統的網站三方雙贏的系統.它不只能準確預測用戶的行爲,還要可以擴展用戶的視野.
- 推薦系統中主要有3種評測推薦效果的實驗方法,最終上線前通常要依次完成:
- 離線實驗:經過日誌系統得到用戶行爲數據,並用離線指標評測算法在測試集上的預測結果.缺點是沒法計算商業上關注的指標.
- 用戶調查:直接詢問用戶,來得到用戶的主觀感覺.缺點是調查成本高,並且很難保證統計意義.
- 在線實驗:將新算法上線作AB測試,即對不一樣用戶採用不一樣算法,進行比較.缺點是週期比較長,而且對大型網站的多層架構來講可能會相互干擾.
- 用戶滿意度:通常經過用戶調查或在線實驗得到,主要經過對用戶行爲的統計獲得.
- 預測準確度:能夠經過離線實驗計算,使用訓練集和測試集.根據不一樣的研究方向分爲評分預測(RMSE,MAE),TopN推薦(準確率,召回率).
- 覆蓋率:描述一個推薦系統對物品長尾的發掘能力,最簡單的定義爲推薦系統可以推薦出來的物品佔總物品集合的比例.較詳細的定義採用信息熵或基尼係數.
- 多樣性:描述了推薦列表中物品兩兩之間的不類似性,若是s(i,j)表示物品i和j之間的類似度,那麼某一用戶u的推薦列表R(u)的多樣性.不一樣的類似度對應不一樣的多樣性.
- 新穎性:儘可能給用戶推薦他們之前沒有據說過的物品.
- 驚喜度:指推薦給用戶與他的歷史興趣不類似,但卻讓他以爲滿意的物品.
- 信任度:指用戶對推薦系統的信任程度.提升方法是增長透明度(提供推薦解釋)和考慮用戶的社交網絡信息.
- 實時性:一方面實時地更新推薦列表,另外一方面須要將新加入系統的物品推薦給用戶.
- 健壯性:先用經常使用的攻擊方法向數據集中注入噪聲數據,而後再次生成推薦列表,若結果變化不大就說明算法健壯性強.另外也能夠使用代價比較高的用戶行爲,以及使用數據前先進行攻擊檢測.
- 商業目標:根據不一樣的網站有不一樣的商業目標.
第2章 利用用戶行爲數據
- 推薦算法須要自動發掘用戶行爲數據,從用戶的行爲中推測出用戶的興趣.
- 基於用戶行爲分析的推薦算法稱做協同過濾算法.
---2.1 用戶行爲數據簡介
- 用戶行爲數據最簡單的存在形式是日誌.
- 用戶行爲按反饋的明確性分爲顯性反饋行爲和隱性反饋行爲.若是按反饋的方向還能夠分爲正反饋和負反饋.
- 一個用戶行爲能夠用6部分表示:產生行爲的用戶,行爲的對象,行爲的種類,產生行爲的上下文,行爲的內容和權重.
---2.2 用戶行爲分析
- 互聯網上的不少數據分佈都知足長尾分佈f(x)=ax^k,也就是少部分物品佔據了大多數出現次數,
- 用戶越活躍,越趨向於瀏覽冷門的物品.
---2.3 實驗設計和算法評測
- 採用K折交叉驗證進行離線實驗.
- 採用召回率(有多少比例的評分記錄包含在最終的推薦列表中),準確率(最終的推薦列表中有多少比例是發生過的評分記錄),覆蓋率(最終的推薦列表中包含多大比例的物品)和新穎度(推薦列表中物品的平均流行度)做爲評測指標.
---2.4 基於鄰域的算法
- 基於鄰域的算法分爲基於用戶的協同過濾和基於物品的協同過濾.
- 基於用戶的協同過濾(UserCF):
- 基礎算法:找到和目標用戶興趣類似的用戶集合,找到這個集合中的用戶喜歡的,且目標用戶沒有據說過的物品推薦給目標用戶.能夠經過Jaccard類似度或餘弦類似度計算興趣類似度.
- 在計算餘弦類似度的過程當中,能夠創建物品到用戶的倒排表,每一個物品都保存對該物品產生過行爲的用戶列表.對於其中每一個物品對應的用戶列表,將其中的兩兩用戶對應的稀疏矩陣C[u][v]加1,就獲得了全部用戶之間不爲0的C[u][v]
- 獲得用戶之間的興趣類似度後,經過興趣類似度和對應用戶對物品的興趣加權計算獲得物品列表,選取其中目標用戶沒有過行爲的物品進行推薦.
- UserCF的一個重要參數是類似用戶數K.它與準確率和召回率沒有線性關係,與流行度成正比,與覆蓋率成反比.
- 用戶類似度的改進:兩個用戶對冷門物品採起過一樣的行爲更能說明他們興趣的類似度,所以應該懲罰熱門物品對類似度的影響:.
-
UserCF的實際使用並很少.算法
- ItemCF的優勢是計算難度小於UserCF,並且容易對推薦結果做出解釋,是目前業界應用最多的算法.
- 基礎算法:計算物品類似度,根據物品的類似度和用戶的歷史行爲給用戶生成推薦列表.
- 物品類似度能夠簡單地計算喜歡物品i的用戶中喜歡物品j的比例,但問題是會形成熱門物品和其餘任何物品都有很大類似度.所以須要懲罰物品j的權重.其中蘊含的假設是每一個用戶的興趣都侷限在某幾個方面,因此兩個物品的類似度高就意味着它們極可能屬於同一個領域.
- 相似地,使用用戶-物品倒排表來求類似度矩陣.而後計算用戶u對物品的興趣列表和某物品與該興趣列表中物品類似度的加權和來獲得物品列表.
- ItemCF的一個重要參數是物品數量K.它與準確率和召回率沒有線性關係,與流行度在必定範圍內正相關,與覆蓋率負相關.
- 在實際使用中,活躍用戶對物品類似度的貢獻應該小於不活躍的用戶,並且爲了不類似度矩陣太稠密,過於活躍的用戶會直接被忽略.這稱爲ItemCF-IUF,能夠明顯提升覆蓋率,下降流行度.
- 物品類似度的歸一化能夠提升推薦的準確率,覆蓋性和多樣性.由於熱門物品的類內物品類似度通常比較大,而歸一化使得同類物品之間的類似度相等.
- UserCF的推薦更社會化,反映了用戶所在的小興趣羣體中物品的熱門程度,須要維護一個用戶類似度矩陣.ItemCF的推薦更個性化,反映了用戶本身的興趣傳承,須要維護一個物品類似度矩陣.所以UserCF適合新聞推薦這種注重熱門程度和時效性,且物品更新速度很快的內容,而ItemCF則適合圖書,電影,電商網站這種用戶興趣比較固定和持久,且物品更新速度不會太快的內容.
- ItemCF的問題是,即便懲罰熱門物品的權重,它仍會得到較大的相 似度.解決方法是繼續加大對熱門物品的懲罰,好比,a取[0.5,1].或人爲引入物品的內容數據.
--2.5 隱語義模型
- 隱語義模型的核心思想是經過隱含特徵聯繫用戶興趣和物品.
歡迎關注本站公眾號,獲取更多信息