羅熹,夏先運(yùn),安瑩,陳先來
(1.中南大學(xué)大數(shù)據(jù)研究院,湖南長沙 410083;2.湖南警察學(xué)院網(wǎng)絡(luò)偵查技術(shù)湖南省重點(diǎn)實(shí)驗(yàn)室,湖南長沙 410138)
隨著醫(yī)療信息化的快速發(fā)展,醫(yī)療機(jī)構(gòu)中積累了大量的電子病歷數(shù)據(jù).這些電子病歷是病人在醫(yī)院就診及治療過程中所產(chǎn)生的重要記錄,包含了臨床文本、醫(yī)學(xué)圖表、醫(yī)學(xué)影像等多種類型的臨床記錄數(shù)據(jù).其中,諸如主訴、診斷結(jié)果、入院/出院記錄和治療過程等臨床文本中蘊(yùn)含著極為豐富的臨床經(jīng)驗(yàn)知識(shí)以及與病人健康狀態(tài)緊密相關(guān)的臨床信息,但是,這些以非結(jié)構(gòu)化自由文本形式存儲(chǔ)的信息很難直接加以分析和利用,需要首先通過自然語言處理技術(shù)進(jìn)行必要的信息抽取,準(zhǔn)確地識(shí)別出文本中的相關(guān)概念、屬性和語義關(guān)系等重要信息.命名實(shí)體(Named Entity,NE)是電子病歷中相關(guān)醫(yī)學(xué)知識(shí)的主要載體,因此,臨床命名實(shí)體識(shí)別也就成為了臨床文本分析處理極為關(guān)鍵的基礎(chǔ)性任務(wù)之一.
近年來,關(guān)于臨床命名實(shí)體識(shí)別的研究得到了研究人員大量的關(guān)注,并在英文臨床文本領(lǐng)域產(chǎn)生了一系列的研究成果,其中基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法的條件隨機(jī)場(CRF)[1]和基于深度學(xué)習(xí)方法的長短時(shí)記憶網(wǎng)絡(luò)與條件隨機(jī)場(BiLSTM-CRF)[2]應(yīng)用最為廣泛.然而,由于在語言結(jié)構(gòu)和表達(dá)形式等方面的特殊性,面向中文電子病歷的臨床命名實(shí)體識(shí)別依然存在著巨大的挑戰(zhàn).
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,很多研究人員嘗試使用基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的深度學(xué)習(xí)模型解決中文臨床命名實(shí)體識(shí)別任務(wù),該模型將中文文本中的一個(gè)句子看作是一條由漢字詞語或者字符組成的序列,然后執(zhí)行循環(huán)遍歷,利用RNN 中的隱藏單元來學(xué)習(xí)文本中的上下文信息.但是,已有的研究方法仍然存在著很多的欠缺.首先,傳統(tǒng)的RNN 學(xué)習(xí)長序列中的依賴關(guān)系的能力不足,當(dāng)文本序列較長時(shí)容易損失大量有用信息.其次,現(xiàn)有的方法大多僅將一個(gè)文本序列映射為單一的表示,缺乏獲取多角度文本序列特征的能力.此外,這些基于深度學(xué)習(xí)模型的方法的識(shí)別性能很大程度上依賴于大量的標(biāo)注訓(xùn)練數(shù)據(jù)集,而且未能對已有的領(lǐng)域特征加以有效的利用.再加上中文臨床文本中存在的很多語法及表述方面的問題,如大量的醫(yī)學(xué)專有名詞、非標(biāo)準(zhǔn)化的名詞縮寫以及由于書寫或表達(dá)錯(cuò)誤導(dǎo)致的噪聲,都嚴(yán)重地影響了中文臨床文本命名實(shí)體識(shí)別的性能.
為了解決以上的這些挑戰(zhàn),本文提出了一種結(jié)合多頭自注意力機(jī)制與BiLSTM-CRF 的深度網(wǎng)絡(luò)模型(Multi-Head self-Attention BiLSTM-CRF,MHABiLSTM-CRF).該模型將中文文本字符特征和臨床領(lǐng)域知識(shí)特征進(jìn)行融合,以獲得更全面的字符級(jí)嵌入表示.然后使用BiLSTM 網(wǎng)絡(luò)從輸入序列中捕獲相關(guān)的時(shí)序特征和上下文關(guān)系,同時(shí)引入多頭自注意力機(jī)制,從多個(gè)角度獲得中文臨床文本中字符間關(guān)聯(lián)權(quán)重表示來更準(zhǔn)確地關(guān)注句子中的重要字符或單詞,從而有效地提升中文臨床命名實(shí)體的識(shí)別能力.
命名實(shí)體識(shí)別(Named Entity Recognition,NER)本質(zhì)上可以看成是一個(gè)多標(biāo)簽序列分類問題.它以由多個(gè)字符或詞語構(gòu)成的文本序列為輸入,旨在識(shí)別文本中的專有名詞、數(shù)字信息和其他重要名詞并將其分類為預(yù)先定義的類別,例如人員名稱、組織、位置、時(shí)間表達(dá)等.多年來,研究人員針對該問題開展了廣泛的研究并提出了許多命名實(shí)體識(shí)別的相關(guān)方法[3].這些方法大致可以分為三種類型:基于規(guī)則和詞典匹配的方法、基于傳統(tǒng)特征工程的機(jī)器學(xué)習(xí)的方法[4-6]以及目前比較流行的基于深度學(xué)習(xí)的方法[2,7-9].
在臨床領(lǐng)域中,命名實(shí)體識(shí)別的目標(biāo)是從給定的臨床文本中提取出那些與醫(yī)療過程密切相關(guān)的實(shí)體指代,并將它們準(zhǔn)確地劃分為疾病、癥狀、檢查、身體部位以及治療等特定的實(shí)體類別.目前,研究人員針對英文臨床文本的命名實(shí)體識(shí)別已經(jīng)開展了大量的研究[3].而且,得益于英文語言所具有的以空格作為分割符、專業(yè)術(shù)語的字母大寫特征等天然優(yōu)勢,使得許多命名實(shí)體識(shí)別方法在英文臨床文本中得到了較為成功的應(yīng)用.然而,由于不同語言在句法結(jié)構(gòu)、表達(dá)方式等方面的特殊性,針對其他語言的臨床文本,特別是中文臨床文本的命名實(shí)體識(shí)別依然是一項(xiàng)極具挑戰(zhàn)性的任務(wù).
為了推動(dòng)中文臨床命名實(shí)體識(shí)別技術(shù)的發(fā)展,2017 年由中文信息學(xué)會(huì)組織的全國知識(shí)圖譜與語義計(jì)算大會(huì)(CCKS2017)首次設(shè)立了中文臨床文本命名實(shí)體識(shí)別相關(guān)的測評任務(wù),吸引了大量研究人員的積極參與并產(chǎn)生了一系列較為有效的中文命名實(shí)體識(shí)別方法.例如,Li 等人[10]將中文臨床命名實(shí)體識(shí)別看作一個(gè)詞級(jí)別的序列標(biāo)注任務(wù),提出了一個(gè)基于BiLSTM-CRF 的深度模型,并通過使用額外的醫(yī)療詞典及數(shù)據(jù)集作為補(bǔ)充來得到更加豐富的、具有領(lǐng)域特征的詞向量,從而有效地提高識(shí)別的準(zhǔn)確率.Ouyang 等人[11]結(jié)合分詞特征、詞性特征以及醫(yī)療詞典特征,提出了一種基于n-gram 字符表示策略的BiLSTM-CRF 模型.Xia 等人[12]則在BiLSTM-CRF 模型的基礎(chǔ)上引入自學(xué)習(xí)和主動(dòng)學(xué)習(xí)策略,充分利用未標(biāo)注數(shù)據(jù)來增強(qiáng)模型的識(shí)別能力.此外,Hu 等人[13]還提出了一種基于投票的混合模型,將基于規(guī)則的方法、基于CRF 的方法以及融合特征的RNN 方法進(jìn)行結(jié)合,以有效地實(shí)現(xiàn)中文臨床文本中的實(shí)體識(shí)別.
近年來,研究人員在之前工作的基礎(chǔ)上對CNER 方法進(jìn)行了大量的改進(jìn).Wang 等人[14]將數(shù)據(jù)驅(qū)動(dòng)的深度學(xué)習(xí)方法與知識(shí)驅(qū)動(dòng)的詞典方法結(jié)合起來,提出了一種融合領(lǐng)域詞典的深度神經(jīng)網(wǎng)絡(luò)模型,并利用一種改進(jìn)的詞典特征表示方法,在中文臨床文本上獲得了較高的命名實(shí)體識(shí)別性能.Qiu 等人[15]采用了一個(gè)帶條件隨機(jī)場的殘差卷積神經(jīng)網(wǎng)絡(luò)模型(RD-CNN-CRF)來解決中文臨床命名實(shí)體識(shí)別的問題.該方法首先將漢字和字典特征映射為對應(yīng)的向量表示,然后將其輸入到RD-CNN-CRF 模型中以捕獲相關(guān)的上下文特征.由于CNN 出色的并行執(zhí)行能力,該方法在識(shí)別能力和訓(xùn)練時(shí)間等方面獲得了與現(xiàn)有其他基于RNN 的方法相當(dāng)或更高的性能.Tang等人[16]則提出了一種基于注意力機(jī)制的CNN-LSTMCRF 模型.該模型通過引入CNN 層和注意力層來更好地捕獲詞語的局部上下文信息以及詞間關(guān)聯(lián)強(qiáng)度,從而有效地?cái)U(kuò)展和增強(qiáng)了BiLSTM-CRF 模型的學(xué)習(xí)能力.盡管上述改進(jìn)方法在提升中文臨床命名實(shí)體識(shí)別性能方面取得了一定的效果,但它們大多沒有充分利用中文文本序列中重要的全局特性,而且往往忽略了數(shù)據(jù)集中臨床實(shí)體分布的不均衡性,從而嚴(yán)重影響了其實(shí)體識(shí)別的準(zhǔn)確性.
因此,為了彌補(bǔ)現(xiàn)有方法的上述缺陷,本文提出了一種基于多頭自注意力機(jī)制的BiLSTM-CRF 模型,通過有效地捕獲和融合臨床文本中字符自身特征、字符間的依賴關(guān)系、文本序列中的語義和上下文信息以及詞典特征等多層面的文本特征來提升中文臨床命名實(shí)體的識(shí)別能力.
Google 機(jī)器翻譯團(tuán)隊(duì)在2017 年發(fā)表的論文中提出了一種包含自注意力以及多頭自注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)架構(gòu),并在機(jī)器翻譯任務(wù)中取得了較為出色的效果[17].自注意力機(jī)制是一種特殊的注意力機(jī)制,它通過計(jì)算單個(gè)文本序列中不同位置字符間的關(guān)聯(lián)關(guān)系,以便獲得序列的交互表示.而多頭自注意力機(jī)制則是通過結(jié)合多次并行的自注意力計(jì)算來捕獲同一序列在不同表示子空間上的信息,進(jìn)而從多角度多層面得到更全面的相關(guān)特征.自注意力機(jī)制自其被提出開始就在自然語言處理相關(guān)的諸多領(lǐng)域得到了大量應(yīng)用,例如,自動(dòng)文本摘要、自然語言推理、機(jī)器翻譯及語言理解等.
在中文臨床命名實(shí)體識(shí)別任務(wù)中,臨床文本語料規(guī)模通常較小且其中存在大量不規(guī)則的文本表達(dá).而與RNN 和CNN 相比,多頭自注意力機(jī)制具有很多優(yōu)勢.首先,多頭自注意力機(jī)制可以捕獲句子中任意位置的字符之間的關(guān)聯(lián)關(guān)系,使得模型更加方便地學(xué)習(xí)到長句子的前后文依賴信息.其次,注意力機(jī)制使用權(quán)重求和的方式產(chǎn)生輸出向量,使其梯度在網(wǎng)絡(luò)模型中的傳播比RNN 和CNN 更加容易.此外,多頭自注意力機(jī)制的并行執(zhí)行能力更強(qiáng),具有更快的訓(xùn)練速度.因此,多頭自注意力機(jī)制將成為進(jìn)一步提升現(xiàn)有方法中文臨床命名實(shí)體識(shí)別能力的一種有效手段.該機(jī)制將會(huì)選擇性地關(guān)注某些重要的信息,同時(shí)相應(yīng)地忽略其他次要信息,并且根據(jù)文本中文字的重要性將較高的權(quán)重分配給相對更重要的文字,獲取更多的臨床文本字符之間的關(guān)聯(lián)權(quán)重特征.
中文臨床命名實(shí)體識(shí)別任務(wù)通常被當(dāng)作序列標(biāo)注任務(wù)來處理.由于中文文本中詞語邊界的模糊性,本文對文本序列采用了字符級(jí)別的標(biāo)注方式以避免分詞錯(cuò)誤對實(shí)體識(shí)別性能帶來的影響.對于給定的一段文本字符序列S=[w1,w2,w3,…,wn],其中wt表示其中的第t 個(gè)字符,我們的目標(biāo)是訓(xùn)練出一個(gè)模型準(zhǔn)確地為文本中的每一個(gè)字符給出包含實(shí)體類別和位置信息的對應(yīng)標(biāo)簽,得到相應(yīng)的標(biāo)簽序列Y=[y1,y2,y3,…,yn].本節(jié)將簡要介紹一下本文方法的基本原理及處理流程.
本文的模型總體架構(gòu)如圖1 所示.該模型由多個(gè)深度網(wǎng)絡(luò)層組成,主要包括Embedding 嵌入層、MHA-BiLSTM 層以及CRF 層.Embedding 層的作用是將原始的輸入文本序列轉(zhuǎn)化為模型可接受的數(shù)字向量矩陣,并將其進(jìn)一步映射為對應(yīng)的低維嵌入向量表示,然后,將Embedding 層輸出的嵌入向量分別輸入到MHA-BiLSTM 層中的多頭自注意力模塊和BiLSTM 網(wǎng)絡(luò)模塊.其中,BiLSTM 網(wǎng)絡(luò)模塊用于學(xué)習(xí)文本序列的時(shí)序特征和上下文信息,而自注意力機(jī)制則用于獲取輸入文本序列的全局特征表示以及各種字符之間的關(guān)聯(lián)強(qiáng)度.最后,以上兩個(gè)神經(jīng)網(wǎng)絡(luò)模塊的輸出將被拼接在一起輸入到CRF 層,以獲得最終的標(biāo)簽序列.
圖1 MHA-BiLSTM-CRF 模型架構(gòu)圖Fig.1 Architecture diagram of MHA-BiLSTM-CRF model
Embedding 層的作用將自然語言文本處理成模型能夠識(shí)別并進(jìn)行計(jì)算的形式.給定中文臨床文本字符序列S=[w1,w2,w3,…,wn],我們首先將每個(gè)字符wt表示成一個(gè)one-hot 向量xt,其維度等于訓(xùn)練數(shù)據(jù)集中的字符量大小.那么,輸入字符序列可以表示為X=[x1,x2,x3,…,xn].然后,通過基于分布式字符嵌入表示的方法,這些字符的one-hot 向量被進(jìn)一步映射為相應(yīng)的低維稠密向量.本文中使用的嵌入表示方法包括兩種方式,一種是字符嵌入,它將每個(gè)字符嵌入到一個(gè)對應(yīng)的語義向量中;另一種被稱為特征嵌入,它將每個(gè)字符及其對應(yīng)標(biāo)簽的組合映射為一個(gè)特征嵌入向量,從而使得在不同實(shí)體中具有不同標(biāo)簽的相同字符具有不同的特征表示形式.具體過程描述如下.
2.2.1 字符嵌入
字符是中文自然語言處理的最小語義單元,本文采用預(yù)訓(xùn)練字符嵌入向量表來獲得豐富的字符級(jí)文本特征表示.該查找表通過未標(biāo)注的中文維基百科數(shù)據(jù)集經(jīng)word2vec 訓(xùn)練得到,包含了16 691 個(gè)漢字及其對應(yīng)的向量表示.在獲取字符嵌入向量的過程中,對于中文臨床文本中的任意字符,我們首先在該字符向量表中查找是否存在該字符對應(yīng)的嵌入向量,若找到匹配項(xiàng),則將該字符以匹配的字符嵌入向量表示;否則,將其表示為一個(gè)隨機(jī)向量.這樣,輸入序列將被轉(zhuǎn)換為字符嵌入向量序列Vc=[vc1,vc2,vc3,…,vcn].其中,每個(gè)字符嵌入向量的維數(shù)d 設(shè)為100.
2.2.2 特征嵌入
字符嵌入僅實(shí)現(xiàn)了字符自身特征的降維表示,然而同一個(gè)字符可能出現(xiàn)在不同臨床命名實(shí)體中的不同位置,這些信息蘊(yùn)含了與相關(guān)實(shí)體的依賴關(guān)系,對于命名實(shí)體的識(shí)別具有十分重要的意義.現(xiàn)有的方法大多采用單獨(dú)將字符的特征標(biāo)簽(如所屬實(shí)體的類別以及BIOES 位置標(biāo)注等)轉(zhuǎn)化為對應(yīng)的特征向量的方式.但是,這種方式把字符和其對應(yīng)的標(biāo)簽完全分離開來進(jìn)行表示,無法捕獲字符在對應(yīng)實(shí)體中的依賴關(guān)系特征.因此,在本文的方法中,我們將每個(gè)字符與其對應(yīng)標(biāo)簽作為一個(gè)整體,然后通過word2vec 將其表示為相應(yīng)的特征嵌入向量,從而盡可能全面地捕獲字符與實(shí)體的相關(guān)特征以得到更豐富的字符特征表示.
為了獲得更全面的字符特征標(biāo)簽,我們使用了一個(gè)包含多種臨床實(shí)體的醫(yī)學(xué)領(lǐng)域詞典.其中的臨床實(shí)體均由ICD-10、ICD-9-CM 以及如搜狗細(xì)胞詞庫、在線醫(yī)療咨詢網(wǎng)站等其他系統(tǒng)中抽取得來,主要包括五種實(shí)體類別:疾病、癥狀描述、檢查項(xiàng)目、身體部位以及治療.對于給定的輸入文本序列S,我們首先根據(jù)該詞典利用雙向最大化匹配算法(Bi-Direction Maximum Matching,BDMM),對輸入文本進(jìn)行實(shí)體劃分.若輸入文本序列中的某個(gè)子串在詞典中發(fā)生匹配,則將該子串作為一個(gè)臨床實(shí)體并對其進(jìn)行相應(yīng)的類別標(biāo)注.沒有發(fā)生匹配的字符則統(tǒng)一標(biāo)記為“None”.然后,我們再利用BIOES 標(biāo)注機(jī)制為每個(gè)字符加上其所在實(shí)體的位置標(biāo)簽.標(biāo)注樣具體如表1 所示.接著,我們將字符與其對應(yīng)標(biāo)簽(實(shí)體類別標(biāo)簽+位置標(biāo)簽)結(jié)合起來轉(zhuǎn)化為相應(yīng)的聯(lián)合特征嵌入向量vdt.
最終,對于任意字符的輸入xt,我們將上述兩個(gè)嵌入過程得到的字符嵌入向量vct和聯(lián)合特征嵌入向量vdt拼接起來作為它的最終向量表示et,如公式(1)所示.
表1 文本序列的特征標(biāo)注樣例Tab.1 A sample of feature labeling for a clinical text sequences
式中:⊕表示向量拼接運(yùn)算.這樣,輸入字符序列即可表示為E=[e1,e2,e3,…,en].
為了更好地獲取文本的時(shí)序特征、字符上下文信息以及文本序列中字符之間的相關(guān)權(quán)重,本模型在Embedding 層之后部署了一個(gè)由兩個(gè)獨(dú)立模塊組成的MHA-BiLSTM 層.一個(gè)是BiLSTM 模塊,另一個(gè)則是多頭自注意力模塊.Embedding 層輸出的向量矩陣將分別輸入到上述兩個(gè)模塊進(jìn)行處理,然后再將兩個(gè)模塊的輸出向量拼接后得到該層的最終輸出.
2.3.1 BiLSTM 模塊
BiLSTM 利用來自Embedding 層的輸出向量矩陣E,通過結(jié)合序列中每個(gè)字符的上下文信息來獲取更全面的特征表示.
對于輸入序列中任意位置t 上的字符向量et,LSTM 將結(jié)合et和前一時(shí)刻的狀態(tài)ht-1來計(jì)算當(dāng)前的隱藏狀態(tài)ht.具體實(shí)現(xiàn)過程如公式(2)~(7)所示:
然而,單向LSTM 在計(jì)算當(dāng)前狀態(tài)時(shí)僅考慮了過去的歷史狀態(tài),而忽略了后續(xù)的狀態(tài)信息.因此,我們利用雙向LSTM(BiLSTM)模型,通過計(jì)算并結(jié)合任意輸入字符et的前向表示和后向表示來獲得更完整的上下文信息,從而解決單向LSTM 的局限性.則最終當(dāng)前時(shí)刻t 的隱藏狀態(tài)ht可表示為:
2.3.2 多頭自注意力模塊
傳統(tǒng)的BiLSTM-CRF 模型無法充分表達(dá)文本序列的全局信息以及句中各個(gè)字符的重要性,而且隨著句子長度的增加,BiLSTM 在訓(xùn)練過程中有可能會(huì)遺失大量對于命名實(shí)體識(shí)別極為重要的信息.例如,不同的詞語或字符在同一語句中往往具有不同的作用,同一詞語或字符在不同語句中的含義也可能存在明顯的差異.這些特征對于準(zhǔn)確地理解詞語/字符間的關(guān)系和上下文含義具有重要意義.因此,我們引入了多頭自注意力機(jī)制作為BiLSTM 模塊的補(bǔ)充,從字符、單詞和句子的層面捕獲多種語義特征來進(jìn)一步提高臨床命名實(shí)體識(shí)別的性能.
該過程將Embedding 層的輸出向量矩陣E 通過三次不同的映射操作分別轉(zhuǎn)換成三個(gè)維度均為dk的輸入矩陣:查詢Q、鍵K 和值V,并傳入如公式(9)所示的注意力函數(shù)中.注意力函數(shù)將根據(jù)Q 與K 之間的相關(guān)性計(jì)算V 上的權(quán)值,進(jìn)而得到相應(yīng)的混合向量表示.
在多頭自注意力模塊中,查詢Q、鍵K 和值V 將分別使用不同的參數(shù)矩陣進(jìn)行h 次獨(dú)立的線性映射,然后相應(yīng)地輸入到h 個(gè)并行頭中執(zhí)行上述的注意力函數(shù)運(yùn)算.這樣,每個(gè)并行頭都可以捕獲文本序列中各字符在不同表示子空間上獨(dú)特的特征信息.接下來,h 個(gè)并行頭上的計(jì)算結(jié)果進(jìn)行合并后再經(jīng)過一次線性映射得到最終的輸出ST=[st1,st2,st3,…,stn],具體過程如公式(10)和(11)所示.
最后,多頭自注意力模塊和BiLSTM 模塊的計(jì)算結(jié)果stt和ht將結(jié)合起來輸入下面的tanh 激活函數(shù)得到MHA-BiLSTM 層的輸出zt如公式(12)所示.
充分考慮相鄰字符標(biāo)簽之間的依賴關(guān)系和約束條件對于中文臨床命名實(shí)體的識(shí)別和分類具有重要的意義.因此,我們在模型的最后采用條件隨機(jī)場(CRF)對MHA-BiLSTM 層生成的融合特征信息進(jìn)行解碼來得到文本的字符標(biāo)簽序列.
將上層的輸出序列Z=[st1,st2,st3,…,stn]作為輸入,CRF 層根據(jù)上下文前后的字符標(biāo)簽來預(yù)測得到可能性最大的標(biāo)簽序列Y=[y1,y2,y3,…,yn].
令θ 表示CRF 層的參數(shù)集合,那么,我們可以通過最大化對數(shù)似然函數(shù),如公式(13)所示,來得到所有參數(shù)的估計(jì):
式中:Y 是文本字符序列對應(yīng)的標(biāo)簽序列;p 表示給定輸入特征序列Z 和參數(shù)集合θ 時(shí)Y 的條件概率.
為了求得式(13)中的條件概率p,我們先根據(jù)公式(14)對轉(zhuǎn)移概率矩陣A 與MHA-BiLSTM 層的輸出Z 進(jìn)行求和計(jì)算出預(yù)測序列Y 的得分Sθ(Z,Y),然后,再對Sθ(Z,Y)進(jìn)行歸一化即得到對應(yīng)的條件概率p.
這里,Zyt,t表示輸入的當(dāng)前時(shí)刻的字符wt被標(biāo)記為yt標(biāo)簽的概率值,Ayt-1,yt則表示t-1 時(shí)刻的字符被wt標(biāo)記為標(biāo)簽并且被標(biāo)記為標(biāo)簽的概率.最終的解碼階段通過CRF 中的標(biāo)準(zhǔn)Viterbi 算法[18],預(yù)測出全局最優(yōu)的標(biāo)注序列.
本節(jié)將通過與幾種最新的臨床命名實(shí)體識(shí)別方法的對比實(shí)驗(yàn)來評估本文方法的有效性.
本文實(shí)驗(yàn)中的數(shù)據(jù)均來自CCKS2017-CNER 數(shù)據(jù)集.該數(shù)據(jù)集是目前廣泛采用的用于中文臨床命名實(shí)體識(shí)別任務(wù)公開測評的標(biāo)準(zhǔn)數(shù)據(jù)集.其中包含了來自不同科室的400 份中文臨床記錄(300 份作為訓(xùn)練集,余下的100 份作為測試集),共計(jì)1 596 個(gè)標(biāo)注實(shí)例(10 024 個(gè)不同的語句),并經(jīng)多名臨床專家的人工標(biāo)注將其中的實(shí)體分為了疾病、癥狀、檢查項(xiàng)目、身體部位以及治療五種類別.同時(shí),樣本中的句子均根據(jù)中文的標(biāo)點(diǎn)符號(hào)(句號(hào)或者感嘆號(hào)等)劃分成了子句以方便處理.數(shù)據(jù)集中相關(guān)臨床實(shí)體的詳細(xì)統(tǒng)計(jì)信息如表2 所示.
表2 數(shù)據(jù)集中實(shí)體統(tǒng)計(jì)信息Tab.2 Statistics of entities in the dataset
本文選取了幾種典型的基于詞級(jí)特征嵌入和字符級(jí)特征嵌入的命名實(shí)體識(shí)別方法作為基準(zhǔn)模型來評估本文方法的有效性,主要包括了詞級(jí)別的模型BiLSTM-CRFword[10]、BiLSTM-CRFword+ReSeg[19]以及字符級(jí)別的模型BiLSTM+CRF+LSTM-FEA[13]、BiLSTM-CRFchar[12]、RD-CNN-CRF[15]、CNN-LSTMAttention[16].
3.3.1 實(shí)驗(yàn)設(shè)置
本文實(shí)驗(yàn)均基于Python 3.6 編程語言開發(fā),采用Keras 2.4 工具包以及Tensoflow1.13.0 進(jìn)行模型的實(shí)現(xiàn).訓(xùn)練過程中,所有模型均通過Adam 優(yōu)化算法進(jìn)行參數(shù)優(yōu)化,初始學(xué)習(xí)率設(shè)為0.01.同時(shí),采用了early-stop 和dropout 策略以防止過擬合,并通過梯度裁剪來解決梯度爆炸問題.主要的實(shí)驗(yàn)參數(shù)設(shè)置如表3 所示.
表3 實(shí)驗(yàn)參數(shù)設(shè)置Tab.3 Parameter configurations of our proposed approach
3.3.2 評價(jià)指標(biāo)
本文采用了CCKS2017-CNER 挑戰(zhàn)賽提供的官方測試數(shù)據(jù)集和測評標(biāo)準(zhǔn)來對所有模型進(jìn)行性能評估.對于模型識(shí)別出的實(shí)體,僅當(dāng)實(shí)體邊界和類別均與標(biāo)準(zhǔn)結(jié)果完全一致時(shí)才被判定為一次正確的識(shí)別.所用的評價(jià)指標(biāo)主要包括:微平均精準(zhǔn)率microaverage precisions(P)、微平均召回率micro-average recall(R)以及微平均F1值(F1).
接下來,我們對本文方法與其他典型的命名實(shí)體識(shí)別模型的性能進(jìn)行對比,并從不同的方面驗(yàn)證本文方法的優(yōu)越性.
3.4.1 多頭自注意力機(jī)制的優(yōu)勢
本文希望通過引入多頭自注意力機(jī)制來提升模型的命名實(shí)體識(shí)別能力,而將注意力機(jī)制與BiLSTM-CRF 進(jìn)行結(jié)合存在多種可行的方式.因此,我們首先嘗試了4 種不同的網(wǎng)絡(luò)結(jié)構(gòu),并通過實(shí)驗(yàn)性能對比來選擇最佳的組合方式.如圖2 所示,模型I采用了將多頭自注意力模塊直接置于BiLSTM 網(wǎng)絡(luò)層之后的方式;模型II 將多頭自注意力模塊置于BiLSTM 層與embedding 層之間;模型III 在模型II的基礎(chǔ)上采用殘差結(jié)構(gòu)將多頭自注意力模塊的輸出與其經(jīng)過BiLSTM 模塊處理后的輸出進(jìn)行融合再輸入CRF 層的方式;模型IV 則將embedding 層的輸出獨(dú)立并行地分別送入到BiLSTM 與多頭自注意力模塊中,將這兩個(gè)模塊的輸出進(jìn)行融合后輸入CRF 層得到最終結(jié)果.
圖2 多頭自注意力機(jī)制的不同模型架構(gòu)Fig.2 Different model architectures of multi-head self-attention mechanism
從表4 中的實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),BiLSTM 與多頭自注意力機(jī)制采用并行組合的兩種模型(模型III 和模型IV)較之采用串行組合的模型(模型I 和模型II)具有更好的效果.其中,模型IV 的精準(zhǔn)率、召回率和F1值分別達(dá)到了0.905 6、0.909 1 和0.907 3,獲得了四者中最優(yōu)的性能.這說明模型IV 能夠更好地發(fā)揮多頭自注意力機(jī)制與BiLSTM 的互補(bǔ)作用,因此,本文將其作為最終的模型架構(gòu).
表4 多頭自注意力模塊不同架構(gòu)的實(shí)驗(yàn)結(jié)果Tab.4 Experimental results of different architectures of multi-head self-attention modules
同時(shí),為了證明多頭自注意力機(jī)制對于中文臨床命名實(shí)體識(shí)別的好處,我們在使用相同的特征表示方法和字典特征的前提下,選擇了兩個(gè)MHABiLSTM-CRF 的修改版本來與本文方法進(jìn)行性能對比.一個(gè)是通過去除MHA-BiLSTM-CRF 中的多頭自注意力模塊得到的BiLSTM-CRF 基礎(chǔ)模型,另一個(gè)則是將MHA-BiLSTM-CRF 的多頭自注意力模塊替換為單頭自注意力模塊得到的SA-BiLSTM-CRF模型.
從表5 所示的實(shí)驗(yàn)結(jié)果可以看出,由于自注意力機(jī)制很大程度上彌補(bǔ)了LSTM 模型在捕獲字符間關(guān)聯(lián)關(guān)系能力方面的不足,因此,不論是否使用字典特征,SA-BiLSTM-CRF 的性能均要優(yōu)于BiLSTMCRF.而本文提出的基于多頭自注意力機(jī)制的MHA-BiLSTM-CRF 模型更是超過前兩者獲得了最佳的性能表現(xiàn).這說明多頭自注意力機(jī)制能充分結(jié)合不同層次不同角度的相關(guān)特征來增強(qiáng)模型的表示能力,從而進(jìn)一步提高了實(shí)體識(shí)別的整體性能.另外,從表中不難發(fā)現(xiàn),當(dāng)使用了外部詞典特征時(shí),每個(gè)模型的性能都出現(xiàn)了明顯的提升.這也驗(yàn)證了領(lǐng)域詞典在提高命名實(shí)體識(shí)別性能方面的重要作用.
表5 使用多頭自注意力模塊的模型實(shí)驗(yàn)對比結(jié)果Tab.5 Comparison results of model experiments using multi-head self-attention module
為了進(jìn)一步理解MHA-BiLSTM-CRF 模型的優(yōu)勢,我們也做了一些實(shí)際的模型識(shí)別結(jié)果對比分析.如表6 所示,分別給出了BiLSTM-CRF 與MHABiLSTM-CRF 模型的真實(shí)識(shí)別結(jié)果對比.可以看出,BiLSTM-CRF 模型針對中文臨床命名實(shí)體中實(shí)體詞較長時(shí)具有明顯的識(shí)別錯(cuò)誤,如第一個(gè)實(shí)例中的治療實(shí)體“腰麻下行闌尾切除術(shù)”,BiLSTM-CRF 模型將其錯(cuò)誤識(shí)別為治療實(shí)體“闌尾切除術(shù)”,第三個(gè)實(shí)例中的檢查項(xiàng)目實(shí)體“肱二、三肌腱反射”,BiLSTMCRF 模型將其錯(cuò)誤識(shí)別為身體部位實(shí)體“三肌腱”,然而MHA-BiLSTM-CRF 模型均能準(zhǔn)確地識(shí)別出這些實(shí)體.這也充分說明了MHA-BiLSTM-CRF 能夠彌補(bǔ)BiLSTM-CRF 的不足,有效學(xué)習(xí)并捕獲到字符序列中的長距離依賴信息,在實(shí)體較長時(shí)仍然能夠正確識(shí)別出中文臨床命名實(shí)體.
表6 BiLSTM-CRF 與MHA-BiLSTM-CRF模型實(shí)體識(shí)別結(jié)果對比Tab.6 Comparative examples of BiLSTM-CRF and MHA-BiLSTM-CRF entity recognition results
3.4.2 與其他基準(zhǔn)模型的對比結(jié)果
表7 展示了幾種典型的命名實(shí)體識(shí)別模型在CCKS2017-CNER 數(shù)據(jù)集上的性能.從表中我們可以看到兩個(gè)基于詞級(jí)特征嵌入的模型(BiLSTMCRFword 和BiLSTM-CRFword+ReSeg)性能相對較差.其主要原因在于基于詞級(jí)別特征的方法通常依賴分詞工具的準(zhǔn)確性,而分詞錯(cuò)誤必然嚴(yán)重地影響該類方法的實(shí)體識(shí)別性能.而與基于詞級(jí)特征嵌入的模型相比,使用字符級(jí)特征的模型擺脫了對分詞精度的依賴,因而能夠獲得相對更高的性能.例如,同樣基于BiLSTM-CRF 模型,使用字符級(jí)嵌入的BiLSTM-CRFchar 的F1值達(dá)到了0.912 4,比使用詞級(jí)嵌入的BiLSTM-CRF 高出了0.032 9.RD-CNNCRF 利用殘差擴(kuò)張的卷積神經(jīng)網(wǎng)絡(luò)捕獲上下文特征,獲得了0.913 2 的F1值.然而,CNNs 通常主要關(guān)注局部特征,沒有充分利用文本的長期依賴性,因此其性能在所有對比方法中僅排在第三位.而CNNLSTM-Attention 則結(jié)合了CNN 和LSTM 各自的優(yōu)勢來獲取局部上下文信息和單詞的時(shí)序依賴關(guān)系,并融合了另外兩種方法(CRF 和LSTM-CRF)來構(gòu)建集成模型,進(jìn)一步將F1值提高到了0.914 6.得益于精確的特征表示以及多頭自注意機(jī)制的引入,本文方法MHA-BiLSTM-CRF 不僅可以全面地挖掘字符級(jí)、詞級(jí)以及句子級(jí)的各種語義和結(jié)構(gòu)特征,而且還能捕獲句子中不同字符的重要性.因此,它獲得了明顯優(yōu)于其他對比模型性能,F(xiàn)1值達(dá)到了0.919 7.盡管部分模型在精準(zhǔn)率或召回率上似乎略高于MHABiLSTM-CRF,例如,BiLSTM+CRF+BiLSTM-FEA的精確率達(dá)到了0.944 9,而RD-CNN-CRF 則獲得了0.920 2 的召回率.但是,另一方面,它們的召回率和精確率卻分別僅為0.877 9 和0.906 3,遠(yuǎn)遠(yuǎn)低于我們模型.作為結(jié)合精確率和召回率的綜合指標(biāo),F(xiàn)1值能更全面有效地評估不同模型的整體性能.因此,在F1值方面的比較結(jié)果更充分地說明了本文方法的優(yōu)越性.
表7 基準(zhǔn)模型對比實(shí)驗(yàn)結(jié)果Tab.7 Comparative results between baseline models and our proposed model
3.4.3 不同特征表示方法的影響
為了分析不同特征嵌入方法對實(shí)體識(shí)別性能的影響,我們以BiLSTM-CRF 和MHA-BiLSTM-CRF模型為例,分別比較采用三種不同的嵌入方法(字符嵌入、字符嵌入+標(biāo)簽嵌入以及字符嵌入+字符-標(biāo)簽嵌入)時(shí)的性能.從表8 結(jié)果可以看到,本文提出的特征嵌入方法(字符嵌入+字符-標(biāo)簽嵌入)與其他兩種嵌入方法相比具有明顯的性能優(yōu)勢.例如,僅采用字符嵌入時(shí),MHA-BiLSTM-CRF 模型僅獲得了0.907 3 的F1值,結(jié)合標(biāo)簽嵌入時(shí),其F1值增加到了0.914 2,而采用字符嵌入和字符-標(biāo)簽嵌入的組合時(shí),模型的F1值進(jìn)一步提升了0.005 5.
表8 不同特征表示方法對模型性能的影響Tab.8 Comparative results of different feature embedding method
這也充分地證明了本文所提出的特征表示方法的有效性.其主要原因在于,與使用單一標(biāo)簽嵌入的傳統(tǒng)方法相比,本文方法將字符和特征標(biāo)簽組合成一個(gè)整體來重新訓(xùn)練新的字符標(biāo)簽嵌入向量,該向量可以為出現(xiàn)在不同臨床命名實(shí)體中的相同字符提供富含領(lǐng)域特性不同表示形式,極大地增強(qiáng)了特征表示的特異性和多樣性.
3.4.4 數(shù)據(jù)不均衡的影響分析
從表2 的實(shí)體統(tǒng)計(jì)數(shù)據(jù)中可以明顯看出,數(shù)據(jù)集中的實(shí)體分布很不均衡,尤其是疾病和治療實(shí)體的數(shù)量遠(yuǎn)遠(yuǎn)低于其他實(shí)體,在訓(xùn)練集中大概只占實(shí)體總數(shù)的4%左右,然而其他實(shí)體的比例超過了25%.這也導(dǎo)致了模型對于疾病和治療實(shí)體的識(shí)別準(zhǔn)確率遠(yuǎn)遠(yuǎn)低于其他實(shí)體,性能結(jié)果如圖3 所示.
圖3 未使用額外特征的MHA-BiLSTM-CRF模型在數(shù)據(jù)不平衡處理前后的實(shí)驗(yàn)結(jié)果Fig.3 Experimental results of the MHA-BiLSTM-CRF model without additional features before and after data imbalance processing
因此,為了緩解這一影響,我們對數(shù)據(jù)集中的樣本進(jìn)行了數(shù)據(jù)均衡處理,特別針對疾病和治療實(shí)體進(jìn)行了重采樣處理.實(shí)驗(yàn)結(jié)果如表9 所示,不論是BiLSTM 模型還是MHA-BiLSTM-CRF 模型,在進(jìn)行數(shù)據(jù)不均衡處理之后整體性能明顯提升.此外,還可以從圖3 中看到,MHA-BiLSTM-CRF 識(shí)別疾病實(shí)體和治療實(shí)體的能力顯著增強(qiáng).對于治療實(shí)體的識(shí)別、精確率、召回率和F1值由0.704 5、0.702 9、0.712 6 分別增加至0.841 5、0.802 3、0.821 4.因此,數(shù)據(jù)均衡處理提高了整體的識(shí)別性能MHA-BiLSTM-CRF 的精確率為0.9056,召回率為0.909 1、F1值為0.907 3,比未進(jìn)行處理的F1-score 分別高0.010 8、0.023 7、0.017 2.
表9 使用數(shù)據(jù)均衡處理(Im)后的模型實(shí)驗(yàn)結(jié)果對比(Y 表示使用了,N 表示未使用)Tab.9 Comparison of model experiment results after using data balance processing(Im)(Y-used,N-unused)
臨床命名實(shí)體識(shí)別是許多臨床信息抽取任務(wù)中最關(guān)鍵也是最基礎(chǔ)的環(huán)節(jié).然而,目前很多針對中文臨床命名實(shí)體識(shí)別任務(wù)的模型均不能夠很好地捕獲文本序列中的全局特征信息以及文本序列內(nèi)部的字符與字符之間的關(guān)聯(lián)權(quán)重信息,且特征表示能力不足.因此,本文首先設(shè)計(jì)了一種改進(jìn)的字符級(jí)特征表示方法,將字符嵌入和字符-標(biāo)簽嵌入相結(jié)合以增強(qiáng)特征表示的特異性和多樣性.然后,在此基礎(chǔ)上提出了一種結(jié)合多頭自注意力機(jī)制和BiLSTM-CRF 的中文臨床命名實(shí)體識(shí)別方法.通過引入多頭自注意力機(jī)制并結(jié)合相關(guān)的醫(yī)學(xué)詞典,該方法可以更有效地捕獲臨床文本中的字符間的權(quán)重關(guān)系和多層次的語義特征信息,從而提高中文臨床命名實(shí)體的識(shí)別能力.
當(dāng)然,本文方法也存在著一定的局限性.一方面,本文模型的性能很大程度上依賴于充足的高質(zhì)量標(biāo)注數(shù)據(jù);另一方面,我們僅在CCKS2017-CNER數(shù)據(jù)集上對模型進(jìn)行了性能評估,而在其他數(shù)據(jù)集上的有效性仍然有待進(jìn)一步驗(yàn)證.在未來的工作中,我們將會(huì)使用更多其他相關(guān)的數(shù)據(jù)集來測試模型的可擴(kuò)展性和泛化能力,并測試優(yōu)化模型在有限標(biāo)注數(shù)據(jù)集的情況下的性能.