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)方法,无法平衡两类误差:
- 学习误差:桶太细 → 每个桶样本少 → 分类器难训练。
- 恢复误差:桶太宽 → 用桶内均值替代真实值 → 误差大。
- 缺乏对桶间顺序关系的建模。
- 离散化方式不优:常用等宽(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. 数据集
- KuaiRec、CIKM(公开)
- 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% 提升。
八、总结与贡献
核心贡献
- 提出 CREAD 框架:将观看时长预测建模为分类-恢复问题。
- 理论分析误差:分解学习误差与恢复误差,推导上界。
- 提出 EAD 方法:通过校准函数平衡两类误差,优于等宽/等频。
- 引入顺序正则化:增强模型对桶间顺序的建模能力。
- 离线+在线验证:在公开和工业数据集上均显著提升,线上观看时长提升近 0.3%。
实际应用价值
CREAD 框架在快手等大规模短视频平台的实际应用中取得显著效果,证明了分类-恢复框架在处理长尾分布连续预测问题上的有效性。该方法不仅理论完备,而且具有较强的实用性和可扩展性。
← 返回预测