目录
参考干货 | Pointer Network 与 CopyNet 之上有哪些新颖任务
首先讲前两篇ACL2016的文章,为了解决如何把 sequence2sequence任务(不只是机器翻译 MT)中的某些信息“原封不动”地保留下来(而不是翻译)而提出的。
作者提出的网络叫做 CopyNet,提出的机制叫做 Copying Mechanism。
其实就是说,比如我们在对话过程中,会出现“你好啊,我叫小S”,然后另一方要回答,“很高兴认识啊小S。”那么这个小S,也就是说实体信息或者日期信息等等,就是在对话的 input-output 中,被“复制”的。这个信息是应该“原封不动”地被保留,从 sequence2sequence 的输入端被复制到输出端的。现有的 end2end sequence2sequence 等模型,即使加了 attention 机制,也很难做到这点。
难点主要有两个:
CopyNet 的框架如上图。主要结构还是基于 Bahdanau 2014 提出的attention-based encoder-decoder框架。但是,在decoder部分,CopyNet 做出了一些改进:
这样一来,CopyNet 就能比较好地『复制』出一条完整的subsequences,而不是只复制了片段。
在实验部分,CopyNet 被重点应用在了text summarization的任务上。实验结果非常不错,case study 也给出了很多分析,比如它是完美解决 OOV 问题的。从某个角度来说,CopyNet
也就可以把CopyNet认为是一种extractive和abstractive summarization的结合。
然而,其实[1] 的工作暂时有一个比较大的局限是,它因为是“原封不动”地“复制”输入端的信息,CopyNet 还不能被应用到机器翻译 MT 这个输入端和输出端语言不同的任务上。这也是[1] 和 [2] 的一个重大不同。[2] 的工作乍一看复杂一些,但是灵活性可能就相对高一点。如果说 [1] 里的 CopyNet 要解决的是,what to copy 和 where to paste;那么这篇论文[2] 解决的就是learn to point 和when to point。这俩问题都是通过他们[2] 提出的 Pointer Softmax(PS)model 解决的。
在PS里,有两个softmax输出层:
也就是说,当 PS 决定走 shortlist softmax 时,就开启generate-mode,从shortlist中生成一个词给decoder;而如果是相反,则从location softmax获取要『复制』的词在输入端的位置。那么,帮PS决定是走哪个softmax的方式就是通过一个实际上是MLP的switch network。
因为不是直接『复制』输入端的具体内容,而是找到输入端的内容的位置,所以 PS 可以完成机器翻译这种输入端和输出端不是同一种语言的任务。在实验中,这篇论文[2] 也分别在 detect rare words,机器翻译MT 和 summarization 上都进行了测试。