天天看点

基于内容的推荐算法

根据用户对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​)​

继续阅读