1. 引言

在大规模推荐系统中,如何从海量候选物品中高效检索出用户可能感兴趣的物品是一个关键问题。传统的矩阵分解方法在处理稀疏数据和长尾分布时面临挑战。本文介绍了一种基于双塔神经网络的建模框架,通过采样偏差校正技术提升推荐质量,并成功应用于YouTube视频推荐系统。

2. 建模框架

论文的亮点不在于提出了新的架构,而是针对训练时负采样的处理。

  • 模型架构
    在这里插入图片描述

2.1 问题定义

给定查询(用户和上下文)和物品的特征表示:

  • 查询特征:xi∈Xx_i \in \mathcal{X}xiX
  • 物品特征:yj∈Yy_j \in \mathcal{Y}yjY

目标是通过双塔神经网络学习嵌入函数:
u:X×Rd→Rkv:Y×Rd→Rk \begin{aligned} u &: \mathcal{X} \times \mathbb{R}^d \rightarrow \mathbb{R}^k \\ v &: \mathcal{Y} \times \mathbb{R}^d \rightarrow \mathbb{R}^k \end{aligned} uv:X×RdRk:Y×RdRk
其中模型参数θ∈Rd\theta \in \mathbb{R}^dθRd,输出为内积得分:
s(x,y)=⟨u(x,θ),v(y,θ)⟩ s(x,y) = \langle u(x,\theta), v(y,\theta) \rangle s(x,y)=u(x,θ),v(y,θ)⟩

2.2 损失函数

将推荐视为带连续奖励的多分类问题,采用softmax概率:
P(y∣x;θ)=es(x,y)∑j∈[M]es(x,yj) \mathcal{P}(y|x;\theta) = \frac{e^{s(x,y)}}{\sum_{j\in[M]} e^{s(x,y_j)}} P(yx;θ)=j[M]es(x,yj)es(x,y)

加权对数似然损失:
LT(θ)=−1T∑i∈[T]ri⋅log⁡(P(yi∣xi;θ)) L_T(\theta) = -\frac{1}{T}\sum_{i\in[T]} r_i \cdot \log(\mathcal{P}(y_i|x_i;\theta)) LT(θ)=T1i[T]rilog(P(yixi;θ))

2.3 批处理softmax

当物品集MMM极大时,计算完整softmax不可行。一种常见的方法是使用一批项目的一个子集,特别是对于来自同一批次的所有查询,使用批次内的项目作为负样本。给定一个包含 B 对 (xi,yi,ri)i=1B{(x_i,y_i,r_i)}_{i=1}^{B}(xi,yi,ri)i=1B 的小批次,批次 softmax 为:

PB(yi∣xi;θ)=es(xi,yi)∑j∈[B]es(xi,yj) \mathcal{P}_B(y_i|x_i;\theta) = \frac{e^{s(x_i,y_i)}}{\sum_{j\in[B]} e^{s(x_i,y_j)}} PB(yixi;θ)=j[B]es(xi,yj)es(xi,yi)

2.4 采样偏差校正

流行物品因高频出现在批次中会被过度惩罚,引入对数校正项:
sc(xi,yj)=s(xi,yj)−log⁡(pj) s^c(x_i,y_j) = s(x_i,y_j) - \log(p_j) sc(xi,yj)=s(xi,yj)log(pj)
其中pjp_jpj为物品jjj的采样概率。

校正后的损失函数:
LB(θ)=−1B∑i∈[B]ri⋅log⁡(esc(xi,yi)esc(xi,yi)+∑j≠iesc(xi,yj)) L_B(\theta) = -\frac{1}{B}\sum_{i\in[B]} r_i \cdot \log\left(\frac{e^{s^c(x_i,y_i)}}{e^{s^c(x_i,y_i)} + \sum_{j\neq i}e^{s^c(x_i,y_j)}}\right) LB(θ)=B1i[B]rilog(esc(xi,yi)+j=iesc(xi,yj)esc(xi,yi))

3. 流式频率估计算法

3.1 核心思想

通过全局步长(global step)估计物品采样间隔δ\deltaδ,进而计算采样概率:
p=1δ p = \frac{1}{\delta} p=δ1

3.2 算法实现

在这里插入图片描述

数据结构:

  • 哈希数组AAA:记录物品最后一次出现的步长
  • 哈希数组BBB:估计物品的采样间隔δ\deltaδ

更新规则(SGD形式):
B[h(y)]←(1−α)⋅B[h(y)]+α⋅(t−A[h(y)]) B[h(y)] \leftarrow (1-\alpha) \cdot B[h(y)] + \alpha \cdot (t - A[h(y)]) B[h(y)](1α)B[h(y)]+α(tA[h(y)])

数学性质:

  • 偏差分析:
    E(δt)−δ=(1−α)tδ0−(1−α)t−1δ \mathbb{E}(\delta_t) - \delta = (1-\alpha)^t\delta_0 - (1-\alpha)^{t-1}\delta E(δt)δ=(1α)tδ0(1α)t1δ

  • 方差上界:
    E[(δt−E[δt])2]≤(1−α)2t(δ0−δ)2+αE[(Δ1−δ)2] \mathbb{E}[(\delta_t - \mathbb{E}[\delta_t])^2] \leq (1-\alpha)^{2t}(\delta_0 - \delta)^2 + \alpha\mathbb{E}[(\Delta_1 - \delta)^2] E[(δtE[δt])2](1α)2t(δ0δ)2+αE[(Δ1δ)2]

  • 各学习率误差的结果
    在这里插入图片描述

3.3 多哈希优化

使用mmm个哈希函数减少碰撞误差:
p^=max⁡1≤i≤m1Bi[hi(y)] \hat{p} = \max_{1\leq i\leq m} \frac{1}{B_i[h_i(y)]} p^=1immaxBi[hi(y)]1

4. 在YouTube推荐系统中的应用

4.1 系统架构

  • 查询塔:融合用户观看历史和种子视频特征
  • 候选塔:处理候选视频内容特征
  • 共享特征嵌入提升训练效率

4.2 关键创新

  1. 流式训练:按天顺序消费数据,适应分布变化
  2. 哈希桶技术:处理新出现的内容ID
  3. 索引管道:量化哈希技术加速最近邻搜索

5.Trick

在相似度得分上添加温度参数 τ\tauτ
此外,为了使预测结果更加尖锐,我们在每个 logit 上添加了一个温度参数 τ。具体来说,我们使用以下公式计算查询和候选项目之间的相似度得分:
s(x,y)=⟨u(x,θ),v(y,θ)⟩τs(x,y)= \frac{⟨u(x,θ),v(y,θ)⟩}{\tau}s(x,y)=τu(x,θ),v(y,θ)⟩

Youtube实验结果
在这里插入图片描述

6. 结论

本文提出的采样偏差校正方法通过:

  1. 理论保证的无偏频率估计
  2. 适应动态变化的流式环境
  3. 可扩展的分布式实现

在十亿级物品的推荐场景中显著提升了检索质量,为大规模内容推荐提供了新的解决方案。

引用

Yi, X., Yang, J., Hong, L., Cheng, D. Z., Heldt, L., Kumthekar, A., Zhao, Z., Wei, L., & Chi, E. (2019). Sampling-bias-corrected neural modeling for large corpus item recommendations. Proceedings of the 13th ACM Conference on Recommender Systems, 269–277.

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐