馮靖焜,楊志豪,羅凌,林鴻飛,王健
(大連理工大學 計算機科學與技術(shù)學院,遼寧 大連 116024)
隨著生物醫(yī)學領(lǐng)域文獻數(shù)目的迅速增長,大量的生物醫(yī)學知識蘊含其中。調(diào)查表明,化學物質(zhì)(藥物)、疾病以及二者間的關(guān)系是PubMed用戶最常搜索的主題之一[1-2],這反映出化學物(藥物)-疾病關(guān)系(Chemical-disease relation,CDR)在生物醫(yī)學和醫(yī)療健康等領(lǐng)域的重要意義[3]。例如,藥物具有兩重性,一方面可以防病治病,促進患者生理機能的恢復,另一方面也可能引起危害人體的藥物不良反應,藥物副作用(adverse drug reaction,ADR)成為困擾病人、醫(yī)療服務提供者、監(jiān)管機構(gòu)和藥品制造商的一個非常嚴重的問題,給社會、家庭造成沉重的經(jīng)濟負擔。據(jù)有關(guān)資料評估,中國每年約有5 000萬人住院,其中至少250萬人(20%)是因ADR住院,50萬人是嚴重的ADR,每年死亡約19萬人,從而增加醫(yī)藥費近40億元。近年來,人們越來越注重從非結(jié)構(gòu)化文本中提取結(jié)構(gòu)化的CDR,一些通過人工標注而構(gòu)建的生物醫(yī)學數(shù)據(jù)庫如CTD(Comparative Toxicogenomics Database)應運而生[4]。然而,生物醫(yī)學文獻迅速增長的需求,與需要耗費大量人力、物力而且耗時的人工標注之間存在矛盾。因此,利用文本挖掘技術(shù)從生物醫(yī)學文獻中自動抽取CDR信息對于生物醫(yī)學研究而言具有重要意義。
BioCreative評測是國際上用于生物自然語言處理研究的重要評測[5]。其中,化學物致病(Chemical-induced disease,CID)關(guān)系抽取是BioCreative V評測任務中有關(guān)關(guān)系抽取的一項子任務[3]。該任務以來自PubMed文章的標題和摘要為輸入,要求參加評測的系統(tǒng)從輸入文本中抽取并返回具有CID關(guān)系的化學物-疾病實體對。與先前的句子級別的生物關(guān)系抽取任務(如蛋白質(zhì)交互關(guān)系抽取,藥物關(guān)系抽取等任務[6-7])不同的是,CDR抽取任務是文檔級別的關(guān)系抽取任務,即對出現(xiàn)的CID關(guān)系在文檔級別進行標注,而不指明關(guān)系所在的具體句子。圖1展示了CDR數(shù)據(jù)集中一篇文檔標注示例,首先給出了該文檔相應的PubMed編碼以及題目和摘要,然后人工標注出了化學物、疾病實體以及其相應的醫(yī)學主題詞概念標識符(Medical Subject Headings Concept Identifiers,MeSH?IDs)[3]。從圖1可以看到文檔級別的關(guān)系抽取,不僅有句子內(nèi)的CID關(guān)系,還存在跨句子的CID關(guān)系(例如“AMNS-FSGS”)。
Fig.1 CDR labeling example圖1 CDR標注示例
目前在CDR任務上,很多研究者將CID關(guān)系分成句內(nèi)和句間兩部分,然后對這兩部分分別訓練模型,作出判斷后返回融合后的結(jié)果。例如,Xu等人使用豐富的基于知識的特征,分別訓練了文檔級和句子級的支持向量機(SVM)分類器[8]。Gu等人則使用詞法、句法等特征,分別訓練了文檔級的最大熵(ME)模型和句子級的卷積神經(jīng)網(wǎng)絡(CNN)模型,并運用了規(guī)則預處理和后處理來進一步提高關(guān)系抽取性能[9]。在對關(guān)系示例進行構(gòu)造時,大部分研究者假設(shè):若一篇文檔中兩個實體存在CID關(guān)系,那么該文檔中任何包含這兩個實體的句子均被認為是表達了這種關(guān)系[9-10]。此外,有少部分研究者直接忽略了句間部分的CID關(guān)系[11]。然而,基于上述假設(shè)構(gòu)造的關(guān)系示例會引入大量噪音,這是因為并不是所有提及實體對的句子均表示了實體對間的關(guān)系。
從圖2可以看出,盡管“hypertensive”與“dobutamine”間存在CID關(guān)系,但是僅a句表達了這種關(guān)系。若根據(jù)上述提到的假設(shè),將b句作為正例參與分類器的訓練,那么這種噪音會干擾分類器,導致其性能下降。為了緩解這個問題,本文借鑒多示例學習的思想來進行文檔級別的化學物致病關(guān)系抽取。
多示例學習[12]思想由Dietterich等人首次提出,并率先被用于預測藥物分子活性。多示例學習的假設(shè)是將樣本集看作是一個包含了很多包的集合,每一個包中包含了若干數(shù)量的示例,每個包中的示例數(shù)量是任意的。當且僅當一個包中最少有一個示例為正時,這個包是正包;反之,是負包。近年來,多示例學習框架也被廣泛應用在基于弱監(jiān)督的關(guān)系抽取方法中[13-16]。
Fg.2 Example with noise圖2 包含噪音的示例
針對現(xiàn)存CID關(guān)系抽取方法構(gòu)建訓練樣本正負例引入大量噪聲的問題,本文提出了一種基于多示例學習卷積神經(jīng)網(wǎng)絡(multi-instance convolutional neural network,MICNN)的方法來抽取文檔級別的化學物致病關(guān)系。將每個樣本(一對候選化學物-疾病實體對)看成是一個包,候選實體對所在文檔中的共現(xiàn)句子被當作它的示例。對于跨句子的實體對,則將兩個實體所在句以及介于二者間的句子合并作為它的一個示例,然后使用MICNN模型對每個包進行分類,預測是否存在CID關(guān)系。實驗結(jié)果表明,相比其他現(xiàn)有方法,MICNN僅使用了詞向量特征、位置特征和實體特征三種基本特征,就在BioCreative V CDR任務提供的測試集取得很好的性能表現(xiàn),F值達到了62.7%。
本文方法的流程圖如圖3所示主要包括三個階段。在預處理階段,首先根據(jù)CDR語料的實體標注,為每對候選化學物-疾病實體對構(gòu)造對應的實體共現(xiàn)句集合(即多示例學習中的包),然后使用生物主題詞表(medical subject headings,MeSH)制定規(guī)則進行過濾。在關(guān)系抽取階段,使用MICNN模型進行文檔級的CID關(guān)系抽取。后處理階段,使用簡單而有效的啟發(fā)式規(guī)則來進一步提高關(guān)系抽取性能。下面將對每個階段進行細節(jié)描述。
Fig.3 Method flow chart圖3 方法流程圖
1.1.1 構(gòu)造候選實體對包
在關(guān)系抽取之前,需要構(gòu)建用于訓練,驗證和測試階段的候選實體對包。首先根據(jù)CDR語料中的實體標注信息生成候選化學物-疾病實體對。假設(shè)一篇文檔中存在a個不同的化學物實體和b個不同的疾病實體,那么可以從該文檔中生成a×b個候選化學物-疾病實體對。
然后為每對候選實體對生成相應的包。在多示例學習中,包為多個示例的集合[12]。對于每對候選實體對,本文根據(jù)以下規(guī)則生成相應的示例:對于句間實體對,實體1所在句、實體2所在句以及這兩句間的所有句子一同合并作為該實體對的一個示例;對于句內(nèi)實體對,該實體對共現(xiàn)所在句作為其一個示例。根據(jù)上述規(guī)則,可為候選實體對產(chǎn)生這篇文檔中的所有示例,其示例集合為該實體對的包。
最后根據(jù)CID關(guān)系標注信息為生成的包打上正或負的標簽。在多示例學習中,標簽僅與包對應,包中的示例并無標簽[12]。若包對應的候選實體對存在CID關(guān)系,該包為正包;反之則為負包。
1.1.2 上位詞過濾
在某些情況下,相同類型的實體概念間存在上下位關(guān)系,即一個概念從屬于另一個更一般的概念。CDR任務要求提取最具體的化學物和疾病間的關(guān)系,這要求研究者應該只關(guān)注下層概念間的關(guān)系,忽視上位概念間的關(guān)系[10]。例如下面的句子:
a) Carbamazepine-induced cardiac dysfunction.
b) A patient with bradycardia and atrioventricular block, induced by carbamazepine, prompted an extensive literature review of all previously reported cases.
上面兩句話摘自同一篇文章(PMID:1728915)。句a和b分別是文章的標題和部分摘要,其中“Carbamazepine”和“carbamazepine”是同一化學物實體(C1);疾病實體則為“cardiac dysfunction”(D1)、“bradycardia”(D2)及“atrioventricular block”(D3).句中存在三種CID關(guān)系,分別為C1-D1,C1-D2,C1-D3。D1是D2和D3的上位詞,因此后兩種關(guān)系要比第一種關(guān)系更為具體,根據(jù)CDR語料的標注準則[17],僅C1-D2,C1-D3應被標為正例。
然而,從關(guān)系抽取的角度來看,句a是表達CID關(guān)系的常用句式,若在訓練中將它看作負例,那么它會干擾分類器,導致其性能下降。因此在該階段,本文參照Gu等人的方法[9],利用MeSH詞典尋找并過濾了上位概念關(guān)系的負例。如上面的例子,C1-D1關(guān)系被直接過濾。
本文提出的MICNN模型將候選化學物-疾病實體對(e1,e2)及對應的包作為輸入,最后輸出一個二維向量來判斷實體對間是否存在CID關(guān)系。圖4所示為MICNN整體結(jié)構(gòu)圖。該模型主要分為三個部分:(1)示例級別特征抽取;(2)多示例池化;(3)二元關(guān)系分類,具體介紹如下。
Fig.4 MICNN structure diagram圖4 MICNN結(jié)構(gòu)圖
1.2.1 示例級別特征抽取
該過程為包中示例生成矢量特征。本文定義單示例的最大長度為h,長度小于h的示例用0填充至h,長度大于h的示例則被截斷。對包中的每個示例,本文使用卷積神經(jīng)網(wǎng)絡進行特征抽取,該網(wǎng)絡包括表示層,卷積層和池化層。圖5對該過程的具體流程進行展示。
Fig.5 Instance level feature extraction圖5 示例級別關(guān)系抽取
1.2.1.1 表示層
在對每個示例進行輸入表示的過程中,本文使用了以下三種特征:
(1)詞特征:將示例中的每個單詞映射成dw維的詞向量,最終獲得詞向量矩陣Ew,即詞嵌入。為了獲得高質(zhì)量的詞向量,本文以disease和chemical為關(guān)鍵字,從PubMed上下載了200 000篇摘要,然后利用word2vec[18]工具進行訓練,最后獲得了200維的詞向量表示。
(2)位置特征:對當前示例對應的兩個實體出現(xiàn)的位置用整數(shù)進行標記。下面以化學物實體為例對標記過程進行說明:首先以化學物實體所在位置為原點,將其標記為0。對于該實體以前的單詞,位置標記隨著與原點距離的增加依次減1;對于該實體以后的單詞,位置標記隨著與原點距離的增加依次加1。然后按照預先為[-h,h]間的所有整數(shù)隨機初始化的dp維向量表,將標記中的每個整數(shù)映射成dp維的向量,即位置嵌入。最終,每個示例擁有兩個分別表示化學物實體和疾病實體位置特征的位置矩陣Ep1和Ep2.
(3)實體特征:對當前示例中出現(xiàn)的所有化學物和疾病實體的所在位置用整數(shù)進行標記。若當前位置為化學物實體,則用1標記;若為疾病實體,則標記為2;若未出現(xiàn)實體,則標記為0。為每個標記隨機初始化一個de維的向量后,根據(jù)標記情況對其進行實體標記嵌入。最終獲得實體標記矩陣Ee.
最后將以上三種特征矩陣進行拼接,得到矩陣X=[Ew,Ep1,Ep2,Ee] 作為示例的輸入表示。其中,ds=dw+2dp+de.
1.2.1.2 卷積層
卷積運算旨在從輸入矩陣X中提取特征,公式如下:
(1)
其中,W∈wc×ds是卷積矩陣,wc是卷積窗口大小,b為偏置值;f()是激活函數(shù),本文使用ReLU作為卷積層的激活函數(shù)。為了學習更高層的特征,連續(xù)使用了兩層卷積層。它們的卷積窗口大小分別為wc1和wc2,那么兩次卷積完成后,得到一個特征映射c=[c1,c2, …,c(h-wa+2)],其中,wa=wc1+wc2。為了從每個示例中抽取出n個特征,本文在每層卷積層中均設(shè)置了n個權(quán)重不同的卷積窗口。最后得到特征集矩陣C∈n×(h-wa+2).
1.2.1.3 全局池化層
為了捕獲全局最重要的特征,在卷積層后進行全局最大池化,公式如下:
pij=max(cij) ,
(2)
其中,1≤i≤n, 1≤j≤h-wa+2。池化完成后,將特征集中的每個特征拼接起來,最終得到當前示例的特征表示p∈n.
1.2.2 多示例池化
根據(jù)多示例學習的思想,同一包的所有示例共同表示了對應候選實體對的關(guān)系,因此有必要在多示例間抽取跨示例信息。在上節(jié)中,盡管已經(jīng)將包中的每個示例均表示成了n維的特征向量p,但并未充分考慮示例間的信息。
(3)
由(3)可以看出,多示例池化融合了所有實例的特征,構(gòu)造出實體對級別的特征,從而使分類器可以根據(jù)來自不同示例的多個特征對同一實體對進行預測。
1.2.3 二元關(guān)系分類
在本文中,將CDR任務定義成一個二分類問題,因此在獲得實體對級別的特征表示后,又經(jīng)過一個全連接層來學習更高層次的特征,最后使用Softmax層進行分類。
在Softmax層,首先計算每個標簽的置信值:
o=Woutv+bout,
(4)
其中,Wout是每個標簽對應的權(quán)重矩陣,v為上層全連接層的維度,bout為偏置值。隨后對向量o的每個元素值應用softmax函數(shù),從而獲得每個標簽的概率值,計算過程如下:
(5)
其中,M為當前實體對對應的包,θ為模型的全部參數(shù)。
最后,本文選擇具有最大概率值的元素所對應的標簽作為當前候選實體對的預測結(jié)果。
為了進一步提升CID關(guān)系抽取性能,本文也采用了已有相關(guān)工作中常使用的后處理規(guī)則[9]。具體地,當模型未能從一篇文檔中提取到CID關(guān)系時,則使用啟發(fā)式規(guī)則來尋找該文檔中最可能為CID關(guān)系的實體對:文章標題中若出現(xiàn)化學物實體,則認為該實體與該篇文章提到的所有疾病實體均存在CID關(guān)系;若未出現(xiàn)化學物實體,則文章中提及次數(shù)最多的化學物實體與該篇文章中所有的疾病實體存在CID關(guān)系。
本節(jié)首先介紹CDR語料的數(shù)據(jù)分布以及實驗設(shè)置,然后展示模型在CDR任務上的實驗結(jié)果,最后對模型的表現(xiàn)進行系統(tǒng)分析。
本文在BioCreative V CID關(guān)系抽取子任務上進行實驗。CDR數(shù)據(jù)集一共包括1 500篇PubMed文章(僅有標題和摘要),訓練集,開發(fā)集和測試集各500篇,表1展示了數(shù)據(jù)集中文章數(shù)量和CID關(guān)系的統(tǒng)計情況[17]。
表1 CDR數(shù)據(jù)集
為了與現(xiàn)存的相關(guān)工作比較,采用同樣的實驗數(shù)據(jù)設(shè)置,即原始訓練集和開發(fā)集合并作為新的訓練集,測試集保持不變[9]。為了選擇超參數(shù)模型,抽取20%的訓練集作為開發(fā)集。在實驗結(jié)果的評估上,使用常用的準確率(Precision),召回率(Recall),綜合分類率F值(F-score)作為實驗數(shù)據(jù)的評估指標,其中F值為主要參考指標。
在MICNN模型的訓練中,使用Adam算法[19]進行參數(shù)優(yōu)化,并使用開發(fā)集對模型超參數(shù)進行優(yōu)化調(diào)整,最后根據(jù)在開發(fā)集上的模型性能使用早停機制選擇訓練迭代次數(shù)。表2展示了本文模型的主要超參數(shù)。
為了調(diào)查一個包中示例個數(shù)對模型性能的影響,實驗測試了使用不同示例個數(shù)的模型性能,實驗結(jié)果如表3所示。
由表3我們可以看出:隨著包中示例個數(shù)的增加,模型性能呈先上升后下降趨勢,當一個包中含有5個示例時,模型性能最好,后面的實驗均設(shè)置包大小為5。從以上結(jié)果可知,當包中示例個數(shù)過少時,噪音(即僅提及候選實體對,未表示實體對間關(guān)系的示例)在包中所占的比重大,多示例的優(yōu)點未能得到發(fā)揮,對模型的表現(xiàn)造成了一定損害;隨著包中示例的增加,噪音所占的比重下降,對模型的干擾也隨之降低,模型的性能因此得到提升;然而,當包中的示例個數(shù)過多時,由于引入了額外的噪音,對模型的干擾增加,從而導致模型的性能下降。
表2 MICNN超參數(shù)列表
為了探索預處理策略和輸入特征對模型性能的影響,在使用了預處理策略和全部輸入特征的MICNN模型基礎(chǔ)上,每次單獨減去一個策略或特征來考察它們對模型性能的影響。實驗結(jié)果如表4所示,其中,-preprocessing表示去掉上位詞過濾;-word表示將詞向量替換為隨機初始化向量;-position表示去掉位置特征;-entity tag則表示去掉實體標記特征。
表4 策略和特征實驗
通過表4可以看出,上位詞過濾能顯著提升性能;詞特征、位置特征亦能大幅提升模型的性能;此外,實體標記特征也能比較明顯地改進模型的性能。原因在于,在預處理階段利用上位詞對負例過濾后,之前會干擾分類器的負例被過濾,分類器的性能因此得到提升;同時,過濾負例后會在一定程度上提高結(jié)果的準確率,這對F值的提升而言也是有益的。除此之外,通過分析語料,發(fā)現(xiàn)除了候選實體對,其他相關(guān)的實體往往對要抽取的關(guān)系有一定影響,標注出這些實體的位置和類型會在某種程度上為分類器預測提供額外的信息,提高關(guān)系抽取性能。
為了探索文檔級別模型在當前任務上的性能,本文分別使用BiLSTM和CNN模型,以整篇文檔作為輸入,使用和MICNN同樣的特征直接進行文檔級別的CID關(guān)系抽取,作為基線系統(tǒng),實驗結(jié)果如表5所示。可以看出與這兩種基線系統(tǒng)方法相比,MICNN的性能有了很大的提升,原因在于以整個文檔作為輸入包含了大量與候選實體對關(guān)系無關(guān)的噪音內(nèi)容,使得模型抽取性能不理想。
表5 方法性能對比實驗
其他的現(xiàn)存系統(tǒng)可被分為兩類:機器學習方法和神經(jīng)網(wǎng)絡方法。
對于基于機器學習的系統(tǒng),Xu等人[8]和Gu等人[9]使用基于語義的特征,為句內(nèi)和句間候選實體對訓練了兩個分類器。在基于神經(jīng)網(wǎng)絡的系統(tǒng)中,Gu等人[9]使用了詞法、句法特征,為句間,句內(nèi)候選實體對分別訓練了ME模型和CNN模型,并進行了后處理;Zhou等人[11]僅對句內(nèi)候選實體對做預測,使用了SVM與LSTM結(jié)合的混合模型。
由表5可以看出,基于神經(jīng)網(wǎng)絡的系統(tǒng)達到的F值普遍高于基于機器學習的系統(tǒng)。此外,除了MICNN,另外兩種未使用KB的系統(tǒng)在未進行后處理時,其準確率均比召回率高,原因可能是這些系統(tǒng)使用了較為復雜的詞法、句法特征,獲得了較高的準確率;然而,由于跨越句子邊界的CID關(guān)系未能被系統(tǒng)有效識別,因此召回率偏低。
與這些現(xiàn)有的先進方法相比,MICNN模型能夠同時對句間和句內(nèi)CID關(guān)系進行抽取,無須進行多模型結(jié)果融合,并且獲得了比其他多模型更好的結(jié)果。從使用特征方面來看,MICNN僅使用了三種基本特征,即詞向量特征、位置特征和實體特征,并未使用詞法分析,句法分析等特征。在不使用任何后處理的情況下,MICNN在測試集上獲得了比其他方法更高的召回率和F值。在使用了與其他方法同樣的后處理規(guī)則后,F值由61.7%進一步提升至62.7%。
為了驗證模型在降低噪聲影響上的有效性,利用圖2中的示例a和噪聲b,分別構(gòu)造包,并用模型做預測,結(jié)果如表6所示。其中,A包僅包含示例a,其余示例由0表示;B包僅包含噪聲b,其余示例由0表示;C包包含示例a和噪聲b,其余示例由0表示。
表6 預測結(jié)果
由表6可知,當包中僅包含噪聲時,模型會做出錯誤的預測;當示例與噪聲共存時,模型能做出正確的預測。這是因為在多示例學習中,只要包中的一個示例是正例(比如C包),MICNN便認為該包對應的實體對存在CID關(guān)系;當且僅當示例中全為負例或噪聲時(比如B包),MICNN才會為實體對打上負標簽。因此,MICNN能對噪聲數(shù)據(jù)起到一定的改善作用。
在與現(xiàn)有先進方法的比較中發(fā)現(xiàn),盡管MICNN擁有比其他系統(tǒng)高的召回率,但是其準確率偏低。為了分析準確率低的原因,同時也為了進一步評估模型在句間和句內(nèi)上的分類性能,本文在未經(jīng)后處理的測試集結(jié)果上對句間和句內(nèi)的評價指標分別進行了計算,結(jié)果如表7所示。
表7 句內(nèi)和句間CID關(guān)系的抽取結(jié)果
由表7可以看出,模型在句間的表現(xiàn)遠低于句內(nèi)的表現(xiàn),原因可能在于,在句間CID關(guān)系中,實體對跨度往往較大,另外由于僅使用了簡單特征,模型不能很好地在長距離上捕獲實體間信息;此外,在CDR語料中,句間CID關(guān)系的數(shù)量遠遠少于句內(nèi)CID關(guān)系的數(shù)量,導致模型的訓練不充分,進而影響了在句間的表現(xiàn)。由此可見,在句間CID關(guān)系提取上的低準確率表現(xiàn),是模型整體準確率低下的重要原因。
本文提出了一種用于CID關(guān)系抽取的MICNN方法。與現(xiàn)存的CID關(guān)系抽取方法相比,MICNN方法能夠從文檔級別同時對句間和句內(nèi)CID關(guān)系進行抽取,無須訓練多模型再進行結(jié)果融合;基于多示例學習的思想,本文方法為每對候選實體對構(gòu)造相應的包,包中含有多個示例。與現(xiàn)有方法使用單示例對候選實體對進行訓練和預測不同的是,MICNN使用包進行訓練和預測,有效地降低了噪音對當前實體對的干擾;MICNN僅使用關(guān)系抽取基本特征(即詞向量特征、位置特征和實體特征),無須大量特征工程,通過神經(jīng)網(wǎng)絡自動學習文檔級別特征具有較好的魯棒性和泛化能力。實驗結(jié)果表明,與現(xiàn)存的先進方法相比,MICNN具有更好的性能表現(xiàn),在CDR數(shù)據(jù)集上F值達到了62.7%。
然而現(xiàn)階段,抽取CID關(guān)系的相關(guān)系統(tǒng)仍有很大的提升空間,句間CID關(guān)系抽取的性能也需要得到進一步的提高。而從現(xiàn)有方法來看,依存句法這類特征對模型性能而言是有益的,因此將在未來工作中嘗試使用這類額外特征。除此之外,額外的知識庫已經(jīng)被證明能夠有效提升CID關(guān)系抽取性能,探索在MICNN中加入知識庫的方法也是我們未來的工作。