標籤:

自動文摘

自動文摘

自動文摘

自動文摘的目的是通過對原文本進行壓縮、提煉,為用戶供簡明扼要的文字描述。自動文摘可以看作是一個信息壓縮過程,將輸入的一篇或多篇文檔壓縮為簡短的摘要,該過程不可避免有信息損失,但是要求保留盡能多的重要信息。

自動文摘是自然語言處理領域的一個重要研究方向,近 60 年持續性的研究已經在部分自動文摘任務上取得了明顯進展,但仍需突破很多關鍵技術,才能提高其應用價值、擴大應用範圍。

自動文摘方法分類

從實現上考慮,可以分為抽取式摘要(extractive summarization)和生成式摘要(abstractive summarization)。

抽取式方法相對比較簡單,通常利用不同文檔結構單元(句子、段落等)進行評價,對每個結構單元賦予一定權重然後選擇最重要的結構單元組成摘要。

而生成式方法通常需要利用自然語言理解技術對文本進行語法、語義分析,對信息進行融合,利用自然語言生成技術新的摘要句子。

一、抽取式方法

抽取式的方法基於一個假設,一篇文檔的核心思想可以用文檔中的某一句或幾句話來概括。那麼摘要的任務就變成了找到文檔中最重要的幾句話,也就是一個排序的問題。這種方法利用如 TextRank 這樣的排序演算法,對處理後的文章語句進行排序。缺點就是在語義理解方法考慮較少,無法建立文本段落的完善的語義信息。

1、 思路

1.1 預處理

NLP 任務的標準流程中第一步都是預處理,將拿到的文本做分句,這裡有兩種可能性,一是用句點或者其他可以表達一句話結尾的符號作為分隔,另外一種是用逗號作為分隔符獲取句子。

1.2 詞、句表示

將詞、句子表示成計算機能理解的量,然後計算一些指標進行排序。這也是各種演算法、模型最大的不同之處:

Bag Of Words。詞袋模型將一句話表示成用所有詞張成的空間中的一個高維稀疏向量。

LDA。潛在 Dirichlet 分布,是一種文檔主題生成模型,包含詞、主題和文檔三層結構。LDA 認為一篇文章的每個詞都是通過「以一定概率選擇了某個主題,並從這個主題中以一定概率選擇某個詞語」這樣一個過程得到。文檔到主題服從多項式分布,主題到詞服從多項式分布。LDA 建模可以得到 文檔-主題分布矩陣,詞-主題分布矩陣,利用 詞-主題分布矩陣 就可以得到 句子-主題矩陣。

Word Embedding。Tomas Mikolov 提出的 Word2Vec ,用了很多技巧和近似的思路讓詞很容易地表示成一個低維稠密向量,在很多情況下都可以達到不錯的效果。詞成為了一個向量,句子也可以有很多種方法表示成一個向量:Average Word-Vectors 等。

TFIDF-weighting。有 TFIDF-weighting Bag-of-Words 和 TFIDF-weighting Word-Vectors 等。

1.3 排序

兩種常見的方法。

(1)基於圖排序

將文檔的每句話作為節點,句子之間的相似度作為邊權值構建圖模型,用 PageRank 演算法進行求解,得到每個句子的得分。

代表演算法有 TextRankLexRank

(2)基於特徵

這裡用到的特徵包括:

1)句子長度,長度為某個長度的句子為最理想的長度,依照距離這個長度的遠近來打分。

2)句子位置,根據句子在全文中的位置,給出分數(比如每段的第一句是核心句的比例大概是70%)。

3)句子是否包含標題詞,根據句子中包含標題詞的多少來打分。

4)句子關鍵詞打分,文本進行預處理之後,按照詞頻統計出排名前 10 的關鍵詞,通過比較句子中包含關鍵詞的情況,以及關鍵詞分布的情況來打分。

綜合上述特徵打分加權求和,得到句子的重要性得分。

代表演算法有 TextTeaser

1.4 後處理

排序之後的結果只考慮了相關性並沒有考慮新穎性,非常有可能出現排名靠前的幾句話表達的都是相似的意思。所以需要引入一個懲罰因子,將新穎性考慮進去,對所有的句子重新打分,如下公式:

$$ a imes score(i)-(1-a) imes similarity(i,i-1) $$

序號 $ i,i = 2,3,….N $ 表示排序後的順序,從第二句開始,排第一的句子不需要重新計算,後面的句子必須被和前一句的相似度進行懲罰。這個演算法就是所謂的 MMR(Maximum Margin Relevance)。

1.5 輸出

輸出的結果一般是取排序後的前 N 句話,這裡涉及到一個非常重要的問題,也是一直自動文摘質量被詬病的問題:可讀性。因為各個句子都是從不同的段落中選擇出來的,如果只是生硬地連起來生成摘要的話,很難保證句子之間的銜接和連貫。保證可讀性是一件很難的事情。有一個取巧的方法,就是將排序之後的句子按照原文中的順序輸出,可以在一定程度下保證一點點連貫性。

2、 TextRank

PageRank

PageRank 最開始用來計算網頁的重要性。整個 www 可以看作一張有向圖,節點是網頁。如果網頁 A 存在到網頁 B 的鏈接,那麼有一條從網頁 A 指向網頁 B 的有向邊。 PageRank 公式:

$S(V_i)$ 是網頁 $i$ 的中重要性(PR值)。$d$ 是阻尼係數,一般設置為 0.85。 $In(V_i)$ 是存在指向網頁 $i$ 的網頁集合。 $Out(V_j)$ 是網頁 $j$ 指向的網頁集合, $|Out(V_j)|$ 是集合中元素的個數。

注意:阻尼係數可以保證全部 PR 值 >0。

計算 PR 值需要使用 PageRank 公式多次迭代:初始時,可以設置每個網頁的重要性 PR 值為 1 。上面公式等號左邊計算的結果是迭代後網頁 $i$ 的 PR 值,等號右邊用到的 PR 值全是迭代前的。

TextRank

TextRank 基本思想來源於 PageRank 演算法, 通過把文本分割成若干組成單元(單詞、句子)並建立圖模型, 對文本中的組成單元進行排序, 實現關鍵詞提取、文摘。

TextRank 一般模型可以表示為一個有向有權圖 $G =(V, E)$, 由點集合 $V$ 和邊集合 $E$ 組成, $E$ 是 $V×V$ 的子集。圖中任兩點 $Vi$、$Vj$ 之間邊的權重為 $w_{ji}$ ,對於一個給定的點 $V_i$, $In(V_i)$ 為指向該點的點集合, $Out(V_i)$ 為點 $V_i$ 指向的點集合。點 $V_i$ 的得分定義公式:

其中 $d$ 為阻尼係數,取值範圍為 0 到 1,代表從圖中某一特定點指向其他任意點的概率,一般取值為 0.85 。使用 TextRank 演算法計算圖中各點的得分時,需要給圖中的點指定任意的初值,並遞歸計算直到收斂,即圖中任意一點的誤差率小於給定的極限值時就可以達到收斂,一般該極限值取 0.0001 。

使用 TextRank 提取摘要:將每個句子看成圖中的一個節點,若兩個句子之間有相似性,認為對應的兩個節點之間有一個無向有權邊,權值是相似度。通過 TextRank 演算法計算得到的重要性最高的若干句子可以當作摘要。

TextRank 計算兩個句子 $S_i$ 和 $S_j$ 的相似度:

分子是在兩個句子中都出現的單詞的數量, $|S_i|$、$|S_j|$是句子 $i$、$j$ 的單詞數。

TextRank 改進

Word2vec 加 TextRank 演算法生成文章摘要

目前來說比較成熟的文本摘要方法,通過 Word2vec 生成詞向量,再利用 TextRank 的方法尋找文本的中心句形成摘要。

基本流程是: - 1)將 article 分句,放在一個 list。 - 2)將 list 中的每一 sentence 分詞,jieba 分詞等工具,去掉標點符號、停用詞等,得到一個二維的 list。 - 3)將每個 sentence 分別與其它 sentence 進行兩兩相似性計算。

這裡提供一種計算句子相似性的方法【Average Word-Vectors + Cosine Similarity】:如計算句子 A=[word,you,me],與句子 B=[sentence,google,python] 計算相似性,從 Word2vec 模型中分別得到 A 中三個單詞的詞向量 v1,v2,v3 取其平均值 Va(avg)=(v1+v2+v3)/3 。對句子 B 做同樣的處理得到 Vb(avg) ,然後計算 Va(avg) 與 Vb(avg) 兩個向量的夾角餘弦值, Cosine Similarity 視為句子A與B的相似度值。

相似度

分析研究可知,相似度的計算方法好壞,決定了關鍵詞和句子的重要度排序,如果在相似度計算問題上有更好的解決方案,那麼結果也會更加有效。

常見的兩句子間語義相似度的計算方式:...

向量的相似性度量:歐式距離、馬氏距離、曼哈頓距離、夾角餘弦、相關係數等。

思考【TextRank 改進】:Sent2vec/Doc2Vec + Similarity

雖然 Word2vec 表示的詞向量不僅考慮了詞之間的語義信息,還壓縮了維度。但是,有時候需要得到 Sentence/Document 的向量表示,雖然可以直接將 Sentence/Document 中所有詞的向量取均值作為 Sentence/Document 的向量表示,但是這樣會忽略了單詞之間的排列順序對句子或文本信息的影響。基於此,也是 Tomas Mikolov 提出了 Doc2Vec 方法。Doc2vec 模型其實是在 Word2vec 模型的基礎上做出的改進,基本思路很接近。

二、生成式方法

比較而言,生成式技術需要讓模型理解文章語義後總結出摘要,更類似人類的做法,不過這種技術需要使用機器學習技術,長期以來並不成熟。轉折點出現在 2014 年,Bengio 等人發表論文 《Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation》,正式引入了 Sequence-to-Sequence 模型。 Sequence-to-Sequence 模型通過兩個循環神經網路,分別把輸入文本轉化為向量,再把向量轉成輸出序列。這種模型在論文中主要用來完成機器翻譯任務,並且後來被應用在谷歌翻譯中,但後續在文摘生成任務中也產生了廣泛的應用。此後,這種利用深度學習的 Sequence-to-Sequence 方法不斷被改進,在一些標準的評測數據集上,已經超過了傳統的抽取式方法...

近幾年隨著 Deep Learning 的火爆,研究者們利用一些最新的研究成果來做 Summarization ,比如 Attention model,比如 RNN Encoder-Decoder 框架,雖然在一定程度上實現了 Abstractive,但還是處於研究初期...

難點

Abstractive 是一個 True AI 的方法,要求系統理解文檔所表達的意思,然後用可讀性強的人類語言將其簡練地總結出來。包含難點: - 理解文檔。所謂理解,類似人類閱讀,可以說明白文檔的中心思想、涉及到的話題等等。 - 可讀性強。可讀性是指生成的摘要要能夠連貫(Coherence)與銜接(Cohesion),通俗地講,就是人類讀起來幾乎感覺不出來是 AI 生成的(通過圖靈測試)。 - 簡練總結。在理解文檔基礎上,提煉出最核心的部分,用最短的話講明白全文的意思。

上述三個難點對於人類來說尚且不是一件容易的事情,何況是發展沒多少年的 NLP 技術。

Encoder-Decoder

Encoder-Decoder 不是一種模型,而是一種框架,一種處理問題的思路,最早應用於機器翻譯領域,輸入一個序列,輸出另外一個序列。

Encoder 部分是將輸入序列表示成一個帶有語義的向量,使用最廣泛的表示技術是 RNN,RNN 在訓練的時候會遇到 gradient explode 或者 gradient vanishing 的問題,導致無法訓練,所以在實際中經常使用的是經過改良的 LSTM RNN 或者 GRU RNN 對輸入序列進行表示,輸入序列最終表示為最後一個 word 的 hidden state vector。

Decoder 部分是以 Encoder 生成的 hidden state vector 作為輸入,「解碼」出目標文本序列,本質上是一個語言模型,最常見的是用 Recurrent Neural Network Language Model(RNNLM),只要涉及到 RNN 就會有訓練的問題,也就需要用 LSTM、GRU 和一些高級的 model 來代替。目標序列的生成和 LM 做句子生成的過程類似,只是說計算條件概率時需要考慮 Encoder 向量。

Attention Mechanism

注意力機制在 NLP 中的使用也就是 2015 年的事情,也是從機器翻譯領域開始。RNN 可以理解為一個人看完了一段話,他可能只記得最後幾個詞的意思,但是如果你問他前面的信息,他就不能準確地回答。Attention 可以理解為,提問的信息只與之前看完的那段話中一部分關係密切,而與其他部分關係不大,這個人就會將自己的注意力鎖定在這部分信息中。

大體思路

使用 DL 技術來做 Abstractive summarization 的 paper 屈指可數,大體的思路也類似,大概如下:

(1)首先將自動文摘的問題構造成一個 seq2seq 問題,通常的做法是將某段文本的 first sentence 作為輸入,headlines 作為輸出,本質上變成了一個 headlines generative 問題。

(2)選擇一個 big corpus 作為訓練、測試集。自動文摘的技術沒有太成熟的一個重要原因在於沒有一個成熟的大規模語料。一般來說都選擇 Gigawords 作為訓練、測試集,然後用 DUC 的數據集進行驗證和對比。

(3)選擇一個合適的 Encoder ,這裡可以選 simple rnn,lstm rnn,gru rnn,simple birnn,lstm birnn,gru birnn,deep rnn,cnn, 以及各種各樣的 cnn。不同 model 之間的組合都是一種創新,只不過創新意義不太大。用 Encoder 將輸入文本表示成一個向量。(所謂編碼就是將輸入句子表示成向量)

(4)選擇一個合適的 Decoder ,Decoder 的作用是一個 language model,用來生成 summary words。

(5)設計一個合適的 Attention model。不僅僅基於 Encoder last hidden state vector 和上文來預測輸出文本序列,更要基於輸入中「注意力」更高的詞來預測相應的詞。(在 Decoder 之前加入注意機制)

(6)設計一個 copy net。只要是語言模型都會存在相同的問題,比如 out-of-vocabulary 詞的處理,尤其是做新聞類摘要的生成時,很多詞都是人名、機構名等專有名詞,所以這裡需要用 copy net 將輸入中的詞 copy 過來生成輸出。在生成中文摘要問題上,將 words 降維到 characters 可以避免 oov 的問題,並且取得不錯的結果。

自動文摘評估方法

自動文檔摘要評價方法大致分為兩類:

(1)內部評價方法(Intrinsic Methods):提供參考摘要,以參考摘要為基準評價系統摘要的質量。系統摘要與參考摘要越吻合,質量越高。

(2)外部評價方法(Extrinsic Methods):不提供參考摘要,利用文檔摘要代替原文檔執行某個文檔相關的應用。例如:文檔檢索、文檔聚類、文檔分類等,能夠提高應用性能的摘要被認為是質量好的摘要。

其中內部評價方法,是比較直接比較純粹的,被學術界最常使用的文摘評價方法,將系統生成的自動摘要與專家摘要採用一定的方法進行比較也是目前最為常見的文摘評價模式。

經常被用到的兩個內部評價方法: Edmundson 和 ROUGE 。

Edmundson

Edmundson 評價方法比較簡單,可以客觀評估,就是通過比較機械文摘(自動文摘系統得到的文摘)與目標文摘的句子重合率(coselection rate)的高低來對機械文摘進行評價。也可以主觀評估,就是由專家比較機械文摘與目標文摘所含的信息,然後給機械文摘一個等級評分,如等級可以分為:完全不相似,基本相似,很相似,完全相似等。

Edmundson 比較的基本單位是句子,通過句子級標號分隔開的文本單元,句子級標號包括:。 : ; ! ?等,並且只允許專家從原文中抽取句子,而不允許專家根據自己對原文的理解重新生成句子,專家文摘和機械文摘的句子都按照在原文中出現的先後順序給出。

計算公式:

每一個機械文摘的重合率為按三個專家給出的文摘計算重合率的平均值:

即對所有專家的重合率取一個均值, $P_i$ 為相對於第 $i$ 個專家的重合率, $n$ 為專家的數目。

Rouge

Wiki Rouge(Recall-Oriented Understudy for Gisting Evaluation) 是評估自動文摘以及機器翻譯的常見指標。

ROUGE 基於摘要中 n 元詞 (n-gram) 的共現信息來評價摘要,是一種面向 n 元詞召回率的評價方法。 ROUGE 準則由一系列的評價方法組成,包括 ROUGE-1,ROUGE-2,ROUGE-3,ROUGE-4,以及 ROUGE-Skipped-N-gram 等,1、2、3、4分別代表基於 1 元詞到 4 元詞的 N-gram 模型。在自動文摘相關研究中,一般根據自己的具體研究內容選擇合適的 N 元語法 ROUGE 方法。

計算公式:

其中,$n-gram$ 表示 n元詞,{Ref Summaries}表示參考摘要,即事先獲得的標準摘要,$Count_{match}(n-gram)$表示系統摘要和參考摘要中同時出現 $n-gram$ 的個數,$Count(n-gram)$則表示參考摘要中出現的 $n-gram$ 個數。

不難看出,ROUGE 公式是由召回率的計算公式演變而來的,分子可以看作「檢出的相關文檔數目」,即系統生成摘要與標準摘要相匹配的 N-gram 個數,分母可以看作「相關文檔數目」,即標準摘要中所有的 N-gram 個數。

參考文獻

1 文本自動摘要

2 NLP中自動生產文摘

3 Lexrank學習

4 理解 word2vec 訓練過程

5 向量的相似性度量

6 深度學習筆記——Word2vec和Doc2vec原理理解並結合代碼分析

7 深度學習方法(八):自然語言處理中的Encoder-Decoder模型,基本Sequence to Sequence模型

8 機器不學習:注意力機制在NLP中的應用

9 自動文摘評測方法:Rouge-1、Rouge-2、Rouge-L、Rouge-S

相關競賽

Byte Cup 2018 國際機器學習競賽:自動生成文本標題

8月17日:比賽正式開始,開放比賽隊伍註冊,同步發布訓練集和驗證集。 11月17日:發布測試數據,要求提交測試集預測結果。 11月22日:測試集提交階段結束。 11月23日:比賽截止,計算排名。 11月23日:公布比賽排名,排名前10的隊伍必須在一周內提交一篇不超過4頁的參賽方法說明(ACM雙列標準模板,中英文皆可)。


推薦閱讀:

第四屆近紅外腦功能數據處理培訓班
人工智慧繁榮發展的背後,隱憂不容忽視
這兩個研究有可能動搖「癌症登月計劃」,細思恐極|奇點猛科技
站在互聯網寶庫的門口,高聲吶喊!

TAG:科技 |