摘 要:編寫機(jī)器閱讀理解軟件中,一個基本步驟就是對于給定問題先在文檔中找到和答案相關(guān)的語句。目前該領(lǐng)域大部分算法都使用遞歸神經(jīng)網(wǎng)絡(luò),但由于很難序列并行化,這類算法在長文檔上運(yùn)行很慢。受人類在首次瀏覽文章時識別與問題相關(guān)的段落或語句,并仔細(xì)閱讀這些內(nèi)容得到答案的啟發(fā),本文采用一個粗糙但快速的模型用于答案相關(guān)句的選擇。實驗在WIKIREADING LONG 數(shù)據(jù)集上取得了較好的結(jié)果。
關(guān)鍵詞:機(jī)器閱讀理解軟件;神經(jīng)網(wǎng)絡(luò);答案相關(guān)句
中圖分類號:TP391.1 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
閱讀理解是自然語言理解中的一個關(guān)鍵問題。近年來,隨著大規(guī)模閱讀理解語料的可用性,從無結(jié)構(gòu)化文檔中進(jìn)行問答研究已經(jīng)成為熱門領(lǐng)域[1-3]。
與此同時,深度學(xué)習(xí)也已成為自然語言處理領(lǐng)域的熱點,幾乎所有的研究熱點都已成為深度學(xué)習(xí)的天下。閱讀理解中對于問題相關(guān)句的抽取任務(wù)也不例外,有許多專家學(xué)者利用深度學(xué)習(xí)來進(jìn)行問題相關(guān)句抽取任務(wù)的研究[4-6]。
目前,在無結(jié)構(gòu)化文檔上進(jìn)行問答研究的最好方法是基于遞歸神經(jīng)網(wǎng)絡(luò),該模型將文檔和問題進(jìn)行編碼來獲得答案。盡管這樣的模型能夠獲得所有相關(guān)信息,但是由于模型需要在可能成千上萬的詞語上序列化運(yùn)行,并且計算不能平行化而變得很慢。事實上,這樣的模型通常是把文檔截短,并只考慮有限的一部分詞語。受人類第一次瀏覽文檔時識別問題相關(guān)部分,認(rèn)真閱讀這部分內(nèi)容從而產(chǎn)生答案的研究[7-9],本文提出了一種問題相關(guān)句選擇模型。該模型能快速從文檔中選擇一些與回答問題相關(guān)的句子。
本文認(rèn)為,答案并不需要顯式地逐字出現(xiàn)在輸入中(比如,即使沒有被顯式說明,一部電影的類型也可以輕易確定)。此外,答案經(jīng)常會在文檔虛假的上下文中出現(xiàn)很多次(比如,年份2012可能在文檔中出現(xiàn)很多次,但真正與問題相關(guān)的可能只有一次)。因此,本文將句子選擇看成是由僅使用增強(qiáng)學(xué)習(xí)的答案生成模型產(chǎn)生的答案并行訓(xùn)練的潛在變量。據(jù)我們所知,在分類研究領(lǐng)域有將句子選擇看成是一個潛在變量,但是問答領(lǐng)域尚屬首次。
本文展示了一個對于長文檔閱讀理解的模塊化框架和學(xué)習(xí)步驟。它能夠捕獲文檔結(jié)構(gòu)的有限形式如句子邊界,并能夠處理長文檔。WIKIREADING LONG數(shù)據(jù)集上的實驗結(jié)果顯示本文模型是有效的。
2 問題設(shè)置(Problem setting)
給定一個問題—文檔—答案三元組的訓(xùn)練集,我們最終目的就是一個模型能夠?qū)栴}—文檔對生成一個答案。文檔是一系列句子的集合。結(jié)合語言學(xué)研究和人類的直觀感知,我們認(rèn)為答案是可以從一個與問題相關(guān)的潛在的句子子集中生成的,這就是本文的研究內(nèi)容。下面以兒童故事《小貓釣魚》為例說明研究內(nèi)容,其中答案出現(xiàn)在子句中。
文檔:
:小貓坐在河邊跟媽媽學(xué)習(xí)釣魚。:蝴蝶飛過,小貓放下魚竿就去抓蝴蝶;:蜻蜓飛來,小貓轉(zhuǎn)過身就去追蜻蜓。:一天的時間很快就過去了。:傍晚,小貓低著頭,提著空空的籃子跟著媽媽回家了。
問題x:小貓跟著媽媽去釣魚,他釣到魚了嗎?
答案y:沒有?;@子空空的。
3 數(shù)據(jù)(Data)
本文方法在WIKIREADING LONG數(shù)據(jù)集上進(jìn)行了測試。
WIKIREADING LONG是一個問答數(shù)據(jù)集,由Wikipedia and Wikidata自動生成:給定一個關(guān)于某實體的維基頁面和維基數(shù)據(jù)資源,比如職業(yè)或性別,目標(biāo)就是基于該文檔推斷其價值。和其他最新發(fā)布的大規(guī)模數(shù)據(jù)集不同,WIKIREADING LONG并不標(biāo)注答案界限,這使得句子選擇更加困難。
4 句子選擇模型(Sentence selection model)
句子選擇模型定義了一個給定輸入問題x和文檔d、基于句子層面的分布。按照近年來在句子選擇方面的研究,本文構(gòu)建了一個前饋網(wǎng)絡(luò)來定義句子上的分布。我們考慮了三種簡單的句子表示:詞袋模型、塊結(jié)構(gòu)詞袋模型、卷積神經(jīng)網(wǎng)絡(luò)模型。這些模型能夠有效處理長文檔,但是不能完全捕獲文本的序列性,即句子中詞語的位置信息。
4.1 詞袋模型
給定一個句子,我們定義了中詞語的詞袋表示。為了定義文檔句子的分布,我們使用了一個標(biāo)準(zhǔn)注意模型,將問題的詞袋表示級聯(lián)到文檔中每個句子的詞袋表示上,然后輸入給一個單層前向網(wǎng)絡(luò):
其中,表示問題和文檔中句子的詞袋表示級聯(lián),矩陣、向量和word embeddings是學(xué)習(xí)參數(shù)。
4.2 塊結(jié)構(gòu)詞袋模型
為了獲得更精細(xì)的粒度,我們將句子分割成一些長度固定的小塊,并且對每個小塊單獨進(jìn)行了打分。這種做法適用于用句子的子塊回答問題,在不同小塊上學(xué)習(xí)注意力詞袋表示,并和詞袋模型一樣進(jìn)行了評分。最終獲得了一個塊上分布,并通過邊緣化相同句子組塊來計算句子概率。假定是來自所有句子的塊上分布,則有:,參數(shù)與詞袋模型參數(shù)一致。
4.3 卷積神經(jīng)網(wǎng)絡(luò)模型CNN
盡管我們的句子選擇模型有快速性要求,我們還是使用了一種卷積神經(jīng)網(wǎng)絡(luò)來更好地表達(dá)臨近詞的語義。相對而言,卷積神經(jīng)網(wǎng)絡(luò)模型CNN仍然是有效的,因為所有的過濾器可以平行計算。
借鑒了目前該領(lǐng)域的最新研究,我們將問題和句子中word embedding進(jìn)行了級聯(lián),并使用特征抽取器(Filter)和寬度w運(yùn)行一個卷積層。這產(chǎn)生了每個具有w長度的F特征,我們利用了MaxPooling Over Time來獲得一個最終的表示。MaxPooling Over Time是NLP中CNN模型中最常見的一種下采樣操作,意思是對于某個Filter抽取到若干特征值,只取其中得分最大的那個值作為Pooling層保留值,其他特征值全部拋棄。值最大代表只保留這些特征中最強(qiáng)的,而拋棄其他弱的此類特征。endprint
在類似于閱讀理解的NLP任務(wù)中使用Max Pooling的好處在于可以把變長的輸入整理成固定長度的輸入。因為CNN最后往往會接全聯(lián)接層,而其神經(jīng)元個數(shù)是需要事先定好的。如果輸入是不定長的,那么很難設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)。CNN模型的輸入X的長度是不確定的,而通過Pooling操作,每個Filter固定取一個值,那么有多少個Filter,Pooling層就有多少個神經(jīng)元,這樣就可以把全聯(lián)接層神經(jīng)元個數(shù)固定住。如圖1所示。
圖1 Pooling層神經(jīng)元個數(shù)等于Filters個數(shù)
Fig.1 Numbers of fiters equals numbers of neurons in pooling
最后,和詞帶模型一樣,將通過一個單層前向網(wǎng)絡(luò)計算句子概率。
5 實驗(Experiments)
文中使用Word2Vec對訓(xùn)練數(shù)據(jù)進(jìn)行處理,每個單詞就可以得到對應(yīng)的word embedding,這是一種低維度向量形式的單詞表示,能夠表征單詞的部分語義及語法含義。
在模型參數(shù)的學(xué)習(xí)方面,本文采用了一種管道模型,使用遠(yuǎn)距離監(jiān)督來訓(xùn)練句子選擇模型。
實驗數(shù)據(jù)中70%為訓(xùn)練集,10%為開發(fā)集,20%為測試集。每篇文檔中前35條句子作為啟發(fā)式模型的輸入,其中每條句子最大長度為35。將每篇文檔的前5個詞語加到句子序列的結(jié)尾,并將句子索引編號作為句子表示的一個重要向量。使用三種方法進(jìn)行問題相關(guān)句子選擇的結(jié)果,詳見表1。
6 結(jié)論(Conclusion)
機(jī)器閱讀理解是自然語言處理任務(wù)中的一個核心問題。數(shù)據(jù)語料集的復(fù)雜度、是否引入了世界知識、深度學(xué)習(xí)模型的改進(jìn)等都對該問題有重要影響。目前,機(jī)器自然語言閱讀理解很難對于給定的問題一次性給出答案。本文認(rèn)為,首先從文檔中選擇與答案相關(guān)的句子是很重要的一個步驟。借鑒了目前最新的研究,本文分別從詞袋模型、塊結(jié)構(gòu)詞袋模型、卷積神經(jīng)網(wǎng)絡(luò)模型三種方法來進(jìn)行考察。結(jié)果表明,神經(jīng)網(wǎng)絡(luò)方法對于該問題是最有效的。
參考文獻(xiàn)(References)
[1] Collobert R,Weston J,Karlen M,et al.Natural Language Processing (almost) from Scratch[J]. Journal of Machine Learning Research(JMLR),2011,12:2493-2537.
[2] Masson M E.Conceptual Processing of Text during Skimming and Rapid Sequential Reading[J].Memory & Cognition,1983,11(3):262-274.
[3] Williams R J. Simple Statistical Gradient following Algorithms for Connectionist Reinforcement Learning[J].Machine Learning,1992,8(3-4):229-256.
[4] Bordes A,Chopra S,Weston J.Question answering with subgraph embeddings[C].EMNLP,2014:615-620.
[5] Tan M,Santos C N,Xiang B,et al.Improved Representation Learning for Question Answer Matching[C].Meeting of the Association for Computational Linguistics,2016:464-473.
[6] Hermann K M,Kocisky T,Grefenstette E,et al.Teaching Machines to Read and Comprehend[C].In Proc. of NIPS,2015,
19:1684-1692.
[7] 劉江鳴,徐金安,張玉潔.基于隱主題馬爾科夫模型的多特征自動文摘[J].北京大學(xué)學(xué)報:自然科學(xué)版,2014,50(1):187-193.
[8] 譚紅葉,趙紅紅,李茹.面向閱讀理解復(fù)雜問題的句子融合[J].中文信息學(xué)報,2017,31(1):8-16.
[9] 張志昌,張宇,劉挺.開放域問答技術(shù)研究進(jìn)展[J].電子學(xué)報.
2009,37(5):1-6.
作者簡介:
劉海靜(1985-),女,碩士,講師. 研究領(lǐng)域:自然語言處理.endprint