Privileged Features Distillation at Taobao Recommendations
背景
ctr&cvr预估任务中有很多非常有区分性的特征没法使用,比如用户点击之后的互动时长、点击之后的一些页面动作信息,因为只有离线训练的时候能拿到,线上预估的时候是拿不到的,为了保持线上和线下的一致性,这些“优势特征”(Privileged Features)就会被忍痛割爱舍弃掉。那么如何有效利用这些优势特征呢?
解决方案
通过蒸馏的方式,teacher模型的特征输入包含了优势特征,teacher模型和student模型结构一样,只是特征输入不同,teacher模型将学习到的信息蒸馏迁移到student模型。student的输入中没有优势特征,这样线上infer的时候,student模型可以正常工作。
方案详情
与常规的蒸馏模型不同,PFD(Privileged Features Distillation)中teacher和student模型结构上是一致的,只是输入不同。常规的MD(Model Distillation)是teacher模型结构非常复杂,student模型结构简单。
对比如下:
特征输入
X
\mathbf X
X,优势特征
X
∗
\mathbf X^*
X∗,student的模型参数
W
s
\mathbf W_s
Ws,teacher的模型参数
W
t
\mathbf W_t
Wt,student模型是原来的主模型,这里加了一个蒸馏loss
L
d
L_d
Ld,蒸馏loss用来衡量是teacher模型输出和student模型输出的差异情况的。
如果teacher模型先训练好,然后再来训练student模型,loss如下
但是teacher模型先训练好可能会比较费时,可以同步训练teacher模型和student模型,loss如下
我们希望teacher和student的预测输出足够接近,可以使用均方误差如下:
L
d
=
1
N
∑
i
=
1
N
(
f
(
X
∗
;
W
t
)
−
f
(
X
;
W
s
)
)
2
L_d = \frac {1} {N} \sum_{i=1}^N (f(\mathbf X^*;\mathbf W_t) - f(\mathbf X;\mathbf W_s))^2
Ld=N1i=1∑N(f(X∗;Wt)−f(X;Ws))2
也可以使用KL 散度,将teacher和student的输出都当做一个分布,KL散度用来衡量分布差异效果较好。
特征输入示意图如下
粗排阶段优势特征蒸馏
蒸馏方式:交叉特征效果非常好,但是一般没法用在粗排上面,作为优势特征输入到teacher模型
精排阶段优势特征蒸馏
蒸馏方式:用户点击之后的行为特征,比如点击后的停留时长、有没有咨询客服、有没有浏览评论等信息,这些特征作为优势特征输入到teacher模型。
实验
进一步可以将MD和PFD结合起来,可以让teacher模型结构更加复杂,容量更大。
效果更好
超参数
λ
\lambda
λ的调节
同步(Synchronous)训练时teacher和student的参数共享效果更好,耗时也更低,学习的更充分。