謝金峰, 王羽, 葛唯益, 徐建
1.南京理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院, 江蘇 南京210094;2.中國電子科技集團(tuán)公司第二十八研究所 信息系統(tǒng)工程重點實驗室, 江蘇 南京210007
隨著互聯(lián)網(wǎng)發(fā)展,網(wǎng)絡(luò)上的文本資源越來越豐富,結(jié)構(gòu)化的信息和知識更易于管理和使用,為此構(gòu)建出了大規(guī)模的開放域知識庫,比如Freebase[1]、Depdia[2]和PkuBase。通常,采用三元組的形式表示知識庫中的知識,形如〈entity, predicate,entity〉,其中entity 表示特定實體,predicate表示實體間的關(guān)系。知識庫中包含大量的三元組,它們構(gòu)成了一張龐大的關(guān)系圖。面向知識庫的智能問答是一個典型應(yīng)用場景,被廣泛應(yīng)用于搜索引擎、智能聊天等實際領(lǐng)域中[3]。在面向知識庫的問答系統(tǒng)中,查詢一個以自然語言描述的問題,系統(tǒng)會在知識庫中搜索對應(yīng)的三元組,之后給出準(zhǔn)確的答案。知識庫問答包括2個子任務(wù):①實體鏈接:檢測出問題中的實體并鏈接到知識庫中的特定實體;②關(guān)系檢測:檢測出問題中提及的關(guān)系(鏈)。關(guān)系檢測步驟的準(zhǔn)確率將會直接影響問答的質(zhì)量。針對關(guān)系檢測,以往的工作大致分為兩類:將關(guān)系檢測建模為分類任務(wù);將關(guān)系檢測建模為文本序列匹配任務(wù)。
將關(guān)系檢測建模為分類任務(wù)[4-10]。知識庫中會預(yù)定義一個關(guān)系集,基于分類的關(guān)系檢測方法將每個關(guān)系視為一個類別,通過給問題分類確定與問題相關(guān)聯(lián)的核心關(guān)系。例如文獻(xiàn)[7]使用詞匯映射的方法進(jìn)行關(guān)系檢測。之后文獻(xiàn)[9]提出一種使用多通道卷積神經(jīng)網(wǎng)絡(luò)(CNN)提升分類方法的模型?;诜诸惖姆椒ㄟM(jìn)行關(guān)系檢測時不依賴于實體鏈接的結(jié)果,上一步驟的誤差不會傳遞到這一步驟,但此類方法無法利用關(guān)系的語義信息,近年的研究中基于文本序列匹配的方法逐漸成為主流。
基于文本序列匹配的方法通過計算問題和關(guān)系的相似度,選擇相似度最高的關(guān)系作為問題關(guān)聯(lián)的核心關(guān)系?,F(xiàn)有的方法大致可以分為2類:編碼-比較型和交互型。基于編碼-比較的方法先將輸入問題和關(guān)系表示為向量序列,之后通過聚合操作將序列轉(zhuǎn)化為定長的向量,使用一種距離計算公式來度量相似度,作為問題和關(guān)系的最終匹配得分[11-16]。例如文獻(xiàn)[11]將關(guān)系視為單個標(biāo)簽,使用TransE學(xué)習(xí)的向量進(jìn)行初始化。文獻(xiàn)[12]提出的MCCNNs方法使用多通道CNN生成問題表示向量。文獻(xiàn)[13]指出從多個粒度表示關(guān)系(關(guān)系粒度和詞序列粒度)可以提升關(guān)系檢測效果,提出的模型HR-Bi-LSTM利用雙向長短期記憶網(wǎng)絡(luò)(Bi-LSTM)學(xué)習(xí)不同層次的問題表示和不同粒度的關(guān)系表示?;诮换バ偷姆椒▌t假設(shè)文本的匹配度依賴于詞級別局部的匹配度,先構(gòu)建交互矩陣,之后對交互矩陣進(jìn)行抽象表示,最后計算問題和關(guān)系的匹配得分。文獻(xiàn)[17]提出的交互型方法使用注意力機(jī)制計算問題和關(guān)系的交互矩陣,之后利用多核CNN抽取特征計算相似度得分。由于關(guān)系自身存在語義,建模為文本序列匹配的模型可以識別出一些未見關(guān)系。
然而,文本匹配的關(guān)系檢測方法存在如下問題:基于編碼-比較的方法更重視全局語義信息,在聚合操作(最大池、平均池)將向量序列變?yōu)閱蝹€向量會丟失一部分文本的語義信息;基于交互的方法假設(shè)文本相似度基于序列局部相似度,因此交互型模型無法由局部匹配刻畫全局信息,此類方法缺乏對全局語義的理解。
針對現(xiàn)有模型沒有兼顧全局語義信息與局部語義信息的問題,本文提出一個新的關(guān)系檢測模型,通過融合問題和關(guān)系的全局語義、局部語義信息進(jìn)行關(guān)系檢測,捕獲多樣化的特征來計算問題和關(guān)系的匹配度,提升關(guān)系檢測精度。該模型主要分為2個部分:局部相似度度量模塊和全局相似度度量模塊。BERT[18]作為整個模型的文本編碼層,獲得問題和關(guān)系的向量化表示,局部相似度度量模塊基于注意力機(jī)制,得到關(guān)系和問題之間的相似度權(quán)重后,使用Bi-LSTM分析差異,最后使用多層感知機(jī)計算Q-R局部相似度。全局相似度計算模塊則使用BERT獲得的句向量,將問題和關(guān)系句向量的余弦值作為Q-R的全局相似度。最終的匹配度等于全局相似度和局部相似度加權(quán)后的和。在廣泛使用的SimpleQuestion和WebQSP數(shù)據(jù)集上評估所提出模型的性能,并與僅計算全局相似度或者僅計算局部相似度的模型進(jìn)行對比分析,以驗證本文提出的模型在關(guān)系檢測任務(wù)上的有效性。
圖1為關(guān)系檢測的步驟圖,下面給出關(guān)系檢測的形式化描述。
圖1 關(guān)系檢測步驟圖
(1)
式中,S(ri,q)表示關(guān)系r和q的匹配得分,也即是模型的計算目標(biāo)。
本節(jié)將會詳細(xì)描述關(guān)系檢測模型的4個模塊:文本編碼層,全局相似度度量模塊、局部相似度度量模塊和整體輸出層。每一模塊的作用如下:
1) 文本編碼層:使用BERT作為整個模型的文本編碼層,將問題和關(guān)系中的每個標(biāo)簽轉(zhuǎn)換為向量,該向量含有標(biāo)簽的上下文信息。BERT模型會在輸入的文本前添加特殊的[CLS]標(biāo)簽,由于[CLS]標(biāo)簽自身無實際意義,在訓(xùn)練中能夠?qū)W習(xí)到輸入文本的全局語義信息,所以對應(yīng)的向量可以作為文本的句向量使用。
2) 全局相似度度量模塊:使用BERT得到的句向量,計算問題和關(guān)系句向量的余弦值作為全局相似度。
3) 局部相似度度量模塊:使用Soft Attention計算問題和關(guān)系之間的注意力加權(quán),而后使用Bi-LSTM提取差異,最后使用多層感知機(jī)計算局部相似度。
4) 整體輸出層:輸出最終的相似度計算結(jié)果。模型結(jié)構(gòu)如圖2所示。
圖2 關(guān)系檢測模型結(jié)構(gòu)
1.2.1 文本編碼層
1) 關(guān)系表示層
通常,從詞級別和關(guān)系級別來表示一個關(guān)系(鏈),假設(shè)模型此時正在處理含有|r|個關(guān)系的關(guān)系鏈r={r1,…,r|r|},關(guān)系的表示為
(2)
2) 問題表示層
問題表示為詞序列,將問題中所有標(biāo)記的總數(shù)量記為|Q|,則問題q={w1,w2,…,w|Q|}。
3) BERT
使用預(yù)訓(xùn)練語言模型BERT將句子轉(zhuǎn)換為向量序列,BERT首先從輸入的文本數(shù)據(jù)中得到3個向量:標(biāo)記嵌入、位置嵌入和段嵌入。此外,由于后續(xù)需要文本的句向量進(jìn)行計算,使用BERT的[CLS]和[SEP]標(biāo)簽。
1) 標(biāo)記嵌入:使用BERT詞表將輸入BERT的每個標(biāo)簽轉(zhuǎn)為定長向量,得到標(biāo)記嵌入。
2) 段嵌入:在BERT中用于區(qū)分不同的句子,由于BEMSM的輸入為單句,所以這個值全設(shè)為0。
3) 位置嵌入:為了得到輸入序列的順序信息,BERT對出現(xiàn)在不同位置的詞分別附加一個不同的向量用來區(qū)分。
問題序列q={w1,…,w|Q}和關(guān)系序列r={r1,…,r|R|}加上[CLS]和[SEP]標(biāo)簽,變?yōu)閝={w[CLS],w1,…,w|Q|,w[SEP]}和r={r[CLS],r1,…,r|R|,r[SEP]}后,經(jīng)過BERT結(jié)構(gòu),輸出為
Eq={Eq[CLS],Eq1,…,Eq|q|,Eq[SEP]}
(3)
Er={Er[CLS],Er1,…,Er|r|,Er[SEP]}
(4)
1.2.2 全局相似度度量模塊
這一模塊的目的是計算問題和關(guān)系的全局相似度,在訓(xùn)練過程中,BERT的[CLS]標(biāo)簽對應(yīng)的向量通過學(xué)習(xí)包含句子的全局信息,可以作為句向量使用。使用問題和關(guān)系的[CLS]標(biāo)簽對應(yīng)的輸出向量來計算全局語義相似度,得到
(5)
1.2.3 局部相似度度量模塊
局部相似度度量模塊的目的是計算問題序列和關(guān)系序列的局部語義相似度。注意力機(jī)制的加入使該模塊能夠注意輸入文本的局部語義信息。該模塊輸入為文本編碼層的輸出部分Eq和Er。其中Eq∈(|Q|+2)×de,Er∈(|R|+2)×de,de為BERT的輸出向量維度,為了方便后續(xù)表示,將BERT的輸出記為Q和R。通過BERT,將文本序列轉(zhuǎn)換為帶有上下文信息的實值向量序列。
1) 局部差異提取:
之后,進(jìn)行局部差異提取,局部差異提取層的目的是分析2個序列Q=(q1,…,q|Q|+2)與R=(r1,…,r|R|+2)的關(guān)聯(lián)程度,對Q中的每個詞qi,計算qi和中的詞rj之間的注意力權(quán)重
(6)
利用Softmax公式計算Q關(guān)于R的注意力加權(quán)值,以及R關(guān)于Q的注意力加權(quán)值,得到
(7)
(8)
(9)
(10)
式中:-表示逐元素減法;⊙表示逐元素乘法;mqi∈4×de;mri∈4×de;[,]表示連接操作。之后,使用雙向長短期記憶網(wǎng)絡(luò)(Bi-LSTM)處理信息進(jìn)行整體分析,使用2個Bi-LSTM來分析差異,得到對序列分析后的表示
(11)
(12)
式中,vq∈(|Q|+2)*dr,vr∈(|R|+2)*dr,dr為Bi-LSTM的輸出向量維度。由于整體模型中的輸入序列不能保證具有相同的長度,使用聚合操作(全局最大池)提取序列中的重要特征,將上述2個序列轉(zhuǎn)為定長的向量gq∈dr和gr∈dr。至此,模型完成了分析序列差異的過程,提取出了問題和關(guān)系序列的特征。
2)局部相似度計算層:
差異計算層的輸入是差異提取層輸出的2個特征序列g(shù)q和gr,目的是計算問題和關(guān)系的局部相似度
式中:H代表一個3層的感知機(jī);wo∈df為全連接層的參數(shù),模塊最終的輸出為問題和關(guān)系的局部語義相似度Slocal。
1.2.4 整體輸出層
計算最終關(guān)系和問題的匹配得分,權(quán)重由對比實驗得出,對比了全局相似度,局部相似度權(quán)重分配為(0.25,0.75),(0.5,0.5),(0.75,0.25)以及自動分配的結(jié)果,最終選定(0.75,0.25)這組權(quán)重為最終的分配
S=0.75*Sglobal+0.25*Slocal
(15)
為了驗證模型有效性,在SimpleQuestions和WebQSP數(shù)據(jù)集上進(jìn)行實驗,相關(guān)的關(guān)系檢測數(shù)據(jù)集在文獻(xiàn)[20]和文獻(xiàn)[13]中發(fā)布,數(shù)據(jù)集的相關(guān)信息見表1,為了表示方便,在后續(xù)將提出的模型記作BEMSM。
表1 數(shù)據(jù)集
SimpleQuestions(SQ)[21]是一個簡單問答數(shù)據(jù)集,其關(guān)系檢測數(shù)據(jù)中的每個問題只與知識庫的一個三元組相關(guān),也就是說,關(guān)系鏈的長度等于1。
WebQSP(WQ)[7]是一個復(fù)雜問答數(shù)據(jù)集,包含的問題可能與知識庫中的多個三元組相關(guān),數(shù)據(jù)集中包含的關(guān)系鏈長度小于等于2。
模型的超參數(shù)設(shè)置見表2,在實驗中,BERT作為整個模型的文本編碼層,語言模型使用的是Google官方提供的預(yù)訓(xùn)練模型BERT-Base,由12層的transformer編碼結(jié)構(gòu)組成,隱藏層向量維度為768維,BERT模型包含1億多參數(shù)量,輸出詞向量維度為768維。由于大部分關(guān)系名稱不在BERT詞表中,需要擴(kuò)展BERT的原始詞表,表中添加形如“place-of-birth”的關(guān)系名,對應(yīng)的向量為關(guān)系名包含單詞向量的均值。訓(xùn)練模型時,先訓(xùn)練只有全局相似度度量模塊的模型,之后,BEMSM加載BERT訓(xùn)練后的權(quán)重,這部分權(quán)重不再更新,后續(xù)繼續(xù)訓(xùn)練10個epoch。將問題和關(guān)系的最大句子長度設(shè)置為30,超過30的部分會被舍棄,長度不足30的序列用0進(jìn)行填充,經(jīng)過BERT處理后,問題和關(guān)系的序列長度為32。在每個Bi-LSTM層后設(shè)置dropout,防止模型過擬合。
表2 模型參數(shù)集
為了評估BEMSM模型在關(guān)系檢測任務(wù)上的有效性,沿用之前關(guān)系檢測工作采用的評價指標(biāo),使用精確率P來衡量模型的結(jié)果:
(16)
式中:N是測試集中問題的數(shù)量;Nc是被準(zhǔn)確識別出關(guān)系的問題數(shù)量。
2.3.1 局部相似度模塊和全局相似度模塊的影響
本實驗的目的在于驗證BEMSM模型中局部相似度度量模塊和全局相似度度量模塊對于整個模型的影響。
為了驗證各個模塊的效果,將BEMSM與單獨(dú)的全局相似度度量模塊、單獨(dú)的局部相似度度量模塊對比。除此之外,還對比使用GloVe詞向量和Bi-LSTM為文本編碼層的模型,在初始化時,不在GloVe詞表中的詞的向量從均勻分布(-0.5, 0.5)中隨機(jī)采樣生成,在訓(xùn)練過程中詞嵌入層不更新。局部相似度度量模塊和全局相似度度量模塊的影響如表3所示。
表3 局部相似度和全局相似度模塊的影響
從表3中的數(shù)據(jù)可以看出,綜合學(xué)習(xí)問題和關(guān)系的局部信息和全局信息對關(guān)系檢測任務(wù)是有效的,單一的局部相似度度量模塊和全局相似度度量模塊得到的指標(biāo)都低于綜合模型,在WebQSP數(shù)據(jù)集上差異更明顯, BEMSM模型獲得精確率為87.81%,高于僅考慮全局相似性的85.81%和局部相似性的85.99%。
使用BERT作為文本編碼層的模型所表現(xiàn)的性能也要優(yōu)于GloVe詞向量結(jié)合Bi-LSTM的文本編碼層,使用BERT的所有模型準(zhǔn)確率都有提升。在綜合模型上,使用BERT模型的指標(biāo)分別提升了0.2%和2.06%,這得益于BERT充足的預(yù)訓(xùn)練過程和優(yōu)秀的表征能力,BERT能捕捉Bi-LSTM容易忽視的長距離依賴,進(jìn)一步增強(qiáng)了關(guān)系檢測模型的識別能力。
2.3.2 注意力機(jī)制對BEMSM模型的影響
本實驗的目的是驗證注意力機(jī)制對模型的影響。由于全局相似度模塊沒有使用注意力信息,所以在局部相似度度量模塊中分析注意力影響。將局部相似度度量模塊與去掉注意力權(quán)重的模型進(jìn)行對比實驗。將注意力矩陣中的值設(shè)置為1來消除注意力的影響。同樣在基于BERT的模型和基于GloVe結(jié)合Bi-LSTM的模型上進(jìn)行上述實驗。實驗結(jié)果如表4所示。
表4 注意力機(jī)制對BEMEM模型的影響
從表中數(shù)據(jù)可以看出,去掉注意力權(quán)重的影響后,基于GloVe 結(jié)合 Bi-LSTM的模型和基于BERT的模型的準(zhǔn)確度指標(biāo)都有小幅度下降,在WebQSP數(shù)據(jù)集上更為明顯(84.29%和82.41%,85.99%和84.78%)。WebQSP數(shù)據(jù)集中,問題和關(guān)系的序列長度更長,注意力機(jī)制使模型能夠?qū)⒆⒁饬﹃P(guān)注到語義最相關(guān)的地方,所以影響更為明顯。本文模型去掉注意力權(quán)重后,由于差異提取層不只依賴于注意力機(jī)制產(chǎn)生的結(jié)果,模型仍然能取得不錯的效果。
2.3.3 模型整體表現(xiàn)
將模型與近年的幾個基準(zhǔn)進(jìn)行比較,這些基準(zhǔn)屬于基于文本序列匹配的關(guān)系檢測方法,模型的輸出為問題和關(guān)系的相似度得分,實驗結(jié)果見表5。
表5 BEMSM在SQ和WebQSP上的實驗結(jié)果
1) BiLSTM:使用2個Bi-LSTM分別表示問題和關(guān)系,將最后一個時間步的輸出作為句向量來比較相似度。
2) BiCNN[22]:使用3-gram表示問題和關(guān)系,比如“who”表示為#-w-h, w-h-o, h-o-#。使用CNN作為編碼層,池化后計算相似度。
3) HR-Bi-LSTM[13]:使用詞序列+關(guān)系名表示關(guān)系,使用HR-Bi-LSTM得到問題的抽象層次,將問題表示和關(guān)系表示通過聚合操作固定為相同維度向量后,將它們之間的余弦值作為相似度。
4) DAM[14]:基于transformer結(jié)構(gòu)的模型,使用transformer結(jié)構(gòu)得到關(guān)系和問題表示,經(jīng)過聚合操作后,計算向量余弦值作為相似度得分。
5) ABWIM[17]:使用詞序列和關(guān)系名來表示關(guān)系,通過注意力機(jī)制將問題和關(guān)系軟對齊,之后使用CNN計算相似度得分。
BEMSM模型整體表現(xiàn)的實驗結(jié)果見表5,從實驗對比結(jié)果可以看出,在SimpleQuestion數(shù)據(jù)集上,提出的模型取得了與基線相似的準(zhǔn)確度,在WebQSP 上,提出的方法比最好的基線方法高2.49%。實驗結(jié)果驗證了模型的有效性,BEMSM模型使用BERT作為文本編碼層,可以捕捉到Bi-LSTM未能捕捉的長距離依賴,之后綜合學(xué)習(xí)問題和關(guān)系的全局語義信息和局部語義信息進(jìn)行關(guān)系檢測,可以更全面地計算語義相關(guān)性,性能要優(yōu)于只計算單語義信息的基線方法。
針對現(xiàn)有的關(guān)系檢測方法無法兼顧問題、關(guān)系間全局語義和局部語義信息的問題,提出了一種基于多語義相似度的關(guān)系檢測模型。該模型將BERT作為整個模型的文本編碼層,使用Soft Attention和Bi-LSTM進(jìn)行局部相似度計算;使用距離計算公式度量問題和關(guān)系句向量的全局相似度。最后綜合這2種相似度得到整體的相似度。 在SimpleQuestions和WebQSP基準(zhǔn)數(shù)據(jù)集上進(jìn)行實驗,分析局部對比相似度模塊和全局相似度模塊的效果、注意力機(jī)制的效果以及模型整體效果,驗證了BEMSM模型的有效性。