李成奇,雷海衛,李 帆,呼文秀
(中北大學 計算機科學與技術學院,山西 太原 030051)
實體關系抽取是信息抽取的核心任務之一[1],其目的是從結構化和非結構化的文本中抽取所包含的關系[2]并以三元組<實體,關系,實體>的形式表現出來。在專利領域,實體之間的關系非常復雜,隨著專利數量的快速增長,單純依靠人工進行專利查閱,很難及時,快速獲取專利中的創新知識資源[3],因此,從更細粒度的方面對專利數據進行語義分析可以為更多的下游任務提供數據支持。如應用于專利分析、知識圖譜構建、專利侵權檢測等領域。
本文采用專利摘要作為目標抽取文本,與現有中文數據集DUIE[4]相比,專利領域的目標文本長度更長,實體關系更加復雜,更長的文本意味著關系的復雜化和實體的反復,進而帶來了實體重疊[5]問題。導致實體、關系抽取變得更加困難。針對以上問題本文根據專利文本特點在PRGC[6](potential relation and global correspondence based joint relational triple extraction)網絡的基礎上作出了改進,并在PERD數據集上取得了良好的實體關系抽取結果,相比基線模型PRGC,本文模型在F1值上提升了12.64個百分點。
本文主要貢獻如下:
(1)標注了一個專利領域實體關系抽取數據集PERD;
(2)提出了最近對尋址實體位置的方法;
(3)針對實體對齊存在信息損失,推理速度慢的問題,使用注意力機制改進了實體對齊的方法;
(4)改進了實體抽取方法,引入了文本主客體表征向量,提出了輔助抽取器模塊,提高了實體關系抽取準確性。
流水線模式下的實體關系抽取主要包含兩個任務:任務一是命名實體識別[7],即首先識別出文本中所有的實體;任務二是關系分類,即預測識別出的實體之間是否存在已經定義好的某種關系。流水線方法雖然簡單靈活,但是忽略了任務間的聯系,導致誤差信息累計傳播[7],造成結果的不可逆性。
Sun等[8]提出一種可學習的語法傳輸注意力圖卷積網絡LST-AGCN(learnable syntax transport attention graph convolutional network)通過引入連接節點的依存關系類型將樹轉換為句法傳輸圖,進而進行關系提取。Chen等[9]提出一種基于MRC(machine reading comprehension)的模式分類器來識別關系模式,引入一種基于跨度的方法,在模式產出參數化問題的指導下來提取實體,緩解了錯誤傳播的問題。
在中文領域中,彭正陽等[10]提出一種基于動態損失函數的遠程監督關系抽取方法,通過動態優化損失函數提高關系抽取準確率,李昊等[11]提出一種基于實體邊界組合的關系抽取方法,該方法通過對實體邊界兩兩組合來進行關系抽取,使得錯誤擴散的問題有一定程度的緩解。
Joint聯合模型采取端到端的方式[12]將兩個子任務整合到一起,通過參數共享和聯合解碼的方式使得兩個任務有所交互,在一定程度上降低了誤差傳遞。
Wei等提出一個級聯框架Casrel[13],首先識別句子中所有可能的主體實體,然后對每個主體實體,應用基于Span的標記,基于每個關系來識別相應的客體。Wang等[14]提出一種握手標記策略的TP-Linker模型,通過對句子中的主語和謂語的首字符建立3種標注標簽,通過窮舉存在判斷的解碼實現對重疊關系三元組的抽取。Zheng等[6]提出一個基于潛在關系和全局對應的聯合三元組提取框架PRGC,有效緩解了關系判斷冗余,抽取泛化能力差和主客體對齊效率低的問題。Shang等[15]提出一種將聯合提取任務轉換為細粒度三元分類問題的聯合模型OneRel,有效緩解了級聯錯誤和冗余信息的問題。
在中文領域中,葛君偉等[16]提出一種基于字詞混合的聯合抽取方法,對于分詞的邊界問題,在詞嵌入的基礎上,結合字向量增加位置信息來保證字與字之間的正確順序。李代祎等[17]提出一種面向中文的實體關系聯合抽取方法,將關系建模為頭實體映射到句子中尾實體的函數。
本文提出的最近對尋址的實體關系抽取模型如圖1所示主要包含:詞嵌入模塊;關聯性矩陣模塊;實體關系抽取模塊;輔助抽取器模塊。左虛線框表示詞嵌入與關聯性矩陣模塊,右虛線框表示實體關系抽取和輔助抽取器模塊。

圖1 模型結構設計
圖2將圖1右虛線框中實體關系抽取和輔助抽取器模塊的具體實現細節進一步說明,同時重新選取了部分專利句“消毒裝置包括箱體,位于箱體的底部有氣缸”作為說明對象。

圖2 實體抽取模型
圖2中模型訓練階段分別獲取到關系向量、文本句向量、主客體表征向量,三者向量拼接后在實體關系抽取模塊中作為輸入向量,直接進行線性層分類預測主客體,在輔助抽取器模塊之中,主客體表征向量通過BILSTM[18]層,線性層和CRF層[19]用來約束實體預測的準確性,該模塊不直接用于實體關系的抽取。
2.2.1 主客體位置查詢
本文提出最近對尋址方法來獲取實體位置信息,在輸入文本中,確定每對主客體所有位置下標,計算兩者之間絕對距離,當距離最小時取得實體位置下標。不同于PRGC模型,其查詢實體首次出現的首字位置下標,本文認為獲取首字位置下標并不能很好的體現主客體間的聯系,還會對模型產生偏差影響。
如圖3所示,上方箭頭表示傳統獲取實體位置下標方法,下方箭頭表示本文方法。與圖2采用相同的專利句,且設其包含三元組<箱體,設置有,氣缸>,若文本下標從1開始,傳統方法得到的實體位置下標對為(7,18),最近對尋址方法得到的實體位置下標對為(12,18),由分析可知,本文方法在獲取實體位置下標時更具優勢,BERT[20]采用動態編碼,其根據上下文的意思來決定當前詞的編碼,位置相近的詞之間會互相產生較大的權重,所以本文方法更契合BERT編碼思想,主客體聯系更密切,而傳統方法在一定程度上會造成偏差。

圖3 主客體位置下標查詢
2.2.2 向量編碼
輸入文本s={w1,w2,w3…wn}, 其中wi∈sn×1代表文本單字,首先對文本進行BIO標記[21],主體首字使用B-H標記其余使用I-H標記,客體首字使用B-T標記其余使用I-T標記。本文使用BERT作為文本向量編碼器,對于輸入文本s, 向量化過程如式(1)所示
H(s)={h1,h2,h3…hn|hi∈Rd×1}
(1)
其中,n是token的數量,hi是BERT編碼后字向量,d是嵌入維度,R是關系集,選擇BERT模型是因為其采用Transformer[22]的Encoder模塊進行疊加,所以在句子編碼時自動引入了注意力機制,動態編碼的機制使得文本中相同實體擁有不同的編碼向量,在做句子的特征抽取時,其更加擅長捕捉詞語之間的內部相關性。
關聯性矩陣模塊的主要用途是產生字符向量之間的聯系。具體建模情況如圖4所示,實體位置下標在關聯性矩陣中的應用本文將分3種情況討論。

圖4 關聯性矩陣
(1)實體首字標記法
傳統方法查詢到實體首字下標后建立關聯性矩陣,圖4中上方虛線框左上角標注的1表示實體首字間存在聯系,該方法的問題是只關注了實體間部分聯系,除非該實體是單字,否則這樣做會損失文字信息,對模型結果產生不利的影響。
(2)實體首詞標記法
圖4中上方虛線框標注為1的方陣,考慮到了實體間所有文字信息交互,但其獲取的是實體首字下標位置,雖然實體名稱相同,但因為位置的偏差可能導致在學習迭代的過程中機器學到錯誤的信息,尋找實體的跨度太大在一定程度上造成理解偏差。
(3)最近對尋址標記法
圖4中下方虛線框標注為1的方陣,考慮到了實體間所有信息交互,又考慮到了實體真實的位置信息,因為存在極少情況下的單字實體,實體間的聯系應該考慮到實體中每個字的交互性,這就類似于Transformer中的自注意力機制[23],同理BERT編碼時也不僅僅是考慮單個字的情況,動態的編碼規則使得BERT能夠考慮一整個句子中的所有字之間的聯系,從而能夠發現字與字,詞與詞之間的內部聯系,進而使得相同的詞在不同位置、不同的語境中編碼為不同的向量,受此啟發本文提出了此種主客體關聯性矩陣建模方法,相比PRGC網絡模型本文方法更具嚴謹性,也更具有科學性,符合BERT編碼的思想。
驗證階段會在建模關聯性矩陣的基礎上來預測矩陣中1出現的位置,為此設定一個實體閾值α, 當預測值大于閾值時,認定位置信息預測正確。
本文采用自注意力機制建模關聯性矩陣,對于給定的句子s通過向量BERT編碼后得到句向量H如式(1)所示,句向量H經過線性變換,得到Q,K,V這3個向量如式(2)~式(4)所示,使用自注意力機制的好處是在建模矩陣的過程時,相比向量間的拼接擴展,其建模速度更快,占用內存空間更小,運算速度更快,同時考慮到了信息交互的問題。
在關聯性矩陣中文本間得關聯性按照式(5)的計算方法進行
Q=WQHS
(2)
K=WKHS
(3)
V=WVHS
(4)
(5)
其中,softmax代表激活函數[24],dk代表字嵌入維度,T表示轉置,WQ,WK,WV代表可訓練的超參數。
2.4.1 關系抽取
訓練階段將BERT輸出的句向量經過平均池化[25]如式(6)所示,再進行線性分類如式(7)所示,將輸出維度映射到關系數上,得到的結果再次經過sigmoid激活函數,將分類結果值映射到[0,1]區間,如式(8)所示,驗證階段選取分類結果中值大于設定關系閾值β的結果作為可能存在的關系,上述過程類似多標簽的二分類任務,在所有關系中預測可能存在的關系,這樣做大大減少了關系冗余的可能性
outputsavg=Avgpool(outputs)∈Rd×1
(6)
outputs=Linear(outputsavg)∈Rd×1
(7)
outputs=σ(Wr*outputs+br)
(8)
Prel(s)={r1,r2,r3,…rn|ri∈Rd×1}
(9)
其中,Avgpool表示平均池化操作,Linear表示線性層分類,σ表示sigmoid激活函數,Prel表示大于閾值的關系集,Wr,br表示可訓練的超參數Wr∈Rd×1。
2.4.2 實體抽取
實體抽取分為使用和不使用主客體表征向量抽取實體,對于不使用主客體表征向量方法,將輸入文本s和預測的關系ri, 分別預測文本中的主客體,如式(10)、式(11)所示
Presub=ReLU(Linear(Wsub(s⊕ri|ri∈Rd×1)+bsub))
(10)
Preobj=ReLU(Linear(Wobj(s⊕ri|ri∈Rd×1)+bobj))
(11)
其中,?表示輸入文本向量與預測的關系向量進行拼接,Wsub,Wobj∈Rd×3,bsub,bobj表示可訓練的超參數。
對于使用主客體表征向量方法,首先分別獲取主客體表征向量,通過句向量?主體向量?關系向量來預測客體,通過句向量?客體向量?關系向量來預測主體,如式(12)、式(13)所示
Presub=ReLU(Linear(Wsub(s⊕ri⊕sub|ri∈Rd×1,
sub∈nd×1)+bsub))
(12)
Preobj=ReLU(Linear(Wobj(s⊕ri⊕obj|ri∈Rd×1,
obj∈nd×1)+bobj))
(13)
其中,sub,obj代表真實的主客體向量,ReLU表示激活函數。
本模塊不直接作用于實體的預測,僅對實體預測起輔助約束作用。對于輸入文本s, 提取文本中所有主體、客體向量分別進行拼接,之后將主客體表征向量分別經過BILSTM層與Linear層和Dropout層[26],再傳入CRF層計算主客體表征向量與標簽的極大似然函數值,近似為二者的損失,其公式分別如式(14)、式(15)所示,因為早期對文本進行了序列標注所以采取CRF層是為結果序列增加標簽先后順序的約束。
該模塊不僅增加了模型標簽的約束,如:B-xx必須出現在I-xx之前,還從局部的角度上約束實體預測的準確性,也就是說,既約束實體邊界又約束實體順序,例如:“抽風機”是個嵌套實體,既包含實體“抽風機”,又包含實體“風機”,約束邊界指的是在文本中如果出現抽風機,則必須約束對抽風機實體的邊界,就是在抽風機對應的位置標記不為O,約束實體順序指的是,預測出抽風機之后抽風機的標簽應該是B-xx,I-xx,I-xx而不是B-xx,B-xx,I-xx,也就是說當“風機”實體前出現“抽”的字樣時,CRF層便約束此預測“風”的標簽不為B-xx,這在一定程度上有助于解決實體嵌套問題
sub,obj=Dropout(Linear(BiLstm(extra(s))))
(14)
sub,obj=CRF(sub|obj)
(15)
其中,extra表示抽取表征向量,sub,obj代表輸出向量。
模型總損失由4部分損失組成,首先是關聯性矩陣的損失,預測的矩陣M′∈Rd×1與真實的標注矩陣M∈Rd×1做交叉熵損失[27]如式(16)所示,其次是關系預測的損失,對于給定句子s中預測的關系ri∈Rd×1和真實含有的關系集R做交叉熵損失如式(17)所示,再其次是實體預測的損失如式(18)、式(19)所示,實體預測時我們同時預測了主體和客體,對于給定的句子s,在可能是主客體出現的位置做三分類標記也就是開始提到的 {B,I,O} 標記,預測的序列與真實的序列做交叉熵損失如式(18)、式(19)所示,最后是輔助抽取器模塊中的CRF損失,如式(20)所示

(16)
(17)
(18)
(19)

(20)
式(16)中Tisub,jobj表示真實標簽,Pisub,jobj表示預測標簽,式(17)~式(19)中Ti表示真實標簽,Prel,Psub,Pobj分別表示預測的關系、主體和客體,式(20)中esi表示的是第i條路徑的得分,Xiyi表示的是第i個單詞被yi標記的分數,Tyiyi+1表示的是從標簽yi轉移到標簽yi+1的得分。
針對專利領域沒有公開的實體關系抽取數據集的問題,通過分析專利文本的結構與特點及參考了公開英文數據集NYT[28]的標注樣例形式后,通過doccano軟件協助,在中文專利領域人工標注了一個實體關系抽取數據集(PERD),其文本語料組成主要集中于中文專利下的一個小類A61L,數據集具體參數見表1且專利數據標注樣例見表2。

表1 數據集參數

表2 專利實體關系樣例
表2中選取專利句樣例“一種消毒包,其中消毒包包括:包體,包體包括可彎折的圍板和兩個側板,兩側板設于圍板的相對兩側,包體具有圍合狀態和展開狀態,在圍合狀態,圍板的相對兩側分別與連側板的側邊連接,以圍合形成消毒腔;在所展開狀態,圍板的兩相對側邊至少部分分別與兩側板的部分側邊連接;殺菌組件,殺菌組件設于消毒腔”。
上述樣例共標注了7組實體關系三元組,其包含4種關系模式,在專利數據集PERD中,一共存在8種關系模式分別是“主附件”、“安裝連接有”、“設置有”、“連通”、“同級零件”、“位于”、“作用于”和“組成構成”,上述樣例僅展示了部分關系模式。
實驗參數具體見表3,其中訓練批次的選取是顯存滿負荷的狀態下所能采用的最大值,編碼階段采用BERT預訓練模型來編碼文本向量,在訓練階段設置Epoch數為200,并采取提前停止策略[29],如果模型在連續10個epoch中F1值沒有提升,則訓練結束。

表3 實驗參數
在2.3節、2.4節中提到實體閾值α和關系閾值β, 這兩個閾值的選取也決定了評價指標的高低,表4實驗結果均是在二者均取最優的情況下得到的實驗結果,為了選取最優的α,β值,本文通過控制變量法將實體閾值或關系閾值分別固定為0.1,增大另一個閾值,每次增量為0.1,得到的兩者閾值對實驗結果的影響分別如圖5、圖6所示。

表4 實驗結果

圖5 實體閾值

圖6 關系閾值
如圖5所示,在關系閾值不變的情況下,F1值隨著實體閾值的增大呈現出先增加后減小的趨勢,當α取0.5時F1值取得最好結果72.04%,對應的精確率73.87%,召回率70.3%。隨著閾值的繼續增加,精確率的繼續提升,召回率大幅下降,使得整體F1值下降,當α值增加時,模型對于實體邊界的判斷標準不斷變得嚴格,所以精確率呈現上升的趨勢,α值越大精確率越高,但是也因此導致更少的實體邊界被預測。
如圖6所示,在實體閾值不變的情況下,隨著關系閾值的增大,模型F1值也呈現出先上升后下降的趨勢,當β取0.3時F1值取得最好結果70.34%,對應的精確率68.03%,召回率72.82%,因為β值預測的是一條文本中存在的潛在關系,所以,當閾值過低時會將所有的關系都當做潛在關系,這樣做就失去了預測的意義,當β值過高時,模型會預測不全一條文本中存在的真實關系,如一條文本中包含4種關系的三元組,但是只預測出了兩種關系,這就必然導致該文本中不屬于這兩種關系的三元組被強勢分配為預測的關系,所以導致模型性能的下降。
根據上述實驗,選取實體閾值0.5和關系閾值0.3,實驗結果見表4,NPAM模型精確率為75.62%,召回率為70.07%,F1值為72.74%,在兩者閾值取最優時模型F1值比實體閾值取最優時提高了0.7個百分點,比關系閾值取最優時提高了2.4個百分點,這也說明了閾值選取的合理性和實驗結果的準確性。
本文采用精確率P(Precision)、召回率R(Recall)、F1值(F1-Score)作為評價指標,公式定義如式(21)~式(23)所示
(21)
(22)
(23)
其中,TP表示實際為正樣本數量且被正確預測為正樣本的數量,FP表示實際為負樣本但被錯誤預測為正樣本的數量,FN表示實際為正樣本但被預測為負樣本的數量。
在實體關系抽取領域中,一般認定模型預測出的主客體及其順序同主客體之間的關系都正確的時候,那么抽取出的這一條三元組才算正確。
為了評估本文模型性能,選取了4組已發表方法作為參照實驗。
(1)RIFRE模型:Zhao等[30]利用異構圖來表示實體與關系之間的聯系,通過圖神經網絡對它們進行聯合建模;
(2)CasRel模型:Wei等[13]提出層疊式指針標注方法,將關系建模為主體到客體的函數,該模型對不同的關系重疊模式有良好的效果;
(3)TP-Linker模型:Wang等[14]將聯合提取歸結為標記對鏈接問題,并引入一種新的握手方案,解決了暴露偏差和誤差累積問題。
(4)PRGC模型:Zheng等[6]將實體關系抽取轉化為3個子任務,關系判斷、實體抽取、主客體對齊,解決了三元組實體重疊問題。
相比模型PRGC,本文模型在F1值上提升了12.64個百分點,取得良好競爭力的原因是該模型對于解決實體跨度和反復的情況作出了更多的貢獻。
RIFRE也取得較好成績,說明基于圖的模型能夠更好地描述實體間的聯系,在一定程度上緩解了長距離實體信息傳遞能力不足的問題,casrel模型使用流水線方式提取實體,誤差的傳遞使得結構相較于聯合提取模型表現不足,TP-Linker模型實體、關系分開標注策略使二者間交互不深,且標簽稀疏,針對較長文本,稀疏的標簽矩陣使得模型得到更少的信息,PRGC模型使用部分實體信息來體現實體聯系,信息損失及位置信息的差異導致模型未能產生更好的結果,而本文模型在更好關注實體間聯系及位置信息后,模型表現出良好的結果。
為了探究本文提出的最近對尋址位置下標的方法對網絡模型的影響,PRGC*使用了最近對尋址位置下標的方法替換掉原網絡的位置信息獲取方法,在使用本文的方法之后,相比原網絡模型精確率、召回率和F1值分別提升了4.29、7.99和6.25個百分點,這表明在一定程度上本文提出的最近對尋址位置下標方法能夠解決在文本中實體反復出現,因為實體跨度較大導致的主客體匹配不準的問題。
本文進行消融實驗來說明模型中不同模塊對于實驗結果的影響,具體結果見表5。

表5 消融實驗結果
實驗1代表去掉了輔助抽取器模塊,其精確率、召回率和F1值分別下降了2.88、4.42和3.85個百分點,實驗2代表不使用主客體表征向量來進行實體抽取,其精確率、召回率和F1值分別下降了3.85、4.90和4.21個百分點,輔助抽取器模塊與不使用主客體表征向量的抽取方法,對模型的影響力主要表現在召回率上,二者對模型均會產生4個百分點以上的影響力,究其原因,因為已知信息的減少導致模型獲取的語義信息僅來源于句向量,使得實體的權重變小模型對其的關注度變小,從而引起預測數量的減少,召回率的下降。
實驗3代表不使用注意力機制進行關聯性矩陣建模,其精確率上升了1.35個百分點,召回率下降了1.67個百分點,F1值下降了0.31個百分點。不使用注意力機制建模矩陣對模型影響較小其在準確率上反而有所提高,本文認為是原網絡字向量間的拼接融合包含的信息比注意力打分機制更多,但使用注意力打分機制,在不使F1值下降的情況下明顯減少了模型顯存占用與模型推理時間,因為向量間的拼接導致向量維度變大,字數更長的文本建模矩陣時所占用空間更多,推理速度也相應變慢。
從數值上分析,最近對尋址位置下標方法對網絡模型影響最大,在不使用最近對尋址的前提下又分為兩種情況:①使用首字模型;②使用全詞模型的方法去建模關聯性矩陣,實驗結果分別如實驗4和實驗5所示,使用首字模型時F1值下降了47.82個百分點,使用全詞模型時F1值下降了5.62個百分點,分析原因,針對文本實體反復情況,首字模型會失去大部分文字信息,造成信息偏差,全詞模型考慮了所有文字信息所以結果表現更好,但是基線PRGC模型使用首字模型并未出現如此大的實驗差距,是因為這與關聯性矩陣的建模方法也有一定的關系。
本文提出了一種NPAM實體關系抽取模型,相比基線模型在評價指標上的提升,這得益于我們針對性的根據中文專利數據集的特點做出了對PRGC模型的改進與創新,使用最近對尋址和融合注意力機制的矩陣建模等方法提升了模型準確抽取三元組的能力,實驗結果驗證了我們工作的有效性,在專利領域成功實現了實體關系的抽取任務。
未來將繼續探索中文實體關系抽取的方法,并在其它領域的實體關系抽取任務中檢驗模型的泛化能力和魯棒性。