一只小狐狸带你解锁 炼丹术&NLP 秘籍

作者:舒意恒(南京大学硕士生,知识图谱方向)

今天给大家介绍一篇来自Google的最新论文《SYNTHESIZER: Rethinking Self-Attention in Transformer Models[4],该论文重新探索了Transformer中注意力机制的必要性,并引入了新的attention计算方法Synthesizer。实验显示,即使不进行token之间的attention交互计算,synthesizer在翻译、语言模型、GLUE等任务上也可以达到很好的效果。

前言

什么是自注意力?

2017 年,Vaswani 等人 [1] 提出了 Transformer 模型,在众多领域取得了成功的应用,证明了它相比于自卷积模型和循环模型的优势。

Transformer 的关键在于 query-key-product 的点积注意力,token 被完全连接,能够对远距离的依赖关系进行建模。

Transformer 存在的问题

点积自注意力提供了强大的建模能力,但同时作者对点积自注意力提出了质疑,它的计算可能是不必要的。

点积的基本作用是确定单个 token 相对于序列中所有其他 token 的相对重要性。key、query、value 暗示自注意力模拟一个基于内容的检索过程,过程的核心是 pairwise 的交互。该文对整个过程进行了反思。

技术简介

Synthesizer 的关键思想

Synthesizer 的核心思想是用低复杂度的attention计算代替dot product式的注意力机制。传统 Transformer 的注意力机制需要进行 token 之间的两两交互,虽然可以获得更多的交互信息,但attention score会很依赖实例,难以保证模型学到更多的泛化特征。

因此,synthesizer提出了新的attention matrix学习方法,只通过简单的前馈神经网络即可得到注意力分数,完全省去了token之间的点积交互。

实现细节

Synthesizer 大体上可以理解为一个 Transformer,其中自注意力模块被 Synthetic Attention 模块替换。

上图表示了 Transformer、Dense Synthesizer 和 Random Synthesizer 的关键思想。

Synthesizer 移除了 query-key-value 的概念,而直接合成一个对齐矩阵。具体而言,即去除了 、、,而使用一个行和列大小等同于序列长度 的矩阵 来表示任意 token 之间的关系。作者提出了两类 synthesizer,分别是 Dense Synthesizer 和 Random Synthesizer。

Dense Synthesizer

给定模型的输入 ,表示了 个 token,每个 token 的维度为 . 该方法做如下的变换:

这可以理解为两个 Dense 层,和 用于 Dense 层的计算。而最后模型的输出 ,由表示 token 间关系的矩阵 得到。

其中,可类比为标准 Transformer 的 .

该思路并不复杂,但是,作者进一步描述了 Random Synthesizer。

Random Synthesizer

Dense Synthesizer 方法实际上是给定每个 token,然后映射到 维,而不是如同原生的 Transformer 对 token 间交互进行建模。Random Synthesizer 的方法中,注意力权重的初始化不是受任何输入 token 的影响,而是完全随机初始化。这些随机初始化的值可以被训练,或者保持固定。

以 表示一个随机初始化矩阵,则 Random Synthesizer 被定义为:

即 初始化的值是 . 该方法不依赖 token 对之间的交互或者任何单个 token 的信息,而是学习一个能跨实例有效的任务特定的对齐。作者表示这是最近固定自注意力方法 [2]的直接产物。

换句话说,作者认为,学习一个跨实例有效的模型意味着在初始化时不直接依靠任何 token 信息。

分解模型

Dense Synthesizer 为网络添加了大小为 的参数,用于映射;而  Random Synthesizer 添加了大小为 的参数。如果序列很长,将导致很大的参数量。因此,为了实践中更加可行,作者提出了分解模型,分别针对 Dense Synthesizer 和 Random Synthesizer 称为 Factorized Dense Synthesizer 和 Factorized Random Synthesizer。该方法的作用是减少参数量,并防止过拟合。

1. Factorized Dense Synthesizer

针对可能过大的序列长度 ,取两个整数 和 使得 ,分别按 Dense Synthesizer 算得两个矩阵记为 和 ,两矩阵大小分别是 和 . 然后将 中表示 token 的每个向量重复 次,将 中表示 token 的每个向量重复 次,再做元素积,即可从分解出的两个矩阵恢复到 . 参数量减小,同时模型的表征能力可能也受到了影响。

2. Factorized Random Synthesizer

类似地,随机矩阵也可被分解为两个低秩矩阵。

混合模型

上述所有提出的 synthetic 注意力变种都可以通过加和形式混合到一起。

αα

其中,表示一个 synthesizer 的函数,并且 ,是可学习的。

另外,类似于原生 Transformer 的 multi-head attention,Synthesizer 同样支持多个 head.

效果

作者在机器翻译、语言模型、文本生成、多任务自然语言处理等任务上进行了实验。

机器翻译与语言建模

作者采用常见的 WMT'14 英德(EnDe)和英法(EnFr)翻译测试。

关于机器翻译任务,可以看到相同参数量的 Synthesizer(Random + Vanilla) 与其他模型拉开了一定差距,也比相同参数量的 Transformer (Control) 表现更好。值得注意的是,两个分解方法取得的提升并不如混合模型取得的提升更多,但在一定程度上减少了参数量。

关于语言建模任务,使用的数据集是 LM1B,取得最好效果的是 Synthesizer (Dense + Vanilla),它仍然是一个混合模型,同样是 Synthesizer 的各种设置中唯一超过 Transformer 的模型。

文本生成

评测使用 CNN/Dailymail 数据集的抽象摘要任务和使用 PersonaChat 数据集的对话生成任务。其中,Synthesizer 的各个模型表现不一。

多任务 NLP

在多任务 NLP 上,作者遵循 T5 [3] 所使用的使用 GLUE 和 SuperGLUE 评测方法,并在多项指标超过了 T5(base)。在众多测试中,仍然是加上 Vanilla 的 Synthesizer 取得较好效果。

总结

该文提出了 Synthesizer,一个新的 Transformer 模型,它采用了合成注意力(Synthetic Attention)。作者试图更好地理解和评估全局对齐和局部、实例对齐(独立 token 和 token 到 token 的对齐)在自注意力中的效用。

在机器翻译、语言建模和对话生成等多个任务上,合成注意力与原有自注意力相比,表现出有竞争力的性能,点积自注意力的作用与效率值得怀疑与进一步研究。此外,在对话生成任务上,token 之间的交互信息实际会损害性能。

实际上,Synthesizer 的不同设置没有绝对的优劣,也和具体的任务相关。个人认为为何在各种任务中 Synthesizer 的表现存在明显差异、它与点积注意力分别适合于哪些任务,以及背后的成因是值得深究的。

参考文献

[1] Attention Is All You Need. arXiv preprint arXiv:1706.03762, 2017.

[2] Fixed encoder self-attention patterns in transformer-based machine translation. arXiv preprint arXiv:2002.10260, 2020.

[3] xploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv preprint arXiv:1910.10683, 2019.

[4] Tay Y, Bahri D, Metzler D, et al. Synthesizer: Rethinking Self-Attention in Transformer Models[J]. arXiv preprint arXiv:2005.00743, 2020.

本文收录于原创专辑:《卖萌屋@自然语言处理》

重磅惊喜:卖萌屋小可爱们苦心经营的 自然语言处理讨论群 成立三群啦!扫描下方二维码,后台回复「入群」即可加入。众多顶会审稿人、大厂研究员、知乎大V以及美丽小姐姐(划掉????‍♀️)等你来撩噢~(手慢无

  • NLP中的少样本困境问题探究

  • ACL20 | 让笨重的BERT问答匹配模型变快!

  • 7款优秀Vim插件帮你打造完美IDE

  • 卖萌屋原创专辑首发,算法镇魂三部曲!

  • GPT-3诞生,Finetune也不再必要了!NLP领域又一核弹!

夕小瑶的卖萌屋

_

关注&星标小夕,带你解锁AI秘籍

订阅号主页下方「撩一下」有惊喜哦

告别自注意力,谷歌为Transformer打造新内核Synthesizer相关推荐

  1. Transformer新内核Synthesizer:低复杂度的attention代替点乘式的注意力机制

    论文链接:https://arxiv.org/pdf/2005.00743.pdf 参考文档:https://mp.weixin.qq.com/s/e2Cor8amz7GiFfBGdLXULg 导读 ...

  2. 苹果公司华人研究员抛弃注意力机制,史上最快的Transformer!新模型达成最低时间复杂度...

    转自:新智元 [导读]attention is all you need是绝对的真理吗?自从Transformer面世以来,采用CNN等传统模型与注意力进行结合就成了新的创新方向.但苹果的华人研究员提 ...

  3. 史上最快的Transformer!新模型达成最低时间复杂度

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 20 ...

  4. 《人类简史》作者:应对 AI 革命,要打造新的经济、社会和教育体系

    来源:36氪 概要:正在进行的人工智能革命将改变几乎所有的工作,给社会和经济的发展带来机遇和挑战.一些人认为,人工智能将把人类赶出就业市场,创造一个新的"无用的阶层":另一些人则认 ...

  5. 多次成功创业经验总结-我如何打造新品类战略公式

    创业经验总结-我如何打造一个新品类的战略公式 前言 开创一个新品类,我有一个公式. 01 lessgo 药妆是 更强功能 更细场景 更新奇特 的 日化 02 HeyJuice 排毒果蔬汁比其它 减肥方 ...

  6. 中国品牌日话品牌:智能家居企业如何打造新消费品牌?

    5月10日,2021年中国品牌日活动在上海拉开帷幕. 今年是第五个"中国品牌日",今年的主题为:"中国品牌,世界共享:聚力双循环,引领新消费".从今年的品牌日主 ...

  7. 华为不升级11系统用不了鸿蒙,谷歌又立下新规矩,安卓11系统不给华为手机使用,鸿蒙OS基本稳了...

    原标题:谷歌又立下新规矩,安卓11系统不给华为手机使用,鸿蒙OS基本稳了 华为手机现在依旧不能使用谷歌GMS,根据余承东给出的消息,明年发布的P40系列也不能使用GMS,使用的是HMS移动服务.目前G ...

  8. 【谷歌推网页爬虫新标准,开源robots.txt解析器】

    https://www.toutiao.com/a1638031116246019 [谷歌推网页爬虫新标准,开源robots.txt解析器] 对于接触过网络爬虫的人来说 robots.txt 绝不陌生 ...

  9. 谷歌发布深度学习新算法,适用于真实机器人的技能学习

    https://www.toutiao.com/a6649215346496504327/ 2019-01-22 15:11:28 通过这种名叫SAC(柔性致动/评价)的强化学习算法,机器人能很快地完 ...

最新文章

  1. 线程间通信共享变量和queue
  2. Shell Basic
  3. vue 打包后页面空白问题
  4. php post登陆 json,php 之 post json 数据
  5. 重学java基础第九课:软件和软件关系
  6. 算法 - 快速幂算法
  7. 和DOM一起的日子:检测与预防DOM跨站脚本攻击
  8. CSS综合征病例,ChurgStrauss 综合征 (css) 变应性嗜酸性肉芽肿课件
  9. string容器字符存取
  10. Ubuntu安装Flash Player
  11. 如何提升团队凝聚力,打造高绩效团队?
  12. 《生命如一泓清水》俞敏洪
  13. 【HTML基础-1】HTML标签简介及常用标签
  14. java记录日志不打印控制台,java异常在控制台和日志里面的打印记录
  15. 使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用
  16. 股票实时数据接口软件的数据来源是哪里?
  17. fedora下载工具
  18. B站《三体》动画正式开播 刘慈欣:宇宙很大,生活更大
  19. Pyside2中嵌入Matplotlib的绘图
  20. Monkey框架(测试方法篇) - monkey日志分析

热门文章

  1. 安装数据库windows 安装redmine 详解
  2. C#4.0 Collections【集合】
  3. 10大黑客专用的 Linux 操作系统,你了解哪些?
  4. 给大家推荐一个优质Linux内核技术公众号-Linux阅码场
  5. android 7.1 apk的systemuid [2]
  6. TQ210——核心板和底板
  7. tinyxml2遍历所有节点_Python实现二叉树的遍历
  8. 数据结构链表之栈——解决括号匹配问题和逆波兰表达式求值问题——6
  9. ipconfig不是内部或外部_晶振有什么作用,如何选择合适的晶振,为什么有时候用内部晶振?...
  10. react脚手架配置代理解决跨域问题