Press "Enter" to skip to content

Meta AI 发布 data2vec!统一模态的新里程碑!

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

文 | ZenMoore

 

编 | 小轶

 

如果让大家举一个最成功的自监督模型的例子,尤其对于各位 NLPer,肯定毫不犹豫地祭出我大 BERT. 想当年 BERT 打了一个名叫 MLM (Masked Language Model) 的响指,直接成了 NLP 灭霸。

 

视觉界、语音界闻声而来,纷纷开启了 BERT 的视觉化、语音化的改造。

 

视觉界,以 patch 或者像素类比 NLP 的 token;语音界,虽然不能直接找到 token 的替代,但是可以专门做 quantification 硬造 token.

 

但是,思考这样一个问题:为什幺这些图像或者语音模态的自监督,非要一股 NLP 味儿呢?

 

要知道,虽然确实有生物学的研究表明,人类在进行视觉上的学习时,会使用与语言学习相似的机制,但是, 这种 learning biases 并不一定完全可以泛化到其他模态 。

 

所以有没有什幺办法,能够 把不同模态的自监督表示学习统一起来 ,不再是仿照 MLM 做 MIM (Masked Image Modelling)、MAM (Masked Audio Modelling)?

 

昨天,Meta AI (原 Facebook)发布最新自监督学习框架 Data2Vec,立即在整个 AI 圈疯狂刷屏。这份工作或许预示着——多模态的新时代,即将到来。

 

本文就为大家简单解读一下,这份 AI 圈的今日头条,究竟做了些什幺。

 

论文标题:

 

Data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Language

 

论文作者:

 

Alexei Baevski, Wei-Ning Hsu, Qiantong Xu, Arun Babu, Jiatao Gu, Michael Auli

 

Meta AI, SambaNova

 

论文链接:

 

https://ai.facebook.com/research/data2vec-a-general-framework-for-self-supervised-learning-in-speech-vision-and-language

 

模型算法

 

编码、掩码

 

首先,对于三个不同的模态:文本、图像、语音,采用不同的编码方式以及掩码方式。

 

模态特定的编码方式 :

 

 

文本模态 : token embedding

 

图像模态:参考 ViT[1, 2],以 image patch 为单位,经过一个线性变换(linear transformation)

 

语音模态:使用多层一维卷积对 waveform 进行编码[3]。

 

 

模态特定的掩码方式:

 

 

文本模态:对 token 掩码

 

图像模态:block-wise masking strategy [2]

 

语音模态:对语音模态来说,相邻的音频片段相关性非常大,所以需要对 span of latent speech representation 进行掩码 [3]

 

 

掩码符为训练后得到的 MASK embedding token,而不是简单的 MASK token,原因且看下文。

 

Student : 模型训练

 

之后,在 student-mode 中,根据 masked input 对掩码位置的 表示 进行预测。需要注意的是,这里模型预测的并不是掩码位置(如 text token, pixel/patch, speech span),而是 掩码位置经过模型编码后的表示 。因为这个表示经过了 Attention/FFN 等一系列模块的处理,自然是 模态无关的 ,不仅如此,它还是 连续的(continuous) ,编码了丰富的 上下文语义(contextualized) 。

 

如果把输入空间比作物理世界,表示空间比作精神空间。那幺,作者相当于直接在“精神空间”中想象被遮住的部分(mask),颇有一种“梦里看花”的感觉。上次见到这“梦一般”的算法,还是 Hinton 老爷子的 Sleep-Wake[4].

 

具体地,训练目标为如下的 smooth L1 loss:

 

其中,为使用 teacher model 构建的 training target;为 student model 在时刻的输出;是超参,用来调整 L1 损失的平滑度。

 

Teacher : 数据构建

 

最后,还有一个问题,既然变成了对表示的掩码而非对原输入的掩码,那幺训练数据怎幺来呢?

 

这就是 teacher-mode 的妙用。与 student-mode 不同的是,teacher-mode 的输入不再是 masked input,而是 original input, 这样,掩码位置对于 teacher 来说就是可见的,自然能够得到掩码位置对应的表示,而这个表示,就是 student-mode 的 training target .

 

当然,为了保证“师生”两个模型的一致性,两者的 参数是共享的 。另外,又为了在训练初期让 Teacher 的参数更新更快一些,作者采用了一个指数滑动平均(EMA):.

 

其中,是 Teacher 的参数,是 Student 的参数,类似于学习率,也是一个带有 scheduler 的参数。

 

具体地,training target 这幺构建(按步骤):

 

 

找到 student-mode 输入中被 mask 掉的 time-step

 

计算 teacher network 最后 K 层 transformer block 的输出:

 

归一化 :

 

平均 :, 即 training target.

 

 

对于第三步的归一化:语音模态采用 instance normalization 文本和图像模态采用 parameter-less layer normalization

 

Representation Collapse

 

在实验中,作者还遇到了 Representation Collapse 的问题:模型对于所有掩码片段输出非常相似的 representation.

 

这个已经有好多解决办法啦~ 对于本文,有以下几种情况:

 

 

学习率太大或者其 warmup 太短:通过调参解决

 

指数滑动平均太慢了:还是调参

 

对于相邻 target 相关性强的模态或者掩码片段较长的模态 (比如语音模态):设置 variance 罚项[5],或者归一化[6],归一化的效果更好一些。

 

而对于 targets 相关性不那幺强的模态例如 NLP/CV 等,momentum tracking 就足够。

 

 

与同类工作的对比

 

与其他 NLP 自监督算法的对比:

 

和 BERT 不同,本文预测的并不是离散 token, 而是 continuous/contextualized representation.

 

好处1: target 不是 predefined (比如有预定义的词表等), target set 也是无限的 (因为是连续的),因此可以让模型更好的适配特定的输入

 

好处2:考虑了更多上下文信息

 

与其他 CV 自监督算法的对比:

 

 

与 BYOL[6]/DINO[7] 等:本文新增了掩码预测任务,而且是对多层进行回归(即参数 K)

 

与 BEiT[2]/MAE[8] 等带掩码预测任务的算法:本文对 latent representation 进行预测

 

 

与其他 Speech 自监督算法的对比:

 

 

与 Wav2vec2.0[3]/HuBERT[9] 等 : 其他工作一般需要另外预测 speech 中的离散单元(或联合学习或交互学习),而本文不需要 这种 quantification.

 

 

与多模态预训练的对比:

 

本文工作重点不在于多模态任务或者多模态训练,而在于如何把不同模态的自监督学习目标统一起来。

 

实验结果

 

计算机视觉

 

实验任务:Image Classification

 

实验结论:可以看到本文工作有较明显的改进

 

语音

 

实验任务:Automatic Speech Recognition

 

实验结论:改进很明显

 

Natural Language Processing

 

wav2vec 2.0 masking : masking span of four tokens[3]

 

实验任务:GLUE

 

实验结果:作者仅仅对比了 19 年的两个 baseline, 说明在文本模态上的改进效果仍然受限,但是这个分数也非常好了

 

Ablation 1 : layer-averaged targets

 

这也是和 BYOL[6]/DINO[7] 等模型的一大区分:对多层进行回归

 

从图表可见,比起只使用 top layer, 平均多层输出来构建 target 是很有效的!

 

Ablation 2 : 使用 Transformer 的哪一层?

 

基于语音模态进行实验,发现使用 FFN 层输出最有效,使用自注意力模块的输出基本没用。原因:自注意力模块在残差连接之前,得到的 feature 具有很大的偏差(bias)。

 

写在最后

 

也许,在表示空间中而非输入空间中进行掩码预测的自监督表示学习,是自监督未来的重要方向!

 

不过,作者也指出 Data2Vec 的一大局限: 编码方式以及掩码方式仍然是 modality-specific 的 。能否使用类似于 Perceiver[10] 的方式直接在 raw data 上进行操作?或者是否真的有必要统一各个模态的 encoder 呢?

 

犹记得卖萌屋作者群里有过这幺一个分享,是 Yoshua Bengio 等在 EMNLP’20 的文章[11],里面界定了 NLP 发展的五个阶段:

 

毋庸置疑,多模态的火热标志着我们正在进入第三个阶段:多模态时代。

 

Data2Vec 巧妙地使用“梦里看花”的方式,让我们看到了自监督的强大威力,也让我们意识到模态统一大业就在眼前!也许,现在的 Data2Vec,只是一颗不能发挥全部威力的宝石,就像 Word2Vec 一样,但相信在不久的将来,从 Data2Vec 出发,能够看到一统多模态的灭霸,就像 BERT 那样!山雨欲来,风满楼!

 

萌屋作者:ZenMoore

 

来自北航中法的本科生,数学转码 (AI),想从 NLP 出发探索人工认知人工情感的奥秘… 个人主页是 zenmoore.github.io, 知乎 ID 是 ZenMoore, 微信号是 zen1057398161, 嘤其鸣矣,求其友声!

 

[1] An image is worth 16×16 words: Transformers for image recognition at scale.

https://arxiv.org/abs/2010.11929

 

 

[2] Beit: BERT pre-training of image transformers.

https://arxiv.org/abs/2106.08254

 

[3] Baevski, A., Zhou, Y., Mohamed, A., and Auli, M. wav2vec 2.0: A framework for self-supervised learning of speech representations. In Proc. of NeurIPS, 2020b

 

 

[4] The wake-sleep algorithm for unsupervised neural networks

https://www.cs.toronto.edu/~hinton/csc2535/readings/ws.pdf

 

 

[5] Vicreg: Varianceinvariance-covariance regularization for self-supervised learning.

https://arxiv.org/abs/2105.04906

 

 

[6] Bootstrap your own latent: A new approach to self-supervised learning

https://arxiv.org/abs/2006.07733

 

 

[7] Emerging Properties in Self-Supervised Vision Transformers

https://arxiv.org/abs/2104.14294

 

 

[8] Masked Autoencoders Are Scalable Vision Learners

https://arxiv.org/abs/2111.06377

 

 

[9] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units

https://arxiv.org/abs/2106.07447

 

 

[10] Perceiver: General Perception with Iterative Attention

https://arxiv.org/abs/2103.03206

 

 

[11] Experience Grounds Language

https://arxiv.org/abs/2004.10151

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。