李艷娟,臧明哲,劉曉燕,劉 揚,郭茂祖
1.東北林業(yè)大學信息與計算機工程學院,哈爾濱 150000
2.哈爾濱工業(yè)大學計算機科學與技術學院,哈爾濱 150001
3.北京建筑大學電氣與信息工程學院,北京 100044
伴隨著互聯網的發(fā)展,非結構化的文本呈指數級增長,關系抽取是從非結構化的文本中抽取兩個實體之間的關聯關系。關系抽取對知識圖譜構建具有重要意義,可有效地降低學者閱讀文獻的時間成本,因此一直以來都是專家學者研究的熱點。
傳統(tǒng)關系抽取包括基于模式匹配的方法和基于監(jiān)督學習的方法。其中,基于模式匹配的方法通過提取動詞和特定領域術語的文本集合,計算該集合與已知關系間的聯系得到關系模板,再從文本中抽取關系[1-3]。隨著關系種類的增加,數據源從標準數據集擴展到網絡中多源復雜冗余的文本,基于模式匹配的方法無法完全適應關系的多種表現形式。基于監(jiān)督學習的方法在帶標記的文本語料庫上進行訓練,再對測試語料進行關系預測。監(jiān)督學習的方法主要基于兩大方法體系,特征向量[4]和核函數[5],精準率較高,但對上下文的信息利用不足,且需要大量人工標注數據?;谶h程監(jiān)督的關系抽取方法不需要大量人工標注數據,且能夠適應關系表達形式的多樣性,因此成為目前研究熱點。
遠程監(jiān)督由Craven等人[6]提出,基本思想是獲取包含已知知識庫中實體對的文本,對其運用統(tǒng)計文本分類的方法,找出文本當中蛋白質與其他醫(yī)學概念之間的關系。Mintz等人[7]提出“如果一個句子中含有一組關系涉及到的實體對,那么這個句子就是在描述這個關系”,基于此假設,用已知知識庫中的關系實例對齊純文本,從而獲得大量訓練實例,大幅減少了人工標注的工作。Pan等人[8]利用遠程監(jiān)督的思想,在中文在線資源中采用基于SVM(support vector machine)和LP(label propagation)算法進行了任務關系的抽取。Xue等人[9]將模式匹配和遠程監(jiān)督思想結合,提取了人物實體之間的關系。然而,根據該假設獲取的標注數據包含大量錯誤標簽,這些噪聲影響了模型學習的準確性。為了降低噪聲對模型的影響,提高關系抽取的準確性,大量學者進行了研究。Socher等人[10]提出了基于RNN(recurrent neural network)的模型,該方法在處理單元之間既有內部反饋鏈接又有前饋鏈接,抽取關系時不受句子長度的制約,解決了單詞向量空間模型無法提取長短語特征的問題。但是RNN在訓練時容易出現梯度消失或梯度爆炸的問題,且訓練時間較長。因此Zeng等人[11-12]使用了結構較簡單的卷積神經網絡對句子建模提取特征,然后進行分類,但這種方法在每個數據包中只選取一條概率最大的語句信息,無法利用數據袋中全部句子的監(jiān)督信息。Lin等人[13-14]在卷積神經網絡的基礎上引入了注意力機制,按照實體對分為不同訓練集,再對每個訓練集中的實例權重進行動態(tài)調整。為了加強對目標關系的注意力,Ji等人[15]在注意力機制中加入了每一句中的實體對描述信息,車金立等人[16]又將字符級注意力機制與實例級注意力機制結合,進一步優(yōu)化了模型。
上述基于遠程監(jiān)督的關系抽取方法,主要借助Mintz的假設,對海量網絡文本進行數據標注,獲取大量的訓練語料,再使用各種方法對其去除噪聲。對于一些特定領域的關系抽取存在如下問題:(1)對于一個含有多級復雜層級結構實體的領域,知識庫中提出的關系實例較少且多數基于上層實體,十分抽象,用這些關系做出的遠程監(jiān)督的假設會引入更多的噪聲數據。(2)對于一個間隔較近實體所在句子,使用已有模型對關系描述詞的特征提取不足,無法準確地判斷該句是否為噪聲。
因此,本文在現有模型的基礎上,引入了領域本體,針對以上問題進行了改進。在構造訓練數據時先使用已有的模式匹配的方法在小部分文獻中提取關系,這增大了對底層實體關系的覆蓋量,增加了訓練數據的多樣性,減少了遠程監(jiān)督假設的噪音。對于描述關系單詞較少的句子實例,本文將這些單詞的特征向量引入到注意力機制中,提高了注意力機制的效果。對于抽取出的關系,加入了本體的實體層級約束,使提出的關系嚴格符合領域常識。最后本文使用訓練好的模型在多個數據集上進行了關系抽取,在測試集SemMed數據庫中的F1值為86.08%,在驗證集GoldStandard數據集中的F1值為61.06%,抽取結果均比已有模型效果好。
Fig.1 Workflow of relation extraction圖1 關系抽取工作流程
基于注意力機制和本體的遠程監(jiān)督關系抽取工作總流程如圖1所示。首先在已知的關系中篩選出關系實例作為訓練語料,再找到與已知本體相關領域的語料庫,通過預處理得到詞向量,并篩選出用于測試的語料,對測試語料進行命名實體抽取得到實體對。然后使用訓練語料和詞向量訓練關系抽取模型,使用本體中的知識約束過濾,最后用訓練好的關系抽取模型對驗證語料加以驗證。
由于遠程監(jiān)督思想的假設比較寬泛,從訓練文本中獲取的本體關系實例存在很大的噪聲,影響了關系抽取的效果。因此本文在句子級注意力模型APCNNs(attention piecewise convolutional neural networks)[15]的基礎上加入了本體的關系約束,提出了關系抽取模型APCNNs(s)+OR(attention piecewise convolutional neural networks with ontology restriction)模型。該模型由三個模塊組成:特征工程提取模塊、分類器模塊、本體關系約束模塊。如圖2所示。特征工程提取模塊包括詞向量表示層、卷積層和分片最大池化層;分類器模塊包括注意力層、Softmax分類器。本章將詳細介紹這部分內容。
2.1.1 詞向量
本文使用詞嵌入和位置嵌入[17]構建詞向量。詞嵌入是將文本中提到的每個詞映射到低維向量的表示方法。本文通過pubmed檢索接口獲取了截至2019年6月的所有文獻的摘要作為訓練樣本,采用了Mikolov等人[18]提出的word2vec中的skip-gram模型訓練單詞的語義向量。
關系抽取最后得到的結果通常形式化描述為三元組<頭實體,關系,尾實體>,且頭尾實體通常不同,因此本文只考慮句子中兩個或多個實體的情況,忽略沒有實體或只有一個實體的情況。
Fig.2 APCNNs+OR model圖2 APCNNs+OR模型
當一個句子含兩個實體時,令s作為一個輸入句子,可以把句子分為5個部分s=(ql,e1,qm,e2,qr),其中e1代表頭實體,e2代表尾實體,ql代表e1左邊的子句,qm代表e1、e2中間的子句,qr代表e2右邊的子句,本文主要針對(e1,qm,e2)中的單詞進行位置嵌入。當一個句子含3個實體時,可以把句子分為7個部分s=(q1,e1,q2,e2,q3,e3,q4),本文將實體兩兩組合成實體對,進行關系抽取。本例中先將e1和e3作為頭尾實體,則(q2,e2,q3)為qm,使用其他實體對時同理。實體對為4個或以上時以此類推。
位置特征指的是從當前單詞到實體e1和實體e2的相對距離的組合,每個單詞都有兩個相對距離,圖3展示了相對距離的示例,從“regulated”到頭實體和尾實體的相對距離分別是3和-2。先隨機化初始兩個位置矩陣PFi(i=1,2),分別代表每個單詞相對于e1和e2的距離,再把相對距離轉換為向量放入矩陣中。
Fig.3 Position embedding example圖3 位置嵌入示例
本文將語義向量和位置向量串接起來作為網絡的輸入。假設詞嵌入向量的大小是kw,位置向量的大小是kd,則最終的單詞向量k的大小是k=kw+2kd。
2.1.2 卷積層
本文將輸入句子設為S={s1,s2,…,sn},sn為該句中第n個單詞的詞向量,文本句子矩陣S∈Rn×k作為卷積神經網絡的輸入,其中k是詞向量維數大小。使用si:j代表句子中第i個單詞到第j個單詞的序列。這樣的輸入無需復雜的預訓練處理,降低了預處理可能導致的錯誤。
將矩陣S進行卷積操作,提取文本的局部特征,其中卷積核矩陣為W∈Rw×k,利用該卷積核滑動窗口在句子S上提取局部特征,得到另一個向量c∈Rn-w+1,為了得到更多種類的局部特征,實驗使用了多通道的過濾器,最終得到結果向量C=[c1,c2,…,cn-w+1]T。
2.1.3 分片最大池化層
在神經網絡訓練中,通常使用最大池化的運算來提取特征矩陣中最明顯的值。但是這種方法提取到的關系抽取特征粒度過大,并且無法有效地獲得頭尾實體及中間關系詞的結構信息,因此本文采用了分片最大池化的方法。
分片最大池化就是將一個句子示例根據頭尾實體的位置分成三個部分ci={ci,1,ci,2,ci,3},對每一個卷積核得到的向量進行最大池化得到pi={pi,1,pi,2,pi,3},再將所有的向量串接得到輸出向量p。
2.2.1 注意力機制改進
關系抽取任務是一個多實例學習任務,含有標注實體對的句子可能不是在描述訓練標簽中的關系,這是遠程監(jiān)督假設帶來的噪聲,因此在含有相同實體對的句子中要做好區(qū)分,在實際描述標注關系的句子中進行學習。
注意力機制是為了在學習中給予合理的關系實例較大的權重,可以減少噪聲數據對模型的影響。首先將包含相同實體對的句子分為一個數據袋B,每個數據袋中包含q個句子。Liu等人[19]提出在基于數據特征融合的模型中,如果特征向量的維數相同,則可以將這些特征直接拼接。本文引入了Luong-Attention注意力機制公式[20]計算權重:
其中,[x1:x2]代表x1和x2的串接,p是分片池化后得到的特征向量,vrelation是注意力機制中當前句子的隱藏狀態(tài),也是該句的關系向量,1 ≤i≤q,va是中間矩陣,α=[α1,α2,…,αq]是一個數據袋中所有實例句子的權重,整個數據袋的特征可以用如下公式計算:
現有方法計算vrelation借鑒了詞向量的運算思想,如v("king")-v("queen")=v("man")-v("woman")。選擇句子中頭尾實體的向量差vrelation=v(e1)-v(e2)(APCNNs)。該算法在實體間隔較長的句子中效果較好,但在一些間隔較短的句子中,詞向量運算產生的誤差會比使用描述關系部分的向量運算大。
為了更好地使用關系詞來描述實體間隔較短句子的vrelation隱藏狀態(tài),本文提出一種新的計算方法——關系詞向量加和(attention piecewise convolutional neural networks sum,APCNNs(s)),vrelation=∑v(qm),其中qm為e1、e2之間的單詞。該計算方法認為句子中關系總是出現在兩實體之間,因此使用了實體間詞語向量的加和獲得vrelation的向量,在詞語較少的句子中可以更好地使用每一個關系相關單詞的特征,如“IS_A”關系在句子通常表達為“is a”或“is the”,而v(is)+v(a)和v(is)+v(the)的向量相似度較高,因此可以使這樣的特征獲得更高的權重值,從而更準確地區(qū)分一個數據袋中真正描述關系的語句。
2.2.2 softmax層
本文加入softmax分類器計算每個合理關系的信任值:
式中,o是輸出,W是偏移值,令θ=(E,PF1,PF2,Wα,Ws)代表上述所有的參數,B代表一個數據袋,則該袋實體對是第i個本體關系的條件概率為:
本文利用了Dropout[21]的方法,在每次計算中隨機忽略隱藏層中一定比例的神經元,這樣可以避免隱藏層中各個神經元之間的相互作用,降低過擬合現象,提高模型的泛化能力。
本體提供了豐富的領域知識,包括實體的分層,以及最頂層實體間存在的關系。而現有模型沒有利用這一部分信息,造成了抽取到的一些關系不符合常識。因此為提高模型最終抽取關系的精準率,使最終抽取的關系均符合該領域的基本知識,本文提出了本體約束層。
本文利用了本體提供的層級及各層級之間的關系,將其視為一個約束R:令T=(E1,E2,…,En),T為本體中的概念樹,En為概念集合,如式(6)所示:
如果被抽取語句中的實體e1、e2滿足e1∈E1,e2∈E2,代表實體集E1、E2的關系集合,若,則在softmax層后保留該關系,否則將其信任度置0。
下面通過一個具體實例說明本體在遠程監(jiān)督關系抽取模型中的作用。以GoldStandard數據集為例,當識別句子“CONCLUSIONS:Human EPCs express functional PAR-1.”時,頭尾實體為“Stem cells#Receptor,PAR-1(干細胞#受體PAR-1)”,關系抽取模型得到的候選關系中,“PRODUCES”和“CAUSES”分數較高,二者含義也較為相近,但本體給出了實體層級“[stem cells]IS_A [Cell]”“[Receptor]”“[Receptor,PAR-1]IS_A[Receptor]”,在實體對“Cell#Receptor”中存在關系“PRODUCES”而不存在“CAUSES”,因此模型在最后預測時應當排除候選項“CAUSES”。
APCNNs(s)+OR模型采用交叉熵函數作為損失函數,假設每個實體對標注的關系為ri,模型抽取得到的關系為Bi,實體對總數為N,損失函數如式(7)所示:
其中,θ為模型參數。訓練階段采用隨機梯度下降的方法,每次迭代隨機選擇一小批數據集進行訓練,選擇Adam優(yōu)化算法最小化損失函數。
關系抽取的訓練語料應包含文本原句,頭實體和尾實體的類型及在文中出現的位置,句中包含的關系名,本文選擇了SemMed[22]中的數據作為訓練語料庫。SemMed數據庫是從所有pubmed文獻中提取的語義關系數據庫,該數據庫以“主語-謂語-賓語”的三元組形式存儲數據,符合訓練集的要求。本文選用的數據庫版本為semmedVER31_R(文獻收錄截止到2019年6月30日),為保證方法的時效性,選擇了數據庫最后122 167個實例作為訓練語料,68 011個實例作為測試語料。其中關系來源于UMLS關系語義網絡,包含54種關系頭尾實體,其來源于UMLS Metathesaurus[23]。
為了測試模型對句子中最主要關系的抽取結果,本文還選取了SemRep GoldStandard[24]數據集作為測試語料,該數據集的構建目的是為了驗證SemRep方法抽取實體和關系的準確性。GoldStandard是一個金標準的注釋研究,它包含從MEDLINE摘要中隨機選擇的500個句子,并從中人工提取了1 371個主要的關系預測,其實體和關系也遵循UMLs的索引。
本文采用精準率(precision,P)、召回率(recall,R)、F值來評價模型性能,三者的計算公式為:
本文檢索了PubMed中截至2019年6月的全部生物醫(yī)學文獻的摘要,使用python中gensim庫的word2vec包訓練詞向量,后進行歸一化,設置訓練參數如表1所示,其余數值為默認。
Table 1 Word embedding vector training parameters表1 詞嵌入向量訓練參數
訓練APCNNs模型的超參數如表2所示,其中詞嵌入向量維數為50,位置嵌入向量維數為5,詞向量總位數k=kw+2kd=60。
Table 2 APCNNs parameters表2 APCNNs參數
3.3.1 比較系統(tǒng)
本文提出的模型如下:
(1)APCNNs(s):使用卷積神經網絡和分片最大池化提取特征向量,加入本文改進的注意力機制,使用關系詞加和作為注意力機制隱藏層。
(2)APCNNs+OR(attention piecewise convolutional neural networks with ontology restriction):使用卷積神經網絡和分片最大池化提取特征向量,加入句子級注意力機制,加入了實體信息,最后加入本文提出的本體約束層。
(3)APCNNs(s)+OR:使用卷積神經網絡和分片最大池化提取特征向量,加入本文改進的注意力機制和本文提出的本體約束層。
為了驗證本文提出的關系抽取模型APCNNs(s)+OR的性能,與以下現有關系抽取模型進行比較:
(1)PCNN(piecewise convolutional neural network)[12]:分片最大池化的卷積神經網絡,引入了多示例學習,但會浪費數據袋中的句子信息。
(2)APCNNs[13]:在PCNN基礎上引入句子級注意力機制的方法,加入了實體的信息,但注意力機制中關系隱藏狀態(tài)向量計算不準確。
(3)RNN+Attention[10]:循環(huán)神經網絡引入注意力機制的方法,該方法有效地利用了順序信息,但沒有考慮句子中后面單詞對前面單詞的影響。
(4)biRNN+Attention[10],即雙向循環(huán)神經網絡引入注意力機制的方法,利用了句子雙向的順序信息,但易出現梯度消失和梯度爆炸的問題。
3.3.2 SemMed數據庫實驗
將本文方法和現有方法在SemMed數據庫進行實驗,繪制出的PR曲線如圖4所示??梢钥闯觯?/p>
(1)在P為0.80的前提下,本文提出的APCNNs(s)+OR的R可達0.85,高于APCNNs的0.81,證明本文方法可以增強實體關系抽取的覆蓋率。
(2)在R相同的情況下,本文方法APCNNs(s)、APCNNs+OR、APCNNs(s)+OR獲得的P也均高于現有的方法APCNNs、PCNN、RNN+Attention、biRNN+Attention,說明本文方法提高了關系抽取的準確性。
(3)由APCNNs和其他引入注意力機制的模型RNN+Attention、biRNN+Attention對比可知,分片最大池化卷積神經網絡在該任務上具有更好的特征提取效果。
(4)由APCNNs(s)和APCNNs實驗對比可知,使用關系詞向量加和作為注意力隱藏層的方法可以獲得數據袋中每個句子中更多的監(jiān)督信息。
(5)由APCNNs+OR和沒有加入本體約束層模型APCNNs的對比實驗可知,本體約束層可以有效約束抽取出關系的類型,提高模型抽取的準確性。
(6)將關系詞向量加和作為注意力隱藏層,和本體約束層同時引入,構成的模型APCNNs(s)+OR具有最好的抽取效果。
圖4各條曲線的最大F值點對應的P和R值如表3所示。從表3中可以看出,APCNNs(s)+OR具有最高的F值86.08%,高于APCNNs的82.23%,同時在最高F值的情況下,R值達到84.20%,P值達到88.06%,均高于其他模型。綜上所述,APCNNs(s)+OR在SemMed數據庫抽取關系實驗中具有最好的抽取效果。
Fig.4 PR curves of each model on SemMed dataset圖4 各模型在SemMed數據集的PR曲線
Table 3 Results of each model on SemMed dataset表3 各模型在SemMed數據集的結果 %
3.3.3 GoldStandard數據集實驗
GoldStandard數據集中出現的關系如下所示:在句子“The effect of mitomycin C was also evident in the normal size alleles in two cell lines with alleles of 13/13 and 12/69 repeats,where treated cultures showed new longer alleles.”中,人工標注的實體對為“mitomycin#alleles”,關系為“affect”,該關系即為句子的主要關系;而提出的實體對“alleles#cell”,關系“l(fā)ocation_of”即為次要關系。
在實驗中,本文首先使用了SemRep工具進行了命名實體識別,標注了句子中出現的所有實體。接著對這些實體抽取了關系,最后把結果與GoldStandard中人工標注的數據進行比對,PR曲線如圖5所示。
Fig.5 PR curve of each model on GoldStandard dataset圖5 各模型在GoldStandard數據集的PR曲線
由實驗可知:
(1)本文方法獲得的R高于現有方法,在P為0.60的前提下,APCNN(s)+OR的R可達0.63,高于APCNNs的0.57。這說明APCNN(s)+OR可以覆蓋到句子中更多的主要關系。
(2)在R相同的情況下,本文方法APCNNs(s)、APCNNs+OR、APCNNs(s)+OR獲得的P也均高于現有的方法APCNNs、PCNN、RNN+Attention、biRNN+Attention,說明本文方法提高了句子主要關系抽取的準確性。
(3)由APCNNs+OR和APCNNs模型的對比中可以看出,因為人工標注的實體關系嚴格符合本體中的關系約束,所以加入了本體約束層可以有效提高模型的準確率。
(4)由APCNNs和其他引入注意力機制的模型RNN+Attention、biRNN+Attention對比可知,分片最大池化卷積神經網絡在抽取句子主要關系的任務上也具有更好的特征提取效果。
(5)由APCNNs(s)和包含注意力機制的模型APCNNs對比可知,使用關系詞向量加和的注意力機制可以抽取更多的主要關系,這是因為該方法獲得了更多句子中主要關系的監(jiān)督信息,從而有效增加模型的準確率和召回率。
(6)將關系詞向量加和注意力隱藏層和本體約束層同時引入模型APCNNs(s)+OR,可以加強對句子中主要關系的抽取效果。
圖5的各條曲線的最大F值點對應的P和R值如表4所示。從表4中可以看出,APCNNs(s)+OR具有最高的F值62.07%,高于APCNNs的59.02%。綜上所述,APCNNs(s)+OR在GoldStandard數據庫抽取句子主要關系的實驗中具有最好的抽取效果。
Table 4 Results of each model on GoldStandard dataset表4 各模型在GoldStandard數據集的結果 %
本文針對本體關系抽取現階段存在的問題,提出了基于注意力機制的遠程監(jiān)督本體關系抽取模型APCNNs(s)+OR,該模型加強了對句子中實體間關系詞的學習,并充分利用了本體對關系實體間關系約束的信息,有效地降低了遠程監(jiān)督假設引入的噪聲干擾,提升了模型性能。為了驗證模型性能,本文基于UMLS醫(yī)學本體構建了實驗數據,使用GoldStandard數據作為驗證數據。實驗結果表明,相較于其他方法,該方法可以有效降低遠程監(jiān)督假設引入的噪聲干擾,以及句子中兩實體間的詞語信息干擾,抽取關系的性能更好。