投稿
作者: 阿儁是個(gè)nerd
雖然有很多SaaS提供Summarization的服務(wù),雖然有很多App尤其是新聞?lì)怉pp標(biāo)榜自己擁有多么牛的技術(shù)做Summarization,我們還是不得不承認(rèn)自動(dòng)文摘的技術(shù)離一個(gè)高水平的AI還有一段距離,很長的一段距離。都說自動(dòng)文摘很難,到底難在哪里?
Abstractive
上一篇博客分享了Extraction方法的一些思路,本篇簡單聊一點(diǎn) Abstractive 的想法。
Abstractive是一個(gè)True AI的方法,要求系統(tǒng)理解文檔所表達(dá)的意思,然后用可讀性強(qiáng)的人類語言將其簡練地總結(jié)出來。這里包含這么幾個(gè)難點(diǎn):
1、理解文檔。所謂理解,和人類閱讀一篇文章一樣,可以說明白文檔的中心思想,涉及到的話題等等。
2、可讀性強(qiáng)??勺x性是指生成的摘要要能夠連貫(Coherence)與銜接(Cohesion),通俗地講就是人類讀起來幾乎感覺不出來是AI生成的(通過圖靈測試)。
3、簡練總結(jié)。在理解了文檔意思的基礎(chǔ)上,提煉出最核心的部分,用最短的話講明白全文的意思。
上述三個(gè)難點(diǎn)對于人類來說都不是一件容易的事情,何況是發(fā)展沒太多年的自然語言處理技術(shù)。人工智能領(lǐng)域中AI能夠領(lǐng)先人類的例子很多,包括前不久很火的Alpha狗,圖片識(shí)別,主要是利用計(jì)算機(jī)遠(yuǎn)強(qiáng)于人類的計(jì)算能力,但也有很多的領(lǐng)域,AI離人類的水平還有很遠(yuǎn),比如paper的survey,summarization,機(jī)器翻譯等等。
近幾年隨著Deep Learning的火爆,研究者們利用一些最新的研究成果來做summarization,比如attention model,比如rnn encoder-decoder框架,在一定程度上實(shí)現(xiàn)了abstractive,但還是處于研究初期,效果還不算很好。
Evaluation
自動(dòng)文摘最大的一個(gè)難點(diǎn)是評價(jià)問題,如何有效地、合理地評價(jià)一篇文摘的效果是一個(gè)很難的問題。
人工評價(jià)
一千個(gè)讀者,有一千個(gè)哈姆雷特。
不同的人理解一篇文檔會(huì)有很大的不同,基于人工評價(jià)的方法有類似于評價(jià)開放的文科辨析題目答案一樣,需要從答案中尋找一些所謂的要點(diǎn),計(jì)算要點(diǎn)覆蓋率,打分。人工評價(jià)結(jié)果在很大程度上都是可信的,因?yàn)槿丝梢酝评?、?fù)述并使用世界知識(shí)將具有類似意思但形式不同的文本單元關(guān)聯(lián)起來,更加靈活一些,但時(shí)間成本太高,效率太低。
自動(dòng)評價(jià)
計(jì)算機(jī)評價(jià)效果,需要給定參考摘要作為標(biāo)準(zhǔn)答案,通過制定一些規(guī)則來給生成的摘要打分。目前,使用最廣泛的是ROUGH系統(tǒng)(Recall-Oriented Understudy for Gisting Evaluation),基本思想是將待審摘要和參考摘要的n元組共現(xiàn)統(tǒng)計(jì)量作為評價(jià)依據(jù),然后通過一系列標(biāo)準(zhǔn)進(jìn)行打分。包括:ROUGH-N、ROUGH-L、ROUGH-W、ROUGH-S和ROUGH-SU幾個(gè)類型。通俗地將就是通過一些定量化的指標(biāo)來描述待審摘要和參考文摘之間的相似性,維度考慮比較多,在一定程度上可以很好地評價(jià)Extracive產(chǎn)生的摘要。
這里涉及到一個(gè)重要的問題,就是標(biāo)注語料問題。自動(dòng)評價(jià)需要給定一系列文檔已經(jīng)他們的參考文摘,用來測試不同的算法效果。TAC(Text Analysis Conference)和TREC(Text REtrieval Conference)兩個(gè)會(huì)議提供了相關(guān)的評測數(shù)據(jù)集,自動(dòng)文摘領(lǐng)域的paper都是以這些數(shù)據(jù)集為baseline,與其他paper的算法進(jìn)行對比。會(huì)議的數(shù)據(jù)集畢竟有限,新的領(lǐng)域中做自動(dòng)文摘需要建立自己的數(shù)據(jù)集作為標(biāo)準(zhǔn)。
現(xiàn)有的評價(jià)標(biāo)準(zhǔn)存在的一個(gè)重要問題在于沒有考慮語義層面上的相似,評價(jià)extractive還好,但評價(jià)abstractive就會(huì)效果不好了。Deep Learning其實(shí)就是一個(gè)representation learning,將世界萬物表示成數(shù)字,然后作分析。在詞、句子甚至段落這個(gè)層面上的表示學(xué)習(xí)研究的非常多,也有很多的state-of-the-art的結(jié)果,所以做語義層面上的評價(jià)并不難。
重要性
評價(jià)對于一個(gè)研究領(lǐng)域非常重要,是牽引這個(gè)領(lǐng)域前進(jìn)的首要因素,評價(jià)需要制定標(biāo)準(zhǔn),標(biāo)準(zhǔn)的好壞關(guān)系到這個(gè)領(lǐng)域的研究質(zhì)量,尤其是研究者們的paper質(zhì)量,因?yàn)榇蠹蚁嗷ケ容^算法的優(yōu)劣就十分依賴這樣的標(biāo)準(zhǔn)。標(biāo)準(zhǔn)數(shù)據(jù)集的建立以及baseline的提出,是最首要的任務(wù)。
接下來,重點(diǎn)介紹近期abstractive summarization的一些研究情況。abstractive是學(xué)術(shù)界研究的熱點(diǎn),尤其是Machine Translation中的encoder-decoder框架和attention mechanism十分火熱,大家都試著將abstractive問題轉(zhuǎn)換為sequence-2-sequence問題,套用上面兩種技術(shù),得到state-of-the-art結(jié)果,2015年來已經(jīng)有許多篇paper都是這種套路
Encoder-Decoder
Encoder-Decoder不是一種模型,而是一種框架,一種處理問題的思路,最早應(yīng)用于機(jī)器翻譯領(lǐng)域,輸入一個(gè)序列,輸出另外一個(gè)序列。機(jī)器翻譯問題就是將一種語言序列轉(zhuǎn)換成另外一種語言序列,將該技術(shù)擴(kuò)展到其他領(lǐng)域,比如輸入序列可以是文字,語音,圖像,視頻,輸出序列可以是文字,圖像,可以解決很多別的類型的問題。這一大類問題就是上圖中的sequence-to-sequence問題。這里以輸入為文本,輸出也為文本作為例子進(jìn)行介紹:
encoder部分是將輸入序列表示成一個(gè)帶有語義的向量,使用最廣泛的表示技術(shù)是Recurrent Neural Network,RNN是一個(gè)基本模型,在訓(xùn)練的時(shí)候會(huì)遇到gradient explode或者gradient vanishing的問題,導(dǎo)致無法訓(xùn)練,所以在實(shí)際中經(jīng)常使用的是經(jīng)過改良的LSTM RNN或者GRU RNN對輸入序列進(jìn)行表示,更加復(fù)雜一點(diǎn)可以用BiRNN、BiRNN with LSTM、BiRNN with GRU、多層RNN等模型來表示,輸入序列最終表示為最后一個(gè)word的hidden state vector。
decoder部分是以encoder生成的hidden state vector作為輸入“解碼”出目標(biāo)文本序列,本質(zhì)上是一個(gè)語言模型,最常見的是用Recurrent Neural Network Language Model(RNNLM),只要涉及到RNN就會(huì)有訓(xùn)練的問題,也就需要用LSTM、GRU和一些高級的model來代替。目標(biāo)序列的生成和LM做句子生成的過程類似,只是說計(jì)算條件概率時(shí)需要考慮encoder向量。
這里,每一種模型幾乎都可以出一篇paper,尤其是在這個(gè)技術(shù)剛剛開始應(yīng)用在各個(gè)領(lǐng)域中的時(shí)候,大家通過嘗試不同的模型組合,得到state-of-the-art結(jié)果。
該框架最早被應(yīng)用在Google Translation中,paper詳情可以見[1],2014年12月發(fā)在arxiv上。
Attention Mechanism
注意力機(jī)制在NLP中的使用也就是2015年的事情,也是從機(jī)器翻譯領(lǐng)域開始。我們仔細(xì)看decoder中生成目標(biāo)文本序列這部分,第一個(gè)word的生成完全依賴于encoder的last hidden state vector,而這個(gè)vector更多的是表示輸入序列的最后一個(gè)word的意思,也就是說rnn一般來說都是一個(gè)有偏的模型。
打個(gè)比方,rnn可以理解為一個(gè)人看完了一段話,他可能只記得最后幾個(gè)詞說明的意思,但是如果你問他前面的信息,他就不能準(zhǔn)確地回答,attention可以理解為,提問的信息只與之前看完的那段話中一部分關(guān)系密切,而其他部分關(guān)系不大,這個(gè)人就會(huì)將自己的注意力鎖定在這部分信息中。這個(gè)就是所謂attention mechanism的原理,每個(gè)hidden state vector對于decoder生成每個(gè)單詞都有影響,但影響分布并不相同,請看下圖:
圖中行文本代表輸出,列文本代表輸入,顏色越深表示兩個(gè)詞相關(guān)性越強(qiáng),即生成該詞時(shí)需要多注意對應(yīng)的輸入詞。不同的paper在使用attention上會(huì)有不同的技巧,這里不一一贅述了。
Neural Summarization
使用deep learning技術(shù)來做abstractive summarization的paper屈指可數(shù),大體的思路也類似,大概如下:
0、首先將自動(dòng)文摘的問題構(gòu)造成一個(gè)seq2seq問題,通常的做法是將某段文本的first sentence作為輸入,headlines作為輸出,本質(zhì)上變成了一個(gè)headlines generative問題。
1、選擇一個(gè)big corpus作為訓(xùn)練、測試集。自動(dòng)文摘的技術(shù)沒有太成熟的一個(gè)重要原因在于沒有一個(gè)成熟的大規(guī)模語料。一般來說都選擇Gigawords作為訓(xùn)練、測試集,然后用DUC的數(shù)據(jù)集進(jìn)行驗(yàn)證和對比。
2、選擇一個(gè)合適的encoder,這里可以選simple rnn,lstm rnn,gru rnn,simple birnn,lstm birnn,gru birnn,deep rnn,cnn,以及各種各樣的cnn。不同model之間的組合都是一種創(chuàng)新,只不過創(chuàng)新意義不太大。用encoder將輸入文本表示成一個(gè)向量。
3、選擇一個(gè)合適的decoder,decoder的作用是一個(gè)language model,用來生成summary words。
4、設(shè)計(jì)一個(gè)合適的attention model。不僅僅基于encoder last hidden state vector和上文來預(yù)測輸出文本序列,更要基于輸入中“注意力”更高的詞來預(yù)測相應(yīng)的詞。
5、設(shè)計(jì)一個(gè)copy net。只要是語言模型都會(huì)存在相同的問題,比如out-of-vocabulary詞的處理,尤其是做新聞?lì)愓纳蓵r(shí),很多詞都是人名、機(jī)構(gòu)名等專有名詞,所以這里需要用copy net 將輸入中的詞copy過來生成輸出。在生成中文摘要問題上,將words降維到characters可以避免oov的問題,并且取得不錯(cuò)的結(jié)果。
接下來想做的事情是將neural summarization相關(guān)的paper精讀之后寫成blog。
作者微博:阿儁是個(gè)nerd
微信公眾號(hào):paperweekly,每周會(huì)分享 1-2 篇 AI領(lǐng)域 paper 的摘譯和評價(jià)。
博客地址,http://rsarxiv.github.io/ 。
作者還開發(fā)了一款產(chǎn)品 RSarXiv,一款好用的arxiv cs paper推薦系統(tǒng),在 App Store 搜索 rsarxiv 即可。網(wǎng)站地址:http://rsarxiv.science/web。
------------------------------------------------
加入機(jī)器之心(全職記者/實(shí)習(xí)生):hr@almosthuman.cn
投稿或?qū)で髨?bào)道:editor@almosthuman.cn
廣告&商務(wù)合作:bd@almosthuman.cn
聯(lián)系客服