劉月峰,段毅
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院,包頭014010)
關(guān)系抽取[1]是自然語(yǔ)言處理領(lǐng)域的熱點(diǎn)任務(wù)之一,它是信息抽取、自動(dòng)問(wèn)答和知識(shí)圖譜補(bǔ)全等領(lǐng)域的子任務(wù)之一。關(guān)系抽取的目標(biāo)是識(shí)別出文本語(yǔ)句中標(biāo)記實(shí)體對(duì)之間的預(yù)先定義好的語(yǔ)義關(guān)系。例如,“姚明的妻子是葉莉”,姚明和葉莉是文本中的標(biāo)記實(shí)體,關(guān)系抽取的目標(biāo)就是去識(shí)別出姚明與葉莉兩個(gè)實(shí)體之間的夫妻關(guān)系。目前的關(guān)系抽取方法大致可以分為兩類(lèi),它們分別是基于依存句法關(guān)系的方法和基于序列的方法。基于依存句法關(guān)系的方法是將文本序列的語(yǔ)義依存樹(shù)提取到機(jī)器學(xué)習(xí)模型中,通過(guò)沿著語(yǔ)義依存樹(shù)形成的計(jì)算圖構(gòu)建出句子的分布式表示,然后再進(jìn)行分類(lèi),但是這種方法易受符號(hào)間語(yǔ)義鴻溝的影響?;谛蛄械哪P蛯?duì)單詞序列進(jìn)行編碼,使用卷積神經(jīng)網(wǎng)絡(luò)或循環(huán)神經(jīng)網(wǎng)絡(luò)將句子的文本序列編碼為向量化的語(yǔ)義特征,具有更高的魯棒性。另外,在實(shí)際環(huán)境下,由于人工數(shù)據(jù)標(biāo)注的成本較為昂貴,精確而豐富的訓(xùn)練數(shù)據(jù)不易獲得,我們?cè)趯?shí)踐過(guò)程中收集到的往往是小樣本量的樣本數(shù)據(jù),現(xiàn)有的大多數(shù)機(jī)器學(xué)習(xí)模型往往依賴大量而且精確的訓(xùn)練數(shù)據(jù),并且由于樣本量過(guò)少,模型容易產(chǎn)生過(guò)擬合問(wèn)題,導(dǎo)致在小樣本數(shù)據(jù)集上卻無(wú)法獲得令人滿意的結(jié)果。
本文提出一種基于密集連接思想的小樣本關(guān)系抽取框架。時(shí)間卷積網(wǎng)絡(luò)[2-3]如圖1所示,是一種在CNN的基礎(chǔ)上進(jìn)行改進(jìn),能夠有效捕捉到更多長(zhǎng)依賴數(shù)據(jù),減少信息損失,處理時(shí)間序列數(shù)據(jù)的網(wǎng)絡(luò)結(jié)構(gòu)。時(shí)間卷積網(wǎng)絡(luò)結(jié)合了全卷積和因果卷積的優(yōu)點(diǎn),進(jìn)行padding處理使模型的輸入和輸出長(zhǎng)度相同,同時(shí)通過(guò)使用因果空洞卷積,獲取了更大的感受野,捕捉到了更長(zhǎng)的語(yǔ)義依賴關(guān)系,卷積后的特征較少丟失。該框架借助于深度學(xué)習(xí)網(wǎng)絡(luò)強(qiáng)大的學(xué)習(xí)能力,將經(jīng)過(guò)預(yù)訓(xùn)練的文本序列的語(yǔ)義向量輸入到TCN網(wǎng)絡(luò),其中的空洞卷積過(guò)程能在問(wèn)句向量序列中獲取更大的感受視野,提取到?jīng)]有“漏接”的過(guò)往問(wèn)句語(yǔ)義信息,更好地減少了問(wèn)句語(yǔ)義信息的損失。針對(duì)CNN[4-5]模型需要使用多層卷積才能延長(zhǎng)對(duì)時(shí)間序列特征數(shù)據(jù)的建模問(wèn)題,如圖1所示,TCN通過(guò)采用空洞卷積方法增大每層的感受野范圍,從而減少常規(guī)方法堆疊普通卷積層的數(shù)量??斩淳矸e與普通卷積的不同之處在于空洞卷積允許進(jìn)行卷積操作時(shí)采用間隔采樣的方式,采樣率取決于膨脹因子設(shè)置的尺寸大小。增大TCN感受野有兩種方法:設(shè)置更大的卷積核尺寸和增加膨脹因子的大小。在空洞卷積操作過(guò)程中,膨脹因子的大小會(huì)隨著網(wǎng)絡(luò)深度的增加以指數(shù)方式增長(zhǎng),故卷積網(wǎng)絡(luò)能用較少的層數(shù)依然可以獲得較大的感受野。
圖1 原始TCN結(jié)構(gòu)圖
雖然TCN網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,但是當(dāng)使用小樣本數(shù)據(jù)集訓(xùn)練TCN網(wǎng)絡(luò)時(shí),會(huì)十分容易產(chǎn)生過(guò)擬合現(xiàn)象。DenseNet網(wǎng)絡(luò)是計(jì)算機(jī)視覺(jué)領(lǐng)域中一個(gè)非常重要的結(jié)構(gòu)。DenseNet網(wǎng)絡(luò)將之前所有層的輸入和當(dāng)前層輸出的特征向量拼接,再進(jìn)行非線性變換。因?yàn)镈enseNet通過(guò)這樣的拼接,所以輸出向量中包含了盡可能多的特征信息,該網(wǎng)絡(luò)每層卷積的通道數(shù)可以設(shè)計(jì)的相對(duì)較小。因此,針對(duì)小樣本數(shù)據(jù)集,它能很好地解決過(guò)擬合問(wèn)題。本文的方法就是使用DenseNet密集連接的思想對(duì)時(shí)間卷積網(wǎng)絡(luò)進(jìn)行在小樣本數(shù)據(jù)集進(jìn)行改進(jìn)。改進(jìn)的密集連接時(shí)間卷積計(jì)算公式如公式(1)所示,f(x)代表時(shí)間卷積網(wǎng)絡(luò)的因果空洞卷積操作,y代表模型最終輸出的預(yù)測(cè)向量。
如圖2所示,改進(jìn)TCN網(wǎng)絡(luò)使用密集連接思想取每個(gè)輸出通道的最后一個(gè)值進(jìn)行拼接作為空洞卷積層的輸入特征,進(jìn)行特征映射與空洞卷積操作。
圖2 小樣本知識(shí)庫(kù)預(yù)測(cè)框架
由于提取出來(lái)的部分特征直接來(lái)自于進(jìn)行詞嵌入處理后的數(shù)據(jù),直接進(jìn)行關(guān)系抽取,在這個(gè)數(shù)據(jù)集上最終的準(zhǔn)確度會(huì)有所損失,因此需要再連接一個(gè)映射模塊將特征進(jìn)一步處理,此處的映射模塊舍棄了池化層,由卷積核大小為3的卷積層和BatchNorm層構(gòu)成,該模塊利用卷積操作對(duì)特征進(jìn)行處理的同時(shí)可減少通道數(shù)量,從而有效降低最后的特征維度,而B(niǎo)atchNorm層具有抑制過(guò)擬合的能力,能夠緩解過(guò)擬合問(wèn)題,最后使用log_softmax函數(shù)對(duì)上一層輸出的特征進(jìn)行處理就得到了對(duì)應(yīng)各個(gè)關(guān)系類(lèi)別分類(lèi)概率的概率預(yù)測(cè)向量,跟文本對(duì)應(yīng)的標(biāo)簽對(duì)比,進(jìn)行梯度更新。
本文使用的訓(xùn)練數(shù)據(jù)是從新華網(wǎng)、人民網(wǎng)、中國(guó)新聞網(wǎng)等網(wǎng)站中抽取出來(lái)的新聞?wù)Z料,這些新聞?wù)Z料都是國(guó)家權(quán)威新聞單位發(fā)布的,語(yǔ)料質(zhì)量比較可靠、客觀、規(guī)范。我們使用Python爬蟲(chóng)技術(shù)爬取了從2019年12月1日至2019年12月31日新聞?wù)Z料,把這些語(yǔ)料排除標(biāo)題、關(guān)鍵字,把新聞?wù)奈谋痉指畛鰡蝹€(gè)語(yǔ)義樣本,并進(jìn)行關(guān)系標(biāo)注,最后根據(jù)合理的比例把這些語(yǔ)義樣本隨機(jī)劃分為訓(xùn)練集、驗(yàn)證集、測(cè)試集,構(gòu)建成為小樣本關(guān)系抽取數(shù)據(jù)集。關(guān)系抽取的任務(wù)是識(shí)別出單個(gè)語(yǔ)言樣本中的關(guān)系類(lèi)別。
原始新聞?wù)Z料的提取使用Python爬蟲(chóng)技術(shù),從獲得新聞網(wǎng)頁(yè)的URL地址到提取出新聞?wù)Z料的標(biāo)題、關(guān)鍵字、正文,最終形成原始新聞?wù)Z料,需要進(jìn)行以下幾個(gè)過(guò)程:首先,利用requests請(qǐng)求獲得新聞網(wǎng)頁(yè)的URL列表;然后在瀏覽器的開(kāi)發(fā)者工具查看頁(yè)面的DOM樹(shù),根據(jù)網(wǎng)站的DOM樹(shù)結(jié)構(gòu)映射出新聞頁(yè)面的標(biāo)題、作者、正文的HTML標(biāo)簽;最后利用XPath API提取出相應(yīng)的內(nèi)容,構(gòu)造出最后的原始新聞?wù)Z料。
實(shí)驗(yàn)運(yùn)行在谷歌CoLab平臺(tái)上,CoLab平臺(tái)顯卡型號(hào)為NVIDIA Tesla P100,驅(qū)動(dòng)版本SIM為410.129,CUDA版本為10.0,顯存11G。所用深度學(xué)習(xí)框架為CUDA 10.1和PyTorch 1.6.0。本文采用Adam算法進(jìn)行參數(shù)更新。我們采用glove詞向量,詞嵌入維度input_size設(shè)置為300,卷積核尺寸k設(shè)置為3,每層的隱藏單元數(shù)hidden設(shè)置為300,卷積層的dropout設(shè)置為0.45,初始學(xué)習(xí)率設(shè)置為0.03。網(wǎng)絡(luò)的膨脹因子設(shè)置為2,與TCN的膨脹因子相同。經(jīng)感受野計(jì)算公式可知,網(wǎng)絡(luò)至少需要6層卷積,網(wǎng)絡(luò)通道數(shù)設(shè)置為12。實(shí)驗(yàn)采取早停機(jī)制,當(dāng)在驗(yàn)證集上在10個(gè)epochs訓(xùn)練獲得最好的結(jié)果,就停止訓(xùn)練,保存模型的參數(shù)列表。
實(shí)驗(yàn)結(jié)果如表1所示,我們分別比較CNN、LSTM、原始TCN以及我們的基于密集連接思想的關(guān)系抽取模型進(jìn)行關(guān)系預(yù)測(cè)的效果,實(shí)驗(yàn)表明使用密集連接思想的改進(jìn)TCN模型的關(guān)系預(yù)測(cè)方法性能有明顯提升,這是因?yàn)榛诿芗B接思想的關(guān)系抽取方法采用計(jì)算機(jī)視覺(jué)領(lǐng)域密集連接的思想,盡可能多地提取出文本序列中的語(yǔ)義信息,再進(jìn)行關(guān)系抽取,緩解了模型過(guò)擬合問(wèn)題,有效提高了小樣本預(yù)測(cè)分類(lèi)的性能、取得了在小樣本關(guān)系預(yù)測(cè)問(wèn)題上相對(duì)有競(jìng)爭(zhēng)力的結(jié)果。
表1 關(guān)系抽取測(cè)試結(jié)果
為了更有效地證明基于密集連接思想的關(guān)系預(yù)測(cè)模型的有效性,本文對(duì)比了測(cè)試集上CNN模型和改進(jìn)TCN模型的Top5準(zhǔn)確度,如圖3所示,基于密集連接思想的關(guān)系預(yù)測(cè)模型(Improving TCN)在不同學(xué)習(xí)率設(shè)置的情況下,小樣本關(guān)系分類(lèi)性能明顯優(yōu)于普通的CNN模型。
圖3 CNN和基于密集連接模型的準(zhǔn)確率對(duì)比
本文為了能夠充分利用小樣本數(shù)據(jù)來(lái)訓(xùn)練關(guān)系抽取模型,更加有效地獲取小樣本訓(xùn)練數(shù)據(jù)中包含的語(yǔ)義信息,預(yù)防模型產(chǎn)生過(guò)擬合問(wèn)題,借鑒計(jì)算機(jī)視覺(jué)領(lǐng)域的經(jīng)驗(yàn),提出了一種基于密集連接思想的小樣本關(guān)系預(yù)測(cè)模型,對(duì)文本序列數(shù)據(jù)使用因果空洞卷積操作取代堆疊CNN的方式捕捉文本序列依賴關(guān)系;使用密集連接機(jī)制取代殘差處理盡可能多地保留語(yǔ)義信息,能夠緩解由于數(shù)據(jù)量過(guò)少產(chǎn)生的過(guò)擬合問(wèn)題,獲取更多的語(yǔ)義特征。實(shí)驗(yàn)結(jié)果表明,本文使用的模型與其他單一模型相比在小樣本關(guān)系抽取的準(zhǔn)確度上有著進(jìn)一步的提高。