CREAD: 视频推荐系统中的观看时长预测

分类-恢复框架与误差自适应离散化(Error Adaptive Discretization)

一、研究背景与问题定义

在短视频推荐系统中,观看时长(watch time)是衡量用户满意度的关键指标。与传统的点击率(CTR)不同,观看时长是连续值,且具有以下特点:

  • 长尾分布:大部分观看时长集中在短时间(如30%的观看在3秒内,80%在32秒内),而长时间观看样本极少。
  • 回归任务困难:直接使用回归模型(如L1/L2损失)容易受到异常值和数据不平衡的影响。
  • 排序需求:推荐系统更关注视频之间的相对顺序(如哪个视频更可能被长时间观看),而传统回归损失不直接优化排序。

二、传统方法的问题

传统方法主要分为两类:

1. 连续回归方法(Continuous Regression)

  • 代表模型:Value Regression (VR)、Weighted Logistic Regression (WLR)
  • 问题
    • 对长尾分布不敏感,难以预测尾部大值。
    • 不优化排序关系,只关注误差绝对值或平方。
    • 易受异常值影响。

2. 离散化回归方法(Discrete Regression)

  • 代表模型:Ordinal Regression (OR)、D2Q
  • 做法:将连续观看时长划分为多个桶(buckets),然后分类预测。
  • 问题
    • 离散化方式不优:常用等宽(equal-width)或等频(equal-frequency)方法,无法平衡两类误差:
      • 学习误差:桶太细 → 每个桶样本少 → 分类器难训练。
      • 恢复误差:桶太宽 → 用桶内均值替代真实值 → 误差大。
    • 缺乏对桶间顺序关系的建模。

三、CREAD 模型框架

CREAD 提出一个分类-恢复框架,包含三个模块:

1. 离散化模块(Discretization Module)

将连续观看时长 \(y\) 划分为 \(M\) 个桶:\(d_m = [t_{m-1}, t_m]\)

定义 \(M\) 个二分类任务:\(\phi_m(x) = P(y > t_m | x)\)

2. 分类模块(Classification Module)

使用神经网络训练 \(M\) 个分类器,输出概率 \(\hat{\phi}_m\)

3. 恢复模块(Restoration Module)

根据概率 \(\hat{\phi}_m\) 恢复预测值:

\[\hat{y} = \sum_{m=1}^{M} \hat{\phi}_m \cdot (t_m - t_{m-1})\]

四、损失函数设计

总损失函数为:

\[\mathcal{L}_{\text{CREAD}} = \lambda_{\text{ce}} \mathcal{L}_{\text{ce}} + \lambda_{\text{restore}} \mathcal{L}_{\text{restore}} + \lambda_{\text{ord}} \mathcal{L}_{\text{ord}}\]

1. 分类损失(Cross-Entropy Loss)

\[\mathcal{L}_{\text{ce}} = \sum_{m=1}^{M} -y_m \log(\hat{\phi}_m) - (1 - y_m) \log(1 - \hat{\phi}_m)\]

2. 恢复损失(Restoration Loss)

使用 Huber Loss,结合 MSE 和 MAE 的优点,对异常值不敏感。

\[\mathcal{L}_{\text{restore}} = \begin{cases} \frac{1}{2}(y - \hat{y})^2, & |y - \hat{y}| < \delta \\ \delta |y - \hat{y}| - \frac{1}{2}\delta^2, & \text{otherwise} \end{cases}\]

3. 顺序正则化(Ordinal Regularization)

强制 \(\hat{\phi}_m\) 随 \(m\) 增加而单调递减:

\[\mathcal{L}_{\text{ord}} = \sum_{m=1}^{M-1} \max(\hat{\phi}_{m+1} - \hat{\phi}_m, 0)\]

五、离散化误差分析与 EAD 方法

1. 误差分解(Lemma 4.1)

将预测误差分解为:

  • \(V_p\):学习误差(分类器误差)
  • \(V_w\):桶内均值估计误差
  • \(V_b\):恢复误差(用桶内均值替代真实分布)
  • \(V_y\):数据本身方差

2. 误差上界(Theorem 4.2)

在最大似然估计和输入有限假设下:

\[V_p \leq \frac{C_p |\mathcal{X}|}{N} \cdot A_p(\mathcal{D})\] \[V_w \leq \frac{C_w}{N} \cdot A_w(\mathcal{D})\] \[V_b \leq C_b \cdot A_b(\mathcal{D})\]

其中:

  • \(A_w\) 与桶内样本数成反比 → 影响学习误差
  • \(A_b\) 与桶宽度成正比 → 影响恢复误差

3. 等宽 vs 等频的问题

方法 特点 问题
等宽 桶宽固定 尾部桶样本极少 → 学习误差大
等频 每个桶样本数固定 尾部桶极宽 → 恢复误差大

4. 提出的 EAD 方法

目标:最小化 \(J(\mathcal{D}) = A_w(\mathcal{D}) + \beta A_b(\mathcal{D})\)

引入校准函数 \(\gamma(z; \alpha)\):

\[t_m = \Psi^{-1}\left( \gamma\left(\frac{m}{M}; \alpha\right) \right)\]
  • \(\alpha = 0\):等频
  • \(\alpha = 5\):等宽
  • \(\alpha\) 可调,平衡两种误差

通过网格搜索选择最优 \(\alpha\),实验表明 \(\beta = 3.0\) 时性能最佳。

六、实验与结果

1. 数据集

  • KuaiRecCIKM(公开)
  • Industrial(快手真实数据,60亿样本/天)

2. 评估指标

  • MAE:平均绝对误差
  • XAUC:排序一致性指标

3. 主要结果

数据集 对比模型 性能提升
KuaiRec vs D2Q XAUC +5.85%
Industrial vs D2Q MAE -2.11%
所有数据集 vs VR/WLR/OR 显著优于

4. 消融实验

  • EAD 优于等宽和等频:适当 \(\beta\) 能显著提升性能。
  • 顺序正则化有效:尤其在尾部桶中误差降低明显。
  • Huber 损失最佳:优于 MSE 和 MAE。
  • 桶数 \(M = 30\) 为最佳折中。

七、在线 A/B 测试(快手 App)

指标 结果
实验时间 5 天
流量分配 20% 实验组(CREAD),20% 对照组(D2Q)
观看时长提升 +0.291%(远超常规 0.1%-0.2%)
其他指标 点赞、关注、分享、评论无显著波动

关键发现:在线 A/B 测试中观看时长平均提升 0.291%,这在推荐系统领域是一个显著的改进,远超常规的 0.1%-0.2% 提升。

八、总结与贡献

核心贡献

  1. 提出 CREAD 框架:将观看时长预测建模为分类-恢复问题。
  2. 理论分析误差:分解学习误差与恢复误差,推导上界。
  3. 提出 EAD 方法:通过校准函数平衡两类误差,优于等宽/等频。
  4. 引入顺序正则化:增强模型对桶间顺序的建模能力。
  5. 离线+在线验证:在公开和工业数据集上均显著提升,线上观看时长提升近 0.3%。

实际应用价值

CREAD 框架在快手等大规模短视频平台的实际应用中取得显著效果,证明了分类-恢复框架在处理长尾分布连续预测问题上的有效性。该方法不仅理论完备,而且具有较强的实用性和可扩展性。

← 返回预测