分享

个性化推荐算法LFM理论知识

LFM是监督学习的个性化推荐算法,其他的个性化推荐算法还有itemCF等。

建模公式

$$ P(u,i) = p _u^Tq _i = \sum _{f=1}^{F}p _{uf}q _{if} $$
其中:
  • u 指 user , i 为 item
  • p(u,i) 代表user是否点击了item, 点击了值为1,否则值为0
  • $p _{u}$$q _{i}$ 是向量, $p _u$ 的转置 $p _u^T$$q _i$ 相乘为一值
  • F是向量维度

损失函数

$$ loss = \sum _{(u,i) \in D} \big(p(u,i)-p^{LFM}(u,i)\big)^2 $$
其中:
  • D是所有训练样本集合
  • $p^{LFM}(u,i)$是LFM算法预估值
该公式过拟合导致模型特征值复杂,模型泛化能力减弱
为解决过拟合,需使用到正则化
$$ \begin{equation} \widetilde{J}(w;X,y) = J(w;X,y) + \alpha\Omega(w) \\[20px] \left\{ \begin{aligned} \Omega(w) &= \|w\| _1 = \sum _i|w _i| & (l1正则化)\\[8px] \Omega(w) &= \|w\| _2 = \sum _iw _i^2 & (l2正则化) \end{aligned} \right . \end{equation} $$

算法迭代

此处采用l2正则化,得到正则化后公式:
$$ loss = \sum _{(u,i) \in D}\big(p(u,i) - \sum _{f=1}^Fp _{uf}q _{if}\big)^2 + \partial|p _u|^2 + \partial|q _i|^2 $$
其中:
$$ \frac{\partial loss}{\partial p _{uf}} = -2\big(p(u,i) - p^{LFM}(u,i)\big)q _{if} + 2\partial p _{uf} $$
$$ \frac{\partial loss}{\partial q _{if}} = -2\big(p(u,i) - p^{LFM}(u,i)\big)p _{uf} + 2\partial q _{if} $$
采用梯度下降的方法迭代,有迭代公式:
$$ \begin{equation} \left\{ \begin{aligned} p _{uf} &= p _{uf} - \beta\frac{\partial loss}{\partial p _{uf}} \\ q _{if} &= q _{if} - \beta\frac{\partial loss}{\partial q _{if}} \end{aligned} \right . \end{equation} $$

影响算法的因素

  1. 负样本取样。例如选取了100个正样本,就要选取100个负样本来平衡。
  2. 隐特征 F,正则参数 α,leanring rate β。其中F选择在10~32之间,α和β一般选取在0.01~0.05之间

算法比较

复杂度LFMCF
时间O(dnF)O(mk^2)
空间O(n)O(n^2)
离线计算响应及时
  
其中:
d是迭代次数,n是样本大小,F是向量维度,m是用户点击次数