其中 x 的 embedding 和 encoder 中的 embedding 是共享的,而 hidden 是 reconstructor 中单独的参数,inverse attention 的做法也是和原来的 attention 做法是一样。那么整个模型的 training 目标就是: 在做 testing 的时候,也是用这个目标,不同的是:先通过 beam search 根据 likelihood P 得到一些 candidate,然后用 reconstructor 去算每个 candidate 对应的 reconstruction score R,根据 P+lambda R 去选择最终的 translation,相当于是做一个 reranking。流程如下: 实验只在 zh-en 的数据集上验证,不过有很多 analyze 的实验,同时 encoder-decoder 的参数是通过 RNNSearch 模型 warm start 的。 资源 训练集:1.25M LDC的zh-en数据集; 验证集:NIST2002; 测试集:NIST2005, NIST2006, NIST2008 实验结果 做了很多分析的实验: 1. 先是让人打分,看 reconstruction score 和 adequacy 还是 fluency 相关性更大,人觉得是 adequacy 更相关。 2. 然后是在 training 的时候观察验证集上的 bleu 和 reconstruct 的 source sentence 的 bleu(x, x')的bleu 的变化,然后发现 110k iteration 的时候是这两个值是 balance 最好的。 3. 之后是在不同 beam size 的时候,加上 reconstruction 之后验证集上的 bleu 和 translation 的长度都变好了。 4. 接着是在测试集上的 bleu 变化,高了 2 个点以上。 5. 然后在 testing 的时候加上 reconstruction 比不加又高 1 个点。 6. 在长句子上的表现更好,bleu 更高。 另外还说虽然模型变复杂了,但是速度没有变的特别慢,还有一个是和作者之前自己提出的 context gate,model coverage 比较,都比它们好,以及其他一些涉及人工观察的实验。 相关工作 1. Modeling coverage for NMT 2. Context gates for NMT 3. Semi-supervised learning for NMT 简评 本文用(supervised)autoencoder 的思路,在原有的 NMT 模型上构建了一个 reconstructor,使得 x 翻译得到 y 之后,这个 y 也能通过 reconstructor 重建回 x,这样一来就说明模型中 encoder 和 decoder 的 hidden 所包含的信息是相对充分的,能够改善翻译不充分(重复翻译和翻译不足)的问题。思路非常的清晰简单,模型也不复杂,实验非常丰富,分析了很多的点来说明这个模型表现的很好。值得学习这种清晰的思路和简单的模型构建。 完成人信息 吴郦军 中山大学 实录 问:为什么 beam search size 越大,效果越差? 答:这个问题是这样,一方面 LL 的目标函数本身倾向于更短的句子;另一方面当 beam size 变大的时候,这个问题就会凸显的更加严重。我们来看下,当 beam size 变大时,其实是可能产生很多短的 candidate 的,而这些短的 candidate 的概率就会变得相对较大,因为句子的概率是连乘 `(P(y_1...t)=p(y_1)p(y_2|y_1)...p(y_t|y_<t))` 的形式,所以短的句子很可能概率更大,这也就是第一点 LL 的问题;那么,当 beam size 比较小的时候,decoding 的每一步都会去选择概率最大的 k 个词语,所以那些短的句子基本上也就不会出现了。 问:Model 是 warm start 的,那如果不是 warm start 效果会如何?另外 reconstructor 是 cold start 的,这个是不是不好? 答:准确的说,现在很多 nmt 的工作都是 warm start 开始的,因为可能存在不是 warm start 模型可能无法收敛, 学不出来等的情况或者是为了加快学习速率,比如用预先训练好的 language model 的 embedding,再比如 rl 的方法不 warm start 就会导致搜索空间太大而无法学到等。所以 warm start 还是很重要的而且很通用。在这个工作中,如果不 warm start 似乎没有看出特别大的问题,所以这个还是需要实验来证明好不好;另外对于 reconstructor,的确可以先将地下的 encoder 和 decoder 固定住,先 pre-train 上层的 constructor,然后再 joint 的 supervised training,这样也是可以的。不过同样好不好还是得看试验结果,这里可能只是学习速率上的区别。这点因为没有做实验,也不好说。只是个人猜测。 问:为什么 beam size 变大,就会产生更多较短的 candidates? (责任编辑:本港台直播) |