每周论文38

论文:

  1. Dynamic Sentence Sampling for Efficient Training of Neural Machine Translation
  2. Diverse Beam Search- Decoding Diverse Solutions from Neural Sequence Models
  3. Breaking the Beam Search Curse: A Study of (Re-)Scoring Methods and Stopping Criteria for Neural Machine Translation

[Dynamic Sentence Sampling for Efficient Training of Neural Machine Translation]

Motivation:希望能每次只选择一个subset训练,以达到减少训练时间的目的。

具体做法是:除了一开始两个epoch用full dataset来训练外,之后的每个epoch每次选择剩下的数据中80%来训练。同时,还要从被丢掉的sample中选择10%的数据作为review。

记:

为两个epoch之间对同一句对cost/loss减小的比例。由于可能会出现负值,因此对其进行归一化:

若该值小,则说明接下来的improvement应该不会大的,相反则可能会大。(疑点:假如存在负的,那么对于这个最小的min而言,criterion是0,按理说应该要把这个句子丢进去才是,因为不减反增。可是这里并没有这样的机制。)

然后我们根据这个criterion计算weight:

根据这个weight去做采样。其实就是对于那些接下来有较大可能性提升的句对进行采样。

感觉这个方法的motivation不是很强。


[Diverse Beam Search- Decoding Diverse Solutions from Neural Sequence Models]

Motivation:
传统beam search的问题:没有多样性,多个beam的前缀是一样的,使得浪费了很多计算;同时没有多样性会带来在image caption等任务表现不佳。

其具体做法是:
将beam size分为g个group。先生成第一个group,接着按序生成接下来的g-1个group。其中生成的过程中,每一个timestep都要参照之前的group的相同timestep的词。加上一个cost鼓励当前timestep生成的词尽量不一致。

如图,前两个group已经生成好,在生成第三个group的时候,不仅要考虑本身的概率,还要考虑diversity的cost,尽量与之前group生成过的词不一样。其中cost在这里形式化为:

整体算法:


[Breaking the Beam Search Curse: A Study of (Re-)Scoring Methods and Stopping Criteria for Neural Machine Translation]

讨论了一个现象:为什么beam越大,反而performance变差?并且提出了相应的解决方案。本文指出,这一现象的原因是length ratio的问题。

首先回顾bleu的计算方法:

bp是长度的惩罚,会惩罚短的句子。

而beam search通过计算序列的score来选择最好的序列。其中score为序列中每个词的log probability之和:

则:beam size越大,遇到eos的可能性越大,①会提前终止;②length减小使得bp变小。提前终止有个好处,就是score会倾向于更大,这是因为计算score是log的累加,而log是负数,长度越长score越小,但score和bleu并不一定正相关。而提前终止可能会带来生成序列本身质量变差。

本文根据以上原因提出的解决方案:主要是针对长度做normalization,以及对每个词都有reward,同时针对bleu的计算公式对score做了优化,还有就是针对beam search停止条件也做了改进。希望能够通过修改score,选中更好的序列,更好的序列指的是bleu分数更高的。具体就不写了。

本文从bleu的计算公式去找原因,逻辑顺畅。