Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

栏目: IT技术 · 发布时间: 3年前

内容简介:推荐阅读

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

现在回头看 17 年那句 Attention is all you need,真是神预言,Transformer 模型从自然语言处理机器翻译开始,先是慢慢的影响(18 年中毕业论文我都还 LSTM),然后席卷整个 NLP 领域,特别是 BERT 出来后,其他啥的都丢一边去了,等 NLP 影响一圈,又开始辐射其他领域,比如 CV 领域也用得多起来,比如之前目标检测那篇。

无疑 Transformer 能传播开来,与它模型本身出色的 Flexibility 和 Scalability 都密切相关。Flexibility 让他能处理各种任务,而 Scalability 又能让它能充分撬动起不断增长的计算资源。因为受欢迎程度,大家也开始慢慢研究它本身,从各种视角看它了。

正如之前这篇2020-0713里面说的一句,研究范式就是

1)首先,大佬发明新方法或架构;
2)之后,有新锤子了,大家都换上新锤子,开始到处找钉子,这也就是所谓的低垂果实;
3)接着,好找的钉子都没了,大家就开始分析锤子本身,你看这锤又大又硬,但还是有一些缺点,我们还能怎么改改;
4)发布新的数据集,更好测试。

现在是大家 纷纷研究分析锤子本身的时候 ,你看这锤又大又硬,这一看,怎么还跟那啥有点像。

诶,跟那 CNN 还有点像

这个说法主要来源这篇 ICLR 666 论文: On the Relationship between Self-Attention and Convolutional Layers

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

该论文主要是证明了,当一个多头自注意力机制层在加上一个适当的相对位置编码的时候,可以表示任何卷积层。

其中多头是为了能关注类似 CNN 感知域中的每个像素位置,所以一个头数为 N 的多头自注意力可以模拟感知域为的 CNN 卷积核。

然后相对位置编码主要是为了保证 CNN 里的 Translation Invariance 性质。

虽然这篇明确指出,但最早察觉到 CNN 和 Transformer 关系时候,还并不是这篇,是在读 Dynamic CNN 那篇, Pay Less Attention with Lightweight and Dynamic Convolutions . 当时复现了 Dynamic CNN 后发现里面有些性质和 Transformer 很像。

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!
比如说它里面用到的卷积核不是固定的,而是一个动态的,每个时序卷积时用的卷积核都是该时序词向量的函数,每个时序会算出一个类似局部 attention 的卷积核,来对局部词向量进行加权求和。

诶,跟那 GNN 也有点像

主要说法来源这篇博客:Transformers are Graph Neural Networks(https://graphdeeplearning.github.io/post/transformers-are-gnns/)

先来看看 GNN 的主要结构,对于一张有节点和边的图

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

算某个节点的特征表示时,是通过 neighbourhood aggregation 搜集相邻节点特征来更新自身表示,从而能学习到图上的局部结构。而和 CNN 类似,只要叠个几层,就能慢慢将学习范围扩大,传播至整张图。

所以最基本的计算形式是下面这个公式,和 都是学习参数,然后 是计算节点,是临近节点。式子里面的 就算是这里面的一个 Aggregation 函数,也可以用各种其他方式来做。最后还有个 非线性.

于是表示成图片是

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

这时将 Transformer 的自注意力机制用类似图表示出来

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

已经很类似了。不同之处在于,对原来最基础 GNN 里简单的加和 aggregation 函数进行了复杂化, 变成了基于注意力机制的,带权重的加和 ,计算过程也不是通过单纯学习一个矩阵,而是通过和临近节点的点乘(或其他一些方式)。

于是这样看来,在 NLP 里面自注意力机制就相当于把句子看成是一个全连接图,每个词都和句子中其他词相邻,因此计算时,将所有词都考虑进来。正因为这种全连接性质,才导致 Transformer 一个被诟病的性质,一旦增加句子长度,计算复杂度是成 O(N^2) 增长,当句长很长时这个代价是非常大的。

当然最近也有很多论文,比如 Reformer, Linformer 等等尝试解决这个问题。

而对于 Transformer 中的有些研究,想做 Local Attention,其实就相当于加入了先验认为,句子中相近的词算是相邻节点。

诶,怎么还和 RNN 有点像

最后这个来自最近这篇论文, Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention .

直接了当,Transformer 是 RNN, Q.E.D.

开玩笑,翻开论文会发现前面一大半都没说哪里像 RNN,反而一大片写如何优化 Transformer,给计算复杂度降到线性。包括用核函数来简化 Attention 计算过程,还有替换掉 Softmax. 但读到后面才发现,正因为这些优化特别是核函数优化,才能在最后处理 Causal Masking 时推出,与 RNN 计算过程的相似。

从头捋一遍就是,对于一般通用的 Attention 形式它的公式如下

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

熟悉的 QKV,Q 和 K 利用相似(sim)函数计算出一个分数,之后除以分数总和获得 Attention 权重,之后去 V 里取值。

接着用核函数,对 sim 函数进行处理,再利用结合律,将 Q 运算提出来

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need! 之后引入两个简化表示

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need! 整个方程就变成了

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

于是在 Causal Masking 时,对于 S 和 Z 每个时间步,之前时间步计算结果都能复用,所以可将 S 和 Z 看做是两个隐状态,能在每个时间步根据当前输入来更新自己的状态,而这恰恰就是 RNN 的主要思想。

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!

推荐阅读

这个NLP工具,玩得根本停不下来

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组 Python 深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!


以上所述就是小编给大家介绍的《Transformer 是 CNN 是 GNN 是 RNN,Attention is all you need!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

刘强东自述

刘强东自述

刘强东 / 中信出版集团 / 2016-6-1 / 49.00

京东 1998年,京东还只是中关村一个经营光磁生意的小柜台,月营业额仅有几万元,如今则已经成长为中国营收规模超大的互联网企业,2015年全年营收1813亿,总交易额达到4627亿元; 为解决电商“最后一公里”的痛点,创立并自建B2C物流模式; 经常被争议,却始终坚持“不挣快钱”,选择上市不是因为“缺钱”,只为让合作伙伴睡得着觉,为用户和社会创造价值,由此成就让整个华尔街一片京东红......一起来看看 《刘强东自述》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具