深度學習之文本摘要自動生成 頂 原 薦

當我們點開某個網站或某個新聞APP的時候,經常能看到這樣的題目:“14億人都不知道的真相,歷史的血淚……”、“刪前速看!XXX視頻流出”等,可是當我們點進去的時候,往往會發現,都是標題黨,文章和內容完全不符合!

如果這時候有一種工具能先替我們閱讀新聞,再提煉出關鍵內容,那麼我們肯定不會再受到標題黨的影響,這對我們的生活無疑會有非常大的便利。而這需要的就是“文本摘要自動生成”技術!

文本摘要充斥着我們生活的方方面面,往小了說,新聞關鍵詞的提煉是文本摘要;往寬泛看,文本摘要也可以應用在像Google、百度等搜索引擎的結果優化中,真正實現搜索中的“所見即所得”,“Smarter & Faster”,再也不會翻好幾頁都找不到想要的信息了。

                     (Google開源的Textsum人類/機器摘要結果對比)

主流的文本摘要方式

目前主流的文本摘要自動生成有兩種方式,一種是抽取式extractive,另一種是生成式 abstractive)。

抽取式顧名思義,就是按照一定的權重,從原文中尋找跟中心思想最接近的一條或幾條句子。而生成式則是計算機通讀原文後,在理解整篇文章意思的基礎上,按自己的話生成流暢的翻譯。

抽取式的摘要目前已經比較成熟,但是抽取質量及內容流暢度均差強人意。伴隨着深度學習的研究,生成式摘要的質量和流暢度都有很大的提升,但目前也受到原文本長度過長、抽取內容不佳等的限制。

文本摘要的發展概況

抽取式摘要是一種比較成熟的方案,其中Text rank排序算法以其簡潔、高效的特點被工業界廣泛運用。大體思想是先去除文章中的一些停用詞,之後對句子的相似度進行度量,計算每一句相對另一句的相似度得分,迭代傳播,直到誤差小於0.0001。再對上述得到的關鍵語句進行排序,便能得到想要的摘要。抽取式摘要主要考慮單詞詞頻,並沒有過多的語義信息,像“豬八戒”,“孫悟空”這樣的詞彙都會被獨立對待,無法建立文本段落中的完整語義信息。

Text rank原理如上圖所示,根據句子的相似性進行排序打分。)

生成式文本摘要主要依靠深度神經網絡結構實現,2014年由Google Brain團隊提出的Sequence-to-Sequence序列,開啓了NLP中端到端網絡的火熱研究。Sequence-to-Sequence又稱爲編、解碼器(EncoderDecoder)架構。其中EncoderDecoder均由數層RNNLSTM構成,Encoder負責把原文編碼爲一個向量CDecoder負責從這個向量C中提取信息,獲取語義,生成文本摘要。

但是由於“長距離依賴”問題的存在,RNN到最後一個時間步輸入單詞的時候,已經丟失了相當一部分的信息。這時候編碼生成的語義向量C同樣也丟失了大量信息,就導致生成的摘要不夠準確。

Bahdanau等人在14年發表的論文《Neural Machine Translation by Jointly Learning to Align and Translate》中,第一次將Attention機制應用於NLP中。Attention機制是一種注意力(資源)分配機制,在某個特定時刻,總是重點關注跟它相關的內容,其他內容則進行選擇性忽視。就像下圖,在翻譯“Knowledge”時,只會關注“知識”.這樣的對齊能讓文本翻譯或者摘要生成更具針對性。

 

RNNLSTM單元,由於每個詞是按順序輸入網絡的,所以會記錄文章的序列信息。因此,大部分的NLP任務,都是採用的RNN架構。但是這也限制了網絡訓練及摘要生成的速度,因爲RNN必須一個個輸入,一個個生成,無法並行計算。2016Facebook AI ResearchFAIR)發表了《A Convolutional Encoder Model for Neural Machine Translation》,對Encoder部分採用似乎不擅長處理序列信息的卷積網絡(CNN)來實現,結果在翻譯、摘要任務中,也達到了當年的最高水準;

20175月,還是FAIR,發佈了《Convolutional Sequence to Sequence Learning》,第一次實現了EncoderDecoder都採用CNN單元,使得網絡在訓練階段,可以並行計算,效率進一步提升。同時引入了Multi-step Attention(多跳注意),相比之前只在最後一層生成翻譯時往回看,多跳注意使得Decoder階段生成每一層的語義向量時都往回看,進一步提升了準確度。同時還有一些其他的Trick:引入單詞的位置信息,殘差網絡,計算Attention時候對高層語義信息和低層細節信息,兼收並取等。最後在生成翻譯和摘要時,速度相比之前最快的網絡,提升了近9倍。同時在WMT-14英德、英法兩項的單模型訓練結果中,BLEU得分達到了25.1640.46,其中英法翻譯也是迄今爲止的最高得分。

時隔一個月,176月,Google團隊發佈了名爲《Attention Is All You Need》的文章,即不用CNNRNN單元,只用Self-AttentionEncoder-Decoder Attention,就完全實現了端到端的翻譯任務。並且在WMT-14英德、英法翻譯任務中,BLEU值達到了28.441.0的高分。因爲同樣可以並行計算,模型的訓練及生成速度也有所提升。Self-Attention相比於之前的模型更加關注句子的內部結構,也就是word-pairs的信息,附圖是論文中Attention可視化的結果,可以發現僅在源文端,模型便學習到了“making more difficult”的word-pairs信息。

同理對目標端,模型也會單獨學習句子的內部結構信息。之後利用Encoder-Decoder Attention建立源文和目標詞組、句子的對應關係。相比於FAIR 的卷積模型到很高層才能看到句子的完整信息,Self-Attention在第一層便巧妙地建立了每個詞和整個句子的聯繫,同時位置編碼採用三角函數的相對位置法表示,理論上可以泛化到訓練中未見過的更長長度句子的翻譯中。目前Self-Attention僅用在了翻譯任務中,但這樣的思想,在文本摘要自動生成的任務中,也是可以參照的。

(Google Transformer模型的拆解)

總結:

從傳統的Textrank抽取式,到深度學習中採用RNNCNN單元處理,再引入AttentionSelf-Attention、機器生成摘要的方式,這些跟人類思維越來越像,都建立在對整段句子的理解之上。與此同時生成摘要的效果,也常常讓我們驚豔。

但文本摘要自動生成依然還有很多難題,比如如果段落太長,那麼機器對段落的理解時間就要很長, 而過長的時間會導致機器對段落信息的記憶的損失。而且深度學習非常依賴有標籤的樣本,標註工作也是一筆非常大的開銷。

總的來說,文本摘要自動生成是個非常具有前景但也非常具有挑戰性的技術。

 

聯繫我們,關注圖鴨微信公衆號

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