推荐系统常见公式速记

🎯 一、推荐系统的核心目标函数

1.1 基本定义

推荐系统的本质是学习一个评分预测函数:

$$\hat{r}_{ui} = f(u, i; \theta)$$

其中:

  • $\hat{r}_{ui}$:用户 $u$ 对物品 $i$ 的预测评分
  • $r_{ui}$:真实评分
  • $\theta$:模型参数

1.2 优化目标

最小化平方误差损失函数

$$\min_{\theta} \sum_{(u,i) \in \mathcal{K}} (r_{ui} - \hat{r}_{ui})^2 + \lambda \|\theta\|^2$$

公式解析

  • $\sum_{(u,i) \in \mathcal{K}}$:对所有观测到的用户-物品交互求和
  • $(r_{ui} - \hat{r}_{ui})^2$:预测误差的平方
  • $\lambda \|\theta\|^2$:L2正则化项,防止过拟合

应用场景:显式反馈数据(如评分)


🧩 二、协同过滤(Collaborative Filtering)

2.1 基于用户的协同过滤

$$\hat{r}_{ui} = \bar{r}_u + \frac{\sum_{v \in N(u)} s(u,v)(r_{vi} - \bar{r}_v)}{\sum_{v \in N(u)} |s(u,v)|}$$

参数说明

  • $\bar{r}_u$:用户 $u$ 的历史平均评分
  • $s(u,v)$:用户 $u$ 和 $v$ 的相似度
  • $N(u)$:用户 $u$ 的最近邻集合
  • $r_{vi}$:用户 $v$ 对物品 $i$ 的评分

相似度计算(皮尔逊相关系数)
$$s(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}}$$

2.2 基于物品的协同过滤

$$\hat{r}_{ui} = \bar{r}_i + \frac{\sum_{j \in N(i)} s(i,j)(r_{uj} - \bar{r}_j)}{\sum_{j \in N(i)} |s(i,j)|}$$

参数说明

  • $\bar{r}_i$:物品 $i$ 的平均评分
  • $s(i,j)$:物品 $i$ 和 $j$ 的相似度
  • $N(i)$:物品 $i$ 的最近邻集合

余弦相似度
$$s(i,j) = \frac{\sum_{u \in U_{ij}} r_{ui} r_{uj}}{\sqrt{\sum_{u \in U_{ij}} r_{ui}^2} \sqrt{\sum_{u \in U_{ij}} r_{uj}^2}}$$


🔢 三、矩阵分解(Matrix Factorization)

3.1 基础矩阵分解模型

$$\hat{r}_{ui} = \mu + b_u + b_i + p_u^\top q_i$$

参数详解

  • $\mu$:全局平均评分
  • $b_u$:用户偏置,反映用户 $u$ 的评分严格程度
  • $b_i$:物品偏置,反映物品 $i$ 的受欢迎程度
  • $p_u$:用户 $u$ 的隐向量($k$ 维)
  • $q_i$:物品 $i$ 的隐向量($k$ 维)

3.2 优化目标函数

$$\min_{p_*, q_*, b_*} \sum_{(u,i) \in \mathcal{K}} (r_{ui} - \hat{r}_{ui})^2 + \lambda(\|p_u\|^2 + \|q_i\|^2 + b_u^2 + b_i^2)$$

梯度更新公式

$$ \begin{aligned} p_u &\leftarrow p_u + \gamma[(r_{ui} - \hat{r}_{ui})q_i - \lambda p_u] \\ q_i &\leftarrow q_i + \gamma[(r_{ui} - \hat{r}_{ui})p_u - \lambda q_i] \\ b_u &\leftarrow b_u + \gamma[(r_{ui} - \hat{r}_{ui}) - \lambda b_u] \\ b_i &\leftarrow b_i + \gamma[(r_{ui} - \hat{r}_{ui}) - \lambda b_i] \end{aligned} $$


🧠 四、深度学习推荐模型

4.1 神经协同过滤(NCF)

$$\hat{y}_{ui} = \sigma(\text{MLP}([p_u, q_i]))$$

模型结构

  1. Embedding层:将用户和物品映射为稠密向量
  2. 拼接层:$[p_u, q_i]$ 将两个向量拼接
  3. 多层感知机:学习复杂的非线性交互
  4. 输出层:sigmoid激活函数输出预测概率

4.2 Wide & Deep 模型

$$\hat{y} = \sigma(W_{wide}^\top x_{wide} + W_{deep}^\top f_{deep}(x_{deep}))$$

组件说明

  • Wide部分:$W_{wide}^\top x_{wide}$

    • 处理稀疏特征和组合特征
    • 增强模型的记忆能力
  • Deep部分:$W_{deep}^\top f_{deep}(x_{deep})$

    • 深度神经网络处理稠密特征
    • 增强模型的泛化能力

📊 五、排序模型(Learning to Rank)

5.1 Pointwise 方法

二分类交叉熵损失
$$\mathcal{L} = -[y \log \hat{y} + (1-y)\log(1-\hat{y})]$$

均方误差损失
$$\mathcal{L} = (y - \hat{y})^2$$

5.2 Pairwise 方法(BPR损失)

$$\mathcal{L}_{BPR} = -\sum_{(u,i,j)} \log \sigma(\hat{y}_{ui} - \hat{y}_{uj})$$

公式解析

  • $(u,i,j)$:用户 $u$,正样本 $i$,负样本 $j$
  • $\hat{y}_{ui}$:用户对正样本的预测分数
  • $\hat{y}_{uj}$:用户对负样本的预测分数
  • $\sigma$:sigmoid函数

BPR优化目标
$$\max \prod_{(u,i,j)} P(i >_u j)$$
即最大化用户 $u$ 更喜欢物品 $i$ 而不是 $j$ 的概率。

5.3 Listwise 方法(Softmax交叉熵)

$$\mathcal{L} = -\sum_{i \in \pi} y_i \log \frac{\exp(\hat{y}_i)}{\sum_{j \in \pi} \exp(\hat{y}_j)}$$


🧾 六、正则化与优化技巧

6.1 正则化方法

L2正则化
$$R(\theta) = \lambda \|\theta\|^2 = \lambda \sum_i \theta_i^2$$

L1正则化
$$R(\theta) = \lambda \|\theta\|_1 = \lambda \sum_i |\theta_i|$$

Dropout正则化
在训练时以概率 $p$ 随机丢弃神经元。

6.2 优化算法

SGD更新
$$\theta_{t+1} = \theta_t - \eta \nabla_\theta \mathcal{L}(\theta_t)$$

Adam优化器

$$ \begin{aligned} m_t &= \beta_1 m_{t-1} + (1-\beta_1)g_t \\ v_t &= \beta_2 v_{t-1} + (1-\beta_2)g_t^2 \\ \hat{m}_t &= \frac{m_t}{1-\beta_1^t} \\ \hat{v}_t &= \frac{v_t}{1-\beta_2^t} \\ \theta_{t+1} &= \theta_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} \end{aligned} $$


💡 七、重要概念与技巧

7.1 负采样

对于隐式反馈数据,从用户未交互的物品中采样负样本:
$$\mathcal{L} = -\sum_{(u,i) \in \mathcal{K}} \log \sigma(\hat{y}_{ui}) - \sum_{(u,j) \in \mathcal{N}} \log \sigma(1-\hat{y}_{uj})$$

7.2 多目标优化

结合点击率、转化率等多个目标:
$$\mathcal{L} = \alpha \mathcal{L}_{CTR} + \beta \mathcal{L}_{CVR} + \gamma \mathcal{L}_{RANK}$$

7.3 冷启动处理

对于新用户/物品,使用辅助信息:
$$\hat{r}_{ui} = f(p_u, q_i, x_u, x_i)$$
其中 $x_u$, $x_i$ 是用户和物品的辅助特征。


🧠 八、速记表

类别核心公式关键词
用户CF$$\hat{r}_{ui} = \bar{r}_u + \frac{\sum s(u,v)(r_{vi}-\bar{r}_v)}{\sum \lvert s(u,v) \rvert}$$相似用户
物品CF$$\hat{r}_{ui} = \bar{r}_i + \frac{\sum s(i,j)(r_{uj}-\bar{r}_j)}{\sum \lvert s(i,j) \rvert}$$相似物品
MF$$\hat{r}_{ui} = \mu + b_u + b_i + p_u^\top q_i$$隐向量
NCF$$\hat{y}_{ui} = \sigma(MLP([p_u, q_i]))$$神经网络
BPR$$\mathcal{L} = -\log\sigma(\hat{y}_{ui}-\hat{y}_{uj})$$排序损失

添加新评论