入門| 文本摘要自動生成技術的前世今生

當我們點開某個網站或新聞APP時,經常能看到這樣的標題:“14億人都不知道的真相,歷史的血淚……”、“刪前速看!XXX視頻流出”等,但是點進頁面時往往會發現,都是標題黨!而時間和流量卻在悄悄溜走。

如果這時候有方法能夠先閱讀新聞,再提煉出關鍵內容,那么將大大節約時間并精準地找到我們需要的內容。而這就是圖鴨君此次會介紹的技術——?“文本摘要自動生成”技術!

文本摘要充斥著我們生活的方方面面,從新聞關鍵詞的提煉到Google、百度等搜索引擎的結果優化,真正實現搜索中的所見即所得,“Smarter & Faster”。

主流的文本摘要方式

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

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

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

文本摘要的發展概況

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

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

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

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

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

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

2017年5月,還是FAIR,發布了《Convolutional Sequence to Sequence Learning》,第一次實現Encoder、Decoder均采用CNN單元,使網絡在訓練階段能夠并行計算,效率進一步提升。同時引入了Multi-step Attention,相比于之前只在最后一層生成翻譯時往回看,多跳注意(Multi-step Attentio)的優化點在于Decoder階段生成每一層的語義向量時都會往回看,進而提升了準確度。同時還有一些其他的trick:像引入單詞的位置信息、殘差網絡、計算Attention時對高層語義信息和低層細節信息兼收并取等。最后在生成翻譯和摘要時,速度相比之前最快的網絡,提升了近9倍!同時在WMT-14英德、英法兩項的單模型訓練結果中,BLEU得分達到了25.16、40.46,英法翻譯任務也是迄今為止得分最高的模型。

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


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


Google Transformer模型的拆解

總結:

從傳統的Text rank抽取式,到深度學習中采用RNN、CNN單元處理,再引入Attention、Self-Attention機器生成摘要的方式,這一步步的轉化使得文本摘要生成的方式跟人類思維越來越像,先理解后提取概要。與此同時生成的摘要效果,也常常讓我們驚艷。

但文本摘要自動生成依然還有很多難題,如段落太長,那機器對于段落的理解時間就會更長,而過長的時間會導致機器對于段落信息的記憶損失;而深度學習非常依賴有標簽的樣本,標注工作也會是一筆非常大的開銷等等,這些都是需要大家去解決與克服的問題。

簡而言之,文本摘要自動生成技術是一項非常具有前景但也是極具挑戰性的技術。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。