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

674f4c26d39e1afb981885453848317a.png

文 | 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

模型算法

17fb42630dbccefa9272ff61215b42de.png

编码、掩码

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

模态特定的编码方式 :

  1. 文本模态 : token embedding

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

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

模态特定的掩码方式:

  1. 文本模态:对 token 掩码

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

  3. 语音模态:对语音模态来说,相邻的音频片段相关性非常大,所以需要对 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 这么构建(按步骤):

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

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

  3. 归一化 :

  4. 平均 : , 即 training target.

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

Representation Collapse

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

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

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

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

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

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

与同类工作的对比

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

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

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

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

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

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

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

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

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

与多模态预训练的对比

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

实验结果

计算机视觉

fa3c8bdc46b33670d1b59f8ca66bb54f.png

实验任务:Image Classification

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

语音

e2c57c24824f87a8f79b1392f027040c.png

实验任务:Automatic Speech Recognition

实验结论:改进很明显

Natural Language Processing

78b2be2ef8f445591f7444331b9d4e5e.png

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

实验任务:GLUE

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

Ablation 1 : layer-averaged targets

0e6b5bd887282a23fe71f3ddd9fe9d10.png

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

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

Ablation 2 : 使用 Transformer 的哪一层?

37a5a99bd4dc953ef96329bebeb00041.png

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

写在最后

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

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

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

e4ff18d2e3f6fc632713f0f59a17374f.png

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

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

6f26d2441027b88861ee397112846fe7.png萌屋作者:ZenMoore

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

作品推荐

  1. 一文跟进Prompt进展!综述+15篇最新论文逐一梳理

  2. 图灵奖大佬+谷歌团队,为通用人工智能背书!CV 任务也能用 LM 建模!

  3. 以4%参数量比肩GPT-3!Deepmind 发布检索型 LM,或将成为 LM 发展新趋势!?

47ae244494a77f00a2db851955f618e1.png后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

2564c94b6c7687df15f06deda5e65da5.gif 960543406d30353527be483792ef1840.png

[1] An image is worth 16x16 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477676.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 946. 验证栈序列(栈)

1. 题目 给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 1: 输入:…

Spring Cloud Stream消费失败后的处理策略(一):自动重试

之前写了几篇关于Spring Cloud Stream使用中的常见问题,比如: 如何处理消息重复消费如何消费自己生产的消息 下面几天就集中来详细聊聊,当消息消费失败之后该如何处理的几种方式。不过不论哪种方式,都需要与具体业务结合&#xf…

会议交流 | DataFunSummit 2022:图机器学习在线峰会

深度学习模型是当今人工智能研究的核心。众所周知,对欧几里得数据(例如图像)和序列数据(例如文本)具有颠覆性学习能力的深度学习技术不能直接适用于图结构数据。这种差距推动了图深度学习研究的浪潮,在学术…

专访邱锡鹏:人工智能开源社区的「先行者」

文 | 刘冰一、Echo源 | 极市平台邱锡鹏,复旦大学理学学士和博士。任职复旦大学计算机科学技术学院教授,博导。发表 CCF A/B 类论文 70 余篇,获得 ACL 2017 杰出论文奖(CCF A类)、CCL 2019 最佳论文奖。出版开源专著《神…

Spring Cloud Stream如何消费自己生产的消息

在上一篇《Spring Cloud Stream如何处理消息重复消费》中,我们通过消费组的配置解决了多实例部署情况下消息重复消费这一入门时的常见问题。本文将继续说说在另外一个被经常问到的问题:如果微服务生产的消息自己也想要消费一份,应该如何实现呢…

LeetCode 400. 第N个数字(数学)

1. 题目 在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 个数字。 注意: n 是正数且在32为整形范围内 ( n < 2^31)。 示例 1: 输入: 3 输出: 3示例 2: 输入: 11 输出: 0 说明: 第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 1--0--, 11, ... 里是0&a…

图谱实战 | 开源知识图谱融合工具剖析:Dedupe与OpenEA工具实现思想、关键环节与实操分析...

转载公众号 | 老刘说NLP实体对齐旨在发现不同知识图谱中的共指实体&#xff0c;如百度百科的360与Wikipedia中的360 qihoo。实体对齐是知识融合的重要任务&#xff0c;通过实体对齐集成多源知识图谱可以为下游任务提供更加全面的知识表示。实际上&#xff0c;实体对齐本质上就是…

算法岗SSP offer收割指南!

文 | 林小平源 | 知乎前序在本文开始以前&#xff0c;林小平首先需要声明的是这篇超详细面经并不是笔者本人的求职笔记&#xff0c;它是笔者学校隔壁实验室22届毕业学弟的面试心路历程和经验心得。由于笔者和这位学弟经常讨论校招求职和职业发展的问题&#xff0c;并且在秋招以…

Spring Cloud Stream如何处理消息重复消费

最近收到好几个类似的问题&#xff1a;使用Spring Cloud Stream操作RabbitMQ或Kafka的时候&#xff0c;出现消息重复消费的问题。通过沟通与排查下来主要还是用户对消费组的认识不够。其实&#xff0c;在之前的博文以及《Spring Cloud微服务实战》一书中都有提到关于消费组的概…

LeetCode 481. 神奇字符串(找规律)

1. 题目 神奇的字符串 S 只包含 ‘1’ 和 ‘2’&#xff0c;并遵守以下规则&#xff1a; 字符串 S 是神奇的&#xff0c;因为串联字符 ‘1’ 和 ‘2’ 的连续出现次数会生成字符串 S 本身。 字符串 S 的前几个元素如下&#xff1a;S “1221121221221121122 …” 如果我们将…

图谱实战 | ​鲍捷:知识图谱技术在金融领域的分析和应用

转载公众号 | DataFunSummit分享嘉宾&#xff1a;鲍捷博士 文因互联编辑整理&#xff1a;松烨 博瑜科技出品平台&#xff1a;DataFunTalk导读&#xff1a;知识图谱标准件已经全面赋能主流金融场景&#xff0c;经历了7年时间的发展&#xff0c;在金融监管、银行、资管、证券等领…

珍爱生命,远离大厂政治斗争

本文授权转载自公众号“算法圈的小破事”&#xff0c;点击以上卡片进行关注大家好&#xff0c;我是在互联网危险边缘疯狂试探的皮皮虾&#xff0c;今天跟大家分享一个关于大厂政治斗争的故事。有人可能觉得&#xff0c;政治斗争那都是大佬之间的事情&#xff0c;跟我们江湖虾米…

Spring Cloud Finchley版中Consul多实例注册的问题处理

由于Spring Cloud对Etcd的支持一直没能从孵化器中出来&#xff0c;所以目前来说大多用户还在使用Eureka和Consul&#xff0c;之前又因为Eureka 2.0不在开源的消息&#xff0c;外加一些博眼球的标题党媒体使得Eureka的用户有所减少&#xff0c;所以&#xff0c;相信在选择Spring…

论文浅尝 | Continual Learning for Named Entity Recognition

笔记整理&#xff1a;李淑怡&#xff0c;天津大学硕士动机在许多真实任务下&#xff0c;常常需要引入新的实体类型&#xff0c;因此需要重新训练命名实体识别模型。当因为存储或安全问题限制对原始数据的访问时&#xff0c;那么为新实体类型重新标注原始数据的成本将会是高昂的…

Allen AI提出MERLOT,视频理解领域新SOTA!

文 | Yimin_饭煲2021年&#xff0c;多模态领域大概是人工智能研究者们关注者最多的一个领域了。随着各种模态数据集的增长和算力的发展&#xff0c;研究者们开始不断地尝试在一个模型中融合来自各个模态的信息。而在多模态领域的研究中&#xff0c;和视频相关的任务被认为是最复…

基于HMM的中文词性标注 POSTagging

文章目录1. 词性标注1.1 概念1.2 任务1.3 预处理1.4 初步统计预览2. 最大概率模型2.1 训练2.2 预测2.3 结果评估2.4 结果可视化3. 二元隐马尔科夫BiHMM模型3.1 训练3.2 预测3.3 结果评估3.4 结果可视化4. 结果讨论思考本文的代码是在徐老师的代码基础上&#xff0c;自己加了些注…

图谱实战 | 58同城周超:基于招聘场景下的知识图谱构建及应用

转载公众号 | DataFunSummit分享嘉宾&#xff1a;周超 58同城 NLP资深算法工程师编辑整理&#xff1a;吴祺尧 加州大学圣地亚哥分校出品平台&#xff1a;DataFunTalk导读&#xff1a;知识图谱作为一种富信息工程&#xff0c;已经深入到各行各业中&#xff0c;也为产业效率的提升…

2022年薪百万赛道:高性能神经网络与AI芯片应用

随着大数据的发展&#xff0c;计算机芯片算力的提升&#xff0c;人工智能近两年迎来了新一轮的爆发。而人工智能实现超级算力的核心就是AI芯片。AI芯片也被称为人工智能加速器&#xff0c;即专门用于处理人工智能应用中的大量计算任务的模块。2020年我国人工智能芯片市场规模约…

API网关 Zuul1.0 和 2.0 我们该如何选择?

介绍 在今年5月中&#xff0c;Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本&#xff0c;真可谓千呼万唤始出来。从Netflix的官方博文[附录1]中&#xff0c;我们获得的信息也比较令人振奋&#xff1a; The Cloud Gateway team at Netflix runs and operates more t…

LeetCode 623. 在二叉树中增加一行(BFS/DFS)

文章目录1. 题目2. 解题2.1 BFS2.2 DFS1. 题目 给定一个二叉树&#xff0c;根节点为第1层&#xff0c;深度为 1。在其第 d 层追加一行值为 v 的节点。 添加规则&#xff1a;给定一个深度值 d &#xff08;正整数&#xff09;&#xff0c;针对深度为 d-1 层的每一非空节点 N&a…