每天给你送来NLP技术干货!
作者 | 朱耀明
单位 | 字节跳动人工智能实验室
研究方向 | 机器翻译
排版 | PaperWeekly
本文提出了一种自监督学习方法,让不同模态的数据可以被建模到同一个离散的细粒度表征中——即用一个类似词表的东西来建模跨模态的数据。作者认为用这种离散化的“词”可以提升跨模态检索的精度、并且让模型有更好的解释性。
论文标题:
Cross-Modal Discrete Representation Learning
作者单位:
MIT麻省理工学院
论文链接:
https://aclanthology.org/2022.acl-long.215/
研究目的
作者认为以往的多模态模型仍然使用的是连续向量特征来建模各个模态的数据,而连续向量空间有两个问题:一是它们的 encoder 往往是彼此独立的,使得要比较不同模态 encoder 的激活很困难;二是连续向量是无界的,使得其表征学习的解释性差。
笔者注:我不是很理解此处所谓“不同模态 encoder 的激活”(activations of the encoders from different modalities)是什么意义。有想法的读者可以在评论里说一说。
作者由此引入了离散词表来学习并建模跨模态的数据,并发现离散词表可以促进跨模态检索的效果。
方法简介
作者的方法有点类似把 VQ-VAE [1] 和 CLIP [2] 做结合。
▲不同模态的数据会被分别经过“连续向量路径”和“离散词路径”,分别为连续向量和离散词向量作为其的特征;最终的特征为二者的向量和。
作者会引入一个离散化词表称为 codebook,codebook 记录了每个词的 embedding。
对于一对不同模态的的关联数据,比如视频 和它的音频 ,作者会先用对应模态的 encoder 来将其分别表征为连续向量 和 。之后,向量 和 会分别被拆解成两种表征,分别为连续向量和离散词向量,并将两者相加作为其最终的表征。
以向量 举例:一条路径上它仍会被表征连续表征,本质还是利用一个深层 encoder 来把 继续抽取成深度信息,得到向量 ;另一条路径上它会被投影到离散词表 codebook 的空间上,并用 codebook 中 embedding 与之最接近(以 L2 norm 作为举例)的“词”来代替它,获取对应的词向量 。视频 最终的表征向量就是 。
在训练上,需要做两个训练:其一是训练框架中的 encoder 结构,这里作者使用了对比学习,使用 Masked Margin Softmax loss [3] 来拉进相关的跨模态数据、排斥不相关的跨模态数据;其二是 codebook 词表中词向量的训练,这一块可以参考 VQ-VAE [1] 原文,作者在 VQ-VAE 的基础上增加了 Cross-Modal Code Matching 目标,旨在防止不同模态在词表上发生聚类,使得 codebook 上每个单词实质上只能表征单一模态的信息。作者的 Cross-Modal Code Matching 核心思想是计算单词间的交叉熵来衡量词相似度,设计 loss 来鼓励模型在不同模态的表征上使用相似的单词。
▲单词embedding间的交叉熵作为单词相似度的指标,鼓励使用相似的单词来表征不同模态。作者在附录里的实验说明了Cross-Modal Code Matching显著地提升了codebook跨模态的能力。
实验探索
作者在 video-text, video-audio, image-audio 三种跨模态检索任务上做了实验,并超越 baseline。具体的实验结果不赘述了,这里讲讲有意思的发现:
1. codebook 解释性上,作者发现了 codebook 可以自主地学会表示内容,譬如在 video-audio 任务上,#201 单词就学到了 juggling 的语义,并且能帮助检索 juggling 有相关信息的视频和音频。
▲作者列出的高频词的词表表编号即其学到的信息
2. codebook 的检索也更精确,如下图所示,在语音读到“basketball”或者视频正在投篮时,单词 #664 会被更显著的激活:一方面提升检索精确度,另一方面也侧面印证了其解释性。
笔者简评
近期有许多工作想用离散的“词”来建模诸如视频、音频等的连续特征。比如 VQ-VAE、DALLE [4]、HuBERT [5] 等。离散化的表示一方面有很好的解释性、诸如本文的分析,另一方面对于下游任务也更加节省空间、也更容易适配不同的模型,此外还有论文指出离散化可以解决 posterior collapse 等问题。
这篇论文把离散化表示和跨模态结合在了一起,并且提出了方案来防止词表在不同模态上聚类导致不能学习到扩模态的信息,论文的架构和 loss 设计都很值得一读。
一个缺点是论文的离散化是不完全的,每个模态最终的表征采用了离散 连续的方案,这可能是作者在性能和解释性之间达到的一个折中,侧面说明了使用的 VQ 离散化方案虽然有种种优点,但可能还是带来了性能损失(笔者很好奇如果完全不用连续向量向量 的话,模型性能会降多少)。此外,作者的任务没有和最热门的 vision-text 检索做对比,或许是因为这类任务太卷了、SOTA 太强,离散化的表征还不能征服 vision-text 相关的任务。
相关链接
[1] https://arxiv.org/abs/1711.00937
[2] https://openai.com/blog/clip/
[3] https://arxiv.org/pdf/1612.02295.pdf
[4] https://openai.com/blog/dall-e/
[5] https://arxiv.org/abs/2106.07447