基于内容的推荐算法

    xiaoxiao2022-07-13  150

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

    最新回复(0)