要点简介
我们要解决以下几个问题:
- 视频业务的背景与场景是什么?
- 粗排阶段整体的架构是怎样?
- 粗排架构设计的优缺点
- 粗排双塔建模细节
- 改进双塔方案1:大模型bert模型蒸馏
- 改进双塔方案2:精排蒸馏,指导粗排
- 改进双塔方案3:如何在双塔后增加交互层
- 改进双塔方案4:改进匹配层esim算法
- 改进双塔方案5:多模态通道特征融合
- 模型训练总结
- 粗排策略相关
- 模型压缩
业务的背景与场景是什么?
腾讯视频双排视频流的推荐业务场景,包括2个具体业务场景:
1.视频精品专区模块
2.短视频模块,这个属于综合区
一次用户的检索过程是: 检索-》召回—> 粗排-》精排-》混排-》 用户展现
因为这里涉及到中文标题等,所以用到的更多的是文本nlp相关知识点。
粗排阶段整体的架构是怎样?
上图是腾讯视频流粗排双塔的网络架构。采用的bert的双塔设计。
粗排设计,query一个塔,文本一个塔。2个塔参数共享,分别输出query的embedding和文本的embedding。 然后相乘后经过一个sigmoid得到一个概率值。
这个设计方向最大的好处就是快。其中query可以实时查询得到embedding,文本可以离线计算好。效率高。
粗排架构设计的优缺点
1.缺少query和文本的交互特征
2.交互时机在取的embedding后,时机太晚,丢失细节特征。
粗排双塔建模细节
腾讯视频粗排精品专区也短视频综合区采用的是bert的双塔建模架构。如上图。
因为双塔天然的存在2个问题:
1.缺少query和文本的交互特征
2.文本和query的交互是在embedding后相乘,交互晚了。
所以,这里使用了比较多的trick。
1.针对语义判别,先大模型训练,然后蒸馏到小模型。目的弥补双塔判别不足问题。–这个后面会细说。
2.对齐精排,改进交叉特征缺陷。
3.交互层优化,避免交互晚缺陷。
4.多加几个塔,弥补信息的损失。这块思想即增加信息融合通道。
改进双塔方案1:大模型bert模型蒸馏
12层bert效果更好,但是计算效率低下,所以离线先训练12层的bert模型,然后线上使用4层bert模型,但是用12层的bert模型去指导4层的bert模型。
训练12层bert模型细节 teacher模型
防止过拟合使用的策略:
1.学习率调整
2.加dropout,加到反向传播里,提取随机丢弃
3.梯度累加,用一个指标去判断参数的重要程度,这个指标是FIM(fisher 信息矩阵),最重要的也是分最高的,这部分参数作为网络去更新传输。
腾讯视频这个场景,第3种的效果不如第2种。 第2种12层的bert模型 auc+0.4
3.针对bert采用不同的mask比例,选择最合适的比例是多少,没有细说,效果是使12层的bert模型auc+0.5,12层的bert的auc0.861
4层的bert模型细节。student 模型
1.加了一个kd loss(kd指的是knowledge distill loss)
2.12层的bert模型的样本得分指导4层的bert模型,去训练,auc增加1.99
改进双塔方案2:精排蒸馏,指导粗排
目的是补充粗排的特征交互不足问题。好处是可以提高粗精排的一致性。
分析办法:
离线数据集,用精排对测试集打分。正负样本对有M种。
粗排在精排打分的测试集上打分,看粗排打分的正序对有N种。
N/M=70.5%。
存在差异,这种差异产生原因就是:
1.特征集不同。粗排是双塔结构,没有文本和query的特征交叉。精排有
2.模型结构,粗排是单一的,交互也是embedding后,比较浅,精排是深的。
为了缩小gap,弥补粗排特征的不足,知识蒸馏精排指导粗排。
在这个阶段,teacher是精排,student是粗排。
这里有个经验:
1.训练后期,可以适当增大蒸馏的loss。
2.训练后期,取消粗排阶段的loss,因为后期模型已经学到了很多语义知识了。这样可以扩大精排对粗排的影响力,这个方案使得 auc增加1.28%, auc达到 0.854 。粗排正序对增加5.37% ,占精排的正负样本对为75.85%。在线时长+2.27%。
改进双塔方案3:如何在双塔后增加交互层
这个点主要在于弥补精排的特征交互不足问题。
1.multi-head的思想,主要解决一词多义问题。
2.目前的双塔是叉乘,匹配能力不足,想办法增加匹配能力
multi-head
1.通过bert模型提取出query的向量
2.bert的输出连接各种nn网络,映射不同embedding空间。
利用这个multi-head思想内部的soft attention 乘法来打分,auc增加1个点。auc达到0.848
改进双塔方案4:改进匹配层esim算法
主要是目前的双塔embedding直接点成,匹配度低。 改进办法 为esim办法。 交互更加充分。
优点:突出核心语料。匹配效果好。 缺点,复杂度高。在线推理压力大。改进办法:模型压缩。
比上面的soft attention doct方式,auc增加0.59
esim思想:
1.query和doc得到每个句子的embdddin -》 匹配矩阵
2.nn网络
3.得到score
改进双塔方案5:多模态通道特征融合
因为双塔是最后才融合,信息交叉太晚,自然想到如何弥补信息损失。方式有增加塔个数和宽度。
这里介绍是另一种办法,融合多模态特征。主体思想是,
不同的模态特征,单独的向上通道。如下的架构图
这里重点在于如何融合不同的模态特征为最终的特征。 如文本用xlm,类别直接embedding等和多塔的embedding融合。
模型训练总结
1.12层的bert模型指导4层的bert模型。auc增加1.99
2.样本是搜索点击,正负样本不准确,人工标注一部分,但是量少,办法:改变蒸馏策略: 每个batch,query和文本doc的相似度得分,4层的bert模型要学习这个得分。这个办法使auc增加1.42%。 现在4层的bertauc是0.832
粗排策略相关
针对精排专区视频:
粗排直接截断粗排得分低的视频。这里涉及到卡多少分算低,需要实验设计。
针对短视频综合区
粗排是按照得分先分档,具体多少分在一个档位,分多少个档,需要设计。
档内根据粗排的ctr排序筛选。
模型压缩
这里主要谈了4个方面。
1.涉及到乘法等,尽量用矩阵去乘,这样便于mkl加速
2.减少head数目和各层参数
3.pooling方式
4.信息对齐增强办法尝试