ACL 2016 | Modeling Coverage for Neural Machine Translation
ACL 2016 | Modeling Coverage for Neural Machine Translation
2016-08-03小S程序媛的日常
今天的 ACL 2016 系列推薦的論文,雖然不是 outstanding papers 之一,但是卻符合 simple yet powerful。這篇論文就是《Modeling Coverage for Neural Machine Translation》,據作者自我爆料說,有個審稿人給了5分好評并評價為“Everyone working on neural MT will be running to implement this as soon as they read this paper.”
這篇論文所要解決的問題,是一個在 end-to-end Neural Machine Translation(NMT) 中非常普遍的問題,即在 source sentence 中的某些詞,可能會被多次翻譯到 target sentence 里;也有可能是壓根就被“漏翻譯”了——即作者所謂的 over-translated 和 under-translated。以下是作者給出的具體定義:
1. Over-translation: some words are unnecessarily translated for multiple times;
2. Under-translation: some words are mistakenly untranslated.
那么舉個具體的例子來看看什么是 over-translated:從圖1可以看出,”關閉“這個詞就屬于被翻譯了兩次。
為了解決這個問題,作者從在 NMT 出現前被廣泛采用的 Statistical Machine Translation(SMT)中找原因。他們發現,在 phrase-based SMT 中有一個 coverage vector 可能是對于這個問題非常重要的因素。coverage vector 就像在學習算法中的計數器,它的任務就是記錄 source sentence 中的每個 word 是否已經被翻譯(covered)。加入計數器去解決這個 MT 中的問題是非常直觀的。
這篇論文就是想把 coverage mechanism 結合到 end-to-end attention-based NMT 系統中。然而,直接結合是不靠譜的。所以他們提出了一個 general model,兩類 representative implementation 和三個具體的實現。既然是基于 attention-based NMT,就希望能讓 coverage vector 和 attention vector 做一些結合。從思想上講,也就是希望在 decoding 的過程中,能對那些已經被翻譯過的 source words 降低”注意力“,降低他們再次被翻譯的可能性。于是乎,最直接的解決方案就呼之欲出了——把 coverage vector 直接和 annotation 結合在一起,這樣就可以利用 coverage vector 去調節 attention,從而起到”糾正“注意力的作用。那么,這個 general model 大概就是這樣:
作者同時給出了這個 general model 的兩種 representative implementations,一種是從 linguistic 或者說可解釋性比較高的角度去實現的;另一種是從神經網咯的角度去實現的。第一種,linguistic coverage model,就是利用簡單的 linguistic heuristic 去迭代更新 coverage vector。這個思想并不是很新,是從前人的工作中總結提取出來的。在此基礎上,作者還提出了一個改進版本的 linguistic coverage model,就是加入一個叫 fertility 的因子。Fertility 也是 word-level SMT 中的一個概念,它表示的是在 source sentence 中的某個詞對應到 target sentence 中的詞的個數。比如還是圖一中的例子,中文”被迫“對應的就是3個詞”were forced to“,fertility 就是3。利用這個 fertility 數目去做 linguistic coverage model 的歸一化。值得一提的是,暫時這個數值只能作為一個 hyperparameter,靠手工寫死,不能隨著模型自動學習。
第二種 representative implementation 就是和 NMT 一樣的 neural network based coverage model。其實就是再去學習一個用于更新 coverage vector 的 NN。思想簡單,不做贅述。
介紹完兩種三個實現,就剩怎么把這些 coverage model 結合到原來的 attention-based NMT 里去了。上文已經說過,思想是用 coverage model 學出來的 coverage vector 去”糾正“或者說輔助 attention,而輔助的方式就是它提供了一種對于過去信息的記錄,而這是獨立的 attention 機制無法做到的。
最后看一些實驗結論,首先,即使是沒有加入 fertility 的最簡單的 linguistic coverage model 就已經可以提高1.1個BLEU,可見 coverage vector 的重要性。其次,加入 fertility 后進一步提高。第三,他們發現越是在長句子,尤其是那些含有單句的復雜句時,這種結合效果更好。最后給一個比較直觀的利用 coverage vector 輔助 attention 后的結果:
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 | Modeling Coverage for Neural Machine Translation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NIPS 2016 | Best Pap
- 下一篇: ACL 2016 | CopyNet 和