上一篇 ACL 2016 系列的干货,为大家推荐的是一篇解决机器翻译 MT 中的小问题的论文《Modeling Coverage for Neural Machine Translation》。如果说这篇论文解决的是如何把翻译漏了的文字补上或者把翻译过了的文字“忽略”掉,那么今天要推荐的这两篇论文,则是解决如何把 sequence2sequence 任务(不只是机器翻译 MT)中的某些信息“原封不动”地保留下来——不翻译!
先来列出今天要推荐的这两篇论文,依然都是 ACL 2016,它们分别是:
[1] Jiatao Gu, Zhengdong Lu, Hang Li, et al. "Incorporating Copying Mechanism in Sequence-to-Sequence Learning". ACL 2016.
[2] Caglar Gulcehre, Sungjin Ahn, Ramesh Nallapati et al. "Pointing the Unknown Words". ACL 2016.
这两篇论文有非常多的相似之处,当然也有细小的不同。非常受鼓舞的一点是,虽然两篇论文的 idea 如出一辙,但能同时被 ACL 2016 接收,也说明两篇论文的工作都非常扎实。
先来说第一篇[1]。在这篇论文中,作者提出的网络叫做 CopyNet,提出的机制叫做 Copying Mechanism。其实就是说,比如我们在对话过程中,会出现“你好啊,我叫小S”,然后另一方要回答,“很高兴认识啊小S。”那么这个小S,也就是说实体信息或者日期信息等等,就是在对话的 input-output 中,被“复制”的。这个信息是应该“原封不动”地被保留,从 sequence2sequence 的输入端被复制到输出端的。现有的 end2end sequence2sequence 等模型,即使加了 attention 机制,也很难做到这点。作者[1] 认为这个问题的难点,主要有两个,一是要判断输入端中哪个/些信息(sub-sequences)是应该被“复制”的,二是要决定在输出端的哪个地方“粘贴”这些信息。为此,他们提出了 CopyNet 网络。
CopyNet 的框架如上图。主要结构还是基于 Bahdanau 2014 提出的 attention-based encoder-decoder 框架。但是,在 decoder 部分,CopyNet 做出了一些改进:(1)因为要决定是“粘贴”还是选择“生成”,有一个由概率建模的 generate-mode 和 copy-mode。由于 copy-mode 的加入,decoder 便可以产生出一些 OOV words(直接“复制”过来);(2)可能是收到 Neural Turing Machine(NTM)的启发,他们把 decoder 部分的 hidden state 计算变成了 location-specific 的,这个改进的好处是更能让模型去注意要“复制”的那些信息所在的输入端的位置;(3)如果说把(2)的改进看做一种 seletive read,再加上 attention-based encoder-decoder 本身的 attentive read,这两种机制就更需要比较好的 hybrid coordination。这样一来,CopyNet 就能比较好地“复制”出一条完整的 subsequences,而不是只复制了片段。
在实验部分,CopyNet 被重点应用在了 text summarization 的任务上。实验结果非常不错,case study 也给出了很多分析,比如它是完美解决 OOV 问题的。从某个角度来说,CopyNet 一方面可以保留“复制”输入端(原始文章)中的重要信息,另一方面又可以在输出端生成一些和原始文章措辞不同的摘要——也就可以把 CopyNet 认为是一种 extractive 和 abstractive summarization 的结合。
然而,其实[1] 的工作暂时有一个比较大的局限是,它因为是“原封不动”地“复制”输入端的信息,CopyNet 还不能被应用到机器翻译 MT 这个输入端和输出端语言不同的任务上。这也是[1] 和 [2] 的一个重大不同。下面我们就来说说[2]。
[2] 的工作乍一看复杂一些,但是灵活性可能就相对高一点。如果说 [1] 里的 CopyNet 要解决的是,what to copy 和 where to paste;那么这篇论文[2] 解决的就是 learn to point 和 when to point。这俩问题都是通过他们[2] 提出的 Pointer Softmax(PS)model 解决的。
如上图,在 PS 里,有两个 softmax 输出层:其中 shorlist softmax 就是传统的 softmax,而 location softmax 则是比较重要的创新,它表示着某个词在输入端的位置。这两个 softmax 也“对应着” CopyNet[1] 中的 copy-mode 和 generate-mode。也就是说,当 PS 决定走 shortlist softmax 时,就开启 generate-mode,从 shortlist 中生成一个词给 decoder;而如果是相反,则从 location softmax 获取要“复制”的词在输入端的位置。那么,帮 PS 决定是走哪个 softmax 的方式就是通过一个实际上是 MLP 的 switch network。
因为不是直接“复制”输入端的具体内容,而是找到输入端的内容的位置,所以 PS 可以完成机器翻译这种输入端和输出端不是同一种语言的任务。在实验中,这篇论文[2] 也分别在 detect rare words,机器翻译MT 和 summarization 上都进行了测试。
以上就是今天的 ACL 2016 系列推荐。往期查看:
干货 | Multimodal Deep Learning 初窥