ACL 2016 | CopyNet 和 Pointer Softmax
ACL 2016 | CopyNet 和?Pointer Softmax
2016-08-17小S程序媛的日常
上一篇 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 系列推薦。往期查看:
ACL 2016 | Modeling Coverage for Neural Machine Translation
ACL 2016 | 十大優秀論文 Multimodal Pivot for Image Caption Translation
ACL 2016 | 十大優秀論文 Globally Normalized Transition-Based NN
ACL 2016 | 十大優秀論文 Improving Hypernymy Detection by Yoav Goldberg
ACL 2016 | 十大優秀論文之?Learning Language Games Through Interaction
ACL 2016 | 十大優秀論文之?Harnessing DNN with Logic Rules
ACL 2016 | 放棄 human annotations,提出可解釋性更好的 evaluation
干貨 | Multimodal Deep Learning 初窺
總結
以上是生活随笔為你收集整理的ACL 2016 | CopyNet 和 Pointer Softmax的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ACL 2016 | Modeling
- 下一篇: 干货 | 你真的了解 Convoluti