Rogerspy's Home

Transformer家族之Deep Transformer

  |  

Transformer 的功能强大已经是学术界的共识,但是它难以训练也是有目共睹的。本身的巨大参数量已经给训练带来了挑战,如果我们想再加深深度可谓难上加难。这篇文章将会介绍几篇就如何加深 Transformer 的展开研究论文。从目前的研究来看 Transformer 之所以难训是由于梯度消失的问题,要对 Transformer 进行加深就必须要解决这个问题,今天我们介绍三种方法:

  • Depth-Scaled Initialization
  • Lipschitz Constrained Parameter Initialization
  • Pre-Norm

Transformer家族之Guassian Transformer

  |  

我们仔细回想一下 Transformer 在计算自注意力的过程, 我们会发现,序列中每个词在与其他词计算注意力权重的时候是无差别计算的。也就是说,这里隐藏着一个假设:词与词之间的距离对语义依赖是没有影响的(抛开位置编码的影响)。然而,根据我们的直觉,距离越近的词可能依赖关系会更强一些。那么事实是怎样的呢?Guo 等人 2019 对这个问题进行了研究,并提出 Gaussian Transformer 模型。

Transformer家族之Universal Transformer

  |  

自从 2017 年谷歌提出 Transformer 模型以后,其在多个任务上的表现都超过了前辈 RNN, 但是在某些任务上表现却差强人意,比如复制字符串(输入 abc, 输出 abcabc)。随后谷歌对原始的 Transformer 进行了改进,提出了 Universal Transformer 模型使其具有更强的泛用性,同时该模型也是图灵完备的。

Levenshtein Transformer 不仅具有序列生成的能力,还具有了序列修改的能力。然而我们会发现,整个模型实际上是很复杂的。从模型结构上讲,除了基础的 Transformer 结构,还额外增加了三个分类器:删除分类器、占位符分类器和插入分类器。从训练过程来讲,LevT 需要一个参考策略(expert policy),这个参考策略需要用到动态规划来最小化编辑距离。这样无论从训练还是才能够推理角度,我们都很难保证模型的效率。那么有没有一个既有 LevT 这样的强大的能力,又保持高效简洁的模型呢?Insertion-Deletion Transformer 就这样应运而生了(内心 os:你永远可以相信宋义进:joy:)。

Transformer家族之Levenshtein Transformer

  |  

之前我们介绍了几个 Insertion-based 的序列生成的方法,使我们跳出传统的从左到右的生成顺序的思维定式。既然有 Insertion 操作,那么一个很自然的想法就是,我们能不能再加入一个 deletion 操作呢?这样我们不仅能生成序列,还可以修改生成的序列,岂不美哉?Gu et al. (2019) 就针对这种想法提出了 Levenshtein Transformer 的模型。Levenshtein Distance 我们不陌生,也就是编辑距离,这里面涉及到三种操作:insertion、deletion、replace,严格意义上来讲 replace 实际上就是 insertiondeletion 的组合,所以 LevT 模型只用到了插入和删除操作。

Transformer家族之Transformer-InDIGO

  |  

之前我们介绍的 insertion-based 生成模型实际上都是人为预先定义了生成顺序或者策略,那么我们能不能让模型自己决定要以怎样的顺序生成呢?这就是本文将要讨论的一种解决方案:Insertion-based Decoding with automatically Inferred Generation Order,将序列的生成顺序当成一种隐变量,让模型在预测下一个词的时候自动推理这个词应该所处的位置。

之前我们介绍的两种 insertion-based 文本生成方法预先规定了每次生成最中间的词,这样一来我们虽然利用树实现了并行,但是却丢失了其中的生成模式,我们不知道模型在生成的时候经历了什么。那么我们能不能让模型自动生成一棵树呢?比如,现在生成了一个根节点,然后再生成左右子节点,然后再生成子节点的子节点,以此类推,但不同的是,这棵树不一定平衡,甚至可能退化成一条链,但我们获得了模型的生成模式,如下图所示:

Transformer家族之KERMIT

  |  

我们注意到 Insertion Transformer 提出一种很有意思的文本生成框架:Insertion-based 。但是它仍然使用的是Encoder-Decoder 框架,这种框架有一个缺陷,就是 $(x, y)$ 无法对 联合概率 $p(x, y)$ 进行建模。对此 William Chan 等人于 2019 年提出一种新的架构:KERMIT,该模型抛弃了传统的 Encoder-Decoder 架构,使得我们能对 $p(x, y)$ 联合概率进行建模。训练阶段可以通过句子对 $(x, y)$ 获得联合概率 $p(x, y)$,也可以通过非句子对分别获得边缘概率 $p(x)$ 或者 $p(y)$。推理阶段我们可以获得条件概率 $p(x|y)$ 和 $p(y|x)$。

Transformer家族之Insertion Transformer

  |  

传统的文本生成,比如机器翻译无论是自回归或者半自回归的推理方式,都有一个特点:通常是自左向右依次生成文本序列。本文将介绍一篇文章,打破思维定式,突破自左向右的顺序生成。Insertion Transformer采用随机插入式序列生成:

  • 以任意顺序生成;
  • 支持自回归或者半自回归生成(同时在不同位置插入)。

Insertion Transformer不仅在效果上远超非自回归模型,而且能以$log(n)$的推理速度,效果上达到原始Transformer的水平。

Transformer家族之Sparse Transformer

  |  

目前来看,自注意力机制有一统NLP的趋势,其凭借能够捕捉序列中任意两个元素的关联信息,且易于并行等优势,在与传统的NLP武林盟主RNN的较量中,几乎是全方位碾压。但是它也并不是没有弱点,之前我们介绍过在机器翻译过程中,它的推理过程是auto-regression的,严重制约了它的推理效率。因此,很多研究人员对它做了一定程度上的改善。今天我们继续来对它进行其他方面的优化,也就是变形金刚家族的另一成员 —— Sparse Transformer