查看原文
其他

“并联”双塔模型 | 你还不知道怎么玩吗!

腾讯看点技术 QQ浏览器实验室 2022-04-27
作者:涂兰桂、栾洪波。 点击上方蓝字,发现更多精彩
导语

       双塔模型广泛应用于推荐、搜索、广告等多个领域的召回和排序阶段,模型结构可分为user、item 两个塔,先在塔内构建网络结构生成 user、item 两个向量表示,然后通过两个向量的内积或者 cosine 来拟合 label 进行训练。在线 serving 阶段由于 item 向量可以预先计算好,所以每次请求只需计算一次 user 向量,多次内积或者 cosine 即可,从而性能非常强,但由于存在某些缺点,双塔模型的效果也受到限制:1、特征受限,无法使用交叉特征;2、模型结构受限,user 和 item 分开构建,最后只通过一次内积来交互,不利于 user-item 交互的学习。       在 QQ 浏览器小说推荐场景中,我们在召回和粗排阶段都使用了双塔模型,并在双塔模型结构上进行了探索和创新来提升模型的效果,主要创新思路在于:1、尝试通过"并联"多个双塔结构(MLP、DCN、FM、FFM、CIN)增加双塔模型的"宽度"来缓解双塔内积的瓶颈从而提升效果;2、对"并联"的多个双塔引入 LR 进行带权融合,LR 权重最终融入到 userembedding 中,使得最终的模型仍然保持的内积形式。这些尝试在小说推荐场景都取得了不错的收益。


一. 并联双塔模型架构

模型架构总的来说可以分成三层,分别是输入层、表示层和匹配层。结构如下图所示:
  1. 输入层:将 user 和 item 特征映射成 feature embedding,方便在表示层进行网络构建,小说场景下的 user 特征包括用户 id、用户画像(年龄、性别、城市)、行为序列(点击、阅读、收藏)、外部行为(浏览器资讯、腾讯视频等)。item 特征包括小说内容特征(小说 id、分类、标签等)、统计类特征等。所有特征都经过离散化后再映射成embedding。

  2. 表示层:并联各种深度神经网络模块(MLP、DCN、FM、CIN 等)从多个角度学习输入层 feature 的融合和交互,生成并联的 user、item 向量用于匹配层计算。这里user-user 和 item-item 的特征交互直接在塔内的网络结构可以做到,而 user-item的特征交互只能通过顶层的内积操作实现,所以这里网络结构的设计重点是提升双塔结构的 user-item 的特征交互能力。

  3. 匹配层:将表示层得到的并联 user 和 item 向量进行 hadamard 积(相当于多个双塔拼接),再经过一个 LR 进行结果融合,在线 serving 阶段 LR 的每一维的权重可预先融合到 user embedding 里,从而保持在线打分仍然是内积操作。


二. 双塔的MLP/DCN结构

双塔内一般都会使用 MLP 结构(多层全连接),我们还引入了 DCN 中的 Cross Network 结构用于显式的构造高阶特征交互,并且参考的是 Google 论文改进版 DCN-Mix。
DCN 结构
DCN 的贡献主要是引入的 cross network,一种新型的交叉网络结构,可以用来提取交叉组合特征,避免人为设计的特征工程,这种网络结构足够简单同时也很有效,可以获得随网络层数增加而增加的多阶交叉特征,后来 Google 提出改进版 DCN-Mix,主要针对 cross network 进行了改进,原理如下:
原始 Cross Network 公式
原始的 Cross Network 可以显示地学习到高维的特征交互,但它存在一个问题,就是被证明最终的 k 阶交互结果 xk 等于 x0 乘以一个标量 scalar(并不意味着 x0 和 xk 是线性关系的,因为对于不同的 x0,这个标量是不一样的),由于这个局限性,限制了 Cross Network 的表达。
改进的 Cross Network 公式
改进点:
  1. 将 W 由向量变成矩阵,参数量增加、提升了表达能力(W 矩阵也可以进行矩阵分解、还可以利用 MOE 多专家的思想在多个子空间分解)

  2. 特征交互方式由外积变成了 hadamard 积


三. FM/FFM/CIN的显式特征交互

DCN 是将塔内各个 feature embedding 进行 concat 后的结果当成一个整体,然后进行处理的特征交互,不能算是真正意义上特征粒度的 "显式特征交互",而且 DCN 的特征交互主要局限在塔内部的 user-user、item-item 的的交互,相比之下 FM / FFM / CIN 可以操作特征粒度的显式交互,且更重要的是它们的计算公式都能转化成内积的形式,从而能直接实现双塔建模 user-item 的特征粒度的交互。
FM 的双塔形式
FM 通过矩阵分解的方法建模特征的二阶交互,计算公式表现为特征 embedding 的两两内积操作再求和,通过内积运算分配率可以转换成求和再内积的形式。如上图,在这里我们只考虑了 user-item 的交互,公式中的 i 是 user 侧的特征,j 是 item 侧的特征,可以看到通过上述公式的转换,user-item 的二阶特征交互可以转化为 user、item 特征向量先 sum pooling 后再做内积,也就转成了双塔的形式。
FFM 的双塔形式
FFM 是 FM 的升级版,通过引入 field 概念使得特征交互可以在不同的隐向量空间,从而达到区分能力更强、效果更好,目前也可以通过一些方法转换成双塔内积的计算方式。
举例说明:
如下图,user 有 2 个特征 field、item 有 3 个特征 field,两两特征交互都有独立的embedding 向量
使用 FFM 计算 user-item 的二阶交互需要将所有的内积计算出来并求和
通过将 user、item 的特征 embedding 重新排序+拼接后 FFM 也可转换成双塔内积形式
FFM 内的 user-user 和 item-item 由于都在塔内,所以可预先算好放入一阶项里。实践中我们发现双塔使用 FFM 后训练 AUC 提升明显,但由于参数量增加很多过拟合也比较严重,而且双塔的宽度会达到万级别,对性能影响较大,我们尝试了一些优化工作:
1、人工精选出参与 FFM 训练特征交互的 user 和 item 特征 field,使得双塔宽度维持在 1000左右 2、对 FFM 的 embedding 参数的初始化和学习率进行调整(初始化接近 0 值并降低学习率)
但最终效果不是很理想,因此线上版本并未使用 FFM。
CIN 的双塔形式
FM/FFM 主要是二阶特征交互,而 CIN 可以实现三阶及以上的特征交互(user-user-item、user-user-item-item、user-item-item 等),CIN 在双塔我们尝试了两种用法:
用法一:CIN(user) * CIN(item)
塔内生成 user、item 的多阶 CIN 结果,然后分别 sum pooling 生成 user/item 向量,然后user 与 item 向量内积
由于 sum pooling 再内积满足分配率,公式拆开后发现已经同时实现了 user-item 的多阶交互
此用法比较直观、实现起来比较简单,在各塔内部做 CIN 生成的各阶结果做 sumpooling,最后类似 FM 原理通过内积实现 user-item 的各阶交互,缺点在于这里生成的 user-item 二阶及以上的特征交互都具有 FM 类似的局限性,比如:U1 是由 user 侧提供的多个特征直接sumpooling,而 U1 与 item 侧的结果内积时代表每个 user 特征在这里重要度都是一样的。
用法二:CIN( CIN(user) , CIN(item) )
塔内生成 user、item 的多阶 CIN 结果后,不是 sum pooling 再计算内积,而是对 user、item 的 CIN 结果再次两两使用 CIN 显式交互,并转成双塔内积

将 CIN 处理公式化如下图,多个卷积结果做 sum pooling 后形式保持不变(两两 hadamard积加权求和)
CIN 的形式和之前的 FFM 类似,也可以通过重新排列+拼接操作转换成双塔内积形式,生成的双塔宽度也非常大(万级别),但这里和 FFM 有所不同的是:CIN 的所有特征交互,底层使用的 feature embedding 是共享的,而 FFM 对每个二阶交互都有独立的 embedding。因此在这里基本没有出现过拟合问题,实验效果上比 CIN 的第一种用法略好。

四. 训练效果

在 QQ 浏览器小说推荐 CTR 预估上看训练效果,分别训练了各双塔结构的效果,然后再尝试“并联”多个双塔在一起的效果,如下表:
从本次训练结果中看到,CIN2 在单结构的双塔模型中的效果是最好的,其次是 DCN 和 CIN1的双塔结构;并联的双塔结构相比于单一的双塔结构在效果上也有明显提升,效果更好的并联方案二由于使用了 CIN2 的结构,使得双塔宽度达到了 2 万+,对线上 serving 的性能有一定的挑战,从性价比上来说方案一更好的平衡了效果和算力。

训练细节:
  1. FM/FFM/CIN 等结构由于计算性能的原因,都只在精选特征子集上面训练,选取维度更高的 category 特征为主,比如用户 id、行为历史 id、小说 id、标签 id 等,还有少量统计特征,user 侧、item 侧大概各选了不到 20 个特征 field

  2. 并联的各双塔结构都不共享底层 feature embedding,各自训练自己的 embedding

  3. feature embedding 维度选择,MLP/DCN 对 category 特征维度为 16,非 category特征维度是

  4. FM/FFM/CIN 的 feature embedding 维度统一为 32


五. 实验效果

在小说推荐场景的粗排阶段上线了 A/B Test 实验,实验组的点击率、阅读转化率模型使用了”并联双塔方案一“,对照组为 MLP 双塔模型,实验效果有明显正向收益:点击率+6.8752%,阅读转化率+6.2250%,加书转化率+6.5775%,总时长+3.3796%。


六. 总结

双塔模型由于性能和效果都不错,广泛应用在各场景,业界也有很多在这基础上进行优化的实践,本文调研了多种双塔方案的效果(MLP/DCN/FM/FFM/CIN),在尝试 CIN 转换为双塔的方法上有自己的理解和想法,最终提出将多个双塔进行并联的方案,在离线训练 AUC 和在线A/B Test 实验效果上都验证了方法的有效性,相信在这个优化方向上继续努力还会有进一步的提升。


参考文献

[1] Huang, Po-Sen, et al. "Learning deep structured semantic models for web search using clickthrough data." Proceedings of the 22nd ACM international conference on Information & Knowledge Management. 2013.[2] S. Rendle, “Factorization machines,” in Proceedings of IEEE International Conference on Data Mining (ICDM), pp. 995–1000, 2010. [3] Yuchin Juan, et al. "Field-aware Factorization Machines for CTR Prediction." Proceedings of the 10th ACM Conference on Recommender SystemsSeptember 2016 Pages 43–[4] Jianxun Lian, et al. "xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems" Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data MiningJuly 2018 Pages 1754–1763[5] Ruoxi Wang, et al. "Deep & Cross Network for Ad Click Predictions" Proceedings of the ADKDD'17August 2017 Article No.: 12Pages 1–[6] Wang, Ruoxi, et al. "DCN V2: Improved Deep & Cross Network and Practical Lessons for Webscale Learning to Rank Systems" In Proceedings of the Web Conference 2021 (WWW '21); doi:10.1145/3442381.3450078


更多精彩推荐,请关注我们

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存