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

當咱們點開某個網站或某個新聞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、機器生成摘要的方式,這些跟人類思惟愈來愈像,都創建在對整段句子的理解之上。與此同時生成摘要的效果,也經常讓咱們驚豔。

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

總的來講,文本摘要自動生成是個很是具備前景但也很是具備挑戰性的技術。

 

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

相關文章
相關標籤/搜索