許 力,李建華
(華東理工大學信息科學與工程學院,上海200237)
生物醫(yī)學命名實體識別是生物醫(yī)學領域自然語言處理應用的核心任務,對于藥物數(shù)據(jù)挖掘和藥物輔助設計具有重要意義。隨著生物醫(yī)學文獻的逐年增加,生物醫(yī)學命名實體識別逐漸成為研究熱點。
現(xiàn)有的生物醫(yī)學命名實體識別方法主要分為:基于規(guī)則和詞典的方法、基于機器學習的方法和基于深度學習的方法?;谝?guī)則和詞典的方法常見于早期命名實體識別研究,如Krauthammer等人[1]提出使用詞典識別基因和蛋白質實體。這種方法雖然簡單實用,但由于生物醫(yī)學文獻不斷增多,新的生物醫(yī)學命名實體不斷出現(xiàn),該方法逐漸受限于詞典的健全性導致識別效果不佳。Hanisch等人[2]提出使用基于規(guī)則的方法來識別基因和蛋白質實體?;谝?guī)則的方法大多采用固定的規(guī)則模板,以模式和字符串匹配為主要手段,對文本進行篩選處理,但這些規(guī)則往往依賴于具體的命名實體識別任務、語言和文本風格,設計過程復雜、耗時長且容易產(chǎn)生錯誤[3]。
基于機器學習的方法主要包括隱馬爾可夫模型HMM(Hidden Markov Model)[4]、最大熵ME(Maximum Entropy)模型[5]和條件隨機場CRF(Conditional Random Field)[6]等。該類方法對于特征選取的要求較高,需選取例如前后綴、大小寫、特殊字符、詞元詞根等特征來訓練模型。其中,CRF在命名實體識別任務中應用廣泛,有良好的表現(xiàn)。Leaman等人[7]提出了tmchem模型,該模型集成了2個CRF模型,融合了多種人工特征。Li等人[8]在CRF模型中融入詞頻和共現(xiàn)信息來識別基因實體,進一步提升了模型表現(xiàn)。相比于基于規(guī)則和詞典的方法,基于機器學習的方法進一步提高了實體識別的準確率,但由于過于依賴特征選取且識別策略單一,故此類方法效果有限。
隨著深度學習的發(fā)展,將神經(jīng)網(wǎng)絡應用于命名實體識別已成為一種趨勢。Huang等人[9]提出了BiLSTM-CRF(Bidrectional Long Short-Term Memory)模型,使用BiLSTM提取上下文特征,并通過CRF學習數(shù)據(jù)集中不同標簽之間的轉換概率來修改BiLSTM層的輸出。Ma等人[10]提出了BiLSTM-CNN-CRF模型,首先使用CNN(Convolutional Neural Network)提取字符級別特征,再使用BiLSTM-CRF模型進一步提取上下文特征并輸出結果。相比于傳統(tǒng)機器學習方法,深度學習方法在不依賴人工特征的情況下,在命名實體識別任務中取得了更好的表現(xiàn)。
近年來,詞嵌入(Word Embedding)技術被廣泛地應用于自然語言處理任務中,尤其是作為基本特征應用于深度學習方法中。詞嵌入又稱分布式單詞表示,它可以從大量未標記的語料庫中獲取單詞的語義和句法信息,是將自然語言轉換為計算機能夠理解的向量或矩陣形式的技術。傳統(tǒng)的詞嵌入模型如word2vec[11]和Glove[12]都使用靜態(tài)詞向量進行語義表征,但是一個詞在不同語境里的詞義是會變化的,這就帶來了一詞多義的問題。例如“apple”可以指代水果,也可以指代一家公司。ELMO(Embedding from Language MOdels)模型[13]針對這一點進行了優(yōu)化,它使用大型語料庫對雙向LSTM模型進行預訓練,得到上下文依賴的詞表示,解決了多義詞的問題。相比于word2vec通過中心詞的上下窗口學習詞向量的方式,ELMO模型基于整個語料庫進行學習,其生成的詞向量更加精確。雖然ELMO模型稱為雙向語言模型,但其本質上仍然是2個單向的LSTM模型相組合,一個LSTM只能編碼一個方向的語義,因此它無法同時利用前后2個方向的上下文信息,模型效果有限。
為了增強深度學習模型在特征提取方面的能力,Vaswani 等人[14]提出了Transformer機制。Transformer機制摒棄了循環(huán)神經(jīng)網(wǎng)絡結構,通過Attention機制直接對序列建模,大大加快了模型的并行計算能力。Devlin等人[15]進一步提出了基于Transformer機制的BERT(Bidirectional Encoder Representation from Transformers)模型。相較于ELMO模型,它能夠同時利用上下文信息,是真正意義上的雙向語言表示模型。目前BERT在命名實體識別領域中得到了廣泛的應用,如王子牛等人[16]將BERT與BiLSTM-CRF相結合應用于中文命名實體識別中,取得了良好的效果。雖然BERT在自然語言處理領域已有應用,但在生物醫(yī)學命名實體識別中的應用尚缺乏研究。
針對現(xiàn)有方法的不足,本文提出一種將BERT預訓練模型和BiLSTM-CRF模型相結合應用于生物命名實體識別的模型。首先采用預訓練詞向量模型BERT進行語義提取,相較于傳統(tǒng)詞向量模型,它能根據(jù)上下文生成動態(tài)詞向量,語義編碼更加精確;獲得BERT模型輸出后,加入詞性分析和組塊分析特征幫助模型識別實體邊界;最后將詞向量送入BiLSTM模型進一步訓練,并使用CRF修正BiLSTM模型的結果,輸出得分最大的標注序列。實驗結果表明,本文提出的模型有效地提升了生物醫(yī)學命名實體識別的準確率。
圖1所示為本文提出的模型框架,模型共由3部分組成:詞性分析與組塊分析模塊、BERT模塊和BiLSTM-CRF模塊。其中,B-PER、E-PER和o表示模型預測結果的標簽,li代表單詞i和它左側的文本表示,ri代表單詞i和它右側的文本表示,ci代表2種文本表示的結合。
Figure 1 Overall structure of model圖1 模型整體結構圖
詞性可以解釋為一個詞在句子中的組成成分,通常相同詞性的詞語對應的實體類別標簽也是有規(guī)律的。由于生物醫(yī)學命名實體識別中的疾病名、藥物名和基因名大多都是以名詞形式出現(xiàn),所以本文引入詞性分析POS(Part Of Speech)作為特征,以增強模型在命名實體識別任務中的針對性。
生物醫(yī)學命名實體識別包含實體邊界檢測和實體分類2個核心步驟。實體邊界檢測作為命名實體識別中基礎的一步,對于提升命名實體識別準確率有重要意義。大多數(shù)生物醫(yī)學文獻習慣采用描述性的命名,例如“Dual specificity tyrosine-phosphorylation-regulated kinase 1A DYRK1A”。在這樣的語句中,由于一個實體的名稱較長,且常包含數(shù)字和縮寫,所以較難識別出實體的邊界,導致識別效果較差;此外,生物醫(yī)學實體名稱通常有包含關系,即生物實體名可以是其他生物實體名的構成部分,例如“sphingosine-1-phosphate”“sphingosine-1-phosphate receptor 4”“sphingosine-1-phosphate receptors”是3個不同的生物實體。以上這些問題均給正確地識別出實體帶來了障礙。
為了正確地識別語料中的實體邊界,提升命名實體識別準確率,本文使用組塊分析(Chunking)作為特征。組塊分析又被稱作淺層語義解析,它可以分析句子結構,把一句話中相似或內部有關聯(lián)的部分放入一個分組,幫助模型正確地識別實體邊界。以表1為例,組塊分析使用詞性標注的結果作為輸入,并提供分析好的組塊作為輸出。本文語料的詞性標注和組塊分析特征均通過GENIA Tagger(http://www.nactem.ac.uk/GENIA/tagger/)生成,其輸出如表1所示。
Table 1 Output of GENIA Tagger
BERT在大規(guī)模書籍和維基百科語料中預訓練,是一種深度雙向語言表征模型,其示意圖如圖2所示。其中,Ei代表模型輸入的單詞,N代表單詞的個數(shù),Trm代表Transformer的處理單元,Ti代表模型的輸出結果。
Figure 2 Structure of BERT圖2 BERT結構示意圖
BERT模型的主要創(chuàng)新點在于預訓練的方法上,即使用了遮蔽語言模型(Masked Language Model)和下一句預測(Next Sentence Prediction)來捕捉單詞和句子級別的上下文語義。遮蔽語言模型使用[MASK]標志隨機地屏蔽輸入中的某些字符,并根據(jù)它的上下文來預測被屏蔽詞。與單方向的語言模型不同,遮蔽語言模型同時結合了左邊和右邊2個方向的文本,充分利用了上下文的語義。相比于傳統(tǒng)的詞向量模型,它根據(jù)上下文生成了動態(tài)的詞向量,很好地解決了一詞多義的問題。此外,BERT還使用下一句預測捕捉句子級別的上下文關系。模型接收成對的句子作為輸入,判斷2個句子的前后順序。這種方法廣泛地應用于問題回答(Question Answering)[17]和自然語言推理(Natural Language Inferance)[18]等自然語言處理任務中,并取得了良好的效果。BERT的輸入由3部分組成:Token embeddings、Segment embeddings和Position embeddings。其中,Token embeddings指的是單詞原始的詞向量,Segment embeddings指明當前單詞位于句子對中的哪一句,Position embeddings指的是當前單詞在句子中的序列位置。
從結構上來說,BERT是將多個Transformer編碼器堆疊在一起進行特征提取,每個Transformer編碼器由Self-attention層和前饋神經(jīng)網(wǎng)絡層組成。Self-attention是Transformer的核心機制,其計算如式(1)所示:
(1)
實際進行語義編碼時,BERT使用的是Multihead attention機制,即通過h個線性變換對Q,K,V作投影,形成多個子空間,讓模型關注更多特征。Multihead attention的本質是進行多次Self- attention計算,最后將不同的Self-attention計算結果進行拼接。其計算如式(2)[15]所示:
MultiHead(Q,K,V) =Concat(head1,…,headh)WO
(2)
基于以上這些分析可以看出,BERT具有以下優(yōu)點:
(1)BERT使用遮蔽語言模型和下一句預測進行預訓練,可以充分利用上下文信息,產(chǎn)生語義更豐富的動態(tài)詞向量。
(2)BERT使用Transformer作為特征提取器,底層應用Attention機制編碼了單詞和上下文的相關性,增強了模型的并行計算能力。
綜上,本文決定將BERT作為詞向量模型。
2.3.1 BiLSTM層
該層由前向LSTM層和后向LSTM層組成,分別獲取2個方向的上下文特征。獲取BERT層的輸出后,將其與POS embedding,Chunking 進行拼接,加入到前向和后向LSTM中進行編碼,并根據(jù)上下文,使用softmax函數(shù)給出當前單詞對應標簽的概率。LSTM層的主要結構可以表示如式(3)~式(8)所示:
it=σ(xt·wi+ht-1·wi′+bi)
(3)
ft=σ(xt·wf+ht-1·wf′+bf)
(4)
ot=σ(xt·wo+ht-1·wo′+bo)
(5)
(6)
(7)
ht=ot?tanh(ct)
(8)
其中,σ是 sigmoid 函數(shù),i、f、o 和 c 分別表示輸入門、遺忘門、輸出門和記憶單元; ?是點積運算,w和b代表輸入門、遺忘門和輸出門的權重矩陣和偏置向量;xt指的是t時刻的網(wǎng)絡輸入,同時對應于詞表示層的輸出。
2.3.2 CRF層
softmax函數(shù)雖然輸出了單詞對應最大概率的標簽,但其輸出的標簽互相獨立,也就意味著容易出現(xiàn)不合理序列的情況,導致準確率下降。CRF層的作用是對BiLSTM網(wǎng)絡層的輸出進行修正,得到具有最大概率的合理序列。BiLSTM網(wǎng)絡層的輸出作為CRF層的輸入[19]。給定輸入X,輸出預測結果y的得分計算公式如式(9)所示:
(9)
其中,轉移矩陣元素Ayi,yi+1表示標簽從yi轉移到y(tǒng)i+1的概率,yi為y中元素。Pi,yi表示第i個詞語標記為yi的概率。在給定輸入X情況下,輸出預測結果y的概率如式(10)所示:
(10)
(11)
最終預測時,根據(jù)式(12)輸出得分最高的結果。
(12)
本文在以下3個數(shù)據(jù)集上訓練模型:BC4CHEMD[20]、BC5CDR-chem[21]和NCBI- disease[22]。數(shù)據(jù)集使用BIO[23]標注方案,B 代表Beginning,標注一個實體的開始部分;I 代表 Inside,標注組成實體的中間部分;O 代表Outside,標注與實體無關的信息。數(shù)據(jù)集分布如表2所示。
Table 2 Details of datasets used in the experiment
本文采用3種評測指標,包括準確率P(Precision)、召回率R(Recall)和F1值,具體公式如式(13)~式(15)所示:
(13)
(14)
(15)
其中,Tp為正確識別的實體個數(shù),F(xiàn)p代表識別錯誤的實體個數(shù),F(xiàn)n代表未識別出的實體個數(shù)。
本文使用谷歌官方提供的BERT-base版本模型,句子序列長度設為256,隱藏層維度設為768。BERT 學習率為2e-5,batch-size 設為128。獲得BERT輸出后,將其與30維詞性向量和20維Chunking向量進行拼接,送入BiLSTM層訓練。雙向LSTM 隱藏層維度設為200,Dropout率設為 0.3。優(yōu)化器采用Adam算法,實驗結果在100輪訓練之后收斂。
3.4.1 對比實驗分析
實驗結果如表3所示。為了驗證本文所提出模型的實用性,選擇BERT模型和BiLSTM-CRF模型作為基準模型進行對比實驗。
(1)為了驗證詞性分析和組塊分析特征對于生物醫(yī)學命名實體識別任務的意義,本文對BiLSTM-CRF模型和BERT模型分別進行了一組對比實驗。從BiLSTM-CRF模型和POS+Chunking+BiLSTM-CRF模型的對比實驗結果可以看出,BiLSTM-CRF模型加入詞性和組塊分析特征后,在3個數(shù)據(jù)集上的F1值均平均提升了0.45%,準確率平均提升了0.47%。對比BERT
Table 3 Comparison of model performances on datasets
模型和本文模型的實驗結果可以看出,BERT模型加入詞性和組塊分析特征后,在3個數(shù)據(jù)集上的F1值均平均提升了0.51%,準確率平均提升了1.01%。實驗結果表明,詞性分析和組塊分析特征對提升命名實體識別模型的準確率有所幫助。
(2)為了說明BERT在語義提取和詞向量表征方面的優(yōu)勢,本文選擇BiLSTM-CRF進行對比實驗。作為命名實體識別領域應用較為廣泛的模型,BiLSTM-CRF模型相比于之前基于規(guī)則和詞典的方法,性能獲得了較大提升。模型使用PubMed和PMC上預先訓練好的詞向量(http://evexdb.org/pmresour ces/vec-space-models/)作為輸入,在3個數(shù)據(jù)集上獲得了平均86.74%的準確率和86.37%的F1值。
BERT作為預訓練詞向量模型,其內部由Transformer編碼器堆疊而成,微調后可直接應用于生物醫(yī)學命名實體識別任務中。分析表3中數(shù)據(jù)可以發(fā)現(xiàn),BERT模型在3個數(shù)據(jù)集上獲得了平均88.75%的準確率和88.94%的F1值,相比于BiLSTM-CRF模型,其準確率提升了2.01%,F(xiàn)1值提升了2.57%。結果表明,本文選擇的BERT模型相比于傳統(tǒng)的word2vec模型,能充分利用上下文信息,語義編碼更加精確,提升了模型的準確率。對比BiLSTM-CRF模型和本文提出的POS+Chunking+BERT+BiLSTM-CRF模型的實驗結果可以發(fā)現(xiàn),相比于前者,本文模型的F1值平均提升了3.08%,準確率平均提升了3.02%。實驗結果表明,本文模型可以有效提升生物醫(yī)學命名實體識別的性能。
3.4.2 與現(xiàn)有其他方法對比
Leaman等人[24]提出了TaggerOne模型,該模型通過命名實體正則化減少了模型預測的錯誤。Wang等人[25]提出在BiLSTM-CRF模型中融入多任務學習思想,同時學習多種生物醫(yī)學實體類型,取得了良好的實驗效果。如表3所示,相比于TaggerOne模型,本文模型的準確率平均提升了1.81%,F(xiàn)1值平均提升了4.50%。相比于Wang等人[25]提出的模型,本文模型的準確率平均提升了1.01%,F(xiàn)1值平均提升了1.35%。綜上,實驗結果表明,本文提出的模型相較于已有方法,在生物醫(yī)學命名實體識別任務中表現(xiàn)更好。
本文提出一種將預訓練語言模型BERT和BiLSTM-CRF模型相結合應用于生物命名實體識別的模型。BERT在大規(guī)模語料中進行預訓練,相較于傳統(tǒng)靜態(tài)的詞向量模型,它能根據(jù)上下文生成動態(tài)詞向量,語義編碼更加精確,大大提升了生物醫(yī)學命名實體識別任務的準確率。獲得BERT模型輸出后,加入詞性分析和組塊分析特征幫助模型識別實體邊界,進一步提升了模型性能。最后將詞向量送入BiLSTM模型進一步訓練,并使用CRF修正BiLSTM模型的結果,輸出得分最大的標注序列。實驗結果表明,本文模型相比于已有的方法,在生物醫(yī)學命名實體識別任務中的表現(xiàn)更好。
由于本文使用的是在維基百科和書籍語料庫中進行預訓練的BERT,所以其適用于一般領域的命名實體識別任務。未來,會考慮使用在生物醫(yī)學領域語料預訓練的BERT模型,進一步優(yōu)化任務表現(xiàn)。