2.1 用戶行為數據簡介
- 用戶行為數據可分為顯性反饋行為和隱性反饋行為;
- 用戶數據的統一表示;
2.2 用戶行為分析
在設計推薦算法之前需要對用戶行為數據進行分析,了解數據中蘊含的一般規律可以對算法的設計起到指導作用。
- 用戶活躍度和物品流行度
- 均近似符合長尾分布:e.g. 物品流行度定義:對用戶產生過行為的總數;e.g. 用戶活躍度定義:對物品產生過行為的總數
- 活躍度和流行度的關系:一般新用戶傾向於瀏覽熱門的物品,因為他們對網站還不熟悉,只能點擊首頁的熱門物品,而老用戶會逐漸開始瀏覽冷門的物品(用戶越活躍,越傾向於瀏覽冷門物品)。
- 協同過濾算法:僅基於用戶行為數據設計的算法。
- 方法有基於領域的方法(最廣泛)、基於圖的隨機游走算法、隱語義算法。
- 基於領域的方法可分為基於用戶的協同過濾算法和基於物品的協同過濾算法。
2.3 實驗設計和算法評測
以離線評測為例。topN推薦問題:預測用戶會不會對某部電影評分,而不是預測用戶在准備對某部電影評分的前提下,會給電影評多少分。
2.4 基於鄰域的算法
1、基於用戶的協同過濾算法
基礎算法步驟:(1)找到和目標用戶興趣相似的用戶集合;
(2)找到這個集合中的用戶喜歡的,且目標用戶沒有聽說過的物品推薦給目標用戶。
主要利用行為的相似度量用戶的相似度。量化相似: Jaccard 相似度 / 余弦相似度 / 歐式距離。
參考指標:
- 准確率 / 召回率:參數K的選擇比較重要;
- 覆蓋度:K越大,流行度越高,推薦物品就越熱門,長尾物品推薦就少,覆蓋率就低;
- 流行度:K越大,參考的人就越多,結果就越趨近全局熱門物品;
UserCF缺點:計算量大;運算時間復雜度和空間復雜度的增長和用戶數的增長近似於平方關系。
用戶相似度計算的改進:兩個用戶對冷門物品采取過同樣的行為更能說明他們興趣的相似度,用物品熱門度進行懲罰。實驗證明,考慮物品的流行度對提升推薦結果的質量確實有幫助。
2、基於物品的協同過濾算法
(1)基礎算法:給用戶推薦那些和他們之前喜歡的物品相似的物品。其中,相似度不是利用物品的內容屬性計算物品之間的相似度,主要分析用戶的行為記錄計算物品之間的相似度。
(2)用戶活躍度對物品相似度的影響:活躍用戶對物品相似度的貢獻應該小於不活躍的用戶.
可以加懲罰項,但對於過度活躍用戶,直接忽略他的興趣列表。IUF的加入對准確率和召回率影響很小,但提高了覆蓋率,降低了流行度,總體上改進了推薦算法。
(3)物品相似度的歸一化
由於熱門的類其類內物品相似度比較大,如果不進行歸一化,就會推薦比較熱門類中的熱門物品,覆蓋率就低。
(3)UserCF 與 ItemCF 的綜合比較
UserCF的推薦結果着重於反映和用戶興趣相似的小群體的熱點,而ItemCF的推薦結果着重於維系用戶的歷史興趣。換句話說,UserCF的推薦更社會化,反映了用戶所在的小型興趣群體中物品的熱門程度,而ItemCF的推薦更加個性化,反映了用戶自己的興趣傳承。
UserCF適用於新聞:(a)個性化新聞推薦更加強調抓住新聞熱點,熱門程度和時效性是重點,而個性化相對次要些。(b)技術方面:新聞多且快,物品相關列表更新跟不上,而用戶相對好些,對於冷啟動問題,可以直接推薦熱門新聞。
ItemCF適用於圖書、商務、電影網站:用戶興趣比較固定持久,個性化相對重要性,物品增長速度也不會很快,一天一更新就好。
2.5 隱語義模型
基礎算法(LFM):核心思想是通過隱藏特征(latent factor)聯系用戶興趣和物品。對於一個用戶,首先得到用戶興趣分類,再從分類中挑選他可能喜歡的物品。
從數據出發,自動找到歸類,采用基於用戶行為統計的自動聚類。
損失函數:可用隨機梯度下降法求解
重要參數:隱特征個數 / 學習速率 / 正則化系數 / 負正樣本比例。其中正負樣本比例影響最大,控制了推薦算法發掘長尾的能力。
LFM的關鍵之一:如何生成負樣本(隱形反饋數據集,只有正樣本,所以要生成負樣本)。當數據集很稀疏時,性能會明顯下降。原則如下:
基於LFM的實際系統的例子。
LFM模型有個實際應用問題,很難實現實時推薦。模型需要訓練迭代且耗時,在新聞推薦關注中,冷啟動問題非常明顯,好的推薦算法需要在新聞短暫的生命周期內將其推送給對他感興趣的用戶。針對實時性這個問題,雅虎的解決方案:
LFM和基於領域的方法的比較:
- 理論基礎:LFM是一種基於機器學習的方法,通過優化一個設定的目標建立最優模型;基於領域的方法是統計方法,沒有學習過程;
- 離線計算的空間復雜度:前者節省訓練內存,后者需要維護一個離線相關表,數據量大時占用大量內存。LFM:O(MF + FN);UserCF: O(MM);ItemCF: O(NN)
- 離線計算的時間復雜度:LFM: O(KFS);UserCF: O(M(K/M)^2);ItemCF: O(N(K/N)^2)
- 在線實時推薦:LFM實現在線實時推薦難度較高
- 推薦解釋:ItemCF有較好的解釋性,LFM較難解釋