根據使用者對item的點選次數來判據使用者對物品的打分情況
基本流程:
-
特征(内容)提取
提取每個待推薦物品的特征(内容屬性),比如說是不同物品的分類标簽等。
-
使用者偏好計算
利用使用者過去的顯式評分或者隐式操作記錄,計算使用者不同特征(内容屬性)上的偏好分數。
- 内容召回:将待推薦物品的特征與使用者偏好得分比對,取出使用者最可能喜歡的物品池。
- 物品排序:按照使用者偏好召回物品池,可能一次性挑選出很多内容,此時,可以根據這些物品的平均得分等,再繼續進行排序。
優點:
- 物品沒有冷啟動問題,因為物品的内容特征不依賴于使用者資料;同時,推薦出的物品不會存在過于熱門的問題。
- 能為具有特殊興趣愛好的使用者進行推薦。
- 原理簡單,易于發現定位問題。
特征提取:
- 結構化的特征。取值限定在某個範圍之内,比如固定的标簽等。
- 非結構化的特征。内容無固定格式,最常見的非結構化特征就是文章。
結果計算
每個物品的内容特征向量,可如下表示:
d j = ( w 1 j , w 2 j , ⋯   , w n j ) d_j = (w_{1j}, w_{2j}, \cdots, w_{nj}) dj=(w1j,w2j,⋯,wnj)
每個物品可以用一個
n
維向量表示。其中 w n j w_{nj} wnj 表示每一維的特征權重。每一維代表了一個标簽或者是一個單詞等基礎要素。
假如使用者喜歡物品
{1, 3, 7}
,則該使用者的特征向量可以表示為:
U k = ( d k 1 + d k 2 + d k 3 ) / 3 = ( u 1 k , u 2 k , ⋯   , u n k ) U_k = (d_{k1} + d_{k2} + d_{k3})/3 = (u_{1k}, u_{2k}, \cdots, u_{nk}) Uk=(dk1+dk2+dk3)/3=(u1k,u2k,⋯,unk)
那麼使用者
k
在文章
t
上的得分可以使用餘弦公式計算得到:
s c o r e = cos θ = ∑ i = 1 n ( u i k × w i t ) ∑ i = 1 n u i k 2 × ∑ i = 1 n w i t 2 score = \cos\theta = \frac{\sum_{i=1}^n (u_{ik} \times w_{it})}{ \sqrt{\sum_{i=1}^n u_{ik}^2} \times \sqrt{\sum_{i=1}^n w_{it}^2} } score=cosθ=∑i=1nuik2
×∑i=1nwit2
∑i=1n(uik×wit)