Pointer Generator Network

CHEN TSU PEI
NLP-trend-and-review
6 min readNov 20, 2019

--

介紹

Pointer Network在最近看的很多篇論文中有出現,由於原先Attention + Encoder — Decoder的方法中,Decoder最後輸出時是要對應到一個詞表,但在實際使用中,像是人名跟地名的用字並不被包含在訓練中的詞表中,最後只能得到像[UNK]這種輸出。而Pointer Generator Network的概念是從原輸入的某一些片段直接擷取過來當作輸出,這麼一來則可以彌補字典的不足

所以當Decoder在產生輸出時,根據Pgen這個機率來決定是要自己產生輸出呢?還是要拿原輸入的「某個位置」直接當作輸出?

如果你對Summarization有些接觸的話,會知道大致上分為兩種方法為Extractive SummarizationAbstractive Summarization,很神奇的,透過Pointer Generator Network,很奇妙地同時整合了這兩種方法在一起,有時候是直接複製,有時候則是自己產生,這跟我們「人」真正在寫作的情況也更類似😂,如果今天要我們寫一篇讀書心得文,我們常常會引用書中某些話,或者一些地名或者很長的專有名詞時,我們也會直接複製貼上,這些情況應該要直接複製而不是自己產生才更合理。

作者在部落格中有提到這一點

In this way, the pointer-generator network is a best of both worlds, combining both extraction (pointing) and abstraction (generating).

架構

Pointer-generator model source: Get To The Point: Summarization with Pointer-Generator Networks

上圖很好的呈現出整體模型的架構,和一般的Seq2Seq model相比,多了一個Pgen,用來決定要不要採取輸入的原文字當作輸出,公式如下,xt是Decoder原始輸入,st是Decoder輸出,h*t是Decoder跟Encoder做完Attention後的輸出

Source: Get To The Point: Summarization with Pointer-Generator Networks

得出後,再透過第二個公式來決定要拿哪個字當輸出,於是得到一個新的P(w),所以如果原先的w是一個OOV word,那Pvocab會是0,但新的公式讓我們還是能有機會能夠取到這些字

Source: Get To The Point: Summarization with Pointer-Generator Networks

Coverage Mechanism

原始的Seq2Seq模型,除了OOV問題以外,還有Repetition的問題,模型容易產生重複的字,而Converage Mechansim的想法是,把前面時間點的attention做一個累加,並且引進到現在時間點attention的計算當中

現在時間點t的converage,為0~t-1的注意力累加
引進c到注意力(attention)的計算當中

Coverage也必須被加入到Loss的計算中,這是根據作者實驗出來的結論,由於如果不額外添加Coverage Loss的話,Repetition的問題依舊會存在

We tried training the coverage model without the loss function, hoping that the attention mech- anism may learn by itself not to attend repeatedly to the same locations, but we found this to be inef- fective, with no discernible reduction in repetition.

最後,加入Coverage Loss後,新的Loss Function為

新的Loss Function

結論

Pointer Generator Network讓我們能夠產生出更好的文本,並且結合了Abstractive及Extractive的優點於一身,像是在文本還原(Restoration)中和文本抽取(Summarization)這些任務上,有需要拷貝原輸入的情況在,Pointer Generator Network會是一個很好的切入點

如果這篇文章對你有幫助的話,歡迎拍拍手👏👏👏

Reference

[1]: Paper(ACL2017) — Get To The Point: Summarization with Pointer-Generator Networks
[2]: Blog Post — Taming Recurrent Neural Networks for Better Summarization
[3]: Blog Post — Attention and Augmented Recurrent Neural Networks
[4]: Tutorial Video -

--

--

CHEN TSU PEI
NLP-trend-and-review

這邊停止更新了!麻煩移駕到https://tsupei.github.io,有持續更新更多NLP的文章唷!