当前位置: 代码迷 >> 综合 >> 论文阅读:Scheduled Sampling for Transformers
  详细解决方案

论文阅读:Scheduled Sampling for Transformers

热度:43   发布时间:2024-02-27 01:04:01.0

文章目录

    • Abstract
    • 1 Introduction
    • 2 Related Work
    • 3 Scheduled Sampling with Transformers
      • 3.1 Two-decoder Transformer
      • 3.2 Embedding Mix
      • 3.3 Weights update
    • 4 Experiments
    • 5 Discussion and Future Work
    • 总结

Abstract

Scheduled sampling本是用来解决序列到序列中的exposure bias问题,即RNN模型在训练时使用的是真实值(teacher forcing),而在测试时使用的是预测值,这两者的不一致则会导致误差。这种技术通过喂给模型混合了真实值和预测值的数据来训练模型,此做法在RNN网络中取得了成效。然而Transformer模型与RNN不同,transformer的每个新词通过前面的所有词来预测,而不只是通过最后一个词,所以我们无法像在RNN模型中使用scheduled sampling。在Transformer中,我们采用了两次解码的策略。通过在两种语言翻译的实验,我们实现了与采用teacher forcing模型相近的效果,并且展示这项技术有值得探索的前景。

1 Introduction

之前的使用seq2seq的神经机器翻译所使用的teacher forcing意味着这个模型从来没有在它错误预测上进行训练,因此会产生一种现象叫exposure bias,这将会导致在翻译时因为是使用的自己的预测而产生错误。
一种常用的解决这个问题的方法是使用scheduled strategy来决定什么时候使用teacher forcing,对于卷积的解码器,使用scheduled sampling很简单:在生成每个词时,模型决定是使用teacher forcing还是使用模型预测的词。
而在Transformer模型中,生成每个词需要前面所有的词而不只是最后一个词,这使得在transformer上直接使用此模型变得不容易,由于Transformer已经成为了自然语言处理的默认选项,所以将scheduled sampling应用在transformer上变得有趣起来。
我们在此文中的贡献包括:

  • 我们打算在训练时使用两遍decoder来在Transformer模型上使用schedual sampling。
  • 我们比较了几种不同的方法,当真实值被预测值替代时对模型的影响。
  • 我们在对两种语言对翻译的机器翻译任务中测试了使用scheduled sampling方法的transformer模型,并且取得了接近使用了teacher forcing模型的效果(在某些模型中有接近1BLEU的进步)。

2 Related Work

在RNN模型中使用scheduled sampling: 模型中在step t+1使用的embedding来自于step t 中随机选择真实值或者预测值,并且选择真实值的几率随训练进行减少,有三种几率衰减的策略: linear decay, exponen-
tial decay and inverse sigmoid decay.
decay schedules
Goyal et al. (2017)提出了一种想法,即在每一步,当模型决定使用模型的预测而不是argmax时,他们使用所有词向量的平均权重,使用预测的分数加权。他们使用两个选项来实验:一个softmax和一个temperature参数,和一个使用带有temperature的Gumbel Softmax的随机变量。使用此技术,他们实现了比标准的scheduled sampling更好的结果。

3 Scheduled Sampling with Transformers

在RNN的训练阶段中我们每一个time step生成一个词,并且
我们是在之前真实值的基础上来产生这个词,所以这也使得在RNN中使用scheduled sampling很方便,而Transformer模型所使用的是前面所有的词而不只是最后一个词,所以,我们需要作出一些改变以使得能在Transformer上使用这个技术。

3.1 Two-decoder Transformer

我们所提出的在transformer上应用scheduled sampling采用了在模型上两次通过decoder。我们并不改变原来模型的decoder。scheduled transformer的解码有以下步骤:
Two-decoder Transformer

  1. 第一次通过decoder:得到模型的预测值。 在这一步中,解码器使用真实值来预测每个位置的分数,就想在标准的transformer模型中一样,这些分数将传给下一步。
  2. 将真实序列与目标序列混合 在获得了模型预测的每个位置上的值的序列后,我们通过混合真实值和预测值来模仿scheduled sampling:对于序列的每个位置,我们通过一个给定的几率来确定是用真实token还是预测token。使用teacher forcing的几率是一个关于training step的函数并且与选定的计划来计算。我们将这个‘新的参考序列’作为第二个decoder的参考值,模型预测所使用的向量可以是最高分值词的embedding或者embedding的混合。下面描述了几个根据模型对每个位置的预测的构建向量的几个变量。
  3. 第二次通过decoder:最后一次预测。 第二次decoder使用真实值与模型预测值的混合作为输出,decoder的输出是模型真实的结果。

值得注意的是这两个decoder是相同的且采用相同的参数。我们在第一轮使用相同的decoder,在第一轮使用真实值而在第二轮中使用真实值与预测值的混合值。

3.2 Embedding Mix

对序列中的每个位置,第一轮decoder给单词表中的每个词一个分数,我们探索了很多方法来在模型预测时使用这些分数。

  • 最明显的例子是不使用混合的embedding,只使用模型预测的argmax,比如使用词汇表embedding中最高的分值。
  • 我们也实验了混合top-k个embedding。在我们的实验中,我们使用embedding的分值的top-5分值词汇表的加权平均。
  • 受到 Goyal et al. (2017) 工作的启发,我们测试了传递含有softmax和temperature参数的混合embedding。使用更高的temperature参数得到更好的近似argmax。

    eˉi?1\bar{e}_{i-1}eˉi?1?是将在当前位置使用的向量,由所有词汇表中词的embedding相加得来,再使用si?1s_{i-1}si?1?的softmax来进行加权。
  • 另一个使用argmax的候选项是从softmax分布中取样一个embedding。也是基于 Goyal et al.(2017)的网络,我们使用我们使用 Gumbel Softmax (Maddi-son et al., 2016; Jang et al., 2016) 近似采样embedding
    在这里插入图片描述
    其中 U ~ Uniform(0,1) 并且 G = -log(-logU)。

3.3 Weights update

我们基于第二轮decoder的输出来计算交叉熵。对于那些所有单词表的单词(Softmax,Gumbel softmax, Sparsemax)加起来的例子,我们尝试两种更新模型权重的变量。

  • 只是在最后一轮预测实处的decoder进行反向传播,并基于真实值与预测值的混合embedding。
  • 在第一与第二轮decoder上都进行反向传播,这种设置类似于 Goyal et al. (2017)提出的scheduled sampling。

4 Experiments

我们报告在Transformers上采用scheduled sampling机器翻译任务的实验。我们在两个语言对上运行了这个实验:

  • IWSLT 2017 German?English (DE?EN,Cettolo et al. (2017)).超参数
  • KFTT Japanese?English (JA?EN, Neubig(2011)).

我们使用BPE来分割句子对。
上表中表明了实验所使用的超参数,所有的模型都采用了OpenNMT-py (Klein et al., 2017)。我们将我们的模型与teacher forcing baseline比较,比如一个标准的,不采用scheduled sampling的transformer模型,采用上表的参数。我们通过尝试几种不同的dropout 和 warmup steps值来调整超参数,并且选择最优的在验证集的BLEU分值。
使用scheduled sampling模型,使用teacher forcing的几率随着training的进行不断地降低。在scheduled sampling的衰减策略中,我们发现线性衰减是在其中工作的最好的:
t(i)=max{?,k?ci}t(i) = max\{\epsilon, k - ci\}t(i)=max{ ?,k?ci}
其中0≤?<10 \leq \epsilon < 10?<1表明teacher forcing 在模型上使用的几率,k、v提供了衰减的斜率和偏移量。此函数决定了在序列中此位置使用teacher forcing的几率t,
在这里插入图片描述
实验的结果显示在表2中,只使用最高分预测词的scheduled sampling方法没有很好的表现。使用混合embedding (the top-k,
softmax, Gumbel softmax or sparsemax)并且只在第二轮decoder进行反向传播的模型比正常的baseline在验证集上有更好的表现,并且其中一个在测试集上有好一点点的表现。而采用了第一轮decoder也进行反向传播的模型有更差的结果。这些模型的表现开始下降的太早了,所以我们希望在更多的训练步上采用teacher forcing以取得更好的表现。因此这些设置仍需要小心地检查。

5 Discussion and Future Work

在这个paper中,我们陈述了我们在Transformer上应用scheduled sampling技术的方法,由于Transformer中decoder的特殊性,我们无法像在RNN上直接应用scheduled sampling,而是通过使用两轮decoding。我们通过使用几个schedules和混合embeddings来进行试验。我们在两个语言对上测试模型。试验结果表示我们的scheduled sampling策略在两个语言对的验证集上比teacher forcing都有更好的结果,并且在其中一个语言对(JA-EN)上有更好一点点的测试集结果。
未来一个可能的实验方向是增加schedules。我们注意到当schedule开始快速下降,比如使用指数或者逆sigmoid衰减。词模型的表现下降的太快。因此,我认为这值得探索更多的schedules当训练阶段的开始有更多的纯teacher forcing并且衰减地更慢,比如,逆sigmoid经过了很多轮训练之后才开始衰减。我们也将在更多的语言对上做更多的实验。
最后,我们需要去探索在两次decoder都进行反向传播时scheduled sampling的糟糕性能。在此种情况下,模型的性能开始下降的太早并且其中的原因需要仔细检查。我们希望此设置在调整了衰减schedule使得在使用模型预测前使用更多teacher schedule后有更好的结果。

总结

这篇paper主要介绍了在Transformer上探索如何使用schedule sampling,由作者的测试可知,使用两轮decoder,并且两轮decoder的参数都相同,在第二轮decoder上进行反向传播。在第一轮使用真实值,第二轮使用真实值与预测值的混合值。
而在混合值中teacher forcing的衰减策略上也很值得商榷,其中有三种衰减函数: linear decay, exponen-tial decay and inverse sigmoid decay。

  相关解决方案