推薦系統實踐

推薦系統測評

 實驗方法
  • 離線實驗:準備訓練數據測試數據並評估;
  • 用戶調查:問卷方式、和用戶滿意度調查
  • 在線實驗:AB測試:AB測試是一種很經常使用的在線評測算法的實驗方法。它經過必定的規則將用戶隨機分紅幾組,
  • 並對不一樣組的用戶採用不一樣的算法,而後經過統計不一樣組用戶的各類不一樣的評測指標比較不一樣算
  • 法,好比能夠統計不一樣組用戶的點擊率,經過點擊率比較不一樣算法的性能。
測評指標:
  • 用戶滿意度
  • 預測準確度:預測準確度度量一個推薦系統或者推薦算法預測用戶行爲的能力。這個指標是最重要的推薦系統離線評測指標
  • 評分預測: 均方根偏差 RMSE  平均絕對偏差MAE
  • TopN推薦:網站在提供推薦服務時,通常是給用戶一個個性化的推薦列表,這種推薦叫作TopN推薦。TopN推薦的預測準確率通常經過準確率(precision)/召回率(recall)度量。
  • 覆蓋率:覆蓋率(coverage)描述一個推薦系統對物品長尾的發掘能力。覆蓋率有不一樣的定義方法,最簡單的定義爲推薦系統可以推薦出來的物品佔總物品集合的比例。
  • 信息熵度量:這裏p(i)是物品i的流行度除以全部物品流行度之和。
  •  

  • 基尼係數度量: ij是按照物品流行度p()從小到大排序的物品列表中第j個物品
  • 多樣性:,推薦列表須要可以覆蓋用戶不一樣的興趣領域,即推薦結果須要具備多樣性。
  • 新穎性:新穎的推薦是指給用戶推薦那些他們之前沒有據說過的物品。
  • 驚喜度:,若是推薦結果和用戶的歷史興趣不類似,但卻讓用戶以爲滿意,那麼就能夠說推薦結果的驚喜度很高
  • 信任度:讓用戶對推薦結果產生信任是很是重要的。一樣的推薦結果,以讓用戶信任的方式推薦給用戶就更能讓用戶產生購買慾,而以相似廣告形式的方法推薦給用戶就可能很難讓用戶產生購買的意願。
  • 實時性
  • 健壯性:而健壯性(即robust,魯棒性)指標衡量了一個推薦系統抗擊做弊的能力。
  • 商業目標:,網站評測推薦系統更加註重網站的商業目標是否達成,而商業目標和網站的盈利模式是息息相關的。
測評維度:
  • 用戶維度  主要包括用戶的人口統計學信息、活躍度以及是否是新用戶等。
  • 物品維度  包括物品的屬性信息、流行度、平均分以及是否是新加入的物品等。
  • 時間維度  包括季節,是工做日仍是週末,是白天仍是晚上等。

 用戶行爲數據

  • 用戶顯性反饋數據:顯性反饋行爲包括用戶明確表示對物品喜愛的行爲。主要方式就是評分和喜歡/不喜歡。
  • 用戶隱性反饋數據:隱性反饋行爲指的是那些不能明確反應用戶喜愛的行爲。最具表明性的隱性反饋行爲就是頁面瀏覽行爲。
 
用戶活躍度和物品流行度:長尾分佈
        通常來講,不活躍的用戶要麼是新用戶,要麼是隻來過網站一兩次的老用戶。那麼,不一樣活躍度的用戶喜歡的物品的流行度是否有差異?通常認爲,新用戶傾向於瀏覽熱門的物品,由於他們對網站還不熟悉,只能點擊首頁的熱門物品,而老用戶會逐漸開始瀏覽冷門的物品。
 
用戶行爲數據設計的推薦算法
  • 基於鄰域的方法(neighborhood-based)
  • 隱語義模型(latent factor model)
  • 基於圖的隨機遊走算法(random walk on graph)
其中最主要的方法爲基於鄰域的算法:
  • 基於用戶的協同過濾算法  這種算法給用戶推薦和他興趣類似的其餘用戶喜歡的物品。
  • 基於物品的協同過濾算法  這種算法給用戶推薦和他以前喜歡的物品類似的物品。
 
 
基於用戶的協同過濾算法:
  • (1) 找到和目標用戶興趣類似的用戶集合。(類似性計算,基於距離)
  • (2) 找到這個集合中的用戶喜歡的,且目標用戶沒有據說過的物品推薦給目標用戶
改進 1:
        若是對用戶兩兩計算類似度,複雜度太高O(n*n) ,所以能夠首先計算item-user的倒排表,而後計算用戶類似度,這樣能夠過濾掉共同物品爲0的用戶
 
改進 2:
        考慮物品自己的流行度,
 

 

 
 
基於物品的協同過濾算法
  • (1) 計算物品之間的類似度。
  • (2) 根據物品的類似度和用戶的歷史行爲給用戶生成推薦列表。
  • 共現的機率
 
改進 1 :user-item倒排表 
 
改進 2 用戶活躍度的影響
 
 

 

 

隱語義模型

        隱語義模型是最近幾年推薦系統領域最爲熱門的研究話題,它的核心思想是經過隱含特徵(latent factor)聯繫用戶興趣和物品。
        隱含語義分析技術從誕生到今天產生了不少著名的模型和方法,其中和該技術相關且耳熟能詳的名詞有pLSA、LDA、隱含類別模型(latent class model)、隱含主題模型(latent topic model)、矩陣分解(matrix  factorization)。這些技術和方法在本質上是相通的,其中不少方法均可以用於個性化推薦系統。
 
        隱性反饋數據中,沒有負樣本 只有正樣本;在隱性反饋數據集上應用LFM解決TopN推薦的第一個關鍵問題就是如何給每一個用戶生成負樣本。
  • 對於一個用戶,用他全部沒有過行爲的物品做爲負樣本。
  • 對於一個用戶,從他沒有過行爲的物品中均勻採樣出一些物品做爲負樣本。
  • 對於一個用戶,從他沒有過行爲的物品中採樣出一些物品做爲負樣本,但採樣時,保證每一個用戶的正負樣本數目至關。
  • 對於一個用戶,從他沒有過行爲的物品中採樣出一些物品做爲負樣本,但採樣時,偏重採樣不熱門的物品。
        對於第一種方法,它的明顯缺點是負樣本太多,正負樣本數目相差懸殊,於是計算複雜度很高,最終結果的精度也不好。對於另外3種方法,Rong  Pan在文章中表示第三種好於第二種,而第二種好於第四種。
  • 對每一個用戶,要保證正負樣本的平衡(數目類似)。
  • 對每一個用戶採樣負樣本時,要選取那些很熱門,而用戶卻沒有行爲的物品。
LFM和基於鄰域的方法的比較
  • 理論基礎  LFM具備比較好的理論基礎,它是一種學習方法,經過優化一個設定的指標創建最優的模型。基於鄰域的方法更多的是一種基於統計的方法,並無學習過程。
  • 離線計算的空間複雜度 :LFM大量節省了訓練過程當中的內存
  • 離線計算的時間複雜度:在通常狀況下,LFM的時間複雜度要稍微高於UserCF和ItemCF,這主要是由於該算法須要屢次迭代。但整體上,這兩種算法在時間複雜度上沒有質的差異。
  • 在線實時推薦:  UserCF和ItemCF在線服務算法須要將相關表緩存在內存中,而後能夠在線進行實時的預測。
  • 推薦解釋:  ItemCF算法支持很好的推薦解釋,它能夠利用用戶的歷史行爲解釋推薦結果。但LFM沒法提供這樣的解釋,它計算出的隱類雖然在語義上確實表明了一類興趣和物品,卻很難用天然語言描述並生成解釋展示給用戶。
 

推薦系統冷啓動問題

  • 用戶冷啓動
  • 物品冷啓動
  • 系統冷啓動
 
利用用戶註冊信息
  • 人口統計學信息  包括用戶的年齡、性別、職業、民族、學歷和居住地。
  • 用戶興趣的描述  有一些網站會讓用戶用文字描述他們的興趣。
  • 從其餘網站導入的用戶站外行爲數據  好比用戶經過豆瓣、新浪微博的帳號登陸,就能夠在獲得用戶贊成的狀況下獲取用戶在豆瓣或者新浪微博的一些行爲數據和社交網絡數據。
選擇合適的物品啓動用戶的興趣
        通常來講,可以用來啓動用戶興趣的物品須要具備如下特色
  • 比較熱門
  • 具備表明性和區分性
  • 啓動物品集合須要有多樣性
 
利用物品的內容信息
發揮專家的做用
 

利用用戶標籤數據

        用戶用標籤來描述對物品的見解,所以標籤是聯繫用戶和物品的紐帶,也是反應用戶興趣的重要數據源,如何利用用戶的標籤數據提升個性化推薦結果的質量是推薦系統研究的重要課題
 

 

數據稀疏性
 
        對於新的物品或者用戶,標籤數量很是少,此時須要對標籤進行擴展 ---基於標籤的類似性
 
標籤清理:除去詞頻很高的中止詞、同義詞  等;類比天然語言處理 
 
 

## 利用上下文信息

時間上下文信息
  • 用戶興趣是變化的
  • 物品也是有生命週期的
  • 季節效應
 
系統時間特性的分析:
  • 數據集天天獨立用戶數的增加狀況
  • 系統的物品變化狀況 :網站新聞增加狀況,商品增加狀況等
  • 用戶訪問狀況: 用戶的平均活躍天數
 
時間上下文推薦算法:
 
  • 最近熱門推薦
  • 時間上下文itemCF算法: 最經常使用的是基於物品的個性化推薦系統
    • 物品類似度
    • 在線推薦 : 用戶近期行爲更關鍵
  • 時間上下文相關的userCF算法
    • 用戶興趣類似度
    • 類似興趣用戶最近行爲
  • 地點上下文
相關文章
相關標籤/搜索