曹春萍,何亞喆
(上海理工大學 光電信息與計算機工程學院,上海 200093)
隨著科學技術的不斷進步以及對生物醫學研究的逐漸深入,生物醫學文獻的數量隨之迅速增長.海量的生物醫學文獻中蘊含著豐富的生物醫學知識,這些知識對人類來說擁有難以估計的價值,它不但可以對現階段的醫學事業建設提供有效的幫助,也可以幫助人們構建一個覆蓋面廣且內容精準的醫學知識圖譜.因此,面向生物醫學領域的信息抽取技術成為了自然語言處理和生物信息等眾多領域研究成果之上的前沿學科.
針對生物醫學領域進行信息抽取的多個研究方向中,生物醫學中實體關系的抽取問題舉足輕重.目前,從非結構化文獻中提取化學物質和疾病的關系(Chemical Disease Relation,CDR)引起了越來越多研究人員的關注.化學物質和疾病之間的關系對于許多生物醫學應用是至關重要的,例如藥物警戒、藥物重新定位和構建生化網絡等[1],通過這些知識網絡能夠加強人們對藥物與疾病關系的定義和認知,能夠針對疾病更加精準的使用化學物質,從而有效且高效的達到治療效果.化學物質與疾病的關系成為研究的熱點后,多種應用于化學物質誘導疾病(Chemical-induced Disease,CID)關系抽取的模型數量逐漸增多,人們利用專業知識標注制作了特征更多的特征集,渴望提高針對化學物質與疾病的關系抽取效果,但是仍存在一些不足,例如不能充分使用特征信息導致模型性能不佳的情況等.綜上所述,結合現階段生物醫學關系抽取任務的發展趨勢和其中仍存在的問題可以發現,生物醫學文獻中針對化學物質與疾病的實體關系抽取方法依然具有很大的研究價值.
在過去的幾年中,人們通過各種方法進行化學物質和疾病的關系抽取,主要包括三大類方法:基于統計的方法、基于規則的方法和基于機器學習的方法.Chen等人[2]利用文本挖掘和統計技術,采用共現統計方法計算并評價每種疾病與相關藥物之間的關聯強度,生成疾病藥物對的排序列表.Mao等人[3]使用基于統計的方法,在社交媒體中研究藥物的不良反應,分析藥物與疾病的關系.通過統計的方法研究化學物質與疾病的關系,通常實驗結果會有較高的召回率,但是精確度會比較低,不能滿足構建醫學知識圖譜的要求.Khoo等人[4]使用基于規則的方法,利用根據句法分析樹手工構造的圖形模式來提取MEDLINE摘要中的因果關系,提取與解析樹匹配的部分作為原因或結果.Xu等人[5]設計了一種系統,通過從包含已知藥物副作用對的句子中學習句法模式,從生物醫學文獻中提取藥物副作用.基于規則的方法過于耗時,需要耗費大量的人工對語料進行標注,并且在一個語料庫上手動構建的規則不適用于另一個語料庫,泛化能力較弱.
機器學習在近些年開始成功應用于實體關系抽取的相關研究,傳統的方法不僅消耗人力和時間,并且在特征提取方面也容易產生誤差從而影響最終的抽取效果,與之相比機器學習的抽取算法不僅更加高效便捷,并且能夠更好地利用文本的結構信息,一些學者將關系抽取問題看作是多分類的問題.Zhou等[6]人采用基于核的支持向量機(SVM)方法,通過捕獲化學物質與疾病間的句法關聯來完成關系抽取.Xu等[7]人開發了一個基于支持向量機的系統,在句子級和文檔級將豐富的基于知識的特征輸入到兩個支持向量機中,在BioCreative V CDR挑戰中排名第一.Zhou等[8]將長短期記憶網絡(LSTM)網絡和基于核的支持向量機模型結合使用,使用支持向量機捕捉句法特征,使用長短期記憶網絡捕捉潛在的語義特征.Zeng等[9]人將卷積神經網絡用于關系分類的任務中,引入了詞的位置特征,使用softmax分類完成關系抽取任務.這些模型雖然在綜合性能上有了很大的提升,但是仍存在句子長度過長和成分更加復雜導致的特征丟失情況,影響到最終的關系提取效果.
針對化學物質與疾病的關系抽取,標準數據大都是PubMed文獻的題目和摘要,存在著大量復雜句.例如,有些句子長度超過60詞且具有多個從句和復雜的并列關系,如果僅僅從原句層面去提取特征,一定會存在特征提取不全、噪聲過多等問題.本文針對長文本中實體數量眾多且實體關系復雜的情況建模研究,提出將雙向簡單循環神經網絡[10]與帶注意力機制[11]的卷積神經網絡[12]相結合實體關系抽取模型,充分學習文本中的長距離依賴信息和句中實體的多種特征信息,解決特征提取不全導致的關系抽取效果不佳.實驗結果表明,本模型對醫學文獻中化學物質與疾病關系的抽取具有優秀的表現.
基于BSRU和ATT-CNN的實體關系抽取的模型(如圖1所示),首先將標注后的生物醫學文獻映射為詞向量輸入到BSRU中,BSRU模塊負責將文本中實體的語義特征、位置特征、上下文信息特征等多種實體特征表示為向量形式,隨后將向量傳入ATT-CNN模塊中,注意力機制根據文本的多種信息特征結合語義特征分配不同權重,減少并列實體關系的影響,CNN模塊使用多個大小不同的卷積核進行學習計算,充分學習文本中的長距離依賴信息特征和句中實體的多種特征,分段池化減少特征的丟失,進一步提升關系抽取的精準性.最后通過softmax進行歸一化處理,與關系類別的標簽對應后完成關系抽取任務.

圖1 模型流程圖
針對句子長度較長、并列關系較多的復雜情況,使用BSRU將文本句子轉換為句子矩陣,引入位置特征、語義特征、上下文信息特征等多個實體特征,保證在學習提取時將文本信息使用最大化,減少有效特征的丟失,從多個角度提升關系抽取的精確性.
3.1.1 詞向量表示
詞向量表示是自然語言處理中一組語言建模和特征學習技術的集合名稱,它通過對詞語的上下文建模來構造包含語義信息的詞向量表示.一個句子包含l個詞,每個詞會被轉化成一個d維的向量,此句子就可以表示為S=[w1,w2,…,wi,…,wl]T.其中wi∈Rd對應句中第i個詞的d維詞向量.
3.1.2 位置特征
在一個句子中,兩個實體的關系往往存在于它們之間且與它們的距離與其他實體對相比要近很多,所以本模型中在特征向量中加入了詞語的位置特征,提高模型抽取實體關系的準確性.例如句子“Lithium carbonate may be a factor in the increasing incidence of congenital heart disease when taken during early pregnancy.”句中化學物質為“lithium carbonate”,疾病為“congenital heart disease”,單詞“increasing”與兩個實體的距離分別是-7、3,這兩個到實體的距離會被映射成兩個dl維度的向量d1,d2,隨后拼接成一個可表示關系詞語位置特征的位置向量L=[d1,d2].
3.1.3 上下文信息特征
簡單循環網絡(SRU)基于循環神經網絡(RNN)進行改進.SRU和RNN之間的主要區別是隱藏層中添加的“單元狀態”部分,該部分用于判斷和過濾培訓過程中的有效信息.由于RNN存在梯度消失問題,故當一個句子較長時,RNN便不能很好的學習到遠距離的依賴信息.為了解決這個問題,在學習遠距離依賴方向表現優秀的長短期記憶網絡[13](LSTM)被提出.LSTM通過三個門函數實現對句子信息的遠距離學習,包括輸入門,輸出門和遺忘門,輸入門決定在當前時刻將那些新的信息有選擇性的記錄到細胞狀態中,輸出門負責將當前時刻的信息輸出到隱層中,遺忘門負責將細胞狀態中的信息選擇性的遺忘,保留重要的,遺忘相關度較低的.LSTM因參數較多且計算復雜導致難以訓練.門控神經單元(GRU)大幅簡化了LSTM的結構,將LSTM模型中的遺忘門和輸入門合并成單一的更新門,是目前應用最廣泛的簡化變體之一.GRU與LSTM相比得到了簡化,但是在GPU上面計算時仍然存在效率不高的情況,這主要是因為GRU的前后兩個時刻的計算存在依賴性.所以SRU去掉了前后時刻計算的依賴,實現并行計算從而獲得更高的加速比,并且在計算的精度上并沒有降低.由于單向SRU只能學習到前文或者下文的信息,所以本模型使用BSRU(如圖2所示),學習文本的上下文信息.

圖2 SRU原理圖Fig.2 SRU schematic
SRU模型中包括了兩個門函數:遺忘門和重置門.將學習過程拆分成兩次,分別使用單向的SRU學習上文和下文的信息.學習上文信息時,每一個詞語wi都需要學習該詞語前一個詞匯的詞向量及其上文信息向量,在這里用p(wi-1)表示詞向量,用c(wi-1)表示上文的信息向量.SRU的計算流程如下:
g(t)=Wxt
(1)
ft=σ(Wfxt+bf)
(2)
rt=σ(Wrxt+br)
(3)
ct=ft⊙ct-1+(1-ft)⊙g(t)
(4)
ht=rt⊙g(ct)+(1-ft)⊙xt
(5)
上式中xt代表t時刻的輸入;gt是對輸入做了線性變換;W、b代表權重和偏置向量;ft代表t時刻的遺忘門(forget gate);rt代表t時刻的重置門(reset gate);ct和ht分別代表t時刻的狀態和最終的輸出;σ和g分別代表Sigmoid函數和激活函數(tanh、ReLU);公式中的⊙代表向量對應元素相乘.
在本模型中,輸入xt是上一個詞語的詞向量和上文信息向量拼接而成,即p(wi-1)⊕c(wi-1).下文信息學習的過程與前文相似,使用后向的SRU對下文信息進行學習,這需要先對最后一個詞進行學習,隨后在逐個向前,此時公式變為:
g(t)=W[p(wi+1)⊕c(wi+1)]
(6)
ft=σ(Wf[p(wi+1)⊕c(wi+1)]+bf)
(7)
rt=σ(Wr[p(wi+1)⊕c(wi+1)]+br)
(8)
ct=ft⊙ct-1+(1-ft)⊙g(t)
(9)
ht=rt⊙g(ct)+(1-ft)⊙[p(wi+1)⊕c(wi+1)]
(10)
這樣,我們就得到了每個詞語的詞向量及它對應的上文信息向量和下文信息向量,再將這些信息與每個詞語的位置向量進行拼接,即可得到包含多種句子特征信息的特征向量.
此模塊主要由兩個部分構成,即注意力機制(Attention)和卷積神經網絡(CNN).ATT-CNN模型就是將Attention加入到CNN的輸入層和卷積層之間,使用Attention根據多種信息特征結合語義特征為文本中的實體分配不同的權重,減少由于其他實體關系并列存在而造成的干擾,CNN在卷積層使用不同大小的卷積核同時進行卷積,提取更多更全的信息,池化層采用分段池化策略,減少信息丟失,保留更多的重要文本特征.最后經過softmax的分類器進行歸一化處理,完成實體關系的抽取.
3.2.1 注意力機制
深度學習中注意力機制的本質來自于人類視覺注意力機制.注意力機制在機器翻譯和自然語言處理方面最為流行,這得益于它可以幫助記憶長序列的句子輸入,與傳統方法借助最后一個隱藏單元的輸出構建單一上下文向量相比,注意力機制為上下文向量和所有序列輸入的信息建立連接.所有的輸出元素下的連接權重都是通過自動學習得到的,上下文向量因為考慮了整體輸入序列信息,故不存在丟失的問題.本模型在輸入層和卷積層之間加入注意力機制,根據多種信息特征結合語義特征減少噪聲干擾.
注意力機制大多數依附于Encoder-Decoder框架,編碼器層負責將輸入的原始語句經過非線性變換轉化成中間語義表示,解碼器層負責將中間語義和之前生成的歷史信息轉換成目標結果.在計算 Attention 時首先將Query和Key進行相似度計算得到權重,隨后將所得到的權重進行歸一化處理,常用softmax函數,最后將權重和對應的鍵值 Value進行加權求和得到Attention.注意力機制的計算過程如下:
f(Q,Ki)=Wa[Q;Ki]
(11)
(12)
Attention(Q,K,V)=∑iaiVi
(13)
在本模型中,將帶有多種信息特征的句子矩陣輸入進Attention中,將每個詞結合其語義與目標關系進行相似度匹配,經過加權求和得到實體對間關系的注意力值,即權重.權重更高的實體關系能夠正確體現目標關系的可能性就更高,達到減少并列實體關系噪聲干擾的效果.
3.2.2 卷積神經網絡
卷積神經網絡是包含卷積計算且具有深度結構的前饋神

圖3 卷積神經網絡結構圖Fig.3 CNN Structure diagram
經網絡,是深度學習的代表算法之一,具有參數共享、稀疏連接和平移不變性等特性.本模型中的卷積神經網絡(如圖3所示)使用不同大小的卷積核進行卷積操作,學習數據特征,通過分段池化操作提取特征中的最有效的特征,同時減小過擬合.每一次卷積和池化操作后,即可得到一個包含文本特征的特征矩陣,隨后將多個包含不同信息的特征矩陣集成即可得到一個特征更全面的矩陣.卷積神經網絡一般情況下分為輸入層、卷積層、激勵層、池化層、全連接層,每一層在本文模型中的詳細作用如下:
1)輸入層.該層主要是接收經過Attention模塊篩選過的帶有多種信息特征的句子矩陣,該矩陣是由n個帶有多種信息特征的單詞組成.單詞xi與句子S表示如下:
Xi=[c(wi);l(wi);p(wi)]
(14)
S=[x1,x2,…,xn]T
(15)
其中c(wi)表示單詞的詞特征,l(wi)表示單詞的位置特征,p(wi)表示單詞的上下文信息特征.
2)卷積層.該層使用卷積窗口進行卷積運算,學習數據特征,每一個卷積窗口都有一個權重為W的卷積核.在本模型中卷積核使用多種大小不同的卷積核,這樣可以保證學習到多種特征,所有的步長都設置為1,對于超過的邊界的特征也會進行擴充,把所有的擴充值設置為0向量.卷積核的權重隨機設置初始值,會隨著訓練調整到最佳.經過不同大小的滑動窗口的一系列卷積操作后,實體間的多種特征會被提取出來.卷積層的數學表達式:
(16)
上式中,f(x)表示激活函數;b為偏置;ωn,m表示卷積核(n,m)位置對應的權值;N,M是卷積核的長和寬;u表示上一層的輸出.
3)激勵層.激勵層的作用主要是將卷積層的輸出結果進行非線性映射,用來確定傳給后續神經元的刺激大小.本模型中采用的激勵函數是ReLU,該函數的特點是收斂快,求梯度較為簡單.ReLU函數數學表達式為:
f(x)=max(0,x)
(17)
4)池化層.池化層在連續的卷積層中間,用于壓縮數據和參數的數量,減小過擬合,便于以后的優化.常見的方法都是最大池化策略,使用該方法即可在每一個卷積核學習的特征中選擇出最大值,提取出最有效的特征.但是在多實體多關系的抽取中,最大池化策略不能很好的學習到每一個實體關系的結構信息.所以本文采用分段最大池化策略的方法,將每一個卷積核提取的特征值以兩個目標實體將整句分割成為三段,分別取每一段中的最大值,最后對這些最大值進行拼接作為最終的特征向量.
pij=max(cij)
(18)
其中,i∈[1,n],j∈[1,3],最終的特征向量為pi={pi1,pi2,pi3}.
5)全連接層.全連接層在整個卷積神經網絡負責將前層學習到的“分布式特征表示”映射到樣本標記空間,但是全連接層參數冗余,全連接層的參數數量可以占到整個神經網絡參數總數的80%,這會消耗大量的內存,影響模型的性能.本文使用全局平均池化層(GAP)取代全連接層(FC).GAP可以直接用特征圖表示某個類的置信度,可以有效的減少參數數量,降低過擬合發生的概率.
3.2.3 softmax分類
模型最后是softmax分類層,使用該模型進行分類.本文將實體關系抽取視為多分類任務,關系類別的標簽會對應多個不同的值,需要計算模型輸出的分類特征與每一種關系的匹配分數:
o=Wφ+b
(19)
上式中,o表示與目標關系的匹配分數,W表示權重矩陣,φ表示輸出層輸出的分類特征,b為偏置向量,則第i種關系的概率條件是:
(20)
上式中T為句子矩陣的集合,θ為模型參數的集合,n為關系總數.
實驗使用BioCreative V的CDR語料庫與CTD數據庫評估本文模型.該語料庫包括1500篇PubMed文章,1000篇構成訓練集和開發集,500篇構成測試集.語料中共標注了15935個化學物質,12850個疾病和3116個化學物關系.語料中還根據醫學主題詞概念標識符(MeSH)為相同醫學實體進行歸一化處理,避免了將同一實體識別成為不同實體的錯誤,例如文本“Naloxone reverses the antihypertensive effect of clonidine.”,數據集標記出“Naloxone”的類型、位置、長度、是否是醫學主題詞等多個屬性,數據實例如圖4所示.
4.2.1 實驗過程
實驗的第一步是數據處理,使用word2vec工具和Skip-gram模型將數據集中的文本轉換成詞向量表示,詞向量維度設置為50維.第二步將訓練后的詞向量輸入到BSRU模塊中提取文本單詞的語義特征、位置特征、上下文信息特征等,特征向量的維度以最大的向量維度為準,其他向量不足時用0向量填充.BSRU將所有逐元素相乘的操作放入一個核函數中,使模型計算效率明顯提高,大幅加快了模型的訓練速度.第三步將多種詞特征拼接后輸入到ATT-CNN模塊,注意力機制根據多種特征信息結合語義給予目標關系更高權重,降低其他并列實體關系對化學物質與疾病關系抽取的干擾,CNN模塊卷積層使用多個不同大小的卷積核對多種詞特征進行學習計算,卷積核的權重矩陣值,初始值隨機生成,隨著訓練進行改變,在同一個特征映射矩陣中使用相同卷積核,減少參數的訓練時間.經實驗驗證使用多個不同大小的卷積核的CNN能夠有最佳的表現,卷積核的大小設置為3、5、7.池化層使用分段池化策略,在降低維度的同時能夠最大化的保存文本特征.實驗最后使用softmax分類器完成關系分類,完成關系抽取任務.實驗中主要參數如表1所示.
表1 實驗參數表
Table 1 Experimental parameters table

參數名稱 參數值 學習速率0.001 Dropout0.5 Batch_size32 詞向量維度50 卷積核大小3-7 優化函數Adam模型優化器
4.2.2 評價標準
本實驗采用在實體關系抽取任務中通用的評價標準準確率P、召回率R和F1(F-measure)來對模型的性能進行評估,各個指標的計算公式如下:
(21)
(22)
(23)
其中,F1值用來衡量模型的整體性能.
為了探索實驗模型在生物醫學領域的抽取效果,本文設置了多個對比實驗,從多個角度驗證模型的有效性.
1)使用不同大小的卷積核進行對比
表2 不同大小的卷積核對比實驗結果(%)
Table 2 Comparison of experimental results of
convolution kernels of different sizes(%)

模型 準確率召回率F1值卷積核為364.360.762.4卷積核為566.062.163.9卷積核為765.263.664.5卷積核為3-767.164.865.9
從表2可以看出,不加入注意力機制時,使用相同大小的卷積核,核大小為5時關系抽取的準確率最高,核大小為7時關系抽取的召回率最高,核大小為7時模型的整體性能最好.研究發現核大小為5比核大小為3時可以收集到更多的特征和邊界信息,因此抽取結果的準確率有了相應的提高,但是當核大小到達7時,模型的準確率反而有了一定的降低,這是因為隨著核大小的增加收集到的噪聲也會變多,過多的噪聲影響到實體關系抽取結果的精準性.另一方面,模型的召回率隨著卷積核大小變大而提高,究其原因是大尺寸的卷積核擁有更大的感受野,減少了由于短語過長而導致的特征丟失.故本模型使用不同大小的卷積核,使用核大小為3、5、7同時對文本進行特征學習和提取,將學習到的特征進行綜合加權,可以使學習到的特征更有代表性,多種特征的組合可以更有效的表達特征間的關系,能夠提取到更多的邊界特征,與單一大小的卷積核模型進行比較,本文模型在準確率和召回率兩方面均有更加優秀的表現.
2)注意力機制對模型表現的影響
表3 加入注意力機制的對比實驗結果(%)
Table 3 Comparison of experimental results with
attention mechanism(%)

模型 準確率召回率F1值BSRU+CNN67.164.865.9BSRU+ATT-CNN71.469.270.3
實驗首先使用BSRU學習文本的多種特征信息,將多種特征用向量表示,隨后分別使用CNN和ATT-CNN對帶有多種特征的文本卷積提取特征,完成關系抽取任務.由表3可以看出加入注意力機制的模型性能在準確率和召回率都有了一定的提高,這是因為注意力機制可以為目標實體關系給予更高的權重,減小其他并列關系對提取結果的噪聲影響,從而使抽取結果更優.
3)本文模型與其他模型的對比
表4 與其他模型實驗的對比結果
Table 4 Comparison with other model experiments

模型 準確率召回率F1值啟發式規則[14]59.362.360.8ME[15]62.055.158.3CNN+ME[16]60.959.560.2LSTM+SVM+PP59.668.463.7SVM+KBs[17]68.266.067.1BSRU+ATT-CNN71.469.270.3
表4中第一種方法使用基于規則的傳統方法進行關系抽取,達到了60.8%的F1值.這種方法擁有一定的競爭力,但是由于規則依靠人工制定,導致此方法過于消耗時間和人力資源.第二種方法使用最大熵模型分別構建句內分類器和句間分類器,提出一種基于層次化的特征提取方法,是機器學習應用在關系抽取的較好嘗試,模型在準確率方面表現優秀,在召回率方面表現相對較差.第三種方法使用上下文依存表示的卷積神經網絡加上最大熵模型構建的關系分類器,可以更加準確的捕獲實體關系的語義特征,最終達到了60.2%的F1值,與之前的機器學習方法相比有了更好的效果.第四種方法提出將LSTM與SVM結合的復合抽取模型,先分別使用LSTM和SVM抽取關系,再將它們的抽取結果進行線性融合,模型的召回率有了可觀的提升,F1達到了63.7%,體現出循環神經網絡對關系抽取的有效性.第五種方法使用SVM分類器加上多種統計特征、語言學特征和CTD知識庫特征,擴充了訓練實例和特征集,由于獲取到的特征更多,使抽取的準確率有了較大的提升,F1值取得了67.1%的優秀表現.本文模型使用BSRU學習文本多種特征,ATT-CNN在減少噪聲影響后使用不同大小的卷積核學習文本的多種特征,分段池化后通過分類完成關系抽取,與其他幾種方法相比,模型可以獲得更多的文本特征,降低噪聲對抽取目標關系的影響,減少信息丟失,使準確率和召回率均有相應提高,驗證了本文模型在生物醫學文獻中實體關系抽取的較好效果.
生物醫學領域文獻中的實體關系抽取仍存在許多問題,本文從其中的一個角度出發,針對句子較長且實體關系復雜的問題,提出了一種使用雙向SRU與ATT-CNN結合的模型,BSRU學習長文本的遠距離依賴信息和多種詞特征,ATT-CNN使用不同大小的卷積核卷積學習,為解決由于文本過長導致噪聲增多,提取特征不全面的問題提供了一種較好的方法,使針對生物醫學文獻中化學物質與疾病的關系抽取效果有了一定的提升.