人去做文本摘要都挺困難了,機器要怎麼做?

2021-01-15 極客公園

本文轉載自微信公眾號:ResysChina,作者張俊 ,極客公園已獲得授權。

文本摘要是自然語言處理中比較難的一個任務,別說是用機器來做文摘了,就連人類做文摘的時候都需要具備很強的語言閱讀理解能力和歸納總結能力。新聞的摘要要求編輯能夠從新聞事件中提取出最關鍵的信息點,重新組織語言來寫摘要;paper 的摘要需要作者從全文中提取出最核心的工作,然後用更加精煉的語言寫成摘要;綜述性的 paper 需要作者通讀 N 篇相關 topic 的 paper 之後,用最概括的語言將每篇文章的貢獻、創新點寫出來,並且對比每篇文章的方法各有什麼優缺點。自動文摘本質上做的一件事情是信息過濾,從某種意義上來說,和推薦系統的功能有一點像,都是為了讓大家更快地找到感興趣的東西,只是用了不同的手段而已。

問題描述

文本摘要問題按照文檔數量可以分為單文檔摘要和多文檔摘要問題,按照實現方式可以分為提取式(extractive)和摘要式(abstractive)。摘要問題的特點是輸出的文本要比輸入的文本少很多很多,但卻蘊藏著非常多的有效信息在內。有一點點感覺像是主成分分析(PCA),作用也與推薦系統有一點像,都是為了解決信息過載的問題。現在絕大多數應用的系統都是 extractive 的,這個方法比較簡單但存在很多的問題,簡單是因為只需要從原文中找出相對來說重要的句子來組成輸出即可,系統只需要用模型來選擇出信息量大的句子然後按照自然序組合起來就是摘要了。但是摘要的連貫性、一致性很難保證,比如遇到了句子中包含了代詞,簡單的連起來根本無法獲知代詞指的是什麼,從而導致效果不佳。研究中隨著 deep learning 技術在 nlp 中的深入,尤其是 seq2seq+attention 模型的「橫行」,大家將 abstractive 式的摘要研究提高了一個 level,並且提出了 copy mechanism 等機制來解決 seq2seq 模型中的 OOV 問題。

本文探討的是用 abstractive 的方式來解決 sentence-level 的文本摘要問題,問題的定義比較簡單,輸入是一個長度為 M 的文本序列,輸出是一個長度為 N 的文本序列,這裡 M>>N,並且輸出文本的意思和輸入文本的意思基本一致,輸入可能是一句話,也可能是多句話,而輸出都是一句話,也可能是多句話。

語料

這裡的語料分為兩種,一種是用來訓練深度學習模型的大型語料,一種是用來參加評測的小型語料。

1、DUC http://duc.nist.gov/

這個網站提供了文本摘要的比賽,2001-2007 年在這個網站,2008 年開始換到這個網站 TAC http://www.nist.gov/tac/。很官方的比賽,各大文本摘要系統都會在這裡較量一番,一決高下。這裡提供的數據集都是小型數據集,用來評測模型的。

2、Gigaword https://catalog.ldc.upenn.edu/LDC2003T05

該語料非常大,大概有 950w 篇新聞文章,數據集用 headline 來做 summary,即輸出文本,用 first sentence 來做 input,即輸入文本,屬於單句摘要的數據集。

3、CNN/Daily Mail

該語料就是我們在機器閱讀理解中用到的語料,該數據集屬於多句摘要。

4、Large Scale Chinese Short Text Summarization Dataset(LCSTS http://icrc.hitsz.edu.cn/Article/show/139.html)[6]

這是一個中文短文本摘要數據集,數據採集自新浪微博,給研究中文摘要的童鞋們帶來了福利。

模型

本文所說的模型都是 abstractive 式的 seq2seq 模型。nlp 中最早使用 seq2seq+attention 模型來解決問題的是 machine translation 領域,現如今該方法已經橫掃了諸多領域的排行榜。

seq2seq 的模型一般都是如下的結構 [1]:

encoder 部分用單層或者多層 rnn/lstm/gru 將輸入進行編碼,decoder 部分是一個語言模型,用來生成摘要。這種生成式的問題都可以歸結為求解一個條件概率問題 p(word|context),在 context 條件下,將詞表中每一個詞的概率值都算出來,用概率最大的那個詞作為生成的詞,依次生成摘要中的所有詞。這裡的關鍵在於如何表示 context,每種模型最大的不同點都在於 context 的不同,這裡的 context 可能只是 encoder 的表示,也可能是 attention 和 encoder 的表示。decoder 部分通常採用 beam search 算法來做生成。

1、Complex Attention Model [1]

模型中的 attention weights 是用 encoder 中每個詞最後一層 hidden layer 的表示與當前 decoder 最新一個詞最後一層 hidden layer 的表示做點乘,然後歸一化來表示的。

2、Simple Attention Model [1]

模型將 encoder 部分在每個詞最後一層 hidden layer 的表示分為兩塊,一小塊用來計算 attention weights 的,另一大塊用來作為 encoder 的表示。這個模型將最後一層 hidden layer 細分了不同的作用。

3、Attention-Based Summarization(ABS) [2]

這個模型用了三種不同的 encoder,包括:Bag-of-Words Encoder、Convolutional Encoder 和 Attention-Based Encoder。Rush 是 HarvardNLP 組的,這個組的特點是非常喜歡用 CNN 來做 nlp 的任務。這個模型中,讓我們看到了不同的 encoder,從非常簡單的詞袋模型到 CNN,再到 attention-based 模型,而不是千篇一律的 rnn、lstm 和 gru。而 decoder 部分用了一個非常簡單的 NNLM,就是 Bengio[10] 於 2003 年提出來的前饋神經網絡語言模型,這一模型是後續神經網絡語言模型研究的基石,也是後續對於 word embedding 的研究奠定了基礎。可以說,這個模型用了最簡單的 encoder 和 decoder 來做 seq2seq,是一次非常不錯的嘗試。

4、ABS+ [2]

Rush 提出了一個純數據驅動的模型 ABS 之後,又提出了一個 abstractive 與 extractive 融合的模型,在 ABS 模型的基礎上增加了 feature function,修改了 score function,得到了這個效果更佳的 ABS+模型。

5、Recurrent Attentive Summarizer(RAS) [3]

這個模型是 Rush 的學生提出來的,輸入中每個詞最終的 embedding 是各詞的 embedding 與各詞位置的 embedding 之和,經過一層卷積處理得到 aggregate vector:

根據 aggregate vector 計算 context(encoder 的輸出):

其中權重由下式計算:

decoder 部分用 RNNLM 來做生成,RNNLM 是在 Bengio 提出的 NNLM 基礎上提出的改進模型,也是一個主流的語言模型。

6、big-words-lvt2k-1sent 模型 [4]

這個模型引入了 large vocabulary trick(LVT) 技術到文本摘要問題上。本方法中,每個 mini batch 中 decoder 的詞彙表受制於 encoder 的詞彙表,decoder 詞彙表中的詞由一定數量的高頻詞構成。這個模型的思路重點解決的是由於 decoder 詞彙表過大而造成 softmax 層的計算瓶頸。本模型非常適合解決文本摘要問題,因為摘要中的很多詞都是來自於原文之中。

7、words-lvt2k-2sent-hieratt 模型 [4]

文本摘要中經常遇到這樣的問題,一些關鍵詞出現很少但卻很重要,由於模型基於 word embedding,對低頻詞的處理並不友好,所以本文提出了一種 decoder/pointer 機制來解決這個問題。模型中 decoder 帶有一個開關,如果開關狀態是打開 generator,則生成一個單詞;如果是關閉,decoder 則生成一個原文單詞位置的指針,然後拷貝到摘要中。pointer 機制在解決低頻詞時魯棒性比較強,因為使用了 encoder 中低頻詞的隱藏層表示作為輸入,是一個上下文相關的表示,而僅僅是一個詞向量。這個 pointer 機制和後面有一篇中的 copy 機制思路非常類似。

8、feats-lvt2k-2sent-ptr 模型 [4]

數據集中的原文一般都會很長,原文中的關鍵詞和關鍵句子對於形成摘要都很重要,這個模型使用兩個雙向 RNN 來捕捉這兩個層次的重要性,一個是 word-level,一個是 sentence-level,並且該模型在兩個層次上都使用 attention,權重如下:

9、COPYNET [8]

encoder 採用了一個雙向 RNN 模型,輸出一個隱藏層表示的矩陣 M 作為 decoder 的輸入。decoder 部分與傳統的 Seq2Seq 不同之處在於以下三部分:

預測:在生成詞時存在兩種模式,一種是生成模式,一種是拷貝模式,生成模型是一個結合兩種模式的概率模型。

狀態更新:用 t-1 時刻的預測出的詞來更新 t 時刻的狀態,COPYNET 不僅僅詞向量,而且使用 M 矩陣中特定位置的 hidden state。

讀取 M:COPYNET 也會選擇性地讀取 M 矩陣,來獲取混合了內容和位置的信息。

這個模型與第 7 個模型思想非常的類似,因為很好地處理了 OOV 的問題,所以結果都非常好。

10、MRT+NHG [7]

這個模型的特別之處在於用了 Minimum Risk Training 訓練數據,而不是傳統的 MLE(最大似然估計),將評價指標包含在優化目標內,更加直接地對評價指標做優化,得到了不錯的結果。

結果

評價指標是否科學可行對於一個研究領域的研究水平有著直接的影響,目前在文本摘要任務中最常用的評價方法是 ROUGE(Recall-Oriented Understudy for Gisting Evaluation)。ROUGE 受到了機器翻譯自動評價方法 BLEU 的啟發,不同之處在於,採用召回率來作為指標。基本思想是將模型生成的摘要與參考摘要的 n 元組貢獻統計量作為評判依據。

在英文數據集 DUC-2004 上進行評測,結果如下:

在中文數據集 LCSTS 上進行評測,結果如下:

不管是中文數據集還是英文數據集上,最好的結果都是來自於模型 10[7], 並且該模型只是採用最普通的 seq2seq+attention 模型,都沒有用到效果更好的 copy 機制或者 pointer 機制。

思考

自動文摘是我關注的第一個 nlp 領域,早期了很多相關的 paper,從方方面面都有所了解,也有一些比較淺薄的想法,現在總結一下。

1、為什麼 MRT 那篇文章的結果會比其他各種各樣的模型都要好呢?因為他直接將 ROUGE 指標包含在了待優化的目標中,而不是與其他模型一樣,採用傳統的 MLE 來做,傳統的目標評價的是你的生成質量如何,但與我們最終評價的指標 ROUGE 並無直接關係。所以說,換了一種優化目標,直接定位於評價指標上做優化,效果一定會很好。這點不僅僅在自動文摘中出現過,我記得在 bot 相關的 paper 中還有機器閱讀理解相關的 paper 中都有出現,只是具體的評價指標不同而已。這一點很有啟發性,如果在文章 [7] 中採用 copy 機制來解決 OOV 問題,會不會有更加驚人的效果呢?我們拭目以待。

2、OOV(out of vocabulary) 的問題。因為文本摘要說到底,都是一個語言生成的問題,只要是涉及到生成的問題,必然會遇到 OOV 問題,因為不可能將所有詞都放到詞表中來計算概率,可行的方法是用選擇 topn 個高頻詞來組成詞表。文章 [4] 和 [8] 都採用了相似的思路,從 input 中拷貝原文到 output 中,而不僅僅是生成,這裡需要設置一個 gate 來決定這個詞是 copy 來還是 generate 出來。顯然,增加了 copy 機制的模型會在很大程度上解決了 OOV 的問題,就會顯著地提升評價結果。這種思路不僅僅在文摘問題上適用,在一切生成問題上都適用,比如 bot。

3、關於評價指標的問題。一個評價指標是否科學直接影響了這個領域的發展水平,人工評價我們就不提了,只說自動評價。ROUGE 指標在 2003 年就被 Lin 提出了 [9],13 年過去了,仍然沒有一個更加合適的評價體系來代替它。ROUGE 評價太過死板,只能評價出 output 和 target 之間的一些表面信息,並不涉及到語義層面上的東西,是否可以提出一種更加高層次的評價體系,從語義這個層面來評價摘要的效果。其實技術上問題不大,因為計算兩個文本序列之間的相似度有無數種解決方案,有監督、無監督、半監督等等等等。很期待有一種新的體系來評價摘要效果,相信新的評價體系一定會推動自動文摘領域的發展。

4、關於數據集的問題。LCSTS 數據集的構建給中文文本摘要的研究奠定了基礎,將會很大程度地推動自動文摘在中文領域的發展。現在的網際網路最不缺少的就是數據,大量的非結構化數據。但如何構建一個高質量的語料是一個難題,如何儘量避免用過多的人工手段來保證質量,如何用自動的方法來提升語料的質量都是難題。所以,如果能夠提出一種全新的思路來構建自動文摘語料的話,將會非常有意義。

參考文獻:

[1] http://cn.arxiv.org/pdf/1512.01712

[2] http://cn.arxiv.org/pdf/1509.00685.pdf

[3] http://harvardnlp.github.io/papers/naacl16_summary.pdf

[4] http://cn.arxiv.org/pdf/1602.06023

[5] http://cn.arxiv.org/pdf/1604.00125v1.pdf

[6] http://cn.arxiv.org/pdf/1506.05865

[7] http://cn.arxiv.org/pdf/1604.01904.pdf

[8] http://cn.arxiv.org/pdf/1603.06393v2.pdf

[9] http://research.microsoft.com/en-us/people/cyl/naacl2003.pdf

[10] http://jmlr.org/papers/volume3/bengio03a/bengio03a.pdf


相關焦點

  • 要做文本自動摘要,你得先了解PageRank算法
    前言因為想做一下文本自動摘要,文本自動摘要是NLP的重要應用,搜了一下,有一種TextRank的算法,可以做文本自動摘要。其算法思想來源於Google的PageRank,所以先把PageRank給了解一下。
  • 愛情中要怎麼做才浪漫?怎麼做一個懂浪漫的人
    一段甜蜜又浪漫的愛情,試問一下誰不喜歡擁有呢,但是對於愛情中要怎麼做才浪漫?一、愛情中要怎麼做才浪漫1、在談戀愛的時候,並不是說你能夠有能力送對方十分昂貴的禮物,或者說是帶著他去比較浪漫的餐廳去吃一頓燭光晚餐,就會讓對方感覺到浪漫,有些浪漫都是比較物質的,只要你想為對方製造浪漫,那麼即使你每天為他發一個能夠讓他感受到愛的簡訊,也會讓他覺著是一件特別浪漫的事情,所以說用心製造的浪漫才屬於真正的浪漫
  • 今天在車上看到幾個姑娘,我覺得都挺好看,要怎麼去要電話呢
    1.今天在車上看到幾個姑娘,我覺得都挺好看,要怎麼去要電話呢2.看了這張照片,你能想明白你輸在哪裡了嗎3.閨蜜很有可能就是損友,哈哈哈4.再也不借車給朋友了,這太難清理了12.看起來很好吃的樣子13.生活真是好上天了,運肥車都那麼大氣14.插隊就該這麼收拾!
  • arXiv灌水機:機器自動生成論文標題、摘要信息,還有40+奇妙AI應用
    ��當然,務必注意,這些都是假的,千萬不要拿這些去投稿喲~使用簡介當然,除了用AI來寫論文摘要,還可以有很多奇妙的用途等你去探索。並且用法非常簡單。以論文摘要生成為例,只需兩步操作。第一步,打開網址,地址見文末連結。
  • 摘要翻譯、論文寫作……人工智慧延伸科學交流觸角
    | 字號:A+ | A- 摘要翻譯、論文寫作、信息檢索、抄襲檢測……人工智慧延伸科學交流觸角近日,一款看起來挺有文化的寫稿機器人上線了。他告訴科技日報記者,目前機器翻譯系統的性能很大程度上依賴於其所使用的訓練數據,即平行語料。目前的平行語料多為新聞語料,因此訓練得到的機器翻譯模型對於日常新聞的翻譯效果較好。但學術文獻(比如生物學術論文)與日常新聞在用詞造句等方面都有較大差別,機器翻譯系統對於學術文獻翻譯的效果並不理想。
  • 人類要怎麼做才能挺過去?
    幾乎每隔一段時間,「地球可能會進入小冰河期」這個話題就會引起熱議,而原因通常都是來自哪個地方的科學家們發現太陽活動又不正常了,比如,太陽黑子又有幾個月都沒有出現一個。 其實,很多人都不知道小冰河期到底是什麼情況,導致不少人都將其與冰河期混為一談。
  • 摘要翻譯、論文寫作、信息檢索、抄襲檢測……人工智慧延伸科學...
    他告訴科技日報記者,目前機器翻譯系統的性能很大程度上依賴於其所使用的訓練數據,即平行語料。目前的平行語料多為新聞語料,因此訓練得到的機器翻譯模型對於日常新聞的翻譯效果較好。但學術文獻(比如生物學術論文)與日常新聞在用詞造句等方面都有較大差別,機器翻譯系統對於學術文獻翻譯的效果並不理想。
  • 去內蒙古草原旅遊要準備什麼?挺實用的!
    去內蒙古草原旅遊要準備什麼?挺實用的!所以人們不僅僅是為了賺錢而拼命的工作,而是會適時的給自己一些放鬆自己的機會,當然了,每個人釋放壓力和整理心情的方式都有所不同,但是還是有越來越多的人會選擇旅遊,領略國家的大好河山,找到自己的初心,相信人們在壓力大的時候就會想去看大海,或者是去看大草原,去草原上騎馬吃肉,想想就覺得美!而去看草原的最好的地方莫過於內蒙古了,那麼去內蒙古草原旅遊要準備什麼呢?來看看吧!挺實用的!
  • 郭為:機器對人只是功能性替代
    總的來講,既要發揮神州數碼在傳統IT領域的應用上的特徵,另外就是擁抱網際網路,擁抱大數據,如何在這個領域裡面有一些技術性的突破,使得我們自己的企業能夠在這個領域做一些事情,這就是我們今天做智慧城市要做的工作。
  • 直銷要創新,直銷人該怎麼做才能跟上潮流?
    當你的事業還停留在過去,而沒有想過要創新,那麼你就已經落後了。 直銷要創新,直銷人也需要改變自己。具體該怎麼做才能跟上潮流呢,直銷人往下看。 直銷要創新,直銷人該怎麼做才能跟上潮流?
  • 高水平SCI英文論文的摘要怎麼寫?應該這樣寫好摘要
    摘要可以說是科技論文最難寫的部分之一。摘要的好壞決定著文章的命運、文章的曝光率、引用率等等。如何寫好高水平SCI論文摘要呢?請繼續往下看。論文摘要重要嗎?摘要又稱概要、內容提要,其英文單詞為abstract和summary。
  • 人的智能如何與機器無限連接
    如果這個趨勢必然發生的話,我們就要思考:人類智能和機器智能的關係到底是什麼樣的?未來機器智能強大到一定程度的時候,我們要如何與機器共生?如果我們希望得到一種比較好的結果,又該怎麼做?從人類個體的智能來看:人類智能的發展上限是很明顯的,因為人類的腦容量有限,能夠記住的東西也很受限。
  • 日本漁民撈到海蝨,用輪船尾氣做成美食,味道還挺不錯!
    世界上有很多個國家,而不同的國家的土地面積都是不一樣,所以都還是挺不錯的呢。中國周邊就有一個國家叫做日本,雖然說土地面積相對於雲南省,但是地理位置十分的好,四周圍都是深海,當地人每天都是會去到裡面抓海鮮,要是肚子餓則是直接吃。
  • 「畢業之家」畢業論文:摘要和引言該如何寫?需要注意什麼?
    一、摘要摘要是要讓讀者快速地了解文章的精華。大家常常會遇到這樣的錯誤:1.摘要中不要出現表格、圖片、公式、化學方程式等。3. 摘要內容過長,分為若干段落,洋洋灑灑上千字。自認為字多就是優秀。其實不然,摘要之所以為摘要,就是要簡明扼要,言簡意賅,一般250-400之間即可。值得注意的是摘要是不分段的。4.
  • 數學的神奇,人工智慧機器為什麼能學習,到底怎麼做的?
    最近這幾年,人工智慧這個領域特別引人注目,它能讓機器自己學習知識並增長其智力,處理視覺圖像信息,並最終輸出人們所需要的結果。這項技術的應用領域十分廣泛,包括醫學圖像分析, 汽車無人駕駛,氣象數據分析與預報,聲音識別交互,農業智能化管理等。機器為什麼能學習? 它究竟是怎麼學的? 這一切都要回歸到數學。
  • 龍鬚菜,不知道大家都吃過沒有,那麼龍鬚菜,都是怎麼做的呢?
    龍鬚菜,不知道大家都吃過沒有,那麼龍鬚菜,都是怎麼做的呢?龍鬚菜,顧名思義,就是長得很像龍鬚,就跟龍的鬍鬚似的形狀。所以才叫龍鬚菜,龍鬚菜,一般我們都是涼拌吃,把龍鬚菜洗乾淨之後放到,開水裡煮,大概三分鐘就熟了,把煮好的龍鬚菜,可以放點兒白糖攪拌一下就可以吃了,這就是涼拌龍鬚菜。我在我姥姥家吃過龍鬚菜,還是小時候吃過的。小時候去我姥姥家,她總是給我們弄很多稀奇古怪的菜,有些我們都沒吃過,也沒見過的。
  • 外賣備註太欺負人,買蚯蚓紅牛就算了,「女朋友味的菜」怎麼做?
    只是送餐員也不容易,不僅大中午的被熱到汗流浹背,有時候還會遇到下面這些「欺負人」的外賣訂單,買蚯蚓、紅牛就算了,女朋友那個真的過分了!看到訂單備註要求找一位身高一米九的人來送,而且還要是皮膚白皙大大帥哥,外賣小哥很無奈,送外賣的天天在太陽下跑來跑去,哪有皮膚白的呢?
  • 未來的世界:機器翻譯VS人工翻譯
    當然,中國語言服務業還有很長的路要走,路上還會有諸多坎坷等著我們去克服、逾越,「博雅翻譯文化沙龍」正是帶著這一崇高使命跨入了第二個十年,並在以往的十一屆「中國翻譯職業交流大會」,「中國語言服務40人論壇」,《中國應用翻譯論文專輯》中盡力展示了大家的追求與想法。
  • 孫為民暢想未來中國品牌圖景:「讓機器去幹活,讓人去生活」
    另一方面,位居中國民營企業500強第二名、旗下上市公司蘇寧易購躋身2017《財富》世界500強……這些都讓蘇寧成為中國零售名片代表。其開創的智慧零售模式,近來更是頻頻受到社會各界關注與點讚。比如,繼不久前在博鰲亞洲論壇上大放異彩之後,蘇寧智慧零售模式日前再次受到人民日報的點讚。
  • 乘時間機器去八十萬年後的世界
    [摘要]時間旅行者乘坐時間機器去往未來八十萬年之後的世界,在這個時代,人類分化成居住在地面上的埃洛伊人和只能在地下活動的莫洛克人。兩個族群暗示著社會階層貧富差距的巨大分化。除了機器發出的巨大轟鳴聲,我什麼都聽不到,內心感到一陣極度莫名的恐慌。」「加速之後,我的眼前就像有一隻黑色的大鳥,它那巨大的翅膀遮住了我的視線,並以極高的頻率前迅速扇動,晝夜開始進入急速循環狀態。隔一分鐘,太陽便從天空划過一次,實驗室已經失去了形態,仿佛搖搖欲墜,我從裡面飛離出去,卻因為速度過快而看不清眼前閃過的事物。