1. 程式人生 > >初談推薦演算法:基於內容推薦(CB)演算法

初談推薦演算法:基於內容推薦(CB)演算法

本章主要談談基於內容Content Based推薦演算法
CB推薦演算法主要有兩種子推薦演算法:
1、引入item屬性的Content Based推薦
2、引入user屬性的Content Based推薦
先講一下item內容屬性索引構建:
這裡寫圖片描述

1、對item的元資訊進行分詞,打分構建一個整排表
item1->token1:score1,token2:score2:token3:score3
item2->token2:score5,token4:score4
2、根據正排表,構建倒排表
token1->item1:score1
token2->item1:score2,item2:score5
token3->item1:score3
token4->item2:score4
其中token部分是key,item:score部分是value
3、對倒排表資料進行去重(必須保證key不重複),將資料灌入Nosql資料庫中,建立了索引資料庫即構建item內容屬性的索引

引入item屬性的Content Based推薦
這裡寫圖片描述
我們以使用者點選《劉德華的動作片》為列來講解基於item屬性的Content Based推薦
1、使用者點選《劉德華的動作片》
2、後臺拿到這個點選行為的資料做分詞(這個分詞可能在平臺自身庫,或者是一個工具,也有可能在一個遠端請求服務上),得到分詞結果,假設這個分詞結果是:
劉德華:0.4,動作片:0.7
3、去伺服器檢索token劉德華和token動作片的物品
4、檢索到token對應的物品,做相關性計算
假設從資料庫檢索到的物品資訊如下:
劉德華->item1:0.2,item2:0.3,item3:0.5
動作片->item2:0.6,item5:0.6
這時以分詞token的權重乘以檢索到物品的權重分數,計算相似度,就可以得到一下結果
item1:0.08
item2:0.33
item3:0.2
item4:0.42
5、對相關性計算的結果,按權重進行排序:
item1:0.42
item2:0.33
item3:0.2
item4:0.08
6、然後在取出Top-N,展現給使用者
以上就是基於引入item屬性的Content Based推薦
這推薦方式有以下優缺點:
優點:
1、提升推薦結果的相關性
2、結果可解釋
3、推薦結果容易被使用者感知
缺點:
1、無個性化
2、依賴於item的深度分析

引入user屬性的Content Based推薦
這裡寫圖片描述
其實引入user屬性的CB推薦是在引入item屬性的CB基礎上,增加了個性化推薦
這就需要考慮使用者的歷史行為,這些歷史行為來自:使用者的點選行為,觀看列表,收藏夾等
結合使用者的當前行為和使用者的歷史行為來構建正排表,用這個正排表再去檢索資料庫,就可以檢索出於使用者歷史行為和當前行為相關的物品。檢索到資料,再去計算相關性,排序後,將Top-N返回給使用者。
這種推薦方式有以下優缺點:
優點:
1、使用者模型刻畫了使用者興趣需求
2、推薦形式多樣,具有個性化
3、結果可以解釋
缺點:
1、推薦精度低
2、馬太效應
3、使用者行為稀疏導致覆蓋率低。