馬怡琳,楊占力,吳 峰,王利琴
(1.河北工業(yè)大學(xué)人工智能與數(shù)據(jù)科學(xué)學(xué)院,天津 300401;2.河北工業(yè)大學(xué)機(jī)械工程學(xué)院,天津 300401;3.河北省科學(xué)技術(shù)情報(bào)研究院,河北 石家莊 050021)
作為自然語言處理領(lǐng)域信息抽取的重要任務(wù)之一,關(guān)系抽取是構(gòu)建知識(shí)圖譜、實(shí)現(xiàn)語義搜索、建立社會(huì)網(wǎng)絡(luò)系統(tǒng)[1]等應(yīng)用領(lǐng)域必不可少的關(guān)鍵技術(shù)。傳統(tǒng)的關(guān)系抽取模型需要大量標(biāo)注的數(shù)據(jù),而標(biāo)注數(shù)據(jù)會(huì)耗費(fèi)大量人力以及時(shí)間,阻礙了傳統(tǒng)模型的推廣與發(fā)展。為解決上述問題,研究者提出采用遠(yuǎn)程監(jiān)督方法[2,3],自動(dòng)標(biāo)注大量的標(biāo)注數(shù)據(jù)。雖然遠(yuǎn)程監(jiān)督方法為關(guān)系抽取模型提供了訓(xùn)練數(shù)據(jù),在提升模型準(zhǔn)確率方面取得了一定程度的效果,但當(dāng)某些關(guān)系的訓(xùn)練樣本很少時(shí),抽取性能會(huì)顯著下降,而在現(xiàn)實(shí)情況中實(shí)體對(duì)和實(shí)體對(duì)之間所屬關(guān)系出現(xiàn)的頻率通常服從長尾分布,這些關(guān)系仍然存在數(shù)據(jù)不足的問題。在人類通過極少量的樣本甚至單樣本就可以學(xué)習(xí)一個(gè)新類別的啟發(fā)下,考慮計(jì)算機(jī)是否可以只需要少量的樣本就能快速學(xué)習(xí)新類別,因此,現(xiàn)階段的關(guān)系抽取研究重點(diǎn)是通過小樣本學(xué)習(xí)解決長尾關(guān)系數(shù)據(jù)不足問題。Snell等人[4]提出的原型網(wǎng)絡(luò)(Prototypical Networks,ProtoNet)是一種簡單有效的基于度量的小樣本學(xué)習(xí)方法。原型網(wǎng)絡(luò)為支持集中的每個(gè)關(guān)系計(jì)算類原型,通過計(jì)算查詢樣本與每個(gè)類原型之間的歐式距離,選擇與最小距離相對(duì)應(yīng)的類原型對(duì)查詢樣本進(jìn)行分類,預(yù)測(cè)查詢樣本的關(guān)系。早期小樣本學(xué)習(xí)算法在圖像領(lǐng)域[5-6]取得了最新成績,激勵(lì)研究人員將小樣本學(xué)習(xí)算法應(yīng)用到更多領(lǐng)域。最近,原型網(wǎng)絡(luò)也被應(yīng)用于小樣本關(guān)系抽取任務(wù),Han等人[7]提出了一個(gè)新的高質(zhì)量的用于小樣本關(guān)系抽取任務(wù)的大型數(shù)據(jù)集FewRel,采用GloVe[8]對(duì)單詞進(jìn)行嵌入,在FewRel數(shù)據(jù)集上評(píng)估多個(gè)小樣本學(xué)習(xí)模型的性能,證明了原型網(wǎng)絡(luò)是在小樣本關(guān)系抽取任務(wù)中表現(xiàn)最好模型,但與人類的表現(xiàn)相比仍有很大差距。由于淺層預(yù)訓(xùn)練模型GloVe得到的單詞嵌入包含的信息量較少,同時(shí),原型網(wǎng)絡(luò)使用歐氏距離度量計(jì)算,將所有特征都平等的參與到距離計(jì)算中,但在樣本嵌入中,并非所有特征都對(duì)關(guān)系抽取有效果。因此,原型網(wǎng)絡(luò)樣本嵌入表示包含的信息不全面,并且通過歐氏距離計(jì)算得到的結(jié)果參考了大量無關(guān)特征,忽視重要特征在距離計(jì)算中起到的作用,影響關(guān)系抽取準(zhǔn)確率。
圖1 EMD_ProtoNet模型框架
由此可見,基于度量的小樣本學(xué)習(xí)通常存在不能得到信息豐富的樣本嵌入表示和不能有效進(jìn)行距離度量兩方面問題。針對(duì)上述問題,結(jié)合深層雙向的預(yù)訓(xùn)練語言模型BERT[9]在樣本嵌入表示方面的優(yōu)勢(shì)和EMD在距離度量方面的優(yōu)勢(shì),提出了一種小樣本關(guān)系抽取模型EMD_ProtoNet,利用BERT得到信息豐富的樣本嵌入表示,采用EMD距離代替原型網(wǎng)絡(luò)模型中的歐式距離,通過交叉參照機(jī)制對(duì)特征進(jìn)行評(píng)分,以突出具有重要語義信息特征的重要性。
EMD_ProtoNet模型總體框架主要由三部分組成,即編碼器、原型網(wǎng)絡(luò)和土方移動(dòng)距離(Earth Mover’s Distance,EMD)計(jì)算。給定支持集S中一個(gè)類的k個(gè)樣本(S1,S2,…,SK)和用來查詢的樣本Q,首先使用BERT生成它們的樣本嵌入,在原型網(wǎng)絡(luò)中計(jì)算k個(gè)樣本的平均值為類原型,再采用交叉參考機(jī)制生成所有節(jié)點(diǎn)的權(quán)重(圖中未顯示),然后利用EMD距離在總匹配代價(jià)最小的兩組之間生成最優(yōu)匹配流。最后,基于最優(yōu)匹配流和匹配代價(jià)計(jì)算查詢樣本和類原型之間的距離,預(yù)測(cè)關(guān)系,實(shí)現(xiàn)關(guān)系抽取,如圖1。
EMD_ProtoNet采用原型網(wǎng)絡(luò)為每個(gè)類計(jì)算一個(gè)原型,通過比較查詢樣本與類原型之間的距離,對(duì)查詢樣本進(jìn)行分類,如圖2[8],C1,C2,C3表示類原型,x表示查詢樣本。
圖2 小樣本原型網(wǎng)絡(luò)
通過各個(gè)類支持集S中的所有樣本嵌入計(jì)算平均得到類原型,如式(1)所示
(1)
在計(jì)算得到原型后,通過計(jì)算查詢樣本x屬于各個(gè)關(guān)系原型的概率,最終實(shí)現(xiàn)對(duì)查詢樣本中提到的實(shí)體對(duì)之間的關(guān)系進(jìn)行抽取,計(jì)算如式(2)所示。當(dāng)查詢樣本x與類原型的距離越小時(shí),說明查詢樣本與類原型在度量空間中離得越近,它們之間的相似度越大,該查詢樣本x屬于這個(gè)關(guān)系類別的概率就越大。
(2)
N表示類的個(gè)數(shù),fφ表示原型網(wǎng)絡(luò)的嵌入函數(shù),φ是可以通過學(xué)習(xí)得到的參數(shù)。d(fφ(x),ci)為查詢樣本嵌入與類原型之間的距離函數(shù),本文采用EMD距離,可以達(dá)到比歐氏距離更好的效果。
原型網(wǎng)絡(luò)使用簡單的歐氏距離作為距離函數(shù)由于支持集樣本較少,支持集提取的特征存在數(shù)據(jù)稀疏性問題,并且并非所有特征在計(jì)算距離中都具有同等的重要性。因此,在特征空間中,一些維度對(duì)分類具有更強(qiáng)的鑒別力。為了更加準(zhǔn)確地計(jì)算距離,本文采用EMD距離改進(jìn)原型網(wǎng)絡(luò),該方法將更多的注意力集中在具有較大區(qū)別性的特征維度。
(3)
其中,si和qj稱為節(jié)點(diǎn)的權(quán)重,它控制每個(gè)節(jié)點(diǎn)生成的總匹配流。EMD尋求si和qj之間的最佳匹配,從而使整體匹配成本最小化。
(4)
(5)
對(duì)于小樣本關(guān)系抽取任務(wù),EMD公式的每個(gè)節(jié)點(diǎn)權(quán)值設(shè)置是計(jì)算距離的關(guān)鍵。交叉參照機(jī)制通過比較兩個(gè)樣本嵌入生成節(jié)點(diǎn)特征的權(quán)重。在EMD_ProtoNet模型中,采用交叉參照機(jī)制,通過一個(gè)樣本嵌入節(jié)點(diǎn)特征點(diǎn)積另一個(gè)樣本嵌入的平均節(jié)點(diǎn)特征的方式,生成節(jié)點(diǎn)權(quán)重值,如式(6)所示
(6)
其中ui和vj表示來自兩個(gè)樣本嵌入的節(jié)點(diǎn),函數(shù)max()確保權(quán)值總是非負(fù)的。以類原型各節(jié)點(diǎn)的權(quán)重值si為例,查詢樣本的各節(jié)點(diǎn)權(quán)重值qi可以用同樣的方式計(jì)算。交叉引用機(jī)制旨在對(duì)兩個(gè)樣本中對(duì)樣本抽取影響小的特征給予較小的權(quán)值,而對(duì)樣本抽取影響大的特征給予較大的權(quán)值。最后,對(duì)所有權(quán)值進(jìn)行歸一化,使類原型節(jié)點(diǎn)和查詢樣本節(jié)點(diǎn)有相同的總權(quán)值進(jìn)行匹配,如式(7)所示。
(7)
為了評(píng)價(jià)小樣本關(guān)系抽取模型EMD_ProtoNet的性能,在以 Wikipedia 作為語料庫的FewRel數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。FewRel數(shù)據(jù)集包含100個(gè)關(guān)系,包括用于訓(xùn)練64個(gè)關(guān)系,用于驗(yàn)證的16個(gè)關(guān)系和用于測(cè)試的20個(gè)關(guān)系,每個(gè)關(guān)系包含700個(gè)實(shí)例。訓(xùn)練集,驗(yàn)證集和測(cè)試集之間沒有重疊的關(guān)系,具體樣本示例見表1。
表1 FewRel數(shù)據(jù)集樣本示例
在樣本示例中“P931”為關(guān)系類別,代表該關(guān)系在Wikipedia中的ID,“tokens”為樣本的分詞結(jié)果,“h”為頭部實(shí)體,“t”為尾部實(shí)體,同時(shí),標(biāo)注了頭部實(shí)體和尾部實(shí)體在句子中的位置。
實(shí)驗(yàn)使用帶GPU加速的計(jì)算服務(wù)器完成,基于Ubuntu系統(tǒng),采用Pytorch深度學(xué)習(xí)框架,編程語言為Python。表2中列出了實(shí)驗(yàn)超參數(shù),批處理大小為1,輸入句子的最大長度設(shè)置為128。理論上式(3)中的n越小,對(duì)特征的區(qū)別性越強(qiáng),但受計(jì)算機(jī)性能的限制,將n設(shè)置為24,學(xué)習(xí)率設(shè)置為1e-1,權(quán)重衰減設(shè)置為1e-5。使用OpenCV庫通過改進(jìn)的單純形算法實(shí)現(xiàn)線性規(guī)劃,訓(xùn)練迭代次數(shù)設(shè)置為30000。在BERT預(yù)訓(xùn)練中,隱藏層的大小設(shè)置為768。在訓(xùn)練集上訓(xùn)練模型,在驗(yàn)證集上微調(diào)模型,在測(cè)試集上比較準(zhǔn)確率;訓(xùn)練過程中不使用驗(yàn)證集及測(cè)試集中的實(shí)例。
采用準(zhǔn)確率評(píng)價(jià)模型的性能,計(jì)算方法如式(8)所示:
(8)
各個(gè)模型在FewRel數(shù)據(jù)集上的準(zhǔn)確率見表3。Meta_Net(CNN)、GNN(CNN)、SNAIL (CNN)和ProtoNet(CNN)的實(shí)驗(yàn)結(jié)果參考文獻(xiàn)[7]給出的結(jié)果。模型名稱中的CNN表示這些模型在嵌入層使用GloVe,采用卷積神經(jīng)網(wǎng)絡(luò)編碼提取特征,本文模型EMD_ProtoNet默認(rèn)在嵌入層中使用BERT。
由表3可知,EMD_ProtoNet在5 Way 1 Shot、5 Way 5 Shot、10 Way 1 Shot任務(wù)中,均遠(yuǎn)遠(yuǎn)優(yōu)于其它模型。其中在5 Way 1 Shot任務(wù)中,需要區(qū)分5種關(guān)系,每種關(guān)系類型只有1個(gè)樣本,模型的準(zhǔn)確率為85.23%,比ProtoNet模型提升16.03%;在5 Way 5 Shot任務(wù)中,模型的準(zhǔn)確率為91.69%,比ProtoNet高6.9%;在10 Way 1 Shot任務(wù)中,模型的準(zhǔn)確率為75.93%,比ProtoNet高19.49%。
表3 在N-way-K-Shot設(shè)置下的不同模型實(shí)驗(yàn)結(jié)果對(duì)比
EMD_ProtoNet通過利用預(yù)先訓(xùn)練好的BERT語言模型,并在ProtoNet中加入EMD,獲得更優(yōu)樣本嵌入,同時(shí),減輕無關(guān)特征在計(jì)算距離時(shí)的影響,在對(duì)查詢樣本進(jìn)行分類時(shí),獲得更高的準(zhǔn)確率。
為了評(píng)價(jià)EMD_ProtoNet各功能模塊的作用,分別將模型中的BERT以及EMD去掉進(jìn)行實(shí)驗(yàn)結(jié)果對(duì)比,結(jié)果見表4。ProtoNet(BERT)模型名稱中的BERT表示在嵌入層中使用BERT。
由表4可以看出,在ProtoNet中直接加入EMD可以提高模型的準(zhǔn)確率,即EMD_ProtoNet(CNN)模型優(yōu)于原型網(wǎng)絡(luò)ProtoNet(CNN),說明EMD可以減輕無關(guān)特征在計(jì)算距離時(shí)的影響,對(duì)樣本嵌入計(jì)算更準(zhǔn)確的距離度量,在對(duì)查詢樣本進(jìn)行分類時(shí),準(zhǔn)確率更高,從而提高小樣本關(guān)系分類模型的性能。從表4的第一行和第三行可以看出,在的準(zhǔn)確率為80.68%,而ProtoNet(CNN)模型的準(zhǔn)確率為69.20%,提高了11.48%;在5 Way 5 Shot任務(wù)上ProtoNet(BERT)模型的準(zhǔn)確率較ProtoNet(CNN)模型提高了4.81%;在10 Way 1 Shot任務(wù)上ProtoNet(BERT)模型的準(zhǔn)確率較ProtoNet(CNN)模型更是提高了15.04%,這說明通過使用預(yù)先訓(xùn)練好的BERT語言模型,使樣本具有更優(yōu)的樣本嵌入,BERT在以上三種任務(wù)情景下可以進(jìn)一步提高任務(wù)的準(zhǔn)確率。在10 Way 1 Shot任務(wù)上性能提升最高,說明預(yù)訓(xùn)練的語言模型對(duì)于單樣本的樣本嵌入可以更準(zhǔn)確的表達(dá)類原型,預(yù)訓(xùn)練的語言模型BERT對(duì)于小樣本的關(guān)系抽取任務(wù)是有效的。EMD_ProtoNet在5 Way 1 Shot、5 Way 5 Shot和10 Way 1 Shot任務(wù)上的準(zhǔn)確率都高于其它模型,說明BERT和EMD的引入能顯著提升小樣本關(guān)系分類性能,EMD_ProtoNet模型適用于小樣本關(guān)系抽取任務(wù)。
表4 在N-way-K-Shot設(shè)置下的消融實(shí)驗(yàn)結(jié)果對(duì)比
ProtoNet(CNN)和EMD_ProtoNet在訓(xùn)練集上的損失變化曲線如圖3。
圖3 隨迭代次數(shù)Loss變化曲線圖
ProtoNet(CNN)和EMD_ProtoNet在驗(yàn)證階段的準(zhǔn)確率變化曲線如圖4。
圖4 驗(yàn)證集的準(zhǔn)確率變化曲線圖
從圖中可以看出,使用BERT的EMD_ProtoNet模型在降低損失的速度和提高精度方面都優(yōu)于基線模型ProtoNet(CNN)。根據(jù)loss的誤差值可以判斷網(wǎng)絡(luò)的收斂速度,實(shí)驗(yàn)結(jié)果表明:訓(xùn)練ProtoNet(CNN)和EMD_ProtoNet兩種模型時(shí),在達(dá)到相同的loss值時(shí),使用BERT的EMD_ProtoNet所需迭代次數(shù)明顯比ProtoNet少,從而驗(yàn)證了EMD_ProtoNet網(wǎng)絡(luò)收斂更快。根據(jù)準(zhǔn)確率值可以判斷網(wǎng)絡(luò)的精度,使用BERT的EMD_ProtoNe迭代相同的次數(shù)的準(zhǔn)確率比ProtoNet高,驗(yàn)證了EMD_ProtoNet網(wǎng)絡(luò)精度。
本文針對(duì)小樣本關(guān)系抽取過程中信息不完整、距離度量不準(zhǔn)確等問題,提出了EMD_ProtoNet模型,使用先進(jìn)的預(yù)訓(xùn)練語言模型,并改進(jìn)原型網(wǎng)絡(luò)距離度量方法。根據(jù)實(shí)驗(yàn)得到以下結(jié)論:
1) 通過使用預(yù)先訓(xùn)練好的BERT語言模型,可以為樣本輸出更優(yōu)的樣本嵌入,尤其,在單樣本情況下,BERT輸出的樣本嵌入可以更準(zhǔn)確的表達(dá)類原型,BERT對(duì)于小樣本的關(guān)系抽取任務(wù)是有效的。
2) EMD通過為特征分配權(quán)重的方式突出樣本嵌入的重要特征,可以減輕無關(guān)特征在計(jì)算距離時(shí)的影響,為查詢樣本嵌入和類原型計(jì)算更準(zhǔn)確的距離度量,從而提高關(guān)系抽取的準(zhǔn)確率。
3) 在FewRel數(shù)據(jù)集上評(píng)估EMD_ProtoNet模型,在三個(gè)N-way-K-shot情景設(shè)置下,EMD_ProtoNet模型比基線模型的準(zhǔn)確率提高了6.9%-19.49%。
綜上所述,本文提出的EMD_ProtoNet能夠改善現(xiàn)有小樣本關(guān)系抽取方法的不足,提高小樣本關(guān)系抽取的準(zhǔn)確率。