Rogerspy's Home

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

接下来我们介绍一下Sharing Attention Weights for Fast Transformer这篇文章。实际上这篇文章之前还有两个关于加速Transformer推理的文章,一个类似Latent Transformer的引入离散隐变量的类VAE的方法,另一个是引入语法结构达到non-auto regression的方法。个人感觉没什么意思,就直接跳过了。本文要介绍的这篇文章比较有意思,引入共享权重的概念。从近期关于Bert小型化的研究(比如DistilBERT,ALBERT,TinyBERT等)来看,实际上Transformer中存在着大量的冗余信息,共享权重的方法应该算是剔除冗余信息的一种有效的手段,因此这篇文章还是比较有意思的。

从题目就可以看出来,本文将要介绍一种半自动回归的机器翻译解码技术。之前我们介绍了各种非自动回归的解码技术,其中有一个Latent Transformer是先用auto-regression生成一个短序列,然后用这个短序列并行生成目标序列。当时我们说这其实算是一种半自动回归的方法。今天我们要介绍另一种半自动回归的方法——SAT