張藝品 關(guān) 貝 呂蔭潤 王 翀 吳炳潮 王永吉 畢詩旋
(1中國科學(xué)院軟件研究所協(xié)同創(chuàng)新中心 北京100190) (1中國科學(xué)院軟件研究所協(xié)同創(chuàng)新中心 北京100190) (2中國科學(xué)院大學(xué) 北京 100049) (2中國科學(xué)院大學(xué) 北京 100049) (3中國科學(xué)院軟件研究所計算機(jī)科學(xué)國家重點實驗室 北京 100190) (1中國科學(xué)院軟件研究所協(xié)同創(chuàng)新中心 北京100190) (1中國科學(xué)院軟件研究所協(xié)同創(chuàng)新中心 北京100190) (2中國科學(xué)院大學(xué) 北京 100049) (2中國科學(xué)院大學(xué) 北京 100049) (3中國科學(xué)院軟件研究所計算機(jī)科學(xué)國家重點實驗室 北京 100190) (北京工業(yè)大學(xué) 北京 100190)
中醫(yī)知識圖譜是對中醫(yī)知識內(nèi)容的結(jié)構(gòu)化存儲、語義化表示,有助于實現(xiàn)中醫(yī)知識的檢索、推送與可視化,也是中醫(yī)輔助診斷系統(tǒng)的底層數(shù)據(jù)核心。知識抽取是知識圖譜構(gòu)建研究的重要問題,其分為兩個模塊,即抽取實體與實體間關(guān)系,本文在中醫(yī)領(lǐng)域中就實體抽取問題進(jìn)行研究。
中醫(yī)典籍是中醫(yī)知識的重要來源,從中醫(yī)典籍中抽取知識是中醫(yī)知識圖譜規(guī)模化和知識全面化的必然要求。中醫(yī)典籍作為一種非結(jié)構(gòu)化的自然語言,其文法和詞法與白話語言多有不同。以《備急千金方》的一段方劑為例,觀察發(fā)現(xiàn)中醫(yī)典籍中有大量的生僻詞,且語法與現(xiàn)在普通漢語有極大的不同,分詞困難。此外中醫(yī)方劑往往參照其主藥命名,命名實體間易存在嵌套關(guān)系,如“澤蘭湯”與“澤蘭”、“茯神煮散”與“茯神”、“半夏補(bǔ)心湯”與“半夏”等。另外不同醫(yī)書對于中醫(yī)內(nèi)容的闡述習(xí)慣不同,沒有統(tǒng)一標(biāo)準(zhǔn)。
傳統(tǒng)實體抽取方法需要手動構(gòu)建特征,如詞性標(biāo)注、解析語法樹等,這些方法難以適用于中文文言文形式的中醫(yī)典籍。為適應(yīng)中醫(yī)典籍的特點需手動構(gòu)建更為復(fù)雜的特征,這無疑會在源數(shù)據(jù)中引入大量額外內(nèi)容增加計算負(fù)荷。此外特征構(gòu)建需要詳細(xì)的設(shè)計,耗時耗力且遷移性較差。為解決上述問題,本文采用深度學(xué)習(xí)方法來實現(xiàn)知識獲取模塊的實體抽取。根據(jù)中醫(yī)典籍文本特點,設(shè)計字級別的基于BiLSTM-CRF的實體抽取模型。通過字向量來表征字所攜帶的語義信息,利用雙向的長短期記憶神經(jīng)網(wǎng)絡(luò)獲取字的上下文表征向量。最后將上下文表征向量作為條件隨機(jī)場的直接輸入,利用其求取全局最優(yōu)標(biāo)注序列的特性,完成整個句子的序列標(biāo)注。
實體抽取是知識圖譜自動化構(gòu)建的核心,決定知識圖譜的質(zhì)量與規(guī)模。實體抽取又稱為命名實體識別(Named Entity Recognition,NER),是自然語言處理(Natural Language Processing,NLP)中的一項基礎(chǔ)任務(wù),是指從文本中識別出命名性指稱項,如人名、地名和組織機(jī)構(gòu)。在不同領(lǐng)域中其定義的實體類型也不同,本研究抽取的實體是中醫(yī)領(lǐng)域的中藥材、方劑、病癥3類實體。命名實體抽取的技術(shù)與方法主要有3種:基于規(guī)則和知識的方法、基于統(tǒng)計的方法以及兩者混合的方法?;谝?guī)則和知識的方法通過觀察文本結(jié)構(gòu)特征,人工設(shè)計規(guī)則,利用正則表達(dá)式等方式抽取實體,對于簡單的命名實體識別任務(wù)十分簡捷高效[1],但對于復(fù)雜的任務(wù)要避免規(guī)則間的相互沖突,制定規(guī)則需要消耗大量的時間和精力,可移植性差?;诮y(tǒng)計學(xué)習(xí)的方法將命名實體識別看成序列標(biāo)注問題[2],采用隱馬爾可夫模型(Hidden Markov Model,HMM)、最大熵模型、條件隨機(jī)場等機(jī)器學(xué)習(xí)序列標(biāo)注模型[3-6]。Zhou和Su等[7]設(shè)計4種不同的特征,提高隱馬爾可夫模型在實體抽取任務(wù)中的效果。Borthwick等[8]在最大熵模型中通過引入額外的知識集合提高標(biāo)注的準(zhǔn)確性。Lafferty等[9]提出將條件隨機(jī)場用于序列標(biāo)注任務(wù),后來McCallum和Li[10]提出特征自動感應(yīng)法,將條件隨機(jī)場應(yīng)用于命名實體識別任務(wù)中。
近年來隨著深度學(xué)習(xí)的興起,將深度神經(jīng)網(wǎng)絡(luò)模型應(yīng)用到NER任務(wù)中取得較好的效果。Collobert等[11]于2011年提出統(tǒng)一的神經(jīng)網(wǎng)絡(luò)架構(gòu)機(jī)器學(xué)習(xí)算法,將窗口方法與句子方法兩種網(wǎng)絡(luò)結(jié)構(gòu)用于NER,對NN/CNN-CRF模型進(jìn)行對比試驗。2013年Zheng等[12]在大規(guī)模未標(biāo)記數(shù)據(jù)集上改進(jìn)中文詞語的內(nèi)在表示形式,使用深度學(xué)習(xí)模型發(fā)現(xiàn)詞語的深層特征以解決中文分詞和詞性標(biāo)記問題。借鑒Collobert的思路2016年左右出現(xiàn)一系列使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)結(jié)構(gòu)并結(jié)合CRF層進(jìn)行NER的工作[13-15],模型主要由Embedding層,雙向RNN層以及最后的CRF層構(gòu)成。2016年Rei M等[16]在RNN-CRF模型結(jié)構(gòu)的基礎(chǔ)上重點改進(jìn)詞向量與字符向量的拼接方法,使用Attention機(jī)制將原始的字符向量和詞向量拼接改進(jìn)為權(quán)重求和。模型通過雙層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)Attention的參數(shù),動態(tài)地利用詞向量和字符向量信息,實驗表明比原始的拼接方法效果更好。之后AkashBharadwaj等[17]在原始BiLSTM-CRF模型的基礎(chǔ)上加入音韻特征,在字符向量上使用Attention機(jī)制來學(xué)習(xí)關(guān)注更有效的字符。2017年Yang Z等[18]采用遷移學(xué)習(xí)的方式在小量標(biāo)注數(shù)據(jù)集進(jìn)行實體識別任務(wù)。同年Matthew E. Peters等[19]使用海量無標(biāo)注語料庫訓(xùn)練雙向神經(jīng)網(wǎng)絡(luò)語言模型,通過這個模型來獲取當(dāng)前要標(biāo)注詞的語言模型向量,然后將該向量作為特征加入到原始的雙向RNN-CRF模型中。實驗結(jié)果表明在少量標(biāo)注數(shù)據(jù)上加入這個語言模型向量能夠大幅度提高NER效果,即使在大量的標(biāo)注訓(xùn)練數(shù)據(jù)上加入這個語言模型向量仍能提高原始RNN-CRF模型效果。本文采用基于BiLSTM-CRF的方法,利用雙向RNN累積獲取上下文信息的特性,條件隨機(jī)場對全部特征全局歸一化,獲取全局最優(yōu)解。
圖1 基于字的BiLSTM-CRF模型結(jié)構(gòu)
最后為CRF層,目標(biāo)是依照上下文表征向量序列得到標(biāo)注序列。可以依照每個詞的上下文表征向量ci,使用分類算法如softmax直接得出每個字標(biāo)注目標(biāo)的概率。但是在命名實體識別任務(wù)中前后的標(biāo)注結(jié)果之間具有強(qiáng)依賴性。如藥方實體的起始(B-PRE),接下來一定不可能是中藥材實體的內(nèi)部內(nèi)容(I-MED)。因此用CRF對整個句子進(jìn)行聯(lián)合建模,以保證在全局上生成最優(yōu)標(biāo)注序列。對于雙向LSTM輸出的C,通過全連接層(W,b),將其轉(zhuǎn)換為n×k的矩陣P,其中k為目標(biāo)標(biāo)簽的種類數(shù)量。pi,j表示第i個字標(biāo)記為第j個標(biāo)簽的得分。對于給定預(yù)測序列Y=(y1,y2,…yn),其得分為:
(1)
其中A為條件隨機(jī)場的狀態(tài)轉(zhuǎn)移矩陣,是k+2階的方陣,Ai,j表示從標(biāo)簽i轉(zhuǎn)移到標(biāo)簽j的得分。之后接入softmax層實現(xiàn)歸一化,對于序列Y,其概率為:
(2)
在訓(xùn)練階段,對于X的正確標(biāo)注序列T=(t1,t2,…,tn),用梯度下降算法最大化log似然函數(shù):
(3)
在預(yù)測階段,預(yù)測結(jié)果記為Y*:
(4)
通常通過維特比算法等動態(tài)規(guī)劃方法得到最優(yōu)解。
模型中embedding層使用Word2vec訓(xùn)練的字向量初始化參數(shù),在模型訓(xùn)練時進(jìn)行參數(shù)微調(diào)。使用Google開源的gensium[20]工具包,其提供python版本的Word2vec。語料方面,使用維基百科提供的Latest Chinese Article語料[21]與中醫(yī)典籍語料的拼接作為Word2vec的訓(xùn)練語料。在經(jīng)過opencc繁簡體轉(zhuǎn)換、移除non-utf8字符、統(tǒng)一不同類型標(biāo)點符號、空格處理、分字得到2.01G的未標(biāo)注語料。字向量的訓(xùn)練使用CBoW模型,窗口大小設(shè)為10,字向量維度設(shè)為300。
實驗選用中醫(yī)典籍《備急千金方》、《千金翼方》、《神農(nóng)本草經(jīng)》作為語料。在實體抽取算法實驗中,為減小模型訓(xùn)練的計算復(fù)雜度,加快訓(xùn)練速度,將長句分割為不超過50字的短句。通過字典匹配與人工校對方式構(gòu)建試驗語料,選用萬方中醫(yī)藥知識庫的病癥方劑中藥材字典。訓(xùn)練數(shù)據(jù)集共39 100條標(biāo)注樣本,其中32 000條為訓(xùn)練集,7 100條為測試集,共設(shè)置3類命名,即中藥材、方劑、病癥實體。數(shù)據(jù)集采用BIO標(biāo)注體系,即B表示實體的起始,I表示實體的中間內(nèi)容,O表示非實體內(nèi)容,具體的標(biāo)注方法與語料中各類實體,見表1。
表1 實體標(biāo)注標(biāo)簽
注:B-MED中的B代表藥材實體的起始,MED代表藥材實體,依此類推
實驗使用精確率(Precision, P),召回率(Recall, R)以及F-Score(F)來評價算法性能。精確率P在本文表示預(yù)測為正的樣本中有多少是真正的正樣本,召回率R表示樣本中的正例有多少被預(yù)測正確。F-Score是對精確率和召回率的調(diào)和均值,表示對精確率和召回率的綜合考量。F-Score計算公式如下:
(5)
其中α用于度量精確率與召回率的權(quán)重,當(dāng)α>1時,召回率對F值的影響更大,當(dāng)α<1時精確率對F值得影響更大,當(dāng)α=1時,此時的F值即為F1-Score:
(6)
將LSTM的維度設(shè)定為embedding層輸出維度的一半。為防止過擬合,在訓(xùn)練階段模型中引入dropout正則化機(jī)制,將其置于BiLSTM層的輸出端,設(shè)定dropout層概率為0.5。模型采用反向傳播算法擬合訓(xùn)練數(shù)據(jù),針對每個訓(xùn)練樣例更新參數(shù)。具體采用Adam梯度下降算法,學(xué)習(xí)率為0.001,共訓(xùn)練50輪,batch_size為16。LSTM基本單元選用無窺視孔,遺忘門初始化偏置為1,獨立的遺忘和輸入門限。為驗證模型的有效性選取CRF、HMM進(jìn)行效果比較。實驗結(jié)果,見表2。HMM模型在3種模型中效果最差,F(xiàn)1值僅有68.01。CRF模型采用窗口尺寸為3的上下文特征。相比于HMM模型,CRF在F1等比增長23.71。HMM僅利用上一個字的信息,信息搜集跨度較小,而CRF采用取[-3,+3]跨度的局部特征,可以更好地搜集上下文信息,對訓(xùn)練數(shù)據(jù)的擬合性更好。此外HMM還存在標(biāo)注偏置問題,對特征的融合能力也較弱,而CRF模型能夠解決標(biāo)注偏置與特征融合問題。本文提出的BiLSTM-CRF模型在中醫(yī)實體抽取上效果最好,F(xiàn)1值較CRF增長3.62。BiLSTM-CRF模型通過BiLSTM層獲取字的上下文信息。相比于CRF手工定義的窗口尺寸的語義跨度,BiLTM覆蓋整個目標(biāo)語句,可以更完整地接收上下文特征。此外深度神經(jīng)網(wǎng)絡(luò)具有擬合非線性能力,單獨CRF更趨向于對局部特征的線性加權(quán)擬合,而對訓(xùn)練數(shù)據(jù)的擬合能力,深度神經(jīng)網(wǎng)絡(luò)更優(yōu)于CRF。
表2 不同模型實驗結(jié)果
互聯(lián)網(wǎng)上存在大量非結(jié)構(gòu)化的中醫(yī)醫(yī)療知識,自動化構(gòu)建中醫(yī)醫(yī)療圖譜方法尚不成熟,存在著需要大量中醫(yī)領(lǐng)域?qū)<覅⑴c、耗時耗力且難以形成規(guī)模等問題,本文針對知識圖譜自動化構(gòu)建中的實體抽取模塊,采用深度學(xué)習(xí)方法,在以字為基本輸入元素的基礎(chǔ)上提出基于BiLSTM-CRF的序列標(biāo)注模型,實驗結(jié)果顯示本文提出的算法具有高度準(zhǔn)確性。該算法將抽取的目標(biāo)實體限定為中藥材、方劑和病癥3類實體。但是在中醫(yī)體系中實體種類并非如此簡明,拓充中醫(yī)實體的種類是下一步重點工作方向。