[论文阅读]An Efficient Transformer Decoder with Compressed Sub-layers
文章目录
-
前言
-
摘要
-
1、Introduction & Motivation
-
- 1.1 Introduction
- 1.2 Motivation
-
2 如何实施?
-
2.1 整合自注意力机制与交叉注意力机制
-
2.2 对前馈网络模块进行优化
-
2.3 设计优化后的新解码器架构
-
3、Experiments Analysis(main)
-
总结
-
前言
论文名:An Efficient Transformer Decoder with Compressed Sub-layers
论文作者:Zihang Dai et al.
机构:
NLP Lab,School of Computer Science and Engineering, Northeastern University, Shenyang(东北大学NLP组)
NiuTrans Research, Shenyang, China(小牛翻译研究中心)
期刊/会议名:AAAI 2021
本文作者:XMU_MIAO
日期:2021/1/22
摘要
大型基于注意力机制的编码器-解码器网络(Transformer)因其高效性而备受关注。然而,在解码部分由于计算复杂度过高导致效率低下。通过分析解码器的数学公式,在特定条件下我们证明了可以通过精简其中一些子层来简化基础架构,并实现了高度并行化运算。因此我们提出了一种称为Compressed\,\,Attention\,\,Network(压缩注意力网络)的新架构,在该架构中每个解码层仅包含一个子层而不是三个以减少复杂性。经过大量实验验证所提出的模型较"更强大的基准模型"快1.42倍且性能相当同时这种更强大的基准模型较广泛采用的标准模型快2倍并无性能损失。
1、Introduction & Motivation
1.1 Introduction
在Transformer架构中解码器的一层结构中从输入端到输出端依次包含了三个关键组件:自注意力机制(Self-Attention)、互信息注意力机制(Cross-Attention)以及前馈网络(FFN)。其数学表达式如上所示其中未在公式中明确提及的层归一化处理是每个子组件所共有的预处理步骤
- 自注意力机制表现为Y_x等于 Self 作用于 X。
其中权重张量 W_{q₁}, W_{k₁}, W_{v₁}\in \mathbb{R}^{d × d} 用于参数化模型。
数学表达式中涉及的操作步骤如下:
首先计算查询键向量 Q = X · W_q, 关注度(相似度)计算为 A = SoftMax(Q K^T / √d), 最终输出表示为 Y = A · X V^T。
基于交叉注意力机制的表示生成模型中,
其输出表示为 Y_h = Cross(X, H)。
计算得到的自注意力分数矩阵 A_h 通过应用 Softmax 函数获得,
进一步生成输出表示 Y_h = A_h H W_{v_2}。
其中权重矩阵 W_{q2}, W_{k2}, W_{v2} 均属于 d \times d 维的空间,
输入序列和查询向量分别属于 \R^{t \times d} 和 \R^{s \times d} 空间。
\textbf{FFN}定义为:$$
Y_f = \text{FFN}(X)
其中中间结果为:
Z = X W_{1} + b_{1}
则有:
Y_{f} = \text{ReLU}(Z) W_{2} + b_{2}
这些参数均为张量形式:
W_{1}\in{\mathbb R}^{d\times 4d}, \quad b_{1}\in{\mathbb R}^{4d}
W_{2}\in{\mathbb R}^{4d\times d}, \quad b_{2}\in{\mathbb R}^{
d}
输入张量:
X\in{\mathbb R}^{
t\times d}
统一公式 统一公式 ### 1.2 Motivation 相关研究资料显示,在$Transformer$架构中存在多层解码器冗余现象,并且这种多层设计在推理过程中会导致计算效率低下。经研究发现,在经过多次实验验证后发现该缺陷会对整体性能产生显著影响。为此我们提出了一种新的优化方法,在满足一定条件下实现了对$Compressed\,\,Attention\,\,Network(CAN)$模型的有效性提升 ## 2、How to do ? 基于数学公式领域和现有文献研究的基础上,在解码器中整合了三个关键组件,并将其中两个attention子层整合为一个统一的attention结构,并对FFN部分进一步优化 ### 2.1 合并Self-Attention与Cross-Attention 考虑到公式中Y₁等于X加上自注意力机制Self(X)以及交叉注意力机制Cross(X₁,H),因此由于自注意力机制的作用导致了X₁等于X加上Self(X),因此如果在某些情况下存在自注意力机制与其他因素之间的关系,则可以通过代入上述公式并应用矩阵运算以实现更容易地并行化处理。如图2左侧所示,在计算各层之间的自注意力机制和交叉注意力机制输入时(即计算自变量之间的余弦相似度),作者绘制了热力图以展示这些关系的具体表现。结果显示,在各个层次中自注意力机制与交叉注意力机制之间的输入具有高度相似性(超过90%)。  公式总结 总结 总结 ### 2.2 对FFN进行压缩 同样地,在图2右侧所示的架构中,并非Cross{-}Attention与FFN之间不存在某种关联关系。尽管二者之间存在一定的相似性但这种相似度并不算很高。因此我们采用了另一种方法对FFN部分进行压缩处理以实现模型性能与参数规模之间的平衡关系。具体而言经过计算得到Y₂=ReLU(XW₁+A[XW_{v1},HW_{v2}]W₁+b₁)W₂+b₂其中XW₁+A[X\widetilde{W_{v_1}},H\widetilde{W_{v_2}}]+b₁是压缩后的解码器层的核心表达式部分。通过这一过程我们得以用一个简洁的数学公式统一表示出压缩后的解码器层其输出结果则为Y_{output}=ReLU(XW₁+A[X\widetilde{W_{v_1}},H\widetilde{W_{v_2}}]+b₁)W₂+b₂ ### 2.3 压缩后的解码器端 根据2.1和2.2对解码器端的公式计算流程做一个小结,示意图如图3所示  在解码器的一层中存在两个信息源:一个是直接从外部传入的信息量记为变量X,另一个是来自编码阶段最后一层处理后的结果标记为变量H.这两个变量共同构成了该层级节点信息传递的基础条件.在这一层级的信息处理过程中,主要包含两个运算步骤 1 1 ## 3、Experiments Analysis(main) 有文献研究表明,在不牺牲模型性能的前提下(如图所示),采用提升编码器层数并相应降低解码器层数的方式(如图所示),能够有效加快推理速度。该研究通过对比不同组合方案(如图所示),最终确定采用编码器12层与解码器2层的组合形式作为更强的基础基准方案。  作者在包含WMT 14 En-{德,法}以及WMT 17 En-{德,瑞,罗马尼亚,俄,匈牙利}在内的共14个翻译任务中进行了实验。结果显示,在与标准基准相比时,该方法显著提升了推理速度,并且几乎未有任何性能损失。相较于更强大的基准,则该方法也实现了更快的推理加速。类似的方法仅能实现约1.12至1.16倍的速度提升。 ## 总结 本文在轻度条件下对Transformer解码器的数学公式进行了整合与变形,在此基础上实现了解码器端各层计算能够充分地利用矩阵并行运算的优势,并有助于提升模型运行效率的同时,在轻度条件下进行解码器端压缩只会导致模型性能损失非常轻微。
