當(dāng)我們點(diǎn)開某個網(wǎng)站或某個新聞APP的時(shí)候,,經(jīng)常能看到這樣的題目:“14億人都不知道的真相,歷史的血淚……”,、“刪前速看,!XXX視頻流出”等,可是當(dāng)我們點(diǎn)進(jìn)去的時(shí)候,,往往會發(fā)現(xiàn),,都是標(biāo)題黨,文章和內(nèi)容完全不符合,! 如果這時(shí)候有一種工具能先替我們閱讀新聞,,再提煉出關(guān)鍵內(nèi)容,那么我們肯定不會再受到標(biāo)題黨的影響,,這對我們的生活無疑會有非常大的便利。而這需要的就是“文本摘要自動生成”技術(shù),! 文本摘要充斥著我們生活的方方面面,,往小了說,新聞關(guān)鍵詞的提煉是文本摘要,;往寬泛看,,文本摘要也可以應(yīng)用在像Google、百度等搜索引擎的結(jié)果優(yōu)化中,,真正實(shí)現(xiàn)搜索中的“所見即所得”,,“Smarter & Faster”,再也不會翻好幾頁都找不到想要的信息了,。 (Google開源的Textsum人類/機(jī)器摘要結(jié)果對比) 主流的文本摘要方式 目前主流的文本摘要自動生成有兩種方式,,一種是抽取式(extractive),,另一種是生成式(abstractive)。 抽取式顧名思義,,就是按照一定的權(quán)重,,從原文中尋找跟中心思想最接近的一條或幾條句子。而生成式則是計(jì)算機(jī)通讀原文后,,在理解整篇文章意思的基礎(chǔ)上,,按自己的話生成流暢的翻譯。 抽取式的摘要目前已經(jīng)比較成熟,,但是抽取質(zhì)量及內(nèi)容流暢度均差強(qiáng)人意,。伴隨著深度學(xué)習(xí)的研究,生成式摘要的質(zhì)量和流暢度都有很大的提升,,但目前也受到原文本長度過長,、抽取內(nèi)容不佳等的限制。 文本摘要的發(fā)展概況 抽取式摘要是一種比較成熟的方案,,其中Text rank排序算法以其簡潔,、高效的特點(diǎn)被工業(yè)界廣泛運(yùn)用。大體思想是先去除文章中的一些停用詞,,之后對句子的相似度進(jìn)行度量,,計(jì)算每一句相對另一句的相似度得分,迭代傳播,,直到誤差小于0.0001,。再對上述得到的關(guān)鍵語句進(jìn)行排序,便能得到想要的摘要,。抽取式摘要主要考慮單詞詞頻,,并沒有過多的語義信息,像“豬八戒”,,“孫悟空”這樣的詞匯都會被獨(dú)立對待,,無法建立文本段落中的完整語義信息。 (Text rank原理如下圖所示,,根據(jù)句子的相似性進(jìn)行排序打分,。) 生成式文本摘要主要依靠深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn),2014年由GoogleBrain團(tuán)隊(duì)提出的Sequence-to-Sequence序列,,開啟了NLP中端到端網(wǎng)絡(luò)的火熱研究,。Sequence-to-Sequence又稱為編、解碼器(Encoder,、Decoder)架構(gòu),。其中Encoder、Decoder均由數(shù)層RNN/LSTM構(gòu)成,,Encoder負(fù)責(zé)把原文編碼為一個向量C,;Decoder負(fù)責(zé)從這個向量C中提取信息,,獲取語義,生成文本摘要,。 但是由于“長距離依賴”問題的存在,,RNN到最后一個時(shí)間步輸入單詞的時(shí)候,已經(jīng)丟失了相當(dāng)一部分的信息,。這時(shí)候編碼生成的語義向量C同樣也丟失了大量信息,,就導(dǎo)致生成的摘要不夠準(zhǔn)確。 Bahdanau等人在14年發(fā)表的論文《Neural Machine Translation by JointlyLearning to Align and Translate》中,,第一次將Attention機(jī)制應(yīng)用于NLP中,。Attention機(jī)制是一種注意力(資源)分配機(jī)制,在某個特定時(shí)刻,,總是重點(diǎn)關(guān)注跟它相關(guān)的內(nèi)容,,其他內(nèi)容則進(jìn)行選擇性忽視。就像下圖,,在翻譯“Knowledge”時(shí),,只會關(guān)注“知識”.這樣的對齊能讓文本翻譯或者摘要生成更具針對性。 RNN/LSTM單元,,由于每個詞是按順序輸入網(wǎng)絡(luò)的,,所以會記錄文章的序列信息。因此,,大部分的NLP任務(wù),,都是采用的RNN架構(gòu)。但是這也限制了網(wǎng)絡(luò)訓(xùn)練及摘要生成的速度,,因?yàn)镽NN必須一個個輸入,,一個個生成,無法并行計(jì)算,。2016年Facebook AI Research(FAIR)發(fā)表了《A Convolutional Encoder Model forNeural Machine Translation》,,對Encoder部分采用似乎不擅長處理序列信息的卷積網(wǎng)絡(luò)(CNN)來實(shí)現(xiàn),結(jié)果在翻譯,、摘要任務(wù)中,,也達(dá)到了當(dāng)年的最高水準(zhǔn)。 2017年5月,,還是FAIR,發(fā)布了《ConvolutionalSequence to Sequence Learning》,,第一次實(shí)現(xiàn)了Encoder,、Decoder都采用CNN單元,使得網(wǎng)絡(luò)在訓(xùn)練階段,,可以并行計(jì)算,,效率進(jìn)一步提升,。同時(shí)引入了Multi-step Attention(多跳注意),相比之前只在最后一層生成翻譯時(shí)往回看,,多跳注意使得Decoder階段生成每一層的語義向量時(shí)都往回看,,進(jìn)一步提升了準(zhǔn)確度。同時(shí)還有一些其他的Trick:引入單詞的位置信息,,殘差網(wǎng)絡(luò),,計(jì)算Attention時(shí)候?qū)Ω邔诱Z義信息和低層細(xì)節(jié)信息,兼收并取等,。最后在生成翻譯和摘要時(shí),,速度相比之前最快的網(wǎng)絡(luò),提升了近9倍,。同時(shí)在WMT-14英德,、英法兩項(xiàng)的單模型訓(xùn)練結(jié)果中,BLEU得分達(dá)到了25.16,、40.46,,其中英法翻譯也是迄今為止的最高得分。 時(shí)隔一個月,,17年6月,,Google團(tuán)隊(duì)發(fā)布了名為《Attention Is All You Need》的文章,即不用CNN和RNN單元,,只用Self-Attention和Encoder-Decoder Attention,,就完全實(shí)現(xiàn)了端到端的翻譯任務(wù)。并且在WMT-14英德,、英法翻譯任務(wù)中,,BLEU值達(dá)到了28.4和41.0的高分。因?yàn)橥瑯涌梢圆⑿杏?jì)算,,模型的訓(xùn)練及生成速度也有所提升,。Self-Attention相比于之前的模型更加關(guān)注句子的內(nèi)部結(jié)構(gòu),也就是word-pairs的信息,,附圖是論文中Attention可視化的結(jié)果,,可以發(fā)現(xiàn)僅在源文端,模型便學(xué)習(xí)到了“making more difficult”的word-pairs信息,。 同理對目標(biāo)端,,模型也會單獨(dú)學(xué)習(xí)句子的內(nèi)部結(jié)構(gòu)信息。之后利用Encoder-Decoder Attention建立源文和目標(biāo)詞組,、句子的對應(yīng)關(guān)系,。相比于FAIR的卷積模型到很高層才能看到句子的完整信息,Self-Attention在第一層便巧妙地建立了每個詞和整個句子的聯(lián)系,同時(shí)位置編碼采用三角函數(shù)的相對位置法表示,,理論上可以泛化到訓(xùn)練中未見過的更長長度句子的翻譯中,。目前Self-Attention僅用在了翻譯任務(wù)中,但這樣的思想,,在文本摘要自動生成的任務(wù)中,,也是可以參照的。 (Google Transformer模型的拆解) 總結(jié): 從傳統(tǒng)的Textrank抽取式,,到深度學(xué)習(xí)中采用RNN,、CNN單元處理,再引入Attention,、Self-Attention,、機(jī)器生成摘要的方式,這些跟人類思維越來越像,,都建立在對整段句子的理解之上,。與此同時(shí)生成摘要的效果,也常常讓我們驚艷,。 但文本摘要自動生成依然還有很多難題,,比如如果段落太長,那么機(jī)器對段落的理解時(shí)間就要很長,,而過長的時(shí)間會導(dǎo)致機(jī)器對段落信息的記憶的損失,。而且深度學(xué)習(xí)非常依賴有標(biāo)簽的樣本,標(biāo)注工作也是一筆非常大的開銷,。 總的來說,文本摘要自動生成是個非常具有前景但也非常具有挑戰(zhàn)性的技術(shù),。 |
|