快手视频观时预测的工作 CREAD ,发表于 AAAI 2024,深入分析了分桶策略,在理论上是一篇很棒的工作
背景
观看时长预测本质上是个回归问题,但它的标签分布通常极其长尾:大量样本集中在很短的时长(比如 3 秒内占 30%),而长时长的样本非常稀疏。这种不平衡性让直接做回归很难,模型容易被头部样本带偏,对尾部样本预测不准。
核心矛盾在于:连续值回归难,那就离散化转分类。但现有的分桶方法(比如等宽、等频)都很 heuristic,没有仔细研究过分桶这个动作本身会引入什么误差。本文分析分桶引入的误差主要有两种:
-
**学习误差:**桶太窄,桶内样本就少,分类器学不准
-
**复原误差:**桶太宽,从离散的桶还原成连续值时,近似精度就低(用桶的右端点代表整个桶,太糙了)
等宽分桶会导致学习误差大;等频分桶会导致复原误差大。那能不能自适应地分桶,让两种误差在理论上达到一个最优的平衡?这就是 CREAD 的出发点
方法

CREAD 框架包含三个模块:
-
离散化模块: 把连续的观看时长 y,通过一组阈值 \([t_1, t_2, ..., t_M]\) 分成多个区间,通过 EAD 来找这些阈值(见后面讲解)
-
分类模块: 训练 M 个二分类器,第 m 个分类器负责预测 "观看时长 y 是否大于阈值 \(t_m\)",输出概率 \(\phi_m\)。这样,一段连续的时间就被一串概率序列 \([\phi_1, \phi_2, ..., \phi_M]\) 表示了。
-
**复原模块:**把分类器输出的概率序列,通过期望公式还原成最终的预测时长 ŷ 。原理是预测值是分布期望的近似,等于 "每个区间宽度 × 时长超过该区间右侧阈值的概率" 之和
模型训练的损失函数由三部分组成:标准的分类交叉熵损失、让预测时长 ŷ 更准的复原损失(用的是 Huber Loss),还有一个很关键的序关系正则项。这个正则项强制让输出的 M 个概率满足单调递减的先验(\(\phi_1 > \phi_2 > ... > \phi_M\),因为一个视频的观看时长超过更大阈值的概率肯定更小),保证了预测的物理意义
误差自适应离散化 (EAD)
论文在这里深刻剖析了离散化带来的两种误差,并推导出了它们的误差上界:
-
还原误差的上界 \(\overline{V}_b\) :\(V_b \leq \overline{V}_b \propto A_b(\mathcal{D})\)
其中 \(A_b(\mathcal{D}) = \underbrace{\sum_m \left[\Psi(t_m) - \Psi(t_{m-1})\right]^2}{\text{受样本分布影响的项}} \cdot \underbrace{\sum_m (t_m - t{m-1})^2}_{\text{桶宽平方和}}\)
-
学习误差的上界 \(\overline{V}_w\) :\(V_w \leq \overline{V}_w \propto A_w(\mathcal{D})\)
其中 \(A_w(\mathcal{D}) = \underbrace{\sum_m \left[\Psi(t_m) - \Psi(t_{m-1})\right]^2}{\text{受样本分布影响的项}} \cdot \underbrace{\sum_m \frac{(t_m - t{m-1})^2}{\Psi(t_m) - \Psi(t_{m-1})}}_{\text{宽度的平方除以样本比例}}\)
为了让两种误差的上界最小,EAD 的做法是将它们组合成一个总损失函数 \(J(\mathcal{D})\),并通过优化这个损失来找到最佳划分:
\[\min_{\mathcal{D}} \; J(\mathcal{D}) = A_w(\mathcal{D}) + \beta \cdot A_b(\mathcal{D}) \qquad (21) \]
这就是 EAD 的目标函数了,\(\beta\) 连接了等宽与等频:当 \(\beta \to 0\) 时,EAD 退化为等频划分;当 \(\beta \to \infty\) 时,EAD 退化为等宽划分。EAD 通过调整 \(\beta\),在这两种极端方法之间找到了一个自适应于数据分布的最优点
然而,直接求解高维的 \(J(\mathcal{D})\) 很困难,论文提出了一个巧妙的思路:用一个统一的公式把等宽、等频以及所有可能的中间策略全部表达出来。具体而言, EAD 引入一个校准函数 \(\gamma\),将阈值表示为:
\[t_m = \Psi^{-1}\!\left[\gamma\!\left(\frac{m}{M}\right)\right] \]
如果把 \(\gamma\) 参数化为一个连续函数族 \(\gamma(z; \alpha)\),比如 \(\gamma(z; \alpha) = \frac{1-e^{-\alpha z}}{1-e^{-\alpha}}\),那么 \(\alpha \to 0\) 就是等频,\(\alpha\) 很大就是等宽,\(\alpha\) 在中间则对应某种自适应策略
最终 EAD 通过人工设定超参数 \(\beta\) 并网格搜索 \(\alpha\)(给定一个\(\beta\),遍历不同的 \(\alpha\) 值,选择使得 \(J(\mathcal{D})\) 最小的 \(\alpha\) 值)
实验
实验还是比较全面的,离线实验和在线实验都达到了最佳效果,同时也测试了一些超参数和分桶数量的影响
总结
CREAD 这篇工作解决的问题和解决的方式在理论上都是合理的,我看下来不足之处主要在于又加了比较关键的超参数,\(\alpha,\beta\) 完全决定的分桶的方式,可以说是这篇工作的核心,但是确是人工设定超参+网格搜索遍历,难免不够优雅