DSSM双塔特征交互
Swift Lv6

传统的DSSM双塔无法在早期进行user和item侧的特征交互,这在一定程度上降低了模型性能。我们想要对双塔模型进行细粒度的特征交互,同时又不失双塔模型离线建向量索引的解耦性。下面介绍两篇这方面的工作。

美团-Dual Augmented Two-tower

meituan

  • 在user和item的特征侧分别引入可学习的特征向量
  • 当label=1的时候,user的$a_u$去学习item正样本的输出表征,从而实现隐式特征交互;item侧亦如此

损失函数如下:

  • $p_u$ 和 $p_v$ 梯度冻结,不进行更新

缺点

这种方式引入的交叉特征实际是非常“粗粒度”和“高阶”的,即携带的信息仅仅是对方tower最后输出的表征,对方tower在编码这段表征时,也仅仅只利用了fake的emb和tower本身的输入特征的交互。

百度-I3 Retriever

RankNet

  • 在doc侧设计一个轻量的query生成模块,利用doc侧特征作为输入,去fake一个query侧表征,去重构出query侧的输入特征。当然需要注意的是,也仅仅是在正样本上执行重构loss
  • doc侧与生成的query进行特征交互
  • 交互完的doc侧与query侧对比学习

重构损失函数如下:

对比损失函数如下:


参考

Powered by Hexo & Theme Keep
Unique Visitor Page View