張藝品 關 貝 呂蔭潤 王 翀 吳炳潮 王永吉 畢詩旋
(1中國科學院軟件研究所協同創新中心 北京100190) (1中國科學院軟件研究所協同創新中心 北京100190) (2中國科學院大學 北京 100049) (2中國科學院大學 北京 100049) (3中國科學院軟件研究所計算機科學國家重點實驗室 北京 100190) (1中國科學院軟件研究所協同創新中心 北京100190) (1中國科學院軟件研究所協同創新中心 北京100190) (2中國科學院大學 北京 100049) (2中國科學院大學 北京 100049) (3中國科學院軟件研究所計算機科學國家重點實驗室 北京 100190) (北京工業大學 北京 100190)
中醫知識圖譜是對中醫知識內容的結構化存儲、語義化表示,有助于實現中醫知識的檢索、推送與可視化,也是中醫輔助診斷系統的底層數據核心。知識抽取是知識圖譜構建研究的重要問題,其分為兩個模塊,即抽取實體與實體間關系,本文在中醫領域中就實體抽取問題進行研究。
中醫典籍是中醫知識的重要來源,從中醫典籍中抽取知識是中醫知識圖譜規模化和知識全面化的必然要求。中醫典籍作為一種非結構化的自然語言,其文法和詞法與白話語言多有不同。以《備急千金方》的一段方劑為例,觀察發現中醫典籍中有大量的生僻詞,且語法與現在普通漢語有極大的不同,分詞困難。此外中醫方劑往往參照其主藥命名,命名實體間易存在嵌套關系,如“澤蘭湯”與“澤蘭”、“茯神煮散”與“茯神”、“半夏補心湯”與“半夏”等。另外不同醫書對于中醫內容的闡述習慣不同,沒有統一標準。
傳統實體抽取方法需要手動構建特征,如詞性標注、解析語法樹等,這些方法難以適用于中文文言文形式的中醫典籍。為適應中醫典籍的特點需手動構建更為復雜的特征,這無疑會在源數據中引入大量額外內容增加計算負荷。此外特征構建需要詳細的設計,耗時耗力且遷移性較差。為解決上述問題,本文采用深度學習方法來實現知識獲取模塊的實體抽取。根據中醫典籍文本特點,設計字級別的基于BiLSTM-CRF的實體抽取模型。通過字向量來表征字所攜帶的語義信息,利用雙向的長短期記憶神經網絡獲取字的上下文表征向量。最后將上下文表征向量作為條件隨機場的直接輸入,利用其求取全局最優標注序列的特性,完成整個句子的序列標注。
實體抽取是知識圖譜自動化構建的核心,決定知識圖譜的質量與規模。實體抽取又稱為命名實體識別(Named Entity Recognition,NER),是自然語言處理(Natural Language Processing,NLP)中的一項基礎任務,是指從文本中識別出命名性指稱項,如人名、地名和組織機構。在不同領域中其定義的實體類型也不同,本研究抽取的實體是中醫領域的中藥材、方劑、病癥3類實體。命名實體抽取的技術與方法主要有3種:基于規則和知識的方法、基于統計的方法以及兩者混合的方法。基于規則和知識的方法通過觀察文本結構特征,人工設計規則,利用正則表達式等方式抽取實體,對于簡單的命名實體識別任務十分簡捷高效[1],但對于復雜的任務要避免規則間的相互沖突,制定規則需要消耗大量的時間和精力,可移植性差。基于統計學習的方法將命名實體識別看成序列標注問題[2],采用隱馬爾可夫模型(Hidden Markov Model,HMM)、最大熵模型、條件隨機場等機器學習序列標注模型[3-6]。Zhou和Su等[7]設計4種不同的特征,提高隱馬爾可夫模型在實體抽取任務中的效果。Borthwick等[8]在最大熵模型中通過引入額外的知識集合提高標注的準確性。Lafferty等[9]提出將條件隨機場用于序列標注任務,后來McCallum和Li[10]提出特征自動感應法,將條件隨機場應用于命名實體識別任務中。
近年來隨著深度學習的興起,將深度神經網絡模型應用到NER任務中取得較好的效果。Collobert等[11]于2011年提出統一的神經網絡架構機器學習算法,將窗口方法與句子方法兩種網絡結構用于NER,對NN/CNN-CRF模型進行對比試驗。2013年Zheng等[12]在大規模未標記數據集上改進中文詞語的內在表示形式,使用深度學習模型發現詞語的深層特征以解決中文分詞和詞性標記問題。借鑒Collobert的思路2016年左右出現一系列使用循環神經網絡(Recurrent Neural Network,RNN)結構并結合CRF層進行NER的工作[13-15],模型主要由Embedding層,雙向RNN層以及最后的CRF層構成。2016年Rei M等[16]在RNN-CRF模型結構的基礎上重點改進詞向量與字符向量的拼接方法,使用Attention機制將原始的字符向量和詞向量拼接改進為權重求和。模型通過雙層神經網絡學習Attention的參數,動態地利用詞向量和字符向量信息,實驗表明比原始的拼接方法效果更好。之后AkashBharadwaj等[17]在原始BiLSTM-CRF模型的基礎上加入音韻特征,在字符向量上使用Attention機制來學習關注更有效的字符。2017年Yang Z等[18]采用遷移學習的方式在小量標注數據集進行實體識別任務。同年Matthew E. Peters等[19]使用海量無標注語料庫訓練雙向神經網絡語言模型,通過這個模型來獲取當前要標注詞的語言模型向量,然后將該向量作為特征加入到原始的雙向RNN-CRF模型中。實驗結果表明在少量標注數據上加入這個語言模型向量能夠大幅度提高NER效果,即使在大量的標注訓練數據上加入這個語言模型向量仍能提高原始RNN-CRF模型效果。本文采用基于BiLSTM-CRF的方法,利用雙向RNN累積獲取上下文信息的特性,條件隨機場對全部特征全局歸一化,獲取全局最優解。


圖1 基于字的BiLSTM-CRF模型結構
最后為CRF層,目標是依照上下文表征向量序列得到標注序列。可以依照每個詞的上下文表征向量ci,使用分類算法如softmax直接得出每個字標注目標的概率。但是在命名實體識別任務中前后的標注結果之間具有強依賴性。如藥方實體的起始(B-PRE),接下來一定不可能是中藥材實體的內部內容(I-MED)。因此用CRF對整個句子進行聯合建模,以保證在全局上生成最優標注序列。對于雙向LSTM輸出的C,通過全連接層(W,b),將其轉換為n×k的矩陣P,其中k為目標標簽的種類數量。pi,j表示第i個字標記為第j個標簽的得分。對于給定預測序列Y=(y1,y2,…yn),其得分為:
(1)
其中A為條件隨機場的狀態轉移矩陣,是k+2階的方陣,Ai,j表示從標簽i轉移到標簽j的得分。之后接入softmax層實現歸一化,對于序列Y,其概率為:
(2)
在訓練階段,對于X的正確標注序列T=(t1,t2,…,tn),用梯度下降算法最大化log似然函數:
(3)
在預測階段,預測結果記為Y*:
(4)
通常通過維特比算法等動態規劃方法得到最優解。
模型中embedding層使用Word2vec訓練的字向量初始化參數,在模型訓練時進行參數微調。使用Google開源的gensium[20]工具包,其提供python版本的Word2vec。語料方面,使用維基百科提供的Latest Chinese Article語料[21]與中醫典籍語料的拼接作為Word2vec的訓練語料。在經過opencc繁簡體轉換、移除non-utf8字符、統一不同類型標點符號、空格處理、分字得到2.01G的未標注語料。字向量的訓練使用CBoW模型,窗口大小設為10,字向量維度設為300。
實驗選用中醫典籍《備急千金方》、《千金翼方》、《神農本草經》作為語料。在實體抽取算法實驗中,為減小模型訓練的計算復雜度,加快訓練速度,將長句分割為不超過50字的短句。通過字典匹配與人工校對方式構建試驗語料,選用萬方中醫藥知識庫的病癥方劑中藥材字典。訓練數據集共39 100條標注樣本,其中32 000條為訓練集,7 100條為測試集,共設置3類命名,即中藥材、方劑、病癥實體。數據集采用BIO標注體系,即B表示實體的起始,I表示實體的中間內容,O表示非實體內容,具體的標注方法與語料中各類實體,見表1。

表1 實體標注標簽
注:B-MED中的B代表藥材實體的起始,MED代表藥材實體,依此類推
實驗使用精確率(Precision, P),召回率(Recall, R)以及F-Score(F)來評價算法性能。精確率P在本文表示預測為正的樣本中有多少是真正的正樣本,召回率R表示樣本中的正例有多少被預測正確。F-Score是對精確率和召回率的調和均值,表示對精確率和召回率的綜合考量。F-Score計算公式如下:
(5)
其中α用于度量精確率與召回率的權重,當α>1時,召回率對F值的影響更大,當α<1時精確率對F值得影響更大,當α=1時,此時的F值即為F1-Score:
(6)
將LSTM的維度設定為embedding層輸出維度的一半。為防止過擬合,在訓練階段模型中引入dropout正則化機制,將其置于BiLSTM層的輸出端,設定dropout層概率為0.5。模型采用反向傳播算法擬合訓練數據,針對每個訓練樣例更新參數。具體采用Adam梯度下降算法,學習率為0.001,共訓練50輪,batch_size為16。LSTM基本單元選用無窺視孔,遺忘門初始化偏置為1,獨立的遺忘和輸入門限。為驗證模型的有效性選取CRF、HMM進行效果比較。實驗結果,見表2。HMM模型在3種模型中效果最差,F1值僅有68.01。CRF模型采用窗口尺寸為3的上下文特征。相比于HMM模型,CRF在F1等比增長23.71。HMM僅利用上一個字的信息,信息搜集跨度較小,而CRF采用取[-3,+3]跨度的局部特征,可以更好地搜集上下文信息,對訓練數據的擬合性更好。此外HMM還存在標注偏置問題,對特征的融合能力也較弱,而CRF模型能夠解決標注偏置與特征融合問題。本文提出的BiLSTM-CRF模型在中醫實體抽取上效果最好,F1值較CRF增長3.62。BiLSTM-CRF模型通過BiLSTM層獲取字的上下文信息。相比于CRF手工定義的窗口尺寸的語義跨度,BiLTM覆蓋整個目標語句,可以更完整地接收上下文特征。此外深度神經網絡具有擬合非線性能力,單獨CRF更趨向于對局部特征的線性加權擬合,而對訓練數據的擬合能力,深度神經網絡更優于CRF。

表2 不同模型實驗結果
互聯網上存在大量非結構化的中醫醫療知識,自動化構建中醫醫療圖譜方法尚不成熟,存在著需要大量中醫領域專家參與、耗時耗力且難以形成規模等問題,本文針對知識圖譜自動化構建中的實體抽取模塊,采用深度學習方法,在以字為基本輸入元素的基礎上提出基于BiLSTM-CRF的序列標注模型,實驗結果顯示本文提出的算法具有高度準確性。該算法將抽取的目標實體限定為中藥材、方劑和病癥3類實體。但是在中醫體系中實體種類并非如此簡明,拓充中醫實體的種類是下一步重點工作方向。