天天看點

基于内容的推薦算法

根據使用者對item的點選次數來判據使用者對物品的打分情況

基本流程:

  1. 特征(内容)提取

    提取每個待推薦物品的特征(内容屬性),比如說是不同物品的分類标簽等。

  2. 使用者偏好計算

    利用使用者過去的顯式評分或者隐式操作記錄,計算使用者不同特征(内容屬性)上的偏好分數。

  3. 内容召回:将待推薦物品的特征與使用者偏好得分比對,取出使用者最可能喜歡的物品池。
  4. 物品排序:按照使用者偏好召回物品池,可能一次性挑選出很多内容,此時,可以根據這些物品的平均得分等,再繼續進行排序。

優點:

  1. 物品沒有冷啟動問題,因為物品的内容特征不依賴于使用者資料;同時,推薦出的物品不會存在過于熱門的問題。
  2. 能為具有特殊興趣愛好的使用者進行推薦。
  3. 原理簡單,易于發現定位問題。

特征提取:

  1. 結構化的特征。取值限定在某個範圍之内,比如固定的标簽等。
  2. 非結構化的特征。内容無固定格式,最常見的非結構化特征就是文章。

結果計算

每個物品的内容特征向量,可如下表示:

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=1n​uik2​

​×∑i=1n​wit2​

​∑i=1n​(uik​×wit​)​

繼續閱讀