文章目录
神经翻译笔记7扩展a. Transformer的解释分析研究工作汇编
Transformer自2017年提出以来,先是由于其效果显著好于基于RNN的编码器-解码器模型而在机器翻译界被广泛接受,之后又因为其派生出的BERT(及其变种)在各种任务上不断刷新SOTA而风靡整个NLP领域,最近更是因为跨界在CV中大放异彩吸引了更多目光。至本文写作之时,已有若干文献尝试从各个角度对Transformer进行解释,本文尝试对这些文件做一汇编(暂时不收录明显针对BERT及其衍生模型的解释,由后续文章覆盖)。文中所附图若无说明,均来自对应论文
Transformer的整体结构
[Domhan2018] 首先定义了一套可普适于描述各种神经翻译模型结构的语言,然后通过分析RNN/CNN seq2seq模型和Transformer在结构上的异同,将Transformer的组成成分一点一点引入到这些前Transformer的模型中,观察哪些成分带来的影响最大。实验表明,对RNN引入多头注意力机制和FFN可以较大提升模型效果。对CNN引入LN和FFN也可以带来比较大的提升,引入多头注意力机制虽然也可以有所提升,但是效果并不明显。此外,文章对Transformer的自注意力部分也进行了改造:对解码器而言,如果将自注意力部分改为RNN或CNN,模型影响不大(BLEU降低1点以内),但是如果改造编码器,模型下降很明显,意味着自注意力机制对编码器非常关键
[WangWenxuan2020] 通过信息流贡献和表示泛化能力的影响来分析Transformer各个组件的重要性。简单说,前者通过将模块权重置为0,看模型效果下降程度衡量;后者看在可接受的模型效果下降范围内,模块权重可以向初始状态回滚多少。通过这种方法,文章认为解码器的自注意力层最不重要,解码器的FFN最为重要。此外,靠近模型输入输出的部件更重要(即编码器的底层和解码器的顶层),解码器中高层的编-解码器注意力模块比底层的重要
文章通过进一步分析指出,更低的dropout比率和更多数据会减少不重要组件的数量,原因是dropout会引入冗余(其机制鼓励各个部件独立为战且承担更多责任),而数据增多则引入了更多模式,需要更多组件学习。此外,组件不重要并非因为训练不充分导致。对于不重要的组件,可以砍掉它们重新训练模型,这样训练得到的模型与基线模型有很强的可比性,且持续好于参数量相同的shallow decoder(shallow decoder的定义下段提及)。更好的办法是将不重要组件参数值调回到初始状态,重新微调模型
[Bogoychev2020] 将Transformer划分为三个部分,分别是嵌入层、注意力层和FFN。文章尝试将每一个/每两个部分随机初始化,然后冻结使其不参与训练,观察模型BLEU下降的幅度。BLEU下降越高,被冻结的部分越重要,保留的部分越不重要。文章在1M英语-土耳其语数据集上作了实验,实验结果表明,如果只保留嵌入矩阵,冻结其余两部分,模型的BLEU可以从24降到4,说明模型大部分信息都是从注意力和FFN部分学来,嵌入矩阵并不重要。但是,如果只冻结一个部分,那么只冻结嵌入矩阵时,模型效果要略差一些,说明FFN和注意力提供的信息比较冗余,两者存在补位关系(如果一个不在了,另一个可以顶上);而嵌入矩阵虽然提供的信息不重要,但是可以做补充用。此外,大模型所带的冗余性更强,可以有更多参数被修剪掉。作者同时分析了哪部分注意力更重要:通过冻结FFN,保持词嵌入矩阵可训练,冻结各部分注意力参数,文章发现模型只训练解码器部分的注意力机制时,模型BLEU下降最少,说明了解码器的重要性
文章同时指出这样的分析不具有任务普遍性。对于语言模型来说,词嵌入矩阵是最重要的模块
此外,[Kasai2021] 通过实验揭示解码器层数变低并不会显著影响模型性能,在编码器保持6层,解码器降低到1层时(称为shallow decoder),模型BLEU下降不会超过1个点。此外,如果将编码器提升至12层,12-1的模型架构在WMT16罗马尼亚-英数据集上BLEU还会提升。这种shallow decoder结构不仅不会影响BLEU值,还会将模型解码速度提速至原来的2-3倍
编码器
[Raganato2018] 通过可视化、构建生成树进行依存分析标注以及迁移学习等方法分析编码器的表示能力,得出四个结论:1. 编码器的每一层至少有一个注意力头可以编码语法依赖关系;2. 编码器底层携带语法信息更多,而高层携带语义信息更多;3. 输入长度信息从第三层以后开始消失;4. 注意力机制可以把模型层高资源任务中学到的信息迁移到低资源任务中。在高资源任务(英德数据集)上训练的模型,在低资源任务(英土数据集)上微调,可以提高1.7个BLEU。
[Tang2019a] 对编码器的消岐功能进行了研究,并发现自注意力机制从第一层会聚焦于歧义名词本身,在高层则持续从上下文中抽取相关信息。此外,自注意力可以识别有歧义的名词,对这些词,它们会分配更多注意力在上下文中。编码器的第一层就有一定的WSD能力,且这样的能力随层数升高而增强。[Tang2019b] 则通过实现一个无编码器的机器翻译模型(“编码器”每个实践部的最终隐藏状态仅由词向量与位置向量加和而成)探寻编码器的关键组件。实验结果表明,无编码器的情况下,词嵌入的效果和基线模型的词向量类似,学到的注意力模式与基线模型的注意力模式也相似。然而,随着编码器层数的升高,模型效果持续上升,而编码器层数升高会使得源端信息的表示质量变高,因此源端信息的表示质量是影响翻译模型的主要因素
解码器
[YangYilin2020] 将Transformer的解码器分成了三个部分,分别是
- 目标语言探索模块(TEM),对应于每一层的自注意力子层 + LayerNorm与残差连接
- 源语言探索模块(SEM),对应于每一层的编-解码器注意力部分。和TEM不同的是,没有包含这部分的LayerNorm与残差连接
- 信息融合部分(IFM),解码器每一层的剩余部分
具体划分方法如下图所示
文章通过探测法(probing)及检查对齐错误率(AER)和源端覆盖度进行分析,得出如下结论:
- 首先,SEM部分非常重要,解码器得到的信息表示通过SEM部分逐层进化。其中,底层SEM构造必要的上下文信息(随层数增高覆盖的源端信息逐渐变多),高层SEM完成词对齐功能。
- 其次,TEM为SEM提供查询向量 q \boldsymbol{q} q,因此可以协助构建对齐信息,但是TEM和SEM的词序并不重要,因此可以考虑将这两个子层合并。
- 最后,IFM部分的第一个Add&Norm处理后得到的嵌入表示所包含的信息,与第二个Add&Norm处理后得到的嵌入表示所包含的信息基本相同,即FFN对信息表示的进化过程没有影响。如果去掉FFN并只保留一个Add&Norm,模型BLEU大致不变,还同时加快了训练和推理速度(这一结论与前述工作感觉存在矛盾,可能需要进一步分析)
注意力的头
Transformer的一大创新点是引入了多头注意力机制。多头的引入使得输入可以被映射到不同空间,进而把握更多方面的特征,但是代价是降低了解释性而且引入了冗余
[Volta2019] 通过逐层相关性传播(Layer-wise Relevance Propagation, LRP)确定每一层不同的注意力头对最终预测的贡献(LRP的方法看上去比较复杂,在本文附录中也不会介绍,感兴趣的可参考原文附录)。同时,该工作也计算了每个注意力头的“信心”值,该值定义为除了对EOS以外,分配的注意力权重最大值的均值。直觉上,越“有信心”的头,其重要程度越大。实验证明,“信心强度”和LRP值基本能对应,唯一的例外是第一层有一个头(若无说明,都指编码器自注意力的头),LRP很高,但“信心”不足。研究发现该头一般注意罕见词。通过分析,文章发现除了罕见词以外,可鉴别出功能的注意力头一般关注与位置信息(而且通常是关注邻接词)或语法信息中的依存关系
文章同时提出了一种注意力头的裁剪方法,引入了一个可训练的标量门,在已经收敛的模型上继续训练,来学习“关闭”某些不重要的注意力头(具体方法也需要一定背景,不会在本文附录介绍)。实验表明,如果只对编码器头裁剪,对WMT任务,48个头裁剪到只剩10个头时,BLEU只下降0.15,且留下的头通常都承担前面介绍的三种功能中的一种(位置信息、语法信息、罕见词信息)。如果对所有注意力头裁剪,模型会先裁剪编码器注意力头,而编-解码器注意力注意力最重要。对长句而言,解码器自注意力几乎和编-解码器注意力一样重要,而对短句而言,其仅比编码器自注意力重要一点。分析发现,解码器底层更多保留自注意力,高层更多保留编-解码器注意力,说明解码器底层做语言模型,高层做基于源句的条件输出。这一发现与前述[WangWenxuan2020]的工作更契合。需要注意的是,如果使用裁剪后的模型架构从头训模型,模型BLEU下降的幅度会大很多。这说明通过裁剪得到的稀疏模型不能通过从头训练得到
同年,[Michel2019] 也讨论了多头注意力机制带来的冗余问题。该工作提出的裁剪方法更简单粗暴,是直接对某个选定的注意力头置0。在WMT2014英法任务上的研究发现,对各个层,除了最后一层的编-解码器注意力以外,其它所有注意力都削减到只有一个注意力头,模型效果都不会大幅下降(大部分都不会有统计显著的变化)。定义 x x x为某样本, L ( x ) \mathcal{L}(x) L(x)是该样本上的损失值,如果将所有层所有注意力头按照下式定义的重要性从低到高排序,逐个裁剪,裁掉40%的头时,模型BLEU只会从36下降到33,效果降低不超过10%,但是缩减了模型大小,提高了推理速度。进一步地,对编码器自注意力和解码器自注意力,裁掉70%的头,对BLEU影响都有限;不过对编-解码器自注意力,裁掉60%的头BLEU就会低于30,裁掉70%的头BLEU会掉到10,说明该部分注意力更依赖多头机制
I h = E x ∼ X ∣ A t t h ( x ) T ∂ L ( x ) ∂ A t t h ( x ) ∣ I_h = \mathbb{E}_{x \sim X}\left|{\rm Att}_h(x)^\mathsf{T}\frac{\partial \mathcal{L}(x)}{\partial {\rm Att}_h(x)}\right| Ih=Ex∼X∣∣∣∣Atth(x)T∂Atth(x)∂L(x)∣∣∣∣
此外,在更小数据IWSLT上的实验表明,模型会在训练初期10个epoch之内确定各个头的重要程度。从第10个epoch开始,移除不重要的头继续训练也可以保留85-90%的BLEU
自注意力机制
Transformer提出时指出自注意力缩短了句子中两个单词之间的路径长度,因此提升了模型效果。对此,[Tang2018] 训练了三种不同的神经翻译模型结构,分别是基于RNN的s2s模型、基于CNN的s2s模型和Transformer,并将预训练模型用在了主谓一致任务上。实验表明,对长距离的主谓依赖关系,Transformer并没有显著比RNN更好,而CNN表现更差,因此不能说它们可以很好捕捉长距离依赖关系。作者进一步在词义消歧任务上进行了实验,发现Transformer的效果明显优于其它两种模型,因此认为自注意力机制的引入使得Transformer的语义特征提取能力更强
由于Transformer使用自注意力结构来替代传统RNN的时序结构,因此有声音认为Transformer在序列建模任务中对单词位置信息建模的能力比较弱。[YangBaosong2019]为此设计了一种探测任务,称为单词重排序检测任务(WRD),即对一句话,随机选择两个位置O和I,将位置O的单词拿出放在位置I上,然后检测以此方式打乱顺序的句子,要求模型能正确判断哪个位置是O,哪个位置是I。文章观察了两种编码器,一种是以WRD准确率为目标从头训练的RNN/Transformer模型(I类模型),另一种是先使用机器翻译任务预训练,然后以WRD准确率为目标微调最后一层输出(II类模型)。实验结果显示,I类模型中Transformer架构得到的WRD准确率最低,说明Transformer本身的确存在词序信息捕捉能力不强的短板。但是II类模型中Transformer架构得到的WRD准确率反而最高,说明任务训练使用的目标函数最关键。此外,该工作还有如下发现
- 剥离位置编码,II类模型的翻译得分和WRD准确度得分均大幅下降(WRD准确率 < 0.01),说明位置编码对Transformer捕捉词序信息有决定性作用
- 随着层数升高,编码器捕捉位置信息的能力变强(微调后WRD准确率变高),说明位置编码可以有效传递到高层(很可能是通过残差连接)
- 观察I位置和O位置距离与模型WRD准确率的变化关系,发现II类模型随着O-I距离变长,WRD准确率持续显著下降,说明机器翻译模型对长句依赖的捕捉能力有限(无论RNN还是Transformer都如此)。但是I类模型表现稳定,再次说明是任务本身决定词序关系的捕捉能力
- 将打乱位置后的句子作为源句输入翻译模型,Transformer翻译结果BLEU下降幅度小于RNN,说明Transformer对词序鲁棒性更强
在自注意力机制被提出以后,若干分析都发现自注意力倾向于集中于前/后一个词或自身或句尾。[Raganato2020] 对此提出了“固定的注意力模式”:通常情况下,Transformer采用多头注意力机制,一共有8个头。该工作将其中7个头都改造为固定分配注意力权重,不再通过模型学习。称原始架构为8L架构,新的架构为7H1L架构,实验表明,在中/高资源场景下,7H1L架构比8L架构能节省参数数量,同时不会造成太多翻译效果损失(高资源场景基本持平,中资源场景8L架构稳定高0.x BLEU)。在低资源场景下,7H1L架构反而可以比原始架构高3个点。进一步分析表明,对越长的句子,8L模型效果越好
编-解码器注意力与对齐信息提取
在基于RNN的编码器-解码器模型中,注意力的权重可以看做是对齐信息的体现,有良好的解释性。但是在Transformer中由于多头注意力的引入,且解码器每层都与编码器有注意力计算,这样的对齐信息体现不太明显
[Kobayashi2020] 认为仅使用注意力权重做注意力解释是不够的,根据公式
y i = ∑ j = 1 n α i , j f ( x j ) f ( x ) : = ( x W V + b V ) W O \begin{aligned} \boldsymbol{y}_i &= \sum_{j=1}^n \alpha_{i,j} f(\boldsymbol{x}_j) \\ f(\boldsymbol{x}) &:= \left(\boldsymbol{xW}^V+\boldsymbol{b}^V\right)\boldsymbol{W}^O \end{aligned} yif(x)=j=1∑nαi,jf(xj):=(xWV+bV)WO
有可能权重 α i , j \alpha_{i,j} αi,j很大,但是变换后的向量 f ( x j ) f(\boldsymbol{x}_j) f(xj)很小,这样这一项对最后的结果 y i \boldsymbol{y}_i yi贡献也不大。文章提出了基于范数的分析,意在同时分析 ∥ α f ( x ) ∥ \|\alpha f(\boldsymbol{x})\| ∥αf(x)∥的解释能力。为此,针对NMT模型,文章提出了两种抽取方式:
- 基于权重的对齐抽取:对给定目标单词 t i t_i ti,找出对齐权重 α \alpha α最高的源端单词 s j s_j sj作为对齐词
- 基于范数的对齐抽取:找出 ∥ α f ( x ) ∥ \|\alpha f(\boldsymbol{x})\| ∥αf(x)∥最大的单词作为对齐词
其中多头信息通过求和来聚合。此外,之前实验表明,在第 T T T时刻根据输入 t T t_T tT解码生成单词 t T + 1 t_{T+1} tT+1时,解码器底层的注意力头会将 s j s_j sj<