推薦系統

 

一.推薦系統需求與應用

隨着信息的快速增加,信息重複和信息過多致使的被動獲取的信息過載,信息搜索是根據和羣體行爲相關的權重排序信息,帶有任務的用戶寄但願能快速搜索到感興趣的內容以後再深刻閱讀,再帶着新的任務繼續搜索,而現實的情形是個體用戶不得不調整關鍵詞反覆搜索處於長尾的信息.經過搜索引擎主動得到高質量的信息也會花費更多的成本,推薦系統是解決這些問題最有潛力的方法.html

  推薦系統(recommender systems)是利用信息過濾技術向用戶推薦其可能感興趣的信息.算法

  其做用在於:
  幫助用戶快速發現感興趣和高質量的信息,提高用戶體驗
  增長用戶使用產品時間
  減小用戶瀏覽到重複或者厭惡的信息帶來的不利影響
  提供個性化信息,信息的推薦更爲精準.學習

 

二.推薦系統評價標準

1.準確度測試

 a.打分系統:優化

評分預測的預測準確度通常經過均方根偏差(RMSE)和平均絕對偏差(MAE)來斷定.對於測試集中的一個用戶u和物品i,令$r_{ui}$是用戶u對物品i的實際評分,$ \hat{r}_{ui}$是推薦系統給出的用戶對物品的預測評分:
網站

      $RMSE=\frac{\sqrt{\sum_{u,i{\in}T}{\left(r_{ui} - \hat{r}_{ui}\right)^2}}}{\left|T\right|}$ui

  MAE採用絕對值計算預測偏差:搜索引擎

      $MAE=\frac{\sum_{u,i{\in}T}{\left|r_{ui} - \hat{r}_{ui}\right|}}{\left|T\right|}$    
spa

 b.topN:3d

  TopN推薦的預測準確率通常經過準確率(precision)/召回率(recall)度量.令R(u)爲用戶在訓練集上的結果,T(u)爲用戶在測試集上的結果.

  召回率定義爲:

      $Recall=\frac{\sum_{u{\in}U}\left|{R\left(u\right){\bigcap}T\left(u\right)}\right|}{\sum_{u{\in}U}\left|{T\left(u\right)}\right|}$

  準確率定義爲:

      $Precision=\frac{\sum_{u{\in}U}\left|{R\left(u\right){\bigcap}T\left(u\right)}\right|}{\sum_{u{\in}U}\left|{R\left(u\right)}\right|}$

  2.覆蓋率

推薦出來的物品佔總物品集合的比例.

  $Coverage=\frac{\left|U_{u{\in}U}{R\left(u\right)}\right|}{\left|{I}\right|}$

(1)信息熵:又稱香農熵,指代信息量的多少,通常來講,覆蓋率越高的推薦系統,信息熵越大.

(2)基尼係數:經濟學系數,在這裏指代推薦系統中,熱門物品與冷門物品的比值,通常來講,覆蓋率越高的推薦系統,基尼係數越接近0

  3.多樣性

推薦系統給出推薦列表中的商品,兩兩之間的不類似性.

  4.信任度

提供可靠的推薦理由

  5.驚喜度

推薦和用戶歷史興趣不類似, 卻滿意的

 

三.推薦系統冷啓動

 對於新用戶:

   全部推薦系統對於新用戶都有這個問題

   推薦很是熱門的商品, 收集一些信息

   在用戶註冊的時候收集一些信息

   在用戶註冊完以後, 用一些互動遊戲等肯定喜歡與不喜歡

 對於新商品

   根據自己的屬性, 求與原來商品的類似度.

   Item-based協同過濾能夠推薦出去. 

 

 

四.推薦系統算法 

1.基於內容的推薦

基於用戶喜歡的item的屬性/內容進行推薦

須要分析內容, 無需考慮其餘用戶的行爲

一般使用在文本相關產品上進行推薦

Item經過內容(好比關鍵詞)關聯

基於比對item內容或標籤進行推薦

對於每一個要推薦的內容, 咱們須要創建一份資料:

好比詞kj在文件dj中的權重wij

經常使用的方法好比TF-IDF

 

須要對用戶也創建一份資料:

好比說定義一個權重向量(wc1,…,wck)

其中wci表示第ki個詞對用戶c的重要度

計算匹配度進行排序.

好比用餘弦距離公式

 

2.協同過濾推薦(CF)

a.user-based CF

找到和用戶最近的其餘用戶, 找到他們看/買過但當前用戶沒看/買過的item,根據距離加權打分找得分最高的推薦.

一個用戶序列 ui,一個item序列pj

一個n×m的矩陣v, 每一個元素vij表示用戶i對j的打分,這個打分多是多個維度,這個打分對推薦結果影響很大,須要不斷優化.

計算用戶與用戶類似度/距離(後面有類似度計算公式)

選取Top K推薦或者加權預測得分

  

 

 下圖比較直觀:

 

 

UserCF 算法的特色是:

  新聞推薦使用UserCF算法

用戶較少的場合,不然用戶類似度矩陣計算代價很大

適合時效性較強,用戶個性化興趣不太明顯的領域

對新用戶不友好,對新物品友好,由於用戶類似度矩陣不能實時計算

 

b.item-based CF

根據用戶對商品/內容的行爲,計算item和item類似度, 找到和當前item最近的進行推薦.

一個用戶序列ui,一個item序列pj

一個n×m的矩陣v, 每一個元素vij表示用戶對j的打分

計算item和item之間的類似度/距離

選取Top K推薦或者加權預測得分

ItemCF 算法的特色:

  購物網站使用ItemCF算法

適用於物品數明顯小於用戶數的場合,不然物品類似度矩陣計算代價很大

適合長尾物品豐富,用戶個性化需求強的領域

對新用戶友好,對新物品不友好,由於物品類似度矩陣不須要很強的實時性

利用用戶歷史行爲作推薦解釋,比較令用戶信服

越是熱門的類,其類內物品的類似度會越大.

 

計算類似度:

1.歐氏距離類似度

        

2.Jaccard類似度

        

3.餘弦類似度

        

4.Pearson類似度

        

     

協同過濾優勢:

基於用戶行爲, 所以對推薦內容無需先驗知識.

只須要用戶和商品關聯矩陣便可, 結構簡單.

在用戶行爲豐富的狀況下, 效果好.

協同過濾缺點:

須要大量的顯性/隱性用戶行爲.

須要經過徹底相同的商品關聯, 類似的不行.

假定用戶的興趣徹底取決於以前的行爲, 而和當前上下文環境無關.

在數據稀疏的狀況下受影響, 能夠考慮二度關聯.

 

3.隱語義模型

現實生活中的User-Item矩陣極大(User數量極大、Item數量極大),而用戶的興趣和消費能力有限,對單個用戶來講消費的物品,產生評分記錄的物品是極少的.這樣形成了User-Item矩陣含有大量的空值,數據極爲稀疏.

咱們假定前提:隱藏因子的個數小於user和item數由於若是每一個user都關聯一個獨立的隱藏因子.

核心是:奇異矩陣分解SVD

還有加bias項的隱語義模型,進一步提升了推薦的準確性.

 

  4.基於二部圖結構的推薦

 

  5.基於深度學習的推薦

相關文章
相關標籤/搜索