陳 崢,任建坤,袁浩瑞
(電子科技大學(xué) 信息與軟件工程學(xué)院,四川 成都 610054)
讓機(jī)器能夠像人一樣閱讀文本,并基于所獲取的信息回答問(wèn)題,一直以來(lái)都是自然語(yǔ)言處理領(lǐng)域最具挑戰(zhàn)性的任務(wù)之一。傳統(tǒng)的機(jī)器閱讀理解是分詞、詞性標(biāo)注、命名實(shí)體識(shí)別、句法分析、指代消解等一系列技術(shù)所集成在一起的一套復(fù)雜系統(tǒng)。但是隨著深度神經(jīng)網(wǎng)絡(luò)技術(shù)的發(fā)展,特別是大規(guī)模預(yù)訓(xùn)練模型的應(yīng)用,當(dāng)前的機(jī)器閱讀理解轉(zhuǎn)向了以深度神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)的端到端學(xué)習(xí),在大量已標(biāo)注的數(shù)據(jù)集上進(jìn)行監(jiān)督學(xué)習(xí),從而讓深度神經(jīng)網(wǎng)絡(luò)模型表現(xiàn)出語(yǔ)言理解和信息抽取的能力。但是,與人能夠一次性閱讀完一整篇長(zhǎng)文章然后回答問(wèn)題有所不同的是,端到端的機(jī)器閱讀理解模型受限于計(jì)算能力和存儲(chǔ)能力,必須將長(zhǎng)文切片后,基于一個(gè)個(gè)相互獨(dú)立的文本片段進(jìn)行閱讀理解,而無(wú)法對(duì)長(zhǎng)文本整體進(jìn)行理解和記憶,是現(xiàn)實(shí)意義上的“管中窺豹,時(shí)見(jiàn)一斑”。
本文針對(duì)機(jī)器閱讀理解模型無(wú)法建模長(zhǎng)距離語(yǔ)義關(guān)聯(lián)的問(wèn)題,在傳統(tǒng)的序列結(jié)構(gòu)之上引入了圖結(jié)構(gòu),來(lái)構(gòu)建命名實(shí)體共現(xiàn)關(guān)系圖,利用基于空間的圖卷積神經(jīng)網(wǎng)絡(luò)提取文本中最關(guān)鍵的命名實(shí)體的語(yǔ)義嵌入表示;并與傳統(tǒng)的采用BERT所提取的序列結(jié)構(gòu)文本語(yǔ)義嵌入表示相融合,最終實(shí)現(xiàn)了一套基于片段預(yù)測(cè)的機(jī)器閱讀理解模型。接下來(lái),我們首先介紹傳統(tǒng)的基于神經(jīng)網(wǎng)絡(luò)的閱讀理解模型,分析其存在的問(wèn)題;然后給出本文模型的詳細(xì)構(gòu)建和訓(xùn)練過(guò)程;最后基于SQuAD數(shù)據(jù)集構(gòu)建了對(duì)比實(shí)驗(yàn),展示了本文模型相對(duì)于BERT模型的性能提升,并進(jìn)行了具體的分析。
機(jī)器閱讀理解從形式上可以分為三大類:選擇題、填空題和問(wèn)答題。MCTest[1]作為早期的機(jī)器閱讀理解數(shù)據(jù)集,是一個(gè)多項(xiàng)選擇題的數(shù)據(jù)集。它的文本由真實(shí)的英文兒童讀物構(gòu)成,每篇文章大約150~300個(gè)詞。MCTest的數(shù)據(jù)量較小,僅有幾百篇文章,不足以訓(xùn)練端到端的神經(jīng)網(wǎng)絡(luò)模型,所以當(dāng)時(shí)的解決方案大多數(shù)都基于特征工程。CNNDailyMail[2]是一個(gè)完形填空數(shù)據(jù)集,它給出新聞以及對(duì)應(yīng)的問(wèn)題,所填空的內(nèi)容為問(wèn)句中缺失的關(guān)鍵命名實(shí)體。由于這個(gè)命名實(shí)體一定是在新聞中出現(xiàn)過(guò)的,所以研究者們大多把此類閱讀理解問(wèn)題抽象成信息抽取任務(wù),并延續(xù)至今成為機(jī)器閱讀理解的普遍技術(shù)途徑。即使是SQuAD[3]等問(wèn)答題數(shù)據(jù)集也不例外,大多也是從原文中抽取一個(gè)較短的文本片段作為答案。盡管如此,基于問(wèn)答的機(jī)器閱讀理解任務(wù)在難度上仍然遠(yuǎn)超選擇和填空,對(duì)模型的語(yǔ)義理解能力有更高的要求,所以成為了目前研究的熱點(diǎn),也是本文的重點(diǎn)研究對(duì)象。無(wú)論CNN/Daily Mail還是SQuAD,其訓(xùn)練數(shù)據(jù)量都達(dá)到了100 000條以上的規(guī)模,使得在其之上訓(xùn)練端到端的深度神經(jīng)網(wǎng)絡(luò)模型成為可能。
人們?cè)谶M(jìn)行閱讀理解的時(shí)候,大多嘗試過(guò)一個(gè)小技巧:先閱讀問(wèn)題,再按照問(wèn)題去原文中找答案,較早的The Attentive Reader模型[4]就是這種閱讀理解方式的機(jī)器實(shí)現(xiàn),它首先將問(wèn)題輸入LSTM[5],編碼為一個(gè)向量表示,再將這個(gè)問(wèn)題向量通過(guò)注意力機(jī)制融合到文章中,實(shí)現(xiàn)對(duì)文章的答案片段抽取。隨著機(jī)器性能的提高,研究者們大多不屑于使用這種笨拙的技巧,而是希望能夠?qū)ξ恼潞蛦?wèn)題進(jìn)行綜合推理從而得到答案,BiDAF模型[6]就是此類思想的實(shí)踐。BiDAF實(shí)現(xiàn)了從問(wèn)題到文章以及從文章到問(wèn)題的雙向注意力交互模式,從而極大地提高了模型的理解能力,甚至具備一定的復(fù)雜問(wèn)題推理能力。但是BiDAF的基礎(chǔ)模型仍然是LSTM。之后出現(xiàn)的QANet模型[7]采用了多層卷積配合自注意力機(jī)制進(jìn)行編碼,并且還使用了兩層的高速網(wǎng)絡(luò)(highway network)進(jìn)一步增強(qiáng)了其復(fù)雜推理能力,是在大規(guī)模預(yù)訓(xùn)練模型出現(xiàn)之前最優(yōu)秀的閱讀理解模型。
Transformer結(jié)構(gòu)[8]和以BERT[9]為代表的大規(guī)模預(yù)訓(xùn)練模型的出現(xiàn)徹底改變了自然語(yǔ)言處理研究的面貌,機(jī)器閱讀理解也不例外。Transformer的自注意力機(jī)制比LSTM的記憶/遺忘機(jī)制更能夠建模長(zhǎng)程依賴。而大規(guī)模預(yù)訓(xùn)練模型可以通過(guò)在海量文本上的無(wú)監(jiān)督學(xué)習(xí),構(gòu)建起初步的語(yǔ)義認(rèn)知,從而在下游任務(wù)上只需要進(jìn)行很小的數(shù)據(jù)量學(xué)習(xí),就能夠獲得出色的語(yǔ)義理解和推理能力。其中規(guī)模最大的GPT-3[10]甚至能夠一定程度上進(jìn)行小樣本/零樣本的機(jī)器閱讀理解。我們后續(xù)的研究正是以BERT為基礎(chǔ)模型來(lái)開(kāi)展的。并且,本文研究成果理論上在其他的Transformer結(jié)構(gòu)的預(yù)訓(xùn)練模型上也都適用。
深度神經(jīng)網(wǎng)絡(luò)興起的一個(gè)重要原因是,它能夠自動(dòng)地從歐式空間數(shù)據(jù)中提取潛在的特征,從而把人從復(fù)雜且繁瑣的特征工程中解放出來(lái)。而圖神經(jīng)網(wǎng)絡(luò)則提供了對(duì)非歐空間數(shù)據(jù)的建模能力,從而進(jìn)一步擴(kuò)展了深度神經(jīng)網(wǎng)絡(luò)的應(yīng)用范圍[11]。按照其建模方式的不同,圖神經(jīng)網(wǎng)絡(luò)也可以分為圖卷積網(wǎng)絡(luò)[12]、圖注意力網(wǎng)絡(luò)、圖自編器、圖生成網(wǎng)絡(luò)和圖時(shí)空網(wǎng)絡(luò),其中又以圖卷積網(wǎng)絡(luò)應(yīng)用最為廣泛。圖卷積網(wǎng)絡(luò)將卷積運(yùn)算從傳統(tǒng)歐式空間推廣到圖數(shù)據(jù)結(jié)構(gòu)上,其核心思想是學(xué)習(xí)一個(gè)函數(shù)映射,使得節(jié)點(diǎn)可以聚合它鄰居的特征,從而獲得更好的嵌入表示。具體地,圖卷積操作又可以分為兩大類,基于譜(spectral-based)的方法[12]和基于空間(spatial-based)的方法[13]。基于譜的方法從信號(hào)處理的角度出發(fā),將卷積定義為一個(gè)濾波器,從而實(shí)現(xiàn)去除圖信號(hào)中的噪聲信息。在基于空間的方法中,卷積操作被表示為來(lái)自鄰域的特征信息的聚合,通過(guò)卷積層和池化層的交叉運(yùn)行,從而抽象得到圖的高級(jí)結(jié)構(gòu)特征。本文所采用的圖神經(jīng)網(wǎng)絡(luò)屬于基于空間的圖卷積網(wǎng)絡(luò)。
近年來(lái),圖神經(jīng)網(wǎng)絡(luò)在自然語(yǔ)言處理任務(wù)中得到了較好的應(yīng)用。自然語(yǔ)言處理領(lǐng)域常見(jiàn)的結(jié)構(gòu)數(shù)據(jù)包括知識(shí)圖譜、句法樹(shù)、詞共現(xiàn)網(wǎng)絡(luò)、文檔關(guān)系網(wǎng)絡(luò)等,都可以利用圖神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。其中詞共現(xiàn)網(wǎng)絡(luò)是指利用詞共現(xiàn)關(guān)系所構(gòu)建起來(lái)的網(wǎng)絡(luò),Peng[14]等人和Yao[15]等人將其應(yīng)用在文本分類任務(wù)中,取得了較好的結(jié)果。本文工作正是受到了上述工作的直接啟發(fā),將詞共現(xiàn)網(wǎng)絡(luò)的構(gòu)建方式進(jìn)行改進(jìn)后應(yīng)用到了更復(fù)雜的閱讀理解任務(wù)上。此外,Song[16]等人和Cao[17]等人也探索過(guò)基于圖結(jié)構(gòu)的閱讀理解任務(wù),但是他們所構(gòu)建的圖以段落或者文檔為基本單位,主要解決的是閱讀理解中的多跳語(yǔ)義關(guān)聯(lián)問(wèn)題,與本文工作有較大的差異。
由于計(jì)算力和存儲(chǔ)容量的限制,Transformer模型的長(zhǎng)度不能無(wú)限增加?,F(xiàn)有的預(yù)訓(xùn)練模型通常將這一參數(shù)設(shè)定為512。而在進(jìn)行閱讀理解的時(shí)候,通常需要將上下文聯(lián)系在一起才能夠獲取文本的準(zhǔn)確語(yǔ)義。關(guān)聯(lián)上下文的距離很容易地就會(huì)超出Transformer長(zhǎng)度參數(shù)的限制。針對(duì)這一問(wèn)題,本文將圖結(jié)構(gòu)應(yīng)用到了機(jī)器閱讀理解中。利用圖結(jié)構(gòu)能夠有效地建立非連續(xù)(non-consecutive)和長(zhǎng)距離語(yǔ)義(long-distance semantics)的優(yōu)勢(shì)[17],輔助進(jìn)行閱讀理解任務(wù)。具體地,本文模型結(jié)構(gòu)和整體工作流程如圖1所示。
圖1 模型整體處理流程
算法基本流程如下:將閱讀理解的段落P和需要回答的問(wèn)題Q合并在一起作為模型輸入
;首先對(duì)其進(jìn)行命名實(shí)體抽??;將所抽取的命名實(shí)體基于其共現(xiàn)關(guān)系構(gòu)建為圖;利用圖卷積神經(jīng)網(wǎng)絡(luò)計(jì)算命名實(shí)體的嵌入表示;同時(shí),也將
輸入預(yù)訓(xùn)練模型BERT中提取嵌入表示;將通過(guò)圖神經(jīng)網(wǎng)絡(luò)得到的圖結(jié)構(gòu)嵌入表示和通過(guò)BERT得到的序列結(jié)構(gòu)嵌入表示進(jìn)行特征融合;最后對(duì)融合得到的嵌入表示進(jìn)行答案預(yù)測(cè)。
本文的基本出發(fā)點(diǎn)是將圖結(jié)構(gòu)引入到機(jī)器閱讀理解中,利用圖結(jié)構(gòu)所建立的長(zhǎng)距離語(yǔ)義關(guān)聯(lián),更好地獲取文本的語(yǔ)義信息,從而得到包含了更豐富語(yǔ)義信息的文本嵌入表示。
2.1.1 命名實(shí)體抽取
圖結(jié)構(gòu)嵌入表示獲取的第一步是命名實(shí)體抽取。之所以要進(jìn)行命名實(shí)體抽取,是因?yàn)槊麑?shí)體對(duì)于機(jī)器閱讀理解是非常重要的。在目前被廣泛研究的機(jī)器閱讀理解語(yǔ)料庫(kù)中,大多數(shù)問(wèn)題都是事實(shí)型問(wèn)題。以SQuAD 2.0開(kāi)發(fā)集中的第一篇文章“Normans”為例,其第一個(gè)段落的問(wèn)題如下:
1.Q:In what country is Normandy located?
A:France
2.Q:When were the Normans in Normandy?
A:10th and 11th centuries
3.Q:From which countries did the Norse originate?
A:Denmark,Iceland and Norway
4.Q:Who was the Norse leader?
A:Rollo
5.Q:What century did the Normans first gain their separate identity?
A:10th century
6.Q:Who gave their name to Normandy in the 1000’s and 1100’s
A:No answer
7.Q:What is France a region of?
A:No answer
8.Q:Who did King Charles III swear fealty to?
A:No answer
9.Q:When did the Frankish identity emerge?
A:No answer
可以看到,上述每一個(gè)問(wèn)題都包含了至少一個(gè)命名實(shí)體,而且,所有的答案也都包含了命名實(shí)體。雖然這只是一個(gè)隨機(jī)選取的示例,但是也足以說(shuō)明命名實(shí)體在閱讀理解中的重要性。進(jìn)一步地,我們進(jìn)行了定量分析,在SQuAD2.0中,有96.5%的問(wèn)題包含至少一個(gè)命名實(shí)體;所有答案中,同樣有93.2%包含至少一個(gè)命名實(shí)體。
另一方面,命名實(shí)體是將全文語(yǔ)義進(jìn)行串聯(lián)的重要線索。仍然以文章“Normans”為例,其第一個(gè)段落如下:
TheNormans(Norman:Nourmands;French:Normands;Latin:Normanni)werethepeoplewhointhe10th and 11th centuries gave their name to Normandy,a region in France.They were descended from Norse("Norman"comes from "Norseman")raiders and pirates from Denmark,Iceland and Norway who,under their leader Rollo,agreed to swear fealty to King Charles III of West Francia.Through generations of assimilation and mixing with the native Frankish and Roman-Gaulish populations,their descendants would gradually merge with the Carolingian-based cultures of West Francia.The distinct cultural and ethnic identity of the Normans emerged initially in the first half of the 10th century,and it continued to evolve over the succeeding centuries.
可以看到,該段落的重要信息都是由命名實(shí)體所給出的,命名實(shí)體在段落的語(yǔ)義中占據(jù)了核心的地位。而且,命名實(shí)體存在著大量的重復(fù),Norman和West Francia等命名實(shí)體都在相距較遠(yuǎn)的上下文中重復(fù)地出現(xiàn),這給我們構(gòu)造圖結(jié)構(gòu)以獲取長(zhǎng)距離語(yǔ)義帶來(lái)了可能。
具體的命名實(shí)體抽取算法并不是本文的核心內(nèi)容。關(guān)于命名實(shí)體抽取目前已經(jīng)有了大量的研究成果。本文采用StanfordNLP項(xiàng)目所提供Stanza工具包[18]進(jìn)行命名實(shí)體抽取。
值得一提的是,針對(duì)機(jī)器閱讀理解任務(wù)的特點(diǎn),本文中將命名實(shí)體的概念定義為實(shí)體類型、時(shí)間類型和數(shù)字類型的總合,比狹義的命名實(shí)體的概念略有擴(kuò)大。其中實(shí)體類型即為人名、地名、組織機(jī)構(gòu)名等狹義的命名實(shí)體;時(shí)間類型包含時(shí)間、日期;數(shù)字類型包含貨幣、百分比和一般性數(shù)值。
2.1.2 圖構(gòu)建
在抽取了命名實(shí)體后,將所抽取的命名實(shí)體構(gòu)造為一個(gè)無(wú)向圖。這個(gè)圖中的頂點(diǎn)即為文中所有的命名實(shí)體,圖中的邊為命名實(shí)體之間的關(guān)聯(lián)關(guān)系。在本文中,我們采用共現(xiàn)關(guān)系作為命名實(shí)體間的關(guān)聯(lián)關(guān)系:如果兩個(gè)命名實(shí)體在同一個(gè)文本片段中同時(shí)出現(xiàn),則給這兩個(gè)命名實(shí)體所對(duì)應(yīng)的頂點(diǎn)上加上一條邊。具體地,這里的“文本片段”有兩種不同的定義方式,分別是句子和滑動(dòng)窗口。
基于句子的共現(xiàn)關(guān)系,是指將段落以句子為單位劃分成若干個(gè)不相交的文本片段,如果兩個(gè)命名實(shí)體出現(xiàn)在同一個(gè)句子中,則認(rèn)為它們之間存在共現(xiàn)關(guān)系。如果兩個(gè)命名實(shí)體共同存在著n個(gè)句子中,則給它們之間的共現(xiàn)關(guān)系加上一個(gè)權(quán)重n。
基于滑動(dòng)窗口的共現(xiàn)關(guān)系,是指以一個(gè)固定的窗口w和滑動(dòng)步長(zhǎng)s將段落劃分成若干個(gè)文本片段,由于一般情況下s 我們?nèi)匀灰許QuAD 2.0的文章“Normans”作為示例,構(gòu)造了命名實(shí)體圖,如圖2所示。從圖中可以看出,兩種共現(xiàn)關(guān)系所構(gòu)造的圖結(jié)構(gòu)有較大的區(qū)別?;诰渥拥墓铂F(xiàn)關(guān)系由于以明確的標(biāo)點(diǎn)符號(hào)作為分隔符,一定程度上更能夠反映原文的語(yǔ)義。但是,由于句子的數(shù)量是確定的,有可能會(huì)導(dǎo)致圖的稀疏性,甚至是無(wú)法構(gòu)造得到一個(gè)連通圖。另一方面,基于滑動(dòng)窗口的共現(xiàn)關(guān)系更加靈活,可以根據(jù)算法的要求調(diào)整窗口和步長(zhǎng)的大小,從而控制圖的稀疏程度,同時(shí)也使得邊上的權(quán)重分布更加合理。但其缺點(diǎn)在于沒(méi)有能夠利用句子這一天然的語(yǔ)義單元。下文會(huì)具體地對(duì)兩種方法進(jìn)行對(duì)比實(shí)驗(yàn)。 圖2 命名實(shí)體圖示例 在構(gòu)建了命名實(shí)體圖之后,就可以利用圖結(jié)構(gòu)無(wú)監(jiān)督地學(xué)習(xí)每個(gè)節(jié)點(diǎn)的向量表示。研究人員提出過(guò)許多圖表示學(xué)習(xí)方法,大致可以分為基于矩陣分解的方法、基于深度游走的方法和基于圖神經(jīng)網(wǎng)絡(luò)的方法。具體地,本文采用基于空間的圖卷積神經(jīng)網(wǎng)絡(luò)(spatial-based graph convolutional networks,SGCN)作為節(jié)點(diǎn)表示的學(xué)習(xí)算法。 基于空間的圖卷積神經(jīng)網(wǎng)絡(luò)屬于圖神經(jīng)網(wǎng)絡(luò)的一種,其主要思想是基于節(jié)點(diǎn)的空間鄰接關(guān)系來(lái)定義圖卷積,從而實(shí)現(xiàn)類似于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的卷積運(yùn)算。對(duì)于一個(gè)無(wú)向圖G=(Ω,W),其中Ω表示圖中節(jié)點(diǎn)的集合,|Ω|=m。W是一個(gè)m×m的非負(fù)矩陣,用來(lái)表示節(jié)點(diǎn)間的連接權(quán)重。對(duì)于其中的一個(gè)節(jié)點(diǎn)j,它的鄰接節(jié)點(diǎn)集合如式(1)所示。 其中,δ>0,為邊的權(quán)重閾值,可以用來(lái)控制圖卷積神經(jīng)網(wǎng)絡(luò)的“稀疏程度”,從而在網(wǎng)絡(luò)的計(jì)算開(kāi)銷和表示學(xué)習(xí)能力間尋找到一個(gè)平衡點(diǎn)。 有了鄰接節(jié)點(diǎn)集合后,SGCN的卷積操作即為其鄰接節(jié)點(diǎn)的加權(quán)求和,如式(2)所示。 更一般地,對(duì)于一個(gè)多層SGCN網(wǎng)絡(luò)的第k層,擁有fk個(gè)卷積核,那么節(jié)點(diǎn)xj在該層的輸出xk+1,j如式(3)所示。 (3) 其中,F(xiàn)k,i,j是一個(gè)由鄰接關(guān)系所決定的dk-1×dk-1的稀疏矩陣,也就是圖卷積網(wǎng)絡(luò)的卷積核,是該網(wǎng)絡(luò)所需要學(xué)習(xí)的參數(shù)。Lk則是卷積神經(jīng)網(wǎng)絡(luò)上常見(jiàn)的池化操作,用于更好地提取特征。最終,對(duì)于每一個(gè)x,可以得到一個(gè)Eg(x)=TD的輸出向量,其中D為向量的維度,是一個(gè)可以預(yù)先設(shè)置的參數(shù)。Eg則表示該向量是基于圖(graph)結(jié)構(gòu)的命名實(shí)體嵌入表示。 這里需要特別說(shuō)明的是,對(duì)于圖神經(jīng)網(wǎng)絡(luò),一般而言,x0都會(huì)進(jìn)行隨機(jī)的初始化,但是為了保持圖上的命名實(shí)體節(jié)點(diǎn)在不同的文章中的語(yǔ)義一致性,我們采用GloVe[19]對(duì)x0進(jìn)行了初始化。而對(duì)于詞表外的命名實(shí)體,我們使用全局統(tǒng)一的隨機(jī)初始化向量。同樣是為了保持語(yǔ)義的一致性,避免帶來(lái)過(guò)大的語(yǔ)義偏差,我們?nèi)サ袅藞D神經(jīng)網(wǎng)絡(luò)上常用的非線性激活函數(shù)的操作。 由于文本天然地具備序列結(jié)構(gòu),使用序列結(jié)構(gòu)進(jìn)行文本嵌入表示是自然語(yǔ)言處理和文本挖掘常用的做法。在早期的機(jī)器閱讀理解模型中,最常使用的建模方法是循環(huán)神經(jīng)網(wǎng)絡(luò)及其變種,如LSTM和GRU等。隨著Transformer和預(yù)訓(xùn)練模型的出現(xiàn)和普及,目前絕大多數(shù)的機(jī)器閱讀理解模型都是基于BERT、XLNET、Roberta等基于自注意力機(jī)制的大規(guī)模預(yù)訓(xùn)練模型。不失一般性地,本文選擇其中最常用的BERT作為序列結(jié)構(gòu)嵌入學(xué)習(xí)模型。 BERT的輸入input= BERT的輸出為每個(gè)輸入字符所對(duì)應(yīng)的編碼向量。令向量的維度為D,則整個(gè)輸出可以表示為T(mén)N×D,其中N為序列的長(zhǎng)度。那么對(duì)于序列中的每一個(gè)字符x,就可以其對(duì)應(yīng)的得到向量Es(x)=TD,Es表示該向量是基于序列(sequence)結(jié)構(gòu)的文本嵌入表示。 具體的表示方法則非常簡(jiǎn)單,將對(duì)應(yīng)位置的嵌入表示向量相加即可,具體表示如式(4)所示。 (4) 其中,ai為需要進(jìn)行嵌入表示的字符,ej為包含了該字符的命名實(shí)體。這時(shí)該字符的嵌入表示信息來(lái)自基于序列結(jié)構(gòu)的嵌入表示和基于圖結(jié)構(gòu)的嵌入表示之和。而如果字符ai不屬于任何一個(gè)命名實(shí)體,則其嵌入表示只來(lái)自于基于序列結(jié)構(gòu)的文本嵌入表示。采用相加進(jìn)行特征融合是參考了BERT等目前主流模型的通用做法。同時(shí),考慮到一個(gè)命名實(shí)體ej會(huì)包含多個(gè)字符ai,分別與之相加能夠更好地利用命名實(shí)體ej的語(yǔ)義,以及在反向傳播中更好地進(jìn)行學(xué)習(xí)。 特殊符號(hào) 接下來(lái)對(duì)答案進(jìn)行預(yù)測(cè)。機(jī)器閱讀理解的答案預(yù)測(cè)本質(zhì)上是對(duì)答案片段的開(kāi)始位置和結(jié)束位置進(jìn)行判斷。具體的做法是,將每個(gè)字符的嵌入向量輸入到一個(gè)D×2的全連接層,該層的輸出分別對(duì)應(yīng)了該字符作為答案開(kāi)始位置和結(jié)束位置的幾率。最后將段落中所有字符的對(duì)應(yīng)位置的幾率經(jīng)過(guò)一個(gè)Softmax運(yùn)算,得到整體的概率,選擇其中的最大值作為該段落中答案的起始和結(jié)束位置。對(duì)于段落整體語(yǔ)義嵌入也是同樣操作,不過(guò)其輸出結(jié)果為該段落包含答案的概率。最后對(duì)每個(gè)段落所抽取出的答案以該概率進(jìn)行加權(quán)求和,取其中概率最大者為最終的答案。 我們采用SQuAD作為實(shí)驗(yàn)數(shù)據(jù)。SQuAD是公認(rèn)的機(jī)器閱讀理解領(lǐng)域的最權(quán)威的數(shù)據(jù)集。斯坦福大學(xué)NLP研究小組選取了超過(guò)500篇的維基百科文章,進(jìn)行人工提問(wèn)并標(biāo)注答案。每個(gè)答案都是來(lái)自文章中的一個(gè)小文本片段。較早版本的SQuAD 1.1包含大約100 000個(gè)問(wèn)題—答案對(duì),而SQuAD 2.0新增了超過(guò)50 000個(gè)新的問(wèn)題,其中還包含特別設(shè)計(jì)的無(wú)法回答的問(wèn)題[20],從而進(jìn)一步提高了閱讀理解的難度。 我們采用SQuAD所提供的訓(xùn)練集對(duì)模型進(jìn)行訓(xùn)練。但是由于SQuAD并沒(méi)有公開(kāi)其測(cè)試集的答案,所以我們只能以開(kāi)發(fā)集作為實(shí)驗(yàn)的測(cè)試依據(jù),這導(dǎo)致其測(cè)試結(jié)果與基于官方測(cè)試集所得到的測(cè)試結(jié)果有一定的出入。在下文中我們會(huì)將兩個(gè)結(jié)果都同時(shí)列出,以供評(píng)估。 實(shí)驗(yàn)采用精準(zhǔn)匹配(exact match,EM)和F1值作為定量評(píng)價(jià)指標(biāo)。EM值計(jì)算模型輸出的答案和參考答案是否完全一致,是一個(gè)相對(duì)嚴(yán)格的評(píng)估指標(biāo)。F1值就要相對(duì)寬松一些,它在計(jì)算模型輸出答案和參考答案之間按字符計(jì)算準(zhǔn)確率和召回率,然后計(jì)算調(diào)和平均值。 我們基于Pytorch和DGL實(shí)現(xiàn)了本文所設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)算法,并且在一臺(tái)8卡2080ti的服務(wù)器上進(jìn)行了模型的訓(xùn)練。 我們采用的基礎(chǔ)BERT模型是Google所提供的BERT-Large-Cased模型。這是一個(gè)24層、隱藏層維度1024、16頭的模型,總計(jì)有約3.4億個(gè)參數(shù)。選擇Cased模型是由于在本文算法中命名實(shí)體起了相當(dāng)重要的作用,而Cased模型能夠更好地為命名實(shí)體進(jìn)行建模。 在訓(xùn)練時(shí),為了高效利用顯存空間,我們將序列的長(zhǎng)度設(shè)置為384,并且通過(guò)梯度累積將模型的batch size增加到256,從而獲得更穩(wěn)定的訓(xùn)練結(jié)果。訓(xùn)練采用Adam作為優(yōu)化函數(shù),學(xué)習(xí)率設(shè)定為3e-5,參數(shù)β1和β2的值分別為 β1= 0.9、β2 = 0.999。訓(xùn)練還采用學(xué)習(xí)率預(yù)熱策略,預(yù)熱的步數(shù)為1萬(wàn)步。另外,由于我們所設(shè)置的batch size比較大,所以還應(yīng)用了線性縮放學(xué)習(xí)率的策略,以加快收斂速度。 如上文所述,我們分別基于兩種圖構(gòu)建的方式實(shí)現(xiàn)了本文所提出的模型,其中滑動(dòng)窗口模型采用的窗口和步長(zhǎng)的參數(shù)分別是w=80、s=20。我們將兩種模型以及作為對(duì)比的BERT模型都在訓(xùn)練集上訓(xùn)練了10個(gè)epoch,保存了每個(gè)epoch結(jié)束時(shí)的模型參數(shù),并分別進(jìn)行了測(cè)試。下文所給出的測(cè)試結(jié)果是所有10個(gè)模型中的最佳結(jié)果。為了進(jìn)一步提升測(cè)試結(jié)果,我們還對(duì)兩種圖構(gòu)建方式的20個(gè)模型進(jìn)行了集成,模型集成方法采用的是最簡(jiǎn)單的相對(duì)多數(shù)投票法,即將20個(gè)答案中的得票最高的答案作為集成模型的答案。 實(shí)驗(yàn)結(jié)果的定量分析如表1所示。表中BERT-Large(ours)為我們基于BERT-Large所實(shí)現(xiàn)和測(cè)試得到的結(jié)果,BERT-Large(Google)是Google向SQuAD所提交的測(cè)試結(jié)果。由于訓(xùn)練過(guò)程和測(cè)試集的不同,兩者略有差異。Our Model(sentence)和Our Model(sliding-window)是本文所提出的模型,分別基于句子共現(xiàn)關(guān)系和滑動(dòng)窗口共現(xiàn)關(guān)系的實(shí)現(xiàn),Our Model(ensemble)則是模型集成的結(jié)果。 表1 在SQuAD數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果 (單位:%) 從表1實(shí)驗(yàn)結(jié)果可以看出,本文所提出的模型相比起B(yǎng)ERT有顯著的提升,特別是經(jīng)過(guò)模型集成之后,在兩個(gè)數(shù)據(jù)集上都已經(jīng)超過(guò)了人類的閱讀理解水平。截止2020年8月,這個(gè)結(jié)果在所有的以BERT為基礎(chǔ)的閱讀理解模型中大約排名第4位,是一個(gè)非常有競(jìng)爭(zhēng)力的結(jié)果。要特別指出的是,我們由于實(shí)驗(yàn)條件受限,僅僅使用了BERT-Large作為基礎(chǔ)模型,但是該方法理論上也可以與其他的更大規(guī)模的預(yù)訓(xùn)練模型相結(jié)合,取得更好的結(jié)果。 具體對(duì)比基于句子共現(xiàn)關(guān)系和滑動(dòng)窗口共現(xiàn)關(guān)系的兩種圖構(gòu)建方法,在最終的效果上差距不大,基于滑動(dòng)窗口共現(xiàn)關(guān)系的方法略微要稍好一點(diǎn),我們認(rèn)為這是因?yàn)槠渌鶚?gòu)建的圖連通性更好,度分布也更加均勻所導(dǎo)致的。 基于圖結(jié)構(gòu)的機(jī)器閱讀理解能夠利用圖建立非連續(xù)和長(zhǎng)距離語(yǔ)義關(guān)聯(lián),為了驗(yàn)證這一點(diǎn),我們?cè)诒?中給出了文本長(zhǎng)度對(duì)于結(jié)果的影響。我們?cè)O(shè)定了384和768兩個(gè)長(zhǎng)度閾值,分別統(tǒng)計(jì)針對(duì)三個(gè)長(zhǎng)度區(qū)間內(nèi)的文本的閱讀理解的EM和F1值。要注意的是,這里文本長(zhǎng)度是指文本經(jīng)過(guò)BERT編碼后的長(zhǎng)度。由于BERT采用的是sub-word unit的方式進(jìn)行編碼,所以實(shí)際的文本長(zhǎng)度要短得多。 表2 文本長(zhǎng)度對(duì)于結(jié)果的影響 (單位:%) 實(shí)驗(yàn)結(jié)果基于SQuAD 2.0數(shù)據(jù)集。可以很明顯地看到,在文本長(zhǎng)度較短的時(shí)候,我們的方法比BERT有明顯提升。我們認(rèn)為,這是由于圖結(jié)構(gòu)能夠幫助模型更好地對(duì)文本中的關(guān)鍵命名實(shí)體信息進(jìn)行理解。隨著文本長(zhǎng)度的增加,兩者差距迅速擴(kuò)大。BERT隨著文本的變長(zhǎng),表現(xiàn)下降得非常明顯。而本文方法沒(méi)有顯著下降,保持在了一個(gè)相對(duì)比較高的水準(zhǔn)上,我們認(rèn)為這充分說(shuō)明了圖結(jié)構(gòu)所學(xué)習(xí)到的長(zhǎng)距離語(yǔ)義在這里起到了關(guān)鍵的作用。 機(jī)器閱讀理解是考察機(jī)器自然語(yǔ)言理解能力的一項(xiàng)重要研究任務(wù)。由于目前計(jì)算能力和存儲(chǔ)能力的限制,機(jī)器在進(jìn)行閱讀理解時(shí)僅僅能夠根據(jù)一個(gè)文本片段進(jìn)行理解,缺乏長(zhǎng)距離語(yǔ)義關(guān)聯(lián)的能力。本文將圖結(jié)構(gòu)和傳統(tǒng)的序列結(jié)構(gòu)結(jié)合起來(lái),利用圖結(jié)構(gòu)所帶來(lái)的非連續(xù)和長(zhǎng)距離語(yǔ)義建模能力,提升傳統(tǒng)序列結(jié)構(gòu)文本語(yǔ)義理解水平。我們?cè)O(shè)計(jì)了基于命名實(shí)體的圖結(jié)構(gòu)來(lái)輔助構(gòu)建文本語(yǔ)義,并設(shè)計(jì)了基于空間的圖卷積神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)命名實(shí)體的語(yǔ)義嵌入,最后與文本語(yǔ)義嵌入進(jìn)行融合,達(dá)到提升模型理解能力的目的。最后我們?cè)赟QuAD數(shù)據(jù)集上進(jìn)行了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果驗(yàn)證了本文算法的有效性。機(jī)器閱讀理解作為一個(gè)熱門(mén)研究領(lǐng)域,新的方法層出不窮,本文算法距離目前的最佳方法仍有差距。但是,本文算法作為一個(gè)融合型的方法,理論上可以和任何算法相容,具有良好的可用性和擴(kuò)展性。2.2 基于圖結(jié)構(gòu)的嵌入表示
2.3 序列結(jié)構(gòu)嵌入表示和獲取
2.4 特征融合和答案預(yù)測(cè)
3 實(shí)驗(yàn)
3.1 數(shù)據(jù)
3.2 實(shí)驗(yàn)評(píng)估
3.3 實(shí)現(xiàn)細(xì)節(jié)
3.4 實(shí)驗(yàn)結(jié)果及分析
4 結(jié)束語(yǔ)