视频号多模态学习应用初探(一)

2021-03-03 12:40:15 浏览数 (2)

作者:jayjpye  腾讯WXG工程师

|导语 视频号是一个典型的多模态场景, 其包含了视频, 图像, 文本, 行为等多种信息. 本文以学习多模态Feed Embedding为出发点, 列举了多模态学习上的一些尝试.

01

背景

视频号是一个典型的多模态场景, 其包含了视频, 图像, 文本, 行为等多种信息. 本文以学习多模态Feed Embedding为出发点, 列举了多模态学习上的一些尝试.

一个有效的Feed Embedding在推荐系統的应用也非常广泛. 比如, 在召回层可以用相似检索做召回, 粗排层可以用作内容打散, 精排层可以作为内容层面的特征.

02

基础特征

由于每个模态的特征分布都不同, 我们很难用一个模型对各个模态的Raw input建模, 因此, 我们先对各个模态分别用相应的预训练模型进行特征提取.

文本

我们使用BERT模型对文本序列进行特征提取. BERT的模型结构与Transformer Encoder一样, 主要组成是Multi-head Attention:

此外, BERT还在预训练上面做了优化, 从GPT的单向语言模型改进到了双向Masked LM, 并增加了next sentence prediction的任务.

在对每个字提取Embedding后, 我们用字Embedding的mean pooling作为句向量. 需要注意的是, 在未经训练的模型上, 我们不建议取[CLS] token的embedding作为句向量, 因为在预训练模型中, 该token只被用来训练next sentence prediction, 信息量不足, 且后续研究表明, nsp并不是一个十分有效的训练任务.

视频/图像

对于视频, 我们先对视频进行等距抽帧, 然后使用BiT对每一帧图像进行特征提取. BiT各个模型在部分下游任务的效果参见下图

综合考虑模型效果和计算量, 我们使用ResNet-101X1.

HashTag优化

在社交网络中, hashtag有特别的意义. 在视频号中, hashtag要么是对feed的高度概括, 要么是话题, 当然, 还有一部分蹭热度. 无论哪种情况, hashtag与其他文本的pattern都不一样. 然而,由于训练语料不同, 预训练BERT无法正确理解hashtag的特殊含义. 因此, 为了强化hashtag的信息, 将描述和hashtag内容分离,将hashtag单独作为一个模态处理:

03

训练任务构造

在有各个模态的特征后, 我们需要构造一个任务, 来训练模型。回顾我们的目标,我们想要得到的是一个feed embedding,因此训练任务的结果并不重要,重要的是训练出来的这个feed embedding有以下特性:

  • 无偏,我们想要这个feed embedding能够广泛应用于各种下游任务,因此,我们不想该embedding因训练任务而产生信息上的偏重。举个极端的例子,如果我们设计的训练任务为:预测(其实就是数)feed描述的文本长度,那么embedding会极度偏重文本长度数这个信息
  • 多模态,我们想要这个feed embedding包含了各种模态的信息,那训练的任务就需要是必须同时对多种模态信息进行建模才能正确预测的。还是上面的例子,模型只需要关注文本模态信息即可正确地预测

综合上面的两点考虑,我们设计了模态互匹配任务。

如上图所示,我们同时将各个模态的信息输入到模型中,并且让模型去判断它们是否来自于同一个feed,我们通过随机替换掉某个模态的信息来构造负样本。

在实际使用中,由于我们有三个模态的数据:视频,描述(去掉hashtag),hashtag,我们可以构造下面三个任务:

  • 视频/描述是否来自同一feed
  • 描述/hashtag是否来自同一feed
  • 视频/hashtag是否来自同一feed

即,假设我们有N个模态,我们可以构造C(N,2)个任务。

我们认为,模态互匹配任务是符合上面提到的两个特性的:

  • 无偏,模型需要理解两个模态的内容,才能够知道两个模态是否在说同一件事
  • 多模态,缺少了任意一个模态,都有N-1个任务无法正确预测

04

跨模态Attention模型

在我们一开始的尝试中,我们将每个模态的信息通过简单的拼接后直接输入到一个Dense层中做fusion:

这里的模态间处理偏简单,没有模态间的交互,因此,我们提出了跨模态Attention模型

在输入时,我们通过初始化来构造一个context vector作为Q, 去对各个模态的向量进行关注,具体地:

Q: 随机初始化的context vector K,V: 模态向量 context vector

05

总结

本文中,我们叙述了我们在学习多模态embedding时在特征优化,任务设计和模型优化上做的一些尝试,目前该模型也在推荐中有广泛的应用。

近期热文

拒绝“枯燥”设计 | 页面自动化配色的探索之路

小商店从0到1的系统能力构建之路

大数据AI时代的产品修炼之路:A/B测试

让我知道你在看

0 人点赞