廖開際,鄒珂欣,席運江
(華南理工大學(xué)工商管理學(xué)院,廣東廣州 510641)
自2012 年谷歌提出了“知識圖譜”的概念至今,知識圖譜這一領(lǐng)域一直是科學(xué)研究和科技應(yīng)用的前沿?zé)狳c,其應(yīng)用也涉及了從搜索到推薦等眾多領(lǐng)域。目前,醫(yī)學(xué)是知識圖譜應(yīng)用最廣的垂直領(lǐng)域之一,也是國內(nèi)外人工智能領(lǐng)域研究的熱點,在如疾病風(fēng)險評估、智能輔助診療、醫(yī)療質(zhì)量控制及醫(yī)療知識問答等智慧醫(yī)療領(lǐng)域都有著很好的發(fā)展前景[1]。構(gòu)建醫(yī)療領(lǐng)域的知識圖譜可以分為3 個步驟:醫(yī)療實體識別、實體關(guān)系抽取、實體對齊與知識融合,其中醫(yī)療實體識別一直是構(gòu)建知識圖譜過程中的重難點。
在醫(yī)療領(lǐng)域,隨著互聯(lián)網(wǎng)的快速普及,網(wǎng)絡(luò)技術(shù)的創(chuàng)新與發(fā)展已逐漸影響醫(yī)患雙方的行為方式,越來越多的病人在網(wǎng)上尋醫(yī)問藥,醫(yī)生和醫(yī)院也更加重視通過互聯(lián)網(wǎng)進(jìn)行醫(yī)患之間的交流和溝通[2],例如尋醫(yī)問藥網(wǎng)等用戶規(guī)模較大的在線醫(yī)療社區(qū)中,已積累了大量醫(yī)患問答文本,若能通過這些問答文本進(jìn)行醫(yī)療實體識別,便可以更準(zhǔn)確且更加深層次地挖掘患者的需求,清晰地展現(xiàn)患者所關(guān)心的醫(yī)療問題,從而推動醫(yī)療行業(yè)進(jìn)一步發(fā)展。然而,此類在線醫(yī)療社區(qū)問答文本不僅具有傳統(tǒng)社區(qū)類文本體量大、數(shù)據(jù)稀疏的特點,還具有醫(yī)療文本的專業(yè)性和復(fù)雜性,同時由于個人語言習(xí)慣不同,醫(yī)患問答文本中還有大量簡寫、略寫甚至模糊的表達(dá),給醫(yī)療實體識別工作帶來了巨大的挑戰(zhàn)。
命名實體識別(named entity recognition,NER)是指識別文本中具有特定意義的實體。醫(yī)療實體識別,就是從文本中識別出具有醫(yī)學(xué)意義的實體,如疾病名稱、治療手段、檢查方法、藥物名稱等。對于醫(yī)療實體識別,目前采用較多的有基于詞典和規(guī)則的識別方法、基于淺層機器學(xué)習(xí)的識別方法以及基于深層神經(jīng)網(wǎng)絡(luò)的識別方法。
早期的醫(yī)療實體識別,多采用基于詞典的方法?;谠~典的方法是原理比較簡單但也是最有效的方法之一,其基本思路是通過遍歷詞典進(jìn)行字符串匹配而實現(xiàn)實體識別[3]。如,Kristina 等[4]結(jié)合來自UMLS、MeSH 等醫(yī)學(xué)平臺的信息,開發(fā)了用于識別文本中的小分子和藥物的詞典,并將其予以應(yīng)用于識別醫(yī)療實體;寧時賢[5]通過生物醫(yī)學(xué)詞典識別了醫(yī)學(xué)實體,經(jīng)過實驗驗證表明,詞典特征有助于生物醫(yī)學(xué)實體的識別。上述基于詞典的方法雖然能對醫(yī)學(xué)實體進(jìn)行有效識別,但由于對醫(yī)學(xué)詞典和醫(yī)療知識庫的依賴程度較高,導(dǎo)致該方法的靈活程度較低。
近幾年,隨著人工智能與其相關(guān)技術(shù)的快速發(fā)展,“機器學(xué)習(xí)”這一概念逐漸進(jìn)入人們的視野,基于淺層機器學(xué)習(xí)的實體識別方法也隨之得到快速發(fā)展。淺層機器學(xué)習(xí)方法主要包括條件隨機場(conditional random fields,CRF)模型、隱馬爾可夫模型(HMM)、最大熵 (ME)模型、支持向量機(SVM)等[6]。王若佳等[7]針對電子病歷分詞后的文本,采用條件隨機場機器學(xué)習(xí)算法進(jìn)行實體識別,結(jié)果表示該算法對醫(yī)療實體中“檢查”和“疾病”兩類實體的識別效果較好。龔樂君等[8]基于領(lǐng)域詞典和條件隨機場模型,從中文電子病歷文本中識別出了4 類醫(yī)療實體,該模型在測試數(shù)據(jù)中的精確率達(dá)到了96.7%
2006 年Hinton 等[9]創(chuàng)建了一種多層次的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,完成了神經(jīng)網(wǎng)絡(luò)從淺層到深層的轉(zhuǎn)變,深度學(xué)習(xí)由此誕生?;谏疃壬窠?jīng)網(wǎng)絡(luò)的實體識別方法在近幾年成為了實體識別領(lǐng)域的熱點,如曹明宇等[10]使用雙向長短期記憶神經(jīng)網(wǎng)絡(luò)模型(bi-directional long short-term memory,BiLSTM)對醫(yī)學(xué)藥物類實體進(jìn)行了識別,結(jié)果明顯優(yōu)于針對相同數(shù)據(jù)集所采用的其他識別方法;李綱等[11]采用BiLSTM-CRF 模型,針對全國知識圖譜與語義計算大會(China Conference on Knowledge Graph and Semantic Computing,CCKS)提供的中文電子病歷做醫(yī)療實體識別,結(jié)果表明該方法能夠顯著提升傳統(tǒng)CRF 方法的實體識別效果;李雙麗等[6]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)-長短期記憶神經(jīng)網(wǎng)絡(luò)模型(long short-term memory,BLSTM)-CRF 的醫(yī)學(xué)實體識別方法,通過卷積神經(jīng)網(wǎng)絡(luò)抽取英文的字符特征和單詞特征來進(jìn)行實體識別,并在Biocreative ⅡGM 和JNLPBA2004生物醫(yī)學(xué)語料上驗證了該方法的有效性。
雖然采用上述方法均能有效識別有關(guān)文本中的醫(yī)療實體,但是以上識別方法大多是針對語言專業(yè)化和結(jié)構(gòu)化程度較高的電子病歷文本或者醫(yī)學(xué)語料庫而進(jìn)行的。相比于去實體醫(yī)院,目前越來越多的患者選擇直接在醫(yī)療社區(qū)平臺或者社交媒體上進(jìn)行在線的專業(yè)咨詢和健康經(jīng)驗分享[12],此類醫(yī)患問答文本數(shù)據(jù)是患者最真實、最直接的需求和想法反饋,但針對在線醫(yī)療社區(qū)中的患者編寫文本做醫(yī)療實體識別的研究仍然相對較少。因此,本研究將以在線醫(yī)療社區(qū)中的問答作為文本數(shù)據(jù)源進(jìn)行醫(yī)療實體識別工作。由于在線醫(yī)療社區(qū)中的問答文本非結(jié)構(gòu)化程度高、文字表達(dá)因個人語言習(xí)慣也有較大差異,因此本研究提出一種基于CNN 和BiLSTM 的醫(yī)療實體識別方法。
圖1 為本研究提出的實體識別方法的整體框架示意圖,模型整體可分為3 個模塊,分別為CNN 模塊、BiLSTM 模塊以及CRF 模塊。模型先利用字向量通過CNN 識別出中文單個字的漢字級特征,再采用BiLSTM 識別出結(jié)合上下文信息的特征,然后將以上兩種特征相結(jié)合放入CRF 模型中進(jìn)行訓(xùn)練,最后采用尋醫(yī)問藥網(wǎng)在線醫(yī)療社區(qū)中有關(guān)乳腺癌的醫(yī)患問答對方法的有效性進(jìn)行驗證。
首先對文本數(shù)據(jù)進(jìn)行清洗去重等預(yù)處理操作,之后選取處理好的部分?jǐn)?shù)據(jù),根據(jù)定義好的實體類別采用BIO 標(biāo)注法對文本數(shù)據(jù)進(jìn)行逐字標(biāo)注,然后將標(biāo)注好的數(shù)據(jù)分為訓(xùn)練集和測試集,其中80%為訓(xùn)練集,20%為測試集。接下來將訓(xùn)練集中的數(shù)據(jù)分別放入CNN 和BiLSTM 模型中抽取漢字級別的特征以及結(jié)合上下文信息的特征,并將抽取得到的特征利用連接函數(shù)融合,放入CRF 模型中輸出預(yù)測結(jié)果,將標(biāo)注好的測試集的數(shù)據(jù)對結(jié)果進(jìn)行驗證,從預(yù)測結(jié)果的準(zhǔn)確率、召回率和F值3 個指標(biāo)評價模型的質(zhì)量。經(jīng)過對上述模型中的參數(shù)多次設(shè)置和調(diào)整,選取預(yù)測結(jié)果指標(biāo)最優(yōu)的模型作為最終的預(yù)測模型,最后將前期未被標(biāo)注的文本數(shù)據(jù)放入已訓(xùn)練好的預(yù)測模型中去,經(jīng)過所選模型的計算,得到最終的實體識別結(jié)果。
圖1 醫(yī)療實體識別方法框架
20 世紀(jì)60 年代,科學(xué)家們在研究貓的腦皮層局部的神經(jīng)元時發(fā)現(xiàn),其獨特的網(wǎng)絡(luò)結(jié)構(gòu)可以有效地降低反饋神經(jīng)網(wǎng)絡(luò)的復(fù)雜性,從而提出了“卷積神經(jīng)網(wǎng)絡(luò)”的概念。卷積神經(jīng)網(wǎng)絡(luò)是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò)[13],是深度學(xué)習(xí)的代表算法之一。自提出以來,卷積神經(jīng)網(wǎng)絡(luò)已大量應(yīng)用于圖像、視頻等文件的處理領(lǐng)域中。2014年Kim[14]對CNN 的輸入層做了改進(jìn)和調(diào)整,提出了適用于文本的處理的模型,自此CNN 也被廣泛應(yīng)用于對文本的處理中。如,陶源等[15]結(jié)合門控線性單元和卷積神經(jīng)網(wǎng)絡(luò)在中文數(shù)據(jù)集SIGHAN2006上進(jìn)行了實體識別,識別準(zhǔn)確率達(dá)到了91.05%;曹依依等[16]采用卷積神經(jīng)網(wǎng)絡(luò)針對中文電子病歷進(jìn)行了實體識別,識別結(jié)果F 值達(dá)到了90.31%。所以,本研究提出采用卷積神經(jīng)網(wǎng)絡(luò)模型來識別文本中的特征進(jìn)行醫(yī)療實體識別。由于醫(yī)患問答文本中可能由于個人語言習(xí)慣導(dǎo)致醫(yī)療實體間距離較遠(yuǎn),如“我最近嗓子疼,不光是吃東西的時候疼,有時候就連喝水的時候也覺得疼,吃了阿莫西林等消炎藥之后感覺好多了”這句話中,疾病實體“嗓子疼”就與藥物實體“阿莫西林”距離較遠(yuǎn),而且詞向量難以處理長距離的依賴關(guān)系,因此本研究采用字向量與卷積神經(jīng)網(wǎng)絡(luò)結(jié)合的方式,首先對在線醫(yī)療社區(qū)中的問答文本進(jìn)行特征抽取。
卷積的表達(dá)式用矩陣表示見式(1)。其中:s代表卷積函數(shù);*表示卷積操作;X為輸入,A為卷積核,n代表詞的數(shù)量。
在卷積神經(jīng)網(wǎng)絡(luò)中,若是二維的卷積則表示如式(2)所示。其中:i和j分別代表二維矩陣的長和寬。
卷積神經(jīng)網(wǎng)絡(luò)可以分為輸入層、隱藏層和輸出層。在適用于文本的卷積神經(jīng)網(wǎng)絡(luò)中,輸入層是句子中的詞對應(yīng)的詞向量或字向量依次排列的矩陣,假設(shè)句子有n個詞(或字),向量的維數(shù)為k,那么輸入層的向量矩陣就是n×k。通常用戶圖像識別的卷積神經(jīng)網(wǎng)絡(luò)使用的卷積核的寬度和高度是一樣的(見圖2),但在處理文本數(shù)據(jù)卷積神經(jīng)網(wǎng)絡(luò)中,卷積核的寬度與詞向量或字向量的維度一致(見圖3),只有高度可以任意設(shè)置,輸入的每一行向量代表一個詞或字。
圖2 圖像識別的CNN 卷積核
圖3 文本處理的CNN 卷積核
本研究采用文本的字向量作為輸入層。數(shù)據(jù)通過輸入層后抵達(dá)卷積層,模型設(shè)置3 層卷積,卷積后的數(shù)據(jù)將會依次通過歸一化處理和ReLU 激活函數(shù),后轉(zhuǎn)化形狀輸出。其中ReLU 函數(shù)的公式見式(3):
長短期記憶神經(jīng)網(wǎng)絡(luò)模型是為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)中的長期依賴問題和梯度消失問題而衍生出來的模型,而雙向長短期記憶神經(jīng)網(wǎng)絡(luò)模型包含了兩個方向的長短期記憶神經(jīng)網(wǎng)絡(luò)模型,如圖4 所示。
圖4 BiLSTM 模型結(jié)構(gòu)
在BiLST 模型中,每個細(xì)胞內(nèi)部結(jié)構(gòu)如圖5 所示。其中:ht為當(dāng)前隱藏層狀態(tài);xt為當(dāng)前輸入;ct為當(dāng)前細(xì)胞狀態(tài);δ為Sigmoid 激活函數(shù)。從RNN 改進(jìn)而來的長短期記憶模型利用門機制可以克服RNN 的缺點[17],這種門機制即通過遺忘門、輸入門和輸出門的引入,可以有效解決梯度消失等問題。
圖5 BiLSTM 的單元內(nèi)部結(jié)構(gòu)
由圖5 可見:
(1)遺忘門原理:上一階段的ht-1與當(dāng)前的輸入xt級聯(lián)之后,經(jīng)過 Sigmoid 函數(shù)后與ct-1相乘。若δ函數(shù)的輸出ft接近 0,則表示ct-1這個信息被忘掉了。ft的計算公式見式(4),其中W和b分別為模型的權(quán)重和偏置向量。
(2)輸入門原理:上一階段的ht-1與當(dāng)前輸入xt級聯(lián)之后,經(jīng)過Sigmoid 函數(shù)后與 tanh 的輸出相乘,并與之前的細(xì)胞狀ct-1×ft相加,得到ct。若it接近 0,則表示此輸入被丟棄。
(3)輸出門原理:上一階段的ht-1與當(dāng)前的輸入xt級聯(lián)之后,經(jīng)過Sigmoid 函數(shù)后與 tanh(ct)的輸出相乘,得到ht。其中O代表輸出。若Ot接近 0,則表示輸出細(xì)胞信息不會進(jìn)入到隱藏層狀態(tài)中。
由于CRF 能更有效地限制輸出的序列位置,因此可以避免前期CNN 和BiLSTM 特征抽取輸出的結(jié)構(gòu)錯誤,所以在實體識別模型的最后會將數(shù)據(jù)輸入線性CRF 中。2001 年Lafferty 等[18]首次提出一種判別式概率——條件隨機場模型,是在給定一組輸入序列條件下另一組輸出序列的條件概率分布模型,在自然語言處理中得到了廣泛應(yīng)用。即給出輸入序列,便可以通過線性CRF 得到對應(yīng)的序列的概率,即。其概率的計算公式見式(9),其中wk為權(quán)重值。
綜上,本研究提出的基于在線醫(yī)療社區(qū)問答文本的醫(yī)療實體識別方法的流程可表示為如圖6所示。
圖6 醫(yī)療實體識別方法流程結(jié)構(gòu)
本研究的實驗采用Python 語言(版本3.7),在Pytorch 深度學(xué)習(xí)框架下進(jìn)行。Pytorch 是Facebook 開源的神經(jīng)網(wǎng)絡(luò)框架,相比于其他深度學(xué)習(xí)的編程框架而言,具有簡潔、高速、易用等特點。
爬取了尋醫(yī)問藥網(wǎng)問答模塊中關(guān)于乳腺癌的12 000 條患者提問及其對應(yīng)的醫(yī)生回復(fù),經(jīng)過清洗去重等預(yù)處理操作后,保留了10 673 條有效問答文本(以下簡稱“樣本”)(即10 673 條提問和10 673 條回復(fù))。為了使數(shù)據(jù)格式統(tǒng)一規(guī)范以及保證問答數(shù)據(jù)一一對應(yīng),將患者提問和對應(yīng)的醫(yī)生回復(fù)拼接成一條數(shù)據(jù),并將所有拼接后的文本數(shù)據(jù)作為實驗數(shù)據(jù),文本拼接格式為“患者病情描述(Q)+醫(yī)生對應(yīng)回復(fù)(A)”,如表1 所示。
表1 樣本實驗數(shù)據(jù)示例
根據(jù)ICD-10 和各百科網(wǎng)站對醫(yī)療實體的劃分,并參考楊錦鋒等[19]和楊文明等[20]對醫(yī)療實體的分類方式,將醫(yī)療實體分為疾?。╠isease)、癥狀(symptom)、藥物(medicine)、治療(treatment)和檢查(check)這5 項基礎(chǔ)類別。因患者在描述自身病情和癥狀時常會提及對應(yīng)的身體部位,如“胸部有硬塊”“淋巴結(jié)那里疼”“手指也有明顯的腫脹”,若只將“硬塊”“疼”“腫脹”等詞標(biāo)記為癥狀,則會遺漏部分信息或扭曲患者原有的描述意圖,所以增設(shè)身體部位(body)類別,以提高癥狀類別識別的精確度。實體細(xì)分類別如表2 所示。
表2 醫(yī)療實體細(xì)分類別
采用BIO 標(biāo)注法對預(yù)處理好的數(shù)據(jù)進(jìn)行實體標(biāo)注,隨機選取了共計2 000 條數(shù)據(jù)進(jìn)行標(biāo)注。BIO標(biāo)注是將每個文本中的每個字標(biāo)注為“B-X”“I-X”或者“O”的形式[21]。其中:B 即Begin,表示開始;I 即Intermediate,表示實體的中間或結(jié)尾;O 即Other,表示其他;X 表示實體的名稱。則“B-X”所標(biāo)注的字是X 類型并且是該實體的開頭,“I-X”所標(biāo)注的字是X 類型并且是該實體的中間部分,“O”表示不屬于任何類型。如,對于“經(jīng)過鉬靶照相確診了乳腺癌,現(xiàn)在在接受化療”這個短句,根據(jù)BIO 標(biāo)注規(guī)則,其標(biāo)注后的結(jié)果如表3 所示。其中“鉬靶照相”為檢查類的實體,“乳腺癌”為疾病類的實體,“化療”為治療類的實體,其余均不屬于任何實體類別。將標(biāo)注后的2 000 條數(shù)據(jù)中的1 600 條作為訓(xùn)練集、400 條作為測試集,供后續(xù)模型的訓(xùn)練和檢驗使用。
表3 樣本BIO 標(biāo)記結(jié)果示例
在本研究給出的醫(yī)療實體識別模型中,樣本的參數(shù)設(shè)置如表4 所示。
表4 樣本醫(yī)療實體識別模型參數(shù)設(shè)置
對實驗結(jié)果采用準(zhǔn)確率、召回率和F值進(jìn)行評價。其中:準(zhǔn)確率又稱為查準(zhǔn)率,它表示實體識別的正確程度;召回率也稱為查全率,它表示識別實體的覆蓋度;而F值則綜合考慮了準(zhǔn)確率和召回率。上述3 個指標(biāo)的計算公式分別如下:
為驗證模型中CNN 模塊的有效性,選取BiLSTM-CRF 實體識別模型作為對比,實驗結(jié)果如表5 所示??梢钥闯?,基于CNN 和BiLSTM 的模型識別方法,總體和各個實體類別的指標(biāo)結(jié)果準(zhǔn)確率均優(yōu)于BiLSTM-CRF 實體識別模型,其中疾病和治療類別的結(jié)果有較大提升,召回率和F值指標(biāo)也有明顯提升,說明本研究提出的基于的CNN 的醫(yī)療實體識別方法在針對在線醫(yī)療社區(qū)問答文本的數(shù)據(jù)集上是有效的。
表5 樣本基于卷積神經(jīng)網(wǎng)絡(luò)模塊的有效性驗證結(jié)果
為驗證模型中BiLSTM 模塊的有效性,選取CNN-CRF 實體識別模型作為對比,實驗結(jié)果如表6所示??梢钥闯觯贑NN 和BiLSTM 的模型識別方法,各指標(biāo)結(jié)果均優(yōu)于CNN-CRF 實體識別模型,說明本研究提出的基于的BiLSTM 的醫(yī)療實體識別方法針對在線醫(yī)療社區(qū)問答文本的數(shù)據(jù)集是有效的。
表6 樣本基于雙向長短期記憶神經(jīng)網(wǎng)絡(luò)模塊的有效性驗證結(jié)果
表6 (續(xù))
隨著互聯(lián)網(wǎng)不斷深入人們生活的方方面面,以及人們對于健康的重視度逐漸提高,互聯(lián)網(wǎng)醫(yī)療領(lǐng)域的研究也是當(dāng)下的熱點,其中通過對文本中的醫(yī)療實體識別從而構(gòu)建醫(yī)療領(lǐng)域的知識圖譜更是研究的熱門。目前,在線醫(yī)療社區(qū)為廣大患者提供了方便、及時的咨詢平臺,越來越多的人通過在線醫(yī)療社區(qū)尋醫(yī)問藥、查詢病情,其中的醫(yī)患問答對話反映了患者最真實、最直接需求,但此類文本結(jié)構(gòu)化程度不高且融合了個人的語言習(xí)慣,分析較為困難,為此,本研究聚焦于此類問答文本數(shù)據(jù),提出一種基于CNN 和BiLSTM 的醫(yī)療實體識別方法,致力于通過CNN 和BiLSTM 兩種深度學(xué)習(xí)算法,分別抽取文本特征并進(jìn)行融合,多方位地獲取文本中的信息,以提高醫(yī)療實體識別的效果。
通過針對尋醫(yī)問藥網(wǎng)平臺上關(guān)于乳腺癌疾病問答文本進(jìn)行實驗,結(jié)果表明本研究提出的模型方法優(yōu)于BiLSTM-CRF 和CNN-CRF 方法,且總體識別準(zhǔn)確率達(dá)到92.3%、召回率達(dá)到89.3%、F值達(dá)到90.8%,即表示此方法是有效的。雖然本模型方法取得了較好的識別結(jié)果,但研究數(shù)據(jù)所涉及的疾病僅包含乳腺癌,疾病類別比較單一,今后的研究將結(jié)合更多類型的疾病和醫(yī)療社區(qū)平臺進(jìn)行。