论文链接:https://arxiv.org/pdf/1409.3215.pdf
(在另外一篇论文里看到的beam size,不太懂,就过来看原文啦,话不多说,ready go~~~)
本文提出了一个端对端的序列学习方法,对序列结构做最小的假设。使用多层LSTM将输入序列映射到一个定长的向量,然后另一个deep LSTM来做decode。
结果:使用WMT‘14做English to French翻译的任务,BLEU分数在整个测试集上达到34.8,LSTM的BLEU分数因为超出vocabulary的词而被惩罚。除此之外,LSTM可以解决长序列。为了做笔记,a phrase-based SMT system在同样的数据集上达到了33.3BLEU分数,当使用LSTM来重新排序由SMT系统产生的1000个hypotheses,BLEU分数达到了36.5。
Finally, we found that reversing the order of the words in all source sentences(but not target sentences) improved the LSTM's performance markedly, because doing so introduced many short term dependencies between the source and the target sentence which made the optimization problem easier
(表示这个很神奇啊)翻转source sentence的顺序可以提高LSTM的performance。
Deep Neural Network(DNNs) are powerful because they can perform arbitrary parallel computation for a modest number of step. DNNs 的强大是因为它们可以为一定数量的步骤执行任意的并行计算。
过去的限制:DNN只能被用于输入和target可以被编码到定长维度的向量的问题。
模型:
目标是估计条件概率:
T‘ 和 T可能不同。
先提取输入序列(x1, ..., xT)的最后一个隐状态,然后再计算y1, ..., yT' 的概率 with a standard LSTM-LM formulation whose initial hidden state is set to the representation v of x1,..., xT
每个p(yt | v, y1, ..., yt-1)分布是通过所有vocabulary中所有词的softmax表示。
S---source sentence, T---correct translation。 求和公式下的S是training set。当训练结束后,通过找到最可能的翻译作为结果:
We search for the most likely translation using a simple left-to-right beam search decoder which maintains a small number B of partial hypotheses, where a partial hypothesis is a prefix of some translation.
beam search: 只在test的时候需要。假设词表大小为3,内容为a, b, c。 beam size为2
decoder解码时:
1. 生成第1个词的时候,选择概率最大的两个词,假设为a, c,那么当前序列就是a, c
2. 生成第2个词的时候,我们将当前序列a和c,分别与词表中的所有词进行组合,得到新的6个序列aa ab ac ca cb cc,然后从其中选择2个得分最高的,当作当前序列,假如为aa cb
3. 后面会不断重复这个过程,直到遇到结束符为止。最终输出2个得分最高的序列。