从0开始GAN-5-decoding

paper1

Constant-Time Machine Translation with Conditional Masked Language Models

Motivation

很有意思的一篇paper. 把auto-regressive转换成non-autoregressive. 其做法是先确定一个target sentece的长度,然后可以看作是每一个time-step的分类任务了。这样decoder就是可并行的了。

architecture

模型架构采用transformer的架构。

原生的 Transformer:

  • source-language encoder: self-attention, 包括padding mask.
  • translation model decoder
    • self-attention, 包括padding mask和 look ahead mask,用以mask掉future information.
    • interaction attention with enc_out, 包括 padding mask.

这篇paper中的 conditional mask language model(CMLM) 与transormer的区别在于 decoder 部分的self-attention去掉了 look ahead mask. 所以可以类似于 BERT 那样基于上下文来预测被 mask 的词,decoder 是 bi-directional.

Decoding with Mask-Predict

decoder 的具体操作是一个迭代的过程。

src Der Abzug der franzsischen Kampftruppen wurde am 20. November abgeschlossen .
t=0 The withdrawal of French combat troops was completed on November 20th .
t=1 The departure of the French combat completed completed on 20 November .
t=2 The departure of the French combat completed completed on 20 November .

表中加粗的部分是被 mask 的。可以看到随着迭代进行,mask的词越来越少。

如何选择mask的词:
1. mask词的数量n: 基于一个递减的公式, \(n=N\dfrac{T-t}{T}\). t 是迭代次数。
2. mask哪些词呢:\(Y^{(t)}_{mask}=argmin_i(p_i,n)\) \(p_i\) 表示上一次prediction得到的每一个词的置信度,选择概率最低的 n 个词。

基于 encoder_src, \(Y_{obs}\) 对 mask token 进行预测:

target sequence length

这中 non-Autoregressive 存在的一个大问题就是如何确定target sentence 的长度。在 auto-egressive 里面是根据 来确定句子长度的。

针对这个问题,作者采用了类似于 BERT 中 CLS 的做法。使用了 \(LENGTH\) 来预测sentence的长度,也是一个分类任务,这个 LENGTH 对应的词表应该就是长度~

作者选取 top b length,类似于 beam search. 然后选择 candidated b sentence 中概率最大的.

\[\dfrac{1}{N}\sum logp_i^{(T)}\]

paper2

Deterministic non-autoregressive neural se- quence modeling by iterative refinemen