IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 论文笔记 A survey of Transformers -> 正文阅读

[人工智能]论文笔记 A survey of Transformers

论文笔记 A survey of Transformers

1.介绍

改进版本的各种former在如下三个方面改进了vanilla Transformer:

  1. 模型效率,因为Self-Attention的时间和内存效复杂度导致其在处理长序列时效率比较低
  2. 模型泛化,很难在小批量数据集上进行训练,
  3. 模型迁移,将Transformer适应去特定的下游应用。

提出一个新的分类,根据三个方面:模型改进、预训练、应用。

2.背景:介绍架构

2.4 和其他进行比较

2.4.1 自注意力分析

是一种灵活的可以处理可变长度的机制,可以理解为一个权重从输入动态生成。优势如下:
(1)和全连接层拥有同样的最大路径长度,更能建模长期依赖,和全连接层相比,参数更少,在处理可变长度输入时更加灵活。
(2)和卷积层相比不需要叠加很多层
(3)和RNN相比更容易并行

2.4.2 归纳偏置

Transformer通常跟CNN和RNN相比较,CNN通过共享卷积核参数增强了平移不变形和局部性的归纳偏置,RNN通过携带他的马尔科夫结构携带了时序不变性以及局部性的归纳偏置,但是,Transformer架构对于数据的结构信息做出了较少的假设,却也使得其容易在小规模数据及上过拟合。
另外一个与之相关的架构是具有消息传递的图神经网络。Transformer可以视作定义在完全有向图(具有自循环)的图神经网络,每一个输入为图中的一个点。所不同的是,Transformer没有引入关于数据结构的先验知识,消息传递机制仅仅依赖于输入之间的相似性

3.分类系统

按照三个来分类:架构改变、预训练方法、应用

4.Self-Attention:跟Attention相关的变种

在实际应用中仍然有两个挑战:

  • 复杂度 o(T^2)
  • 结构性先验知识,并没有引入输入之间的structural bias,甚至是顺序信息都需要从输入中学到,所以,Transformer很容易在小批量或者中批量数据及上过度拟合。

4.1 Sparse Attention

在标准的Transformer里,每一个记号都要attend其他记号。然而在训练好的Transformer里,注意力矩阵在大部分输入点都很稀疏,限制每个query 所attend的数目。
根据确定稀疏连接的方法,将其分为两种。position-basedcontent-based

4.1.1 position-based

attention权重矩阵根据某种预定义的模式来确定,可以解构为一些原子模式

4.1.1 Atomic Sparse Attention

1.为了处理Sparse Attention在建模长期以来的不足,添加一些全局结点作为信息传递的中转站
2.band attention
3.dilated attention
4.random attention
5.block attention

4.1.2 一些复合的模式

Star-Transformer、Longformer、ETC、Bigbird、Sparse Transformer

4.1.3 扩展的Sparse 模式

其中一个,应用于文本,BP-Transformer

4.1.2 基于内容的

以输入为条件
routing transformers
reformer
SAC
sparse sinkhorn attention

4.2 Linear Attention

Q K T QK^{T} QKT的计算与T的平方成正比,如果可以 Q 、 ( K 、 T V ) Q^{、}(K^{、T}V) Q(KTV)这样算的话,就可以有用O(T)的复杂度,即使用 ? ( Q ) ? ( K ) T \phi(Q)\phi(K)^{T} ?(Q)?(K)T代替 e x p ( Q K T ) exp(QK^{T}) exp(QKT), ? \phi ?被称之为feature map
主要有两个关键点,feature map,融合方法

4.3 Query Prototyping and Memory Compression

仍然是为了降低复杂度,两个方法,降级query数目,降低 key-value pair 数目

4.3.1 Attention with Prototype Queries

cluster attention 将query分为一簇一簇的,每一簇的质心代表这一簇来进行注意力计算

4.3.2 Attention with Compressed Key-Value Memory

降低key-value对的数目
memory compressed transformer

4.4 low-rank Self-Attention

经验和理论都表明,self-Attention matrix 通常很低秩,有了两种思路:

  • 低秩属性应该使用参数进行显式建模
    当输入很短的时候,使用 D k > T D_{k}>T Dk?>T 会导致over-parameterazation 以及过拟合,因此,通过限制 D k D_{k} Dk?的大小来显式建模低秩属性作为归纳偏置
  • 自注意力矩阵可以使用低秩估计来代替

4.5 Attention with prior

Attention分布也可以来自于除了 Q K T QK^{T} QKT的其他来源,我们将之称之为 prior,

  • 建模局部性
  • 建模低层
  • adapter
  • 只含有prior

4.6 Improved Multi-Head Mechanism

多头注意力 吸引力:不同头将注意力集中在不同位置的输入子空间中,然而,没有机制能保证这一特性。

4.6.1 Head Behavior Modeling

方法:通过引入更加复杂的机制来保证每个头的不同表现或者允许头之间的交互
一个方法:引入正则项

4.6.2 Multi-head with Restricted Spans

注意到,一些头关注于局部上下文,而一些头更加关注更宽的上下文,因此,限制注意力span可能有用

4.6.3 Multi-head with Refined Aggregation

不同头所得表示的融合方法

5. OTHER MODULE-LEVEL MODIFICATIONS

5.1 position representation

5.1.1 Absolute Position Representations

对于文本,建模位置信息很重要,比较值得提的就是sin cos的频率。

5.1.2 Relative Position Representations

建模token之间的位置关系,有一个 relative position embedding

5.1.3 other representations

一些杂交的表示,花里胡哨的

5.1.4 Position Representations without Explicit Encoding

将嵌入泛化为 具有连续位置信息的函数,例如说建模局部序列的R-Transformer,再经过每个分块处理之前,首先经过RNN,RNN捕捉了顺序信息,建模了短期依赖

5.1.5 Position Representation on Transformer Decoders

masked self-Attention不含有顺序不变性,所以,只含有decoder的Transformer可以不含有显式位置编码,就已经建模了位置信息。

5.2 Layer Normalization

LN使得深层网络的训练更加稳定

5.2.1 放置的位置

有两种,post-LN以及pre-LN.各有一些探讨

5.2.2 Substitutes of Layer Normalization

可学习参数在大部分情况下不工作,而LN中的均值和方差再缩放对LN至关重要,因此提出了一个新的正则化方法

5.2.3 Normalization-free Transformer

使用一种可学习的residual connector来代替

5.3 Position-wise FFN

5.3.1 激活函数的改变

GLU GELU

5.3.2 Adapting FFN for Larger Capacity

一直都没怎么看懂这个是啥

6 ARCHITECTURE-LEVEL VARIANTS

6.1 Adapting Transformer to Be Lightweight

funnel-Transformer,比如说逐步缩短序列的长度

6.2 Strengthening Cross-Block Connectivity

在原始的Transformer中,每一层使用上一层的输出作为输入,我们可不可以创造更多的路径,使得输入路径可以贯穿全程呢。比如在 decoder cross-attention的时候,使用一个weight sum

6.3 Adaptive Computation Time

使得计算时间根据输入的不同而不同,例如 universal transformer
还有就是,early-exit系统,

6.4 Transformers with Divide-and-Conquer Strategies

处理长序列,使用分而治之的办法,就是分段

6.4.1 recurrent network

有一个缓存,缓存包含了历史信息;

6.4.2 Hierarchical Transformers

处理更长的序列时,比如对于document summerization,首先处理句子级别的表示,然后使用这些句子级别的表示来生成文件级别的表示
亦或是用来生成富含更多信息的表示、

6.5 Exploring Alternative Architecture

MAN在self-Attention之前添加了一个 dynamic mask attention module,mask基于token表示以及token和头编号之间的相对距离,很好的建模了文本数据的局部性。

7 PRE-TRAINED TRANSFORMERS

Transformer对于数据结构做出了很少的假设,在大规模文本上进行预训练使得模型不捉了一些全局语言信息。使用不同的自监督任务进行预训练。

8 一些总结

1)仍需理论描述
2)更好的全局信息交互
3)对于多形式的数据拥有一个统一的架构

  人工智能 最新文章
Neo4j 实战篇(一)基于Py2Neo构建电影知识
消息传递神经网络(MPNN)内容及代码实践
OpenCV+百度云人脸识别项目及源码
实验5 卷积神经网络实验中
论文详解:Attention-based Extraction of
Tensorflow进阶
科技时代,如何保护个人隐私?
【元宇宙系列】游戏与元宇宙(下)——拉动
pytorch学习13:实现LetNet和学习nn.Module
LSTM的本质理解-正向传播
上一篇文章      下一篇文章      查看所有文章
加:2021-07-05 20:20:08  更:2021-07-05 20:20:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
360图书馆 购物 三丰科技 阅读网 日历 万年历 2022年5日历 -2022/5/24 4:01:15-
图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码