协同过滤(Collaborative Filtering)

协同过滤(Collaborative Filtering)算法原理


一、基于记忆的协同过滤(Memory-Based CF)

1. 用户-用户协同过滤(User-Based CF)

核心思想

通过计算用户之间的相似度,利用相似用户的评分预测目标用户的兴趣。

算法步骤
  1. 相似度计算
    使用余弦相似度或皮尔逊相关系数:
    sim(u,v)=∑i∈Iuv(rui−rˉu)(rvi−rˉv)∑i∈Iuv(rui−rˉu)2∑i∈Iuv(rvi−rˉv)2 \text{sim}(u, v) = \frac{\sum_{i \in I_{uv}}(r_{ui} - \bar{r}_u)(r_{vi} - \bar{r}_v)}{\sqrt{\sum_{i \in I_{uv}}(r_{ui} - \bar{r}_u)^2} \sqrt{\sum_{i \in I_{uv}}(r_{vi} - \bar{r}_v)^2}} sim(u,v)=iIuv(ruirˉu)2iIuv(rvirˉv)2iIuv(ruirˉu)(rvirˉv)

    • IuvI_{uv}Iuv:用户 uuuvvv 共同评分的物品集合
    • rˉu\bar{r}_urˉu:用户 uuu 的平均评分
  2. 评分预测
    r^ui=rˉu+∑v∈N(u)sim(u,v)⋅(rvi−rˉv)∑v∈N(u)∣sim(u,v)∣ \hat{r}_{ui} = \bar{r}_u + \frac{\sum_{v \in N(u)} \text{sim}(u, v) \cdot (r_{vi} - \bar{r}_v)}{\sum_{v \in N(u)} |\text{sim}(u, v)|} r^ui=rˉu+vN(u)sim(u,v)vN(u)sim(u,v)(rvirˉv)

    • N(u)N(u)N(u):用户 uuu 的最近邻集合
优缺点
  • 优点:直观易实现,适合用户行为稳定的场景。
  • 缺点:计算复杂度高(O(m2)O(m^2)O(m2)),冷启动问题严重。

2. 物品-物品协同过滤(Item-Based CF)

核心思想

通过计算物品之间的相似度,基于用户历史喜欢的物品预测其对新物品的兴趣。

算法步骤
  1. 相似度计算
    sim(i,j)=∑u∈Uijrui⋅ruj∑u∈Uijrui2∑u∈Uijruj2 \text{sim}(i, j) = \frac{\sum_{u \in U_{ij}} r_{ui} \cdot r_{uj}}{\sqrt{\sum_{u \in U_{ij}} r_{ui}^2} \sqrt{\sum_{u \in U_{ij}} r_{uj}^2}} sim(i,j)=uUijrui2uUijruj2uUijruiruj

    • UijU_{ij}Uij:对物品 iiijjj 均有评分的用户集合
  2. 评分预测
    r^ui=∑j∈S(i)sim(i,j)⋅ruj∑j∈S(i)∣sim(i,j)∣ \hat{r}_{ui} = \frac{\sum_{j \in S(i)} \text{sim}(i, j) \cdot r_{uj}}{\sum_{j \in S(i)} |\text{sim}(i, j)|} r^ui=jS(i)sim(i,j)jS(i)sim(i,j)ruj

    • S(i)S(i)S(i):与物品 iii 最相似的物品集合
优缺点
  • 优点:物品相似度更稳定,适合物品数远小于用户数的场景。
  • 缺点:稀疏性问题突出,新物品冷启动困难。

二、基于模型的协同过滤(Model-Based CF)

1. 矩阵分解(Matrix Factorization, MF)

核心思想

将用户-物品评分矩阵分解为低维用户隐向量和物品隐向量的乘积,捕捉潜在特征。

数学模型

预测评分为:
r^ui=μ+bu+bi+qiTpu \hat{r}_{ui} = \mu + b_u + b_i + q_i^T p_u r^ui=μ+bu+bi+qiTpu

  • μ\muμ:全局平均评分
  • bub_ubu:用户偏置项(用户 uuu 的评分倾向)
  • bib_ibi:物品偏置项(物品 iii 的受欢迎程度)
  • qi∈Rkq_i \in \mathbb{R}^kqiRk:物品隐向量
  • pu∈Rkp_u \in \mathbb{R}^kpuRk:用户隐向量
优化目标

最小化正则化平方误差:
min⁡p,q,b∑(u,i)∈K(rui−r^ui)2+λ(∥pu∥2+∥qi∥2+bu2+bi2) \min_{p, q, b} \sum_{(u,i) \in \mathcal{K}} \left( r_{ui} - \hat{r}_{ui} \right)^2 + \lambda \left( \|p_u\|^2 + \|q_i\|^2 + b_u^2 + b_i^2 \right) p,q,bmin(u,i)K(ruir^ui)2+λ(pu2+qi2+bu2+bi2)

  • K\mathcal{K}K:已知评分的集合
  • λ\lambdaλ:正则化系数
SGD参数更新

通过随机梯度下降(SGD)更新参数:
bu←bu+γ(eui−λbu) b_u \leftarrow b_u + \gamma (e_{ui} - \lambda b_u) bubu+γ(euiλbu)
bi←bi+γ(eui−λbi) b_i \leftarrow b_i + \gamma (e_{ui} - \lambda b_i) bibi+γ(euiλbi)
pu←pu+γ(eui⋅qi−λpu) p_u \leftarrow p_u + \gamma (e_{ui} \cdot q_i - \lambda p_u) pupu+γ(euiqiλpu)
qi←qi+γ(eui⋅pu−λqi) q_i \leftarrow q_i + \gamma (e_{ui} \cdot p_u - \lambda q_i) qiqi+γ(euipuλqi)

  • eui=rui−r^uie_{ui} = r_{ui} - \hat{r}_{ui}eui=ruir^ui
  • γ\gammaγ:学习率
优缺点
  • 优点:处理稀疏数据能力强,隐向量可解释性高。
  • 缺点:需手动调参,无法捕捉动态兴趣。

2. SVD++

核心改进

在MF基础上引入隐式反馈(如用户浏览、点击行为),增强用户隐向量的表达能力。

数学模型

r^ui=μ+bu+bi+qiT(pu+1∣N(u)∣∑j∈N(u)yj) \hat{r}_{ui} = \mu + b_u + b_i + q_i^T \left( p_u + \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)} y_j \right) r^ui=μ+bu+bi+qiTpu+N(u)1jN(u)yj

  • N(u)N(u)N(u):用户 uuu 的隐式反馈物品集合
  • yj∈Rky_j \in \mathbb{R}^kyjRk:隐式反馈物品的隐向量
优化目标

min⁡∑(u,i)(rui−r^ui)2+λ(∥pu∥2+∥qi∥2+bu2+bi2+∥yj∥2) \min \sum_{(u,i)} \left( r_{ui} - \hat{r}_{ui} \right)^2 + \lambda \left( \|p_u\|^2 + \|q_i\|^2 + b_u^2 + b_i^2 + \|y_j\|^2 \right) min(u,i)(ruir^ui)2+λ(pu2+qi2+bu2+bi2+yj2)

优点
  • 融合显式和隐式反馈,提升预测精度。
  • 解决了MF对隐式信息利用不足的问题。

三、用户和物品偏置项的深度解析

参数定义数学表达作用
用户偏置 bub_ubu用户整体评分倾向r^ui=μ+bu+…\hat{r}_{ui} = \mu + b_u + \dotsr^ui=μ+bu+量化用户评分偏离全局平均值的程度(如用户A习惯性打高分)
物品偏置 bib_ibi物品整体受欢迎程度r^ui=μ+⋯+bi\hat{r}_{ui} = \mu + \dots + b_ir^ui=μ++bi量化物品评分偏离全局平均值的程度(如热门物品得分普遍高)

偏置项的意义

  1. 用户偏置

    • 解释用户个体差异(如严苛用户评分普遍低)。
    • 公式贡献:μ+bu\mu + b_uμ+bu 表示用户 uuu 的基准评分。
  2. 物品偏置

    • 解释物品固有属性(如高质量物品得分高)。
    • 公式贡献:μ+bi\mu + b_iμ+bi 表示物品 iii 的基准评分。

四、模型对比总结

模型核心特征适用场景偏置项作用
User-Based CF用户相似度计算用户行为稳定的中小规模系统无偏置项,依赖用户平均评分
Item-Based CF物品相似度计算物品更新缓慢的电商平台无偏置项,依赖物品平均评分
MF隐向量+偏置项大规模稀疏数据显式建模用户/物品整体偏差
SVD++隐向量+隐式反馈+偏置项需利用隐式行为数据的场景增强用户隐向量,保留偏置项

五、关键公式速查表

  1. User-Based CF预测公式
    r^ui=rˉu+∑vsim(u,v)(rvi−rˉv)∑v∣sim(u,v)∣ \hat{r}_{ui} = \bar{r}_u + \frac{\sum_{v} \text{sim}(u, v) (r_{vi} - \bar{r}_v)}{\sum_{v} |\text{sim}(u, v)|} r^ui=rˉu+vsim(u,v)vsim(u,v)(rvirˉv)

  2. MF预测公式
    r^ui=μ+bu+bi+qiTpu \hat{r}_{ui} = \mu + b_u + b_i + q_i^T p_u r^ui=μ+bu+bi+qiTpu

  3. SGD更新规则
    bu←bu+γ(eui−λbu) b_u \leftarrow b_u + \gamma (e_{ui} - \lambda b_u) bubu+γ(euiλbu)

  4. SVD++预测公式
    r^ui=μ+bu+bi+qiT(pu+1∣N(u)∣∑j∈N(u)yj) \hat{r}_{ui} = \mu + b_u + b_i + q_i^T \left( p_u + \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)} y_j \right) r^ui=μ+bu+bi+qiTpu+N(u)1jN(u)yj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值