CH2-NLG應用之【摘要生成】


任務:給定輸入文本xx,輸出也是一段文本yy,但是長度更短,而且包含了輸入文本的主要信息。

摘要可以是單文檔的,也可以是多文檔

  • 單文檔是說從一個文檔中生成一個摘要
  • 多文檔是說從多個文檔x1,...,xnx_1,...,x_n中抽出一個摘要。通常這些文檔在內容上是有重合的,比如新聞對同一事件的報道。

1.1 單文檔數據集介紹

在單文檔摘要生成任務中,不同的數據集來源不同,數據集中文本的長度和風格也不一樣。一些常用的數據集及任務如下表所示:

數據集 輸入 輸出 備註
Gigaword 每一篇新聞報道的第一句或者前兩句話 新聞標題。 該任務也稱爲 句子壓縮
LCSTS(微博中文) 段落 句子摘要
NYT, CNN/DailyMail 新聞 (多)句子摘要
Wikihow 整個how-to類型的文章 句子摘要

句子簡寫也是一種NLG的應用,但是和摘要生成還是略有不同,主要是以更短、更簡單的方式對源句子進行改寫。

這類任務也有自己的數據集:

數據集 輸入 輸出
Simple Wikipedia 標準對的Wikipedia句子 簡版
Newsela 新聞 適於兒童閱讀版

摘要生成相關數據集、論文和代碼鏈接

1.2 摘要生成兩大策略

  • 抽取式:從源句子中選擇若干部分組成摘要,一般來說比較簡單,但也有侷限性(不能組成段落)

  • 生成式:用語言模型來生成文本,一般來說更難,但是生成的文字更像人寫的。

1.3 Pre-neural 摘要

這種摘要生成方式大多是抽取式生成,主要分爲三個模塊:

  • 內容選擇:選擇哪些句子
  • 信息排序:將選擇的句子進行排序
  • 句子實現:對句子進行一些編輯操作,比如簡化、去冗餘、連貫性處理等

流程圖如下所示:

Pre-neural 中內容選擇的算法

  • 句子打分策略可以參考:關鍵詞出現情況,比如利用tf-idf進行打分;其他特徵,如句子在文檔中出現的位置

  • 基於圖的算法:將文檔視爲句子的集合(節點),句子之間用邊連。 邊的權重正比於句子相似性,利用圖算法找到圖的中心節點及對應的句子。

1.4 評價指標

摘要生成任務常用ROUGE(Recall-Oriented Understudy for Gisting Evaluation)進行衡量評價,其數學公式如下:

  這裏,nn表示n-gram的長度,ReferenceSummariesReference Summaries表示參考摘要(標準), Countmatch(gramn)Count_{match}(gram_n)表示候選摘要和參考摘要中同時出現n-gram的個數, Count(gramn)Count(gram_n)則表示參考摘要中出現的n-gram個數。

  從上述公式也可以看出“召回”的含義,分子可以看作“檢出的相關文檔數目”,即系統生成摘要與標準摘要相匹配的N-gram個數,分母可以看作“相關文檔數目”,即標準摘要中所有的N-gram個數。

雖然ROUGEBLEU 兩者都是基於n-gram重合度的評價指標,但是而這還是有區別的:

  • ROUGE沒有brevity penalty(簡稱BP),而BLEU是有這一項的。先回顧一下BLEU的計算方式:將翻譯結果與其相對應的幾個參考翻譯作比較,算出一個綜合分數,分數越高說明機器翻譯得越好。可以看到,如果我的翻譯結果比較短,大部分的結果都會出現在參考翻譯中,反而會更容易得到一個高精度的評價值。爲了避免這種情況,會在評價指標中一個調整因子:

BP={1 if c>re1r/c if cr B P=\left\{\begin{array}{ll}{1} & {\text { if } c>r} \\ {e^{1-r / c}} & {\text { if } c \le r}\end{array}\right.
  這裏,rr爲參考翻譯的句子長度,cc是機器翻譯出來的句子長度。如果crc \le r, 得分就會乘以一個比1小的數,就是“懲罰因子”。可以看到這種評價方式 不關心語法,只關心內容分佈,適用於衡量數據集量級的表現,在句子級別的表現不佳。

“BLEU is designed to approximate human judgement at a corpus level, and performs badly if used to evaluate the quality of individual sentences.”——wikipedia

  • ROUGE只針對召回進行考量,而BLEU針對的則考量精確度。一般來說,在機器翻譯任務中,我們更看重的是翻譯的準確與否
  • ROUGEBLEU都基於n-gram,但是前者是針對每一個$n$都會計算,而後者則是分別計算然後取一個平均或其他方式的綜合計算。常用的ROUGE分值如下:

1.5 基於神經網絡的摘要生成

2015年,首次提出利用seq2seq做摘要生成的論文,並將單文檔生成式摘要視爲機器翻譯任務,如此一來便可以使用seq2seq+attention機制的機器翻譯方法。

在這之後,無數學者對此不斷改進:

  • copy機制更加靈活、簡單
  • 使用分層或者多級聯的注意力機制
  • 從全局或者更高緯度上進行內容選擇
  • 利用增強學習方式直接最大化ROUGE或者其他指標(注意這裏指標需要是離散的,比如長度)??存疑
  • pre-neural的方法應用到neural系統中,比如基於圖算法的內容選擇

更多閱讀:

摘要生成方面的論文、數據集及代碼清單

2018年的一篇關於基於神經網絡實現摘要生成的綜述

1.5.1 copy機制

Seq2seq+attention的方法可以很好的保證輸出文本的流暢性,但是不能保證在細節方面的準確性。而copy機制通過attention可以保證詞或者短語這些關鍵點準確的出現在輸出文本中,這對於摘要生成是非常重要的。引入copy機制還讓我們可以同時使用抽取、生成的方法進行NLG。

copy機制的若干變種:

  • Language as a Latent Variable: Discrete Generative Models for Sentence
    Compression, Miao et al, 2016 https://arxiv.org/pdf/1609.07317.pdf
  • Abstractive Text Summarization using Sequence-to-sequence RNNs and Beyond,
    Nallapati et al, 2016 https://arxiv.org/pdf/1602.06023.pdf
  • Incorporating Copying Mechanism in Sequence-to-Sequence Learning, Gu et al,
    2016 https://arxiv.org/pdf/1603.06393.pdf

這裏以Summarization with Pointer-Generator Networks給大家舉例說明copy機制原理。

上圖展示了的是解碼器在第三個時間步,預測Germany beat 後面一個單詞的情況,像基礎的seq2seq+attention模型一樣,我們會計算一個 attention distributionvocabulary distribution,不過同時,也會計算一個$0-1$產生概率 ,pgenp_{gen},表示從 vocabulary 中產生一個單詞的概率,相應的1pgen1-p_{gen} 就是從輸入中 copy 一個單詞的概率

p_{\mathrm{gen}}=\sigma\left(w_{h^{*}}^{T} h_{t}^{*}+w_{s}^{T} s_{t}+w_{x}^{T} x_{t}+b_{\mathrm{ptr}}\right)

  其中whw_{h}^{*},wsw_{s},wxw_x是向量,bptrb_{ptr}是標量,這些參數都是學習得到的。σ\sigmasigmoidsigmoid函數。pgenp_{gen}可以看做是一種控制開關,可以soft的在兩種模式之間切換生成一個詞的方式:是從詞表中以PvocabP_{vocab}的概率採樣,還是對注意力分佈ata_{t}進行採樣,這樣相當於直接從輸入中copy一個詞

P(w)=pgenPvocab(w)+(1pgen)i:wi=wait P(w) =p_{gen} P_{vocab}(w)+\left(1-p_{g e n}\right) \sum_{i: w_{i}=w} a_{i}^{t}

  如果ww是OOV,那麼Pvocab=0P_{vocab}=0,如果ww 沒有在輸入中出現,那麼i:wi=wait=0\sum_{i:w_{i}=w}a_{i}^{t}=0。這樣就可以避免OOV的問題,而之前模型都是將詞限制在預設定的詞表中。

copy機制的不足:

TODO,還沒有看懂

1.6 內容選擇的優化

pre-neural的摘要生成系統中,會通過將整個NLG分爲三個階段:寫什麼、怎麼寫、優化。在標準的seq2seq+attention的摘要生成系統中,會將“寫什麼”和“優化”糅雜在一起完成:在解碼的每一個時間步中,會進行詞粒度(word-level)的內容選擇。但是這樣的方式其實效果會很差,因爲缺乏全局的選擇策略。

一種改進方式是自底向上的摘要生成!

論文提到的方法很簡單,

內容選擇階段利用序列標註模型對每個word詞打標籤:包含還是不包含;在自底向上的注意力階段,如果一個詞被打上不包含的標籤,那麼模型就不會對齊進行attention操作。

這種方法簡單有效,可以有效避免對長句子的過渡copy問題。

1.7 和增強學習的聯手

2017年,提出了一篇利用深度增強網絡進行抽取式摘要生成的[論文]( https://arxiv.org/pdf/1705.04304.pdf
34 Blog post: https://www.salesforce.com/products/einstein/ai-research/tl-dr-reinforced-model-abstractive-summarization/)

核心觀點是利用增強學習直接優化ROUGE-L.而傳統的最大似然(MaximumLikelihood,簡稱ML)的訓練方法不能直接優化該函數是因爲函數不可導。

一個有趣的現象是,利用RL替代ML之後,ROUGE得分變高了(table1,2),

但是人工評分變低了(table5),


最後將兩種方法聯合使用,得到了最好的效果。

參考資料

徐阿衡

常見NLP評估方法大整理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章