徐美仙,謝曉堯,鄭 欣
(貴州師范大學(xué),貴州省信息與計算科學(xué)重點實驗室,貴州 貴陽 550001)
流行病學(xué)調(diào)查處置是傳染性疾病中的基礎(chǔ)性工作,在防控中發(fā)揮著重要作用。新冠肺炎疫情暴發(fā)以來,隨著確診病例數(shù)的增加,大量的流行病學(xué)調(diào)查數(shù)據(jù)也隨之累積,但傳統(tǒng)的流行病學(xué)管理并不能充分利用這些信息。知識圖譜是結(jié)構(gòu)化存儲和復(fù)用知識的工具,可用于病例快速檢索、病例關(guān)聯(lián)路徑及統(tǒng)計分析,從而更好地提高流行病學(xué)調(diào)查管理水平,而構(gòu)建知識圖譜的關(guān)鍵工作在于命名實體識別(Named entity recognition,NER)。NER是信息提取、問答系統(tǒng)、句法分析、機器翻譯等應(yīng)用領(lǐng)域的重要基礎(chǔ)工具,在所涉及自然語言處理的人工智能任務(wù)中,其研究目前主要集中在醫(yī)療、金融等領(lǐng)域,而在流行病學(xué)調(diào)查領(lǐng)域,尚未見到NER的相關(guān)研究。
當(dāng)前數(shù)據(jù)處理技術(shù)時代,我國的流行病調(diào)查工作仍主要依靠傳統(tǒng)手工低效方式進行,數(shù)據(jù)容易錯漏,無法實現(xiàn)數(shù)據(jù)的實時共享和傳輸,也缺乏智能快速分析追蹤密切接觸者的能力,不但加大了流調(diào)人員的工作量,而且影響了防控的整體效率。為利用現(xiàn)代先進技術(shù)達成防控中“更早更快”的目標(biāo),建立COVID-19流行病調(diào)查研究和服務(wù)數(shù)據(jù)中心可以支撐一線人員精準(zhǔn)追蹤密切接觸者和疑似病例,迅速管控銷毀傳染物品,輔助分析和切斷傳播鏈。因此,利用命名實體識別技術(shù)準(zhǔn)確抽取流行病學(xué)調(diào)查信息中的關(guān)鍵實體是非常必要的。
NER指的是識別文本中具有特定含義的短語。1995年11月,在第六屆MUC(MUC-6,The sixth message understanding conferences)會議上首次提出了將命名實體(Named entity,NE)作為一個明確的概念和研究對象,并作為一個研究領(lǐng)域受到重視[1]。早期進行NER研究主要是用文本去匹配人工構(gòu)建的有限的規(guī)則,如Chen等[2]提出了一種基于知識抽取的中文機構(gòu)名稱識別方法。這類方法一般選用包括統(tǒng)計信息、標(biāo)點符號、關(guān)鍵字、指示詞和方向詞、位置詞(如尾字)、中心詞等特征構(gòu)造規(guī)則模板,大多需要依賴于知識庫和詞典的建立,可移植性差,不同領(lǐng)域需要構(gòu)建不同的知識庫,且構(gòu)建周期長、代價大還需依賴語言專家的幫助[2]。由于基于規(guī)則的方法存在著局限性,且語料庫規(guī)模的不斷增大,人們逐漸開始轉(zhuǎn)向利用統(tǒng)計機器學(xué)習(xí)的方法進行NE識別。
經(jīng)典機器學(xué)習(xí)模型包括隱馬爾可夫(Hidden markov model,HMM)、最大熵(Maxmium entropy model,ME)、條件隨機場(Conditional random field,CRF)、支持向量機(Support vector machine,SVM)等模型。這4種學(xué)習(xí)方法中,ME模型結(jié)構(gòu)緊湊,具有較好的通用性,但訓(xùn)練時間復(fù)雜性高,有時甚至導(dǎo)致訓(xùn)練代價難以承受;CRF是一個特征靈活、全局最優(yōu)的標(biāo)注框架,但存在收斂速度慢、訓(xùn)練時間長的問題;HMM模型在訓(xùn)練和識別時的速度要快一些,但識別的正確率一般要比ME和SVM低[3]。由于可用來建設(shè)和評估NER系統(tǒng)的大規(guī)模通用語料庫較少,而基于統(tǒng)計機器學(xué)習(xí)的方法對特征選取的要求較高,對語料的依賴也比較大,所以限制了此類方法的應(yīng)用。
近年來,隨著深度學(xué)習(xí)的快速發(fā)展和高性能計算的逐步普及,基于深度學(xué)習(xí)的方法在自然語言處理(Natural language processing,NLP)應(yīng)用中突出優(yōu)勢,目前已成為NLP領(lǐng)域中研究和應(yīng)用的熱點方法。深度學(xué)習(xí)在NLP應(yīng)用領(lǐng)域發(fā)展迅速,2002年美國NEC實驗室率先提出了將深度學(xué)習(xí)用于NLP的想法[4]。NLP的應(yīng)用性能也隨著基于遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)的長短時記憶(Long short-term memory,LSTM)和雙向長短時記憶(Bi-directional long short-term memory,BiLSTM)網(wǎng)絡(luò)的引入而逐漸提高。在采用深度神經(jīng)網(wǎng)絡(luò)進行命名實體識別的研究中,Lample等[5]用BiLSTM和CRF相組合的神經(jīng)網(wǎng)絡(luò)模型進行實體識別,在四種語言的實體識別任務(wù)中都取得了最好的成績,BiLSTM-CRF模型也成為了現(xiàn)在各領(lǐng)域?qū)嶓w識別中普遍采用的一種模型。
與英文命名實體相比,中文命名實體更困難,因為中文字符之間沒有間隔,一詞多義、一詞多性現(xiàn)象非常普遍[3]。因此,許多學(xué)者轉(zhuǎn)向使用詞嵌入模型得到詞向量的分布式表示來提高中文實體識別的精度,如Word2Vec詞向量模型[6]。文獻[7]使用Gensim的Word2Vec生成詞向量,在中文電子病例語料庫中識別準(zhǔn)確率達到了96.29%。但Word2Vec詞向量模型的詞嵌入是靜態(tài)的,忽略了詞的上下文語境,無法表征一詞多義現(xiàn)象。因此,Devlin等[8]提出了一種BERT(Bidirectional encoder representations from transformers,BERT)預(yù)訓(xùn)練語言模型,該模型使用了Transformers作為算法的主要框架,使得模型能夠更徹底地捕捉語句中的雙向關(guān)系,相比Word2Vec模型,能更好地表征不同語境中的語義信息,從而解決一詞多義問題。在中文命名實體識別數(shù)據(jù)集上已有許多成功的案例,例如文獻[9-11],都得到了不錯的效果。由于BERT預(yù)訓(xùn)練語言模型強大的語義表達能力,因此本文將運用BERT與 BiLSTM-CRF網(wǎng)絡(luò)結(jié)合的常用組合進行實體識別,以提高流行病學(xué)調(diào)查信息文本中實體識別的準(zhǔn)確率。
本文采用字符級表示的模型,并不考慮分詞問題,一方面采用字符級表示操作直接簡單,另一方面中文分詞會存在錯分的情況,錯誤的分詞結(jié)果會在模型訓(xùn)練中傳遞,從而影響模型效果。本文基礎(chǔ)模型框架由BERT層、BiLSTM網(wǎng)絡(luò)層和CRF條件隨機場層所組成,模型整體結(jié)構(gòu)如圖 1所示。對于一個句子s={s1,s2,…,sn},si表示第i個位置所對應(yīng)的字符。BERT-BiLSTM-CRF模型進行實體識別的流程:首先對句子進行預(yù)處理,將其切割成獨立的字符序列。在BERT模型中,句子s的開頭會加上[CLS]標(biāo)簽,句子結(jié)尾會加上[SEP]標(biāo)簽。接下來BERT的嵌入層會將處理后的字符序列映射成字向量的同時編碼句子信息及位置信息。設(shè)嵌入層的輸出d維向量x,x∈Rd。字向量x傳入BERT中堆疊的Transformer模塊不斷計算,最終輸出字向量h,字向量h進入BiLSTM網(wǎng)絡(luò)中繼續(xù)進行計算輸出字向量H,然后將H映射到標(biāo)簽域向量H′,最后經(jīng)過CRF層解碼得到字符對應(yīng)的預(yù)測標(biāo)簽序列。
圖1 模型整體框架
目前,在典型的NLP任務(wù)中,預(yù)訓(xùn)練模型是首選的。如源于谷歌的一個開源項目word2ve[12]。word2vec預(yù)訓(xùn)練模型通過單詞嵌入,可以測量單詞之間的相似性,但word2vec是一種靜態(tài)的“詞語”級別的預(yù)訓(xùn)練模型,不能解決不同語境下詞的多義性問題。預(yù)訓(xùn)練模型應(yīng)用于NLP任務(wù)有兩種主要策略。一是使用基于特征的語言模型,如ELMo(Embeddings from language models)模型[13]。ELMo模型引入了詞向量的上下文動態(tài)調(diào)整來解決一詞多義問題。然而,ELMo使用的LSTM結(jié)構(gòu)特征提取能力弱于Transformer編碼器。二是使用微調(diào)語言模型,如GPT(Generative pre-trained transformer)模型[14]。這是一種基于Transformer的語言模型,但GPT使用的是單向語言模型,這限制了它在特定應(yīng)用程序中的使用。針對上述模型的不足,Devlin等借鑒了ELMo、GPT及word2vec的思想,提出了基于雙向編碼表示的Transformers結(jié)構(gòu)多任務(wù)學(xué)習(xí)的BERT模型[8]。上述提及的模型結(jié)構(gòu)對比如圖 2所示。BERT主要提出了兩個新的組件,掩蔽語言模型(Masked language model,MLM)和下一句預(yù)測(Next sentence prediction,NSP)。MLM在每次迭代中隨機屏蔽15%的單詞,其目標(biāo)是在給定上下文的情況下預(yù)測這些單詞。采用具有強提取能力的Transformers編碼器和雙向訓(xùn)練形式,MLM理想地適用于長序列文本NER任務(wù)。NSP的作用是為了讓模型捕捉兩個句子的聯(lián)系,理解句子之間的關(guān)系,其具體作用是隨機替換語料庫的句子順序,然后基于前一句預(yù)測下一句的概率。
圖2 三種語言模型結(jié)果比較
LSTM,是一個具有長時記憶的循環(huán)RNN,其網(wǎng)絡(luò)結(jié)構(gòu)由一個或多個具有遺忘和記憶功能的單元組成,克服了傳統(tǒng)RNN梯度消失的問題,這使得網(wǎng)絡(luò)能夠選擇性地保留以前的信息[15-17]。在確診病例軌跡信息中的NER中,很多情況是多個詞構(gòu)成一個實體,即長序列實體。利用LSTM,可以學(xué)習(xí)長距離依賴的特征,從而可以提高模型識別長序列實體的能力。LSTM單元結(jié)構(gòu)見圖3。
圖3 LSTM記憶單元結(jié)構(gòu)
將BERT模型的輸出字向量表示為x:={x1,x2,…,xn}。LSTM的計算過程可以表述為(1)-(6)式。
(1)
ht=ot⊙tanh(ct)
(2)
(3)
ft=σ(Wfxt+Ufht-1+bf)
(4)
it=σ(Wixt+Uiht-1+bi)
(5)
ot=σ(Woxt+Uoht-1+bo)
(6)
兩層LSTM網(wǎng)絡(luò)堆疊而成的BiLSTM模型通過計算輸入序列的前向和向后兩個方向的信息,然后將兩個方向的信息進行拼接作為隱層的輸出,能更好地捕捉雙向語義依賴。計算式見(7)~(9)。
(7)
(8)
(9)
BiLSTM雖然學(xué)到了輸入序列的上下文信息,但它默認(rèn)序列標(biāo)簽的各個狀態(tài)之間是相互獨立互不影響的,這樣可能會導(dǎo)致實體標(biāo)簽不一致問題。標(biāo)簽之間不是相互獨立的,因此,關(guān)鍵的一步仍然是在獲得標(biāo)簽數(shù)據(jù)集后處理標(biāo)簽之間的關(guān)系。一種可能性是CRF模型[18],這是一種條件概率模型。該模型會考慮標(biāo)簽之間的順序性,能夠處理標(biāo)簽之間的相互約束關(guān)系,有效解決序列標(biāo)簽不一致問題。
對于每個輸入序列x:={x1,x2,…,xn},經(jīng)過上述模塊的處理后,得到1個n×m的概率矩陣P,其中n是輸入字序列的數(shù)量,m是標(biāo)簽類型的數(shù)量。用y:={y1,y2,…,yn}作為預(yù)測標(biāo)記序列,因此模型計算相應(yīng)的得分:
(10)
式中:Piyi為第i個位置softmax輸出為yi的概率,Ayi-1yi表示從yi-1到y(tǒng)i的轉(zhuǎn)移概率矩陣。得到得分后利用最大似然函數(shù)訓(xùn)練模型,計算式如下:
(11)
最后,模型使用維特比算法來求解預(yù)測過程中的最優(yōu)標(biāo)簽序列。
y*=argmaxyScore(x,y)
(12)
BiLSTM只關(guān)注連續(xù)的上下文依賴,而忽略了離散的上下文模式。然而,離散上下文相關(guān)在序列標(biāo)記任務(wù)中起著重要的作用。Tan等[19]研究證明,自注意力機制可以有效地提高某些NLP任務(wù)的性能,如SRL(語義角色標(biāo)注)任務(wù)。谷歌機器翻譯團隊?wèi)?yīng)用了大量的自注意力機制來學(xué)習(xí)文本表示,并取得了出色的結(jié)果[20]。受這些啟發(fā),我們在BERT-BiLSTM-CRF模型的基礎(chǔ)上將多頭注意機制引入模型中,以進一步增強BiLSTM模型對長序列文本的記憶能力和特征提取能力。增加Multi-Head Attention層后模型結(jié)構(gòu)如圖 4所示。
圖4 加入注意力機制后的模型框架
多頭注意力機制在序列內(nèi)部完成注意力計算,尋找序列內(nèi)部聯(lián)系,常用放縮點積注意力進行計算查詢和每個鍵之間的相似度[21]。公式由下式給出:
(13)
拼接許多不同比例的放縮點積注意會產(chǎn)生多頭注意。結(jié)構(gòu)如圖 5所示。多頭的本質(zhì)是多個獨立的attention計算,作為一個集成的作用,多頭和單頭的區(qū)別在于復(fù)制多個單頭,考慮到了不同位置表示子空間中提取信息的必要性,能夠提取多重語意的含義。具體過程是分別對查詢Q、鍵K和值V進行h次線性投影。
圖5 多頭注意力機制結(jié)構(gòu)
(14)
MultiHead(Q,K,V)=Concat(head1,…,headn)
(15)
綜上,加入注意力機制后的模型對于文本NER的具體過程如表 1所示。
表1 算法過程
本文的數(shù)據(jù)集來源主要是搜集疾病預(yù)防控制中心公布的新型冠狀病毒肺炎確診病例的軌跡信息文本,通過整理得到8千多條,共約99萬5千字符,并根據(jù)《新型冠狀病毒肺炎流行病學(xué)調(diào)查指南》[22]確定人名(name)、途徑地點(location)、住址(address)、交通方式(transportation)、籍貫(native_place)、國籍(nationality)、職業(yè)(occupation)、癥狀體征(symptom)以及日期(time)等9類實體。實體定義及標(biāo)注規(guī)則見表2。
表2 實體定義及標(biāo)注規(guī)則
因涉及隱私保護,用常用人名加以隨機替代公布文本人名中的某字,以表示真實人名。本文使用BIOS(B-begin,I-inside,O-outside,S-Single)標(biāo)注體系進行標(biāo)注。標(biāo)注結(jié)構(gòu)見表3。本文用標(biāo)注工具YEDDA[23]進行標(biāo)注,標(biāo)注完成后進行人工校正,最后按8∶1∶1分為訓(xùn)練集、測試集和驗證集。
表3 BIOS標(biāo)注結(jié)構(gòu)
實驗選擇PyTorch進行搭建。實驗硬件及軟件環(huán)境配置如表 4所示。為了保證實驗的公平性,各實驗?zāi)P椭谐恍┨貏e實驗參數(shù)設(shè)置有所不同外,盡量保持參數(shù)的一致性。詳細(xì)參數(shù)見表5。
表4 實驗環(huán)境
表5 實驗參數(shù)
衡量模型性能一般使用準(zhǔn)確率P、召回率R以及F1值3個評測指標(biāo),指標(biāo)的數(shù)學(xué)定義如下。
TP為正類被預(yù)測為正類的數(shù);FP為負(fù)類被預(yù)測為正類的數(shù);FN為正類被預(yù)測為負(fù)類的數(shù)。
表6為各模型在數(shù)據(jù)集上的表現(xiàn)結(jié)果。從表中可以明顯看出,將CRF添加到BiLSTM網(wǎng)絡(luò)后,識別實體識別的準(zhǔn)確率有了較大提高,比BiLSTM提高了3.12%,可見CRF強大的序列標(biāo)注能力。對于類別模糊的實體提升更為顯著,如實體occupation。嵌入BERT的BiLSTM-CRF模型F1值較未嵌入時提高了9.04%,可見BERT強大的語義表征能力。
表6 各命名實體識別結(jié)果
表7顯示了統(tǒng)計了9個實體的數(shù)量,從中可看到,不同實體在文本中所占的比例是不同的,有些實體在數(shù)據(jù)集中出現(xiàn)的頻率較低,稱之為低頻實體。低頻實體的識別精度相對較差,因為樣本數(shù)量少,且大多數(shù)是特殊實體。
表7 實體數(shù)量統(tǒng)計
實體識別中,低頻實體識別比高頻實體識別更具挑戰(zhàn)性。圖6是4種不同模型在這些實體上的F1值。從圖6可知,這4個模型在識別低頻實體(如time和location)方面都達到了不錯的效果。然而,在低頻實體(如nationality和occupation)上識別精度仍有較大提升空間。這4個模型中,加入BERT層的模型識別低頻實體的準(zhǔn)確率較未加入BERT層的模型有較高提升,這表明BERT模型的大規(guī)模預(yù)訓(xùn)練能夠補充稀缺的訓(xùn)練數(shù)據(jù),BERT在識別低頻實體方面優(yōu)于BiLSTM模型。
圖6 各實體在不同模型上的F1值
為了評估模型本文模型的性能,我們將它的性能與其他常用的5種先進模型進行了比較。各模型在數(shù)據(jù)集上的實驗結(jié)果見表8。
表8 各模型的識別效果比較
1)CRF模型和BiLSTM-CRF模型的對比實驗中,引入CRF層后,準(zhǔn)確率、召回率及F1值都有提升。主要是因為標(biāo)簽之間存在相互約束關(guān)系,如一個實體的標(biāo)簽只能是B或S開頭,而不能是I。CRF能夠處理標(biāo)簽之間的這種相互約束關(guān)系,有效解決序列標(biāo)簽不一致問題。
2)BERT-CRF模型和BERT-BiLSTM-CRF模型進行對比實驗中,模型總體平均F1值提高不大,原因在于BERT模型本身在特征提取方面非常出色,在BERT的基礎(chǔ)上再加入BiLSTM效果提升效果不明顯。
3)BiLSTM-CRF模型和BERT-BiLSTM-CRF模型對比實驗中,加入了BERT層之后,模型的準(zhǔn)確率提高了7.56%,主要是因為BERT采用雙向Transformer編碼結(jié)構(gòu)對輸入的文本序列進行了“字符”級向量的預(yù)訓(xùn)練。Transformer編碼結(jié)構(gòu)中的Attention機制對序列文本進行建模,能夠抽取更豐富的語義特征,因此效果優(yōu)于BiLSTM-CRF模型。
4)Lattice-LSTM-CRF對比BERT-BiLSTM-CRF來看,BERT的特征抽取能力比較強,因為Lattice-LSTM-CRF是通過字典的方式將詞匯信息與字符信息融合以提升命名實體識別效果,但由于其嚴(yán)格的序列學(xué)習(xí)的特性會導(dǎo)致歧義現(xiàn)象的產(chǎn)生,所以實驗效果不如BERT-BiLSTM-CRF。
5)從表中可見BERT-BiLSTM-Attention-CRF在準(zhǔn)確率、召回率及F1值上均為最高,驗證了在BERT-BiLSTM-CRF模型的基礎(chǔ)上繼續(xù)添加注意力層是可以進一步提升模型實體識別的能力。
1)針對在流行病學(xué)調(diào)查領(lǐng)域,尚未見到NER的相關(guān)研究的問題,搜集公開的COVID-19確診病例流調(diào)信息文本,通過通過開源標(biāo)注工具自動標(biāo)注、人工校準(zhǔn)的方式對數(shù)據(jù)進行了預(yù)處理,構(gòu)建了COVID-19確診病例流調(diào)信息文本的語料庫。
2)為準(zhǔn)確識別COVID-19確診病例流調(diào)信息文本中的關(guān)鍵實體,本文通過將BERT預(yù)訓(xùn)練語言模型嵌入到BiLSTM-CRF中,構(gòu)建了BERT-BiLSTM-CRF模型。實驗表明,引入的字符型BERT預(yù)訓(xùn)練模型,通過雙向Transformer結(jié)構(gòu)動態(tài)生成字符的上下文語義表示,使字符向量具有強大的表征能力。
3)通過嘗試在BiLSTM層后繼續(xù)加入注意力機制,利用多頭注意力機制在不同的子空間捕捉上下文信息的能力,獲得更加完善的表征能力,以進一步增強模型對長序列文本的記憶能力和特征提取能力。實驗結(jié)果的準(zhǔn)確率相較于目前應(yīng)用較多的BiLSTM-CRF模型提升了9.21%。通過實驗分析表明,嵌入BERT預(yù)訓(xùn)練語言模型的網(wǎng)絡(luò)在識別低頻詞和高頻詞以及保證全文標(biāo)簽的一致性方面具有更突出的表現(xiàn)。
4)本文僅抽取了流行病學(xué)調(diào)查信息中的關(guān)鍵實體,實體的劃分還需更細(xì)粒度,以期構(gòu)建流調(diào)信息中確診病例軌跡鏈。因此,還需進行軌跡地點的細(xì)分,將其細(xì)分成起始地點、終止地點等,以形成病例在某個時間段內(nèi)的軌跡鏈,為有效輔助COVID-19流行病調(diào)查研究和服務(wù)數(shù)據(jù)中心的建立做好準(zhǔn)備工作。