丁有偉,郭 坤,胡孔法,戴彩艷
(1.南京中醫(yī)藥大學人工智能與信息技術學院,江蘇南京 210023;2.南京航空航天大學計算機科學與技術學院,江蘇南京 211106)
中醫(yī)電子病歷記錄了辨證論治的全過程,包含證—癥—方—藥的規(guī)律,對中醫(yī)傳承發(fā)展有重要作用。隨著智慧中醫(yī)藥領域的發(fā)展,中醫(yī)電子病歷的分析挖掘已成為學術界研究熱點,多用于臨床決策支持[1]、疾病診斷預測[2]、診療規(guī)律挖掘[3]、療效評價[4]等。然而隨著智能化程度的加深,迫切需要從語義層面探究電子病歷中蘊含的中醫(yī)思想和診療經(jīng)驗,即從電子病歷中提取出命名實體,包含命名實體的類別及其之間的關系。中醫(yī)電子病歷實體識別通常采用人工標記或關鍵詞匹配方法,前者浪費大量人力且準確性不可控,后者完全依賴于詞庫的完整性和準確性,可擴展性較差。因此,為應對各類基于中醫(yī)電子病歷的智能應用的數(shù)據(jù)處理需求,亟需研究高效率、高精度的中醫(yī)電子病歷實體識別算法。
近年來,基于神經(jīng)網(wǎng)絡的自然語言處理方法為電子病歷的識別提供了技術支撐。自深度神經(jīng)網(wǎng)絡在手寫體識別上取得突破以來,各類神經(jīng)網(wǎng)絡已成為當前自然語言處理的主流模型。例如,卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)早期用于圖像處理,后來逐漸引入到自然語言處理中并取得較好的識別效果[5-6];循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)較早應用于自然語言處理中[7],但容易引發(fā)梯度消失和梯度爆炸問題,隨后基于該模型的各種改進方案被提出[8-9];長短時記憶網(wǎng)絡(Long Short-Term Memory Networks,LSTM)彌補了RNN 長期記憶不足的缺陷[10],重點解決自然語言中前言與后語之間的依賴關系。隨后,大量基于LSTM 的模型被提出,如門控循環(huán)單元(Gated Recurrent Unit,GRU)[11]、雙向長短時記憶網(wǎng)絡(Bidirection Long Short-Term Memory Networks,BiLSTM)模型[12]、LSTM-Attention 模型[13]、LSTM-CRF 模型、LSTM-Attention-CRF 模型[14]、LSTM-CNN 模型[15]等,其中CRF 為條件隨機場(Conditional Random Field)。此外,為了提高自然語言處理的精度,減少用戶端模型訓練的工作量,BERT、GPT 等預訓練模型的應用逐漸增多。
針對中醫(yī)電子病歷的語言特征,本文提出一種高效的實體抽取算法,首先采用詞向量、BiLSTM、自注意力機制和CRF 相結(jié)合的模型進行命名實體識別,對實體分類、向量相似度等進行優(yōu)化,提高中醫(yī)電子病歷的實體識別精度;然后采用BiLSTM 與多層感知器相結(jié)合的模型挖掘中醫(yī)電子病歷各實體間的依存關系,通過修改輸出函數(shù)提高實體關系識別精度;最后通過真實電子病歷的測試,驗證了本文算法的準確性。
目前中醫(yī)電子病歷自然語言處理常采用實體庫匹配與人工處理相結(jié)合的方法,采用標準術語庫匹配出電子病歷中的實體,術語庫中不存在的實體以及實體之間的關系均依靠人工識別,效率低下且出錯概率較高。本文方法可自動從目標文本中識別出命名實體以及實體之間的關系,識別準確率與效率均較高。
中醫(yī)電子病歷命名實體識別主要包括中文分詞和命名實體識別兩個任務,識別模型如圖1 所示。根據(jù)中醫(yī)電子病歷的內(nèi)容設計10 種預測標簽,如表1 所示。每一個預測標簽由前綴和后綴兩部分組成,前綴用于分詞任務,其中B 表示詞語首字,I 表示詞語剩余部分;后綴用于標識命名實體的類別,包含病癥、表現(xiàn)、機構(gòu)、藥物和其他五大類。
Fig.1 Entity recognition model of TCM EMR圖1 中醫(yī)電子病歷命名實體識別模型
Table 1 Classification of predicted labels表1 預測標簽類別
在識別中醫(yī)電子病歷時,通常存在一個大小為|D|的字典D。字嵌入的思想是采用低維稠密矩陣表示字典D,一個低維向量對應一個字,以便更好地表示字詞的多維信息,例如詞性、褒貶以及近義關系等。將字嵌入思想應用于中醫(yī)電子病歷識別中,每一個中文字符w∈D對應一個特征向量v∈Rd,其中d表示字嵌入矩陣的維度。字嵌入矩陣由深度學習框架的Embedding 函數(shù)給出,并通過訓練不斷優(yōu)化,得到的詞嵌入將用于模型輸入。在本文中,字嵌入向量維度設為256。
LSTM 是RNN 的改進版,通過遺忘門、輸入門和輸出門,LSTM 可以選擇性地刪除和保留特征信息。在命名實體識別任務中,需要判斷出當前詞語的類別,即預測當前觀測值的隱含狀態(tài)。輸入門需要接收來自前方文本的特征以及當前觀測值兩種信息作為輸入,然后使用Sigmoid 層對其進行處理。雖然前方字詞可用于預測下一個字詞的信息,但并非所有來自前方字詞的特征都有價值。正確做法是刪除無用信息,保留重要信息,遺忘門可使用Sigmoid層(輸出矩陣中只有0 和1 的值)與上一個細胞狀態(tài)相乘以實現(xiàn)該功能。輸出門則是對輸入門和遺忘門的信息進行綜合,即對前方字詞信息選擇性記憶和遺忘。
LSTM 可用于提取中醫(yī)電子病歷的順序特征,但其門結(jié)構(gòu)只能緩解長距離依賴丟失的問題。在極端情況下,LSTM 會退化成傳統(tǒng)的RNN 網(wǎng)絡。不僅如此,LSTM 每一個細胞狀態(tài)的計算都需要等待前一個輸出的到來,使其無法實現(xiàn)并行運算。因此,在模型中堆疊多層LSTM 是十分低效的做法。針對以上問題,本文引入自注意力機制和CRF。
為使模型更好地提取全局特征,打破長距離的通信障礙,本文引入自注意力機制。自注意力機制只關注句中的重要部分,更有利于算法獲取有益特征。自注意力機制使句中不同字詞直接相連,字詞特征不需要像LSTM 那樣逐一傳遞,大大縮短了處理時間且很好地避免了長距離依賴丟失的問題。本文對自注意力機制進行封裝,形成了自注意力網(wǎng)絡,主要由自注意力層、歸一化層、前饋卷積層構(gòu)成。
然而,在今天看來,和其他更典型的拉斐爾前派繪畫相比較而言,羅塞蒂的這些作品仍顯得不那么純粹。比如,如果將《邂逅》和其他旗手如米萊斯的作品《洛倫佐與伊莎貝拉》相比,其刻畫的程度就不如后者更為精謹;而《受胎告知》這一題材也不比亨特的《良知覺醒》更具現(xiàn)實的道德寓意,而畫面中天使加百列雙足周圍纏繞的火焰燃燒出一種超現(xiàn)實的感覺,背景的藍色布幔和前景中火紅的織物前后照應,無疑又給畫面平添了一份裝飾意味。
CRF 是一種無向圖模型,可以輸出條件概率,是整個命名體識別算法的最后一層,采用線性CRF 處理中文字符序列信息可以很好地提取全局特征。
從中醫(yī)電子病歷中識別出命名實體后,為更好地理解其語義,還需要對命名實體之間的依存關系進行挖掘。采用BiLSTM 與多層感知器相結(jié)合的方法挖掘中醫(yī)電子病歷命名實體的依存關系,模型如圖2 所示,主要包含輸入層、特征提取層和輸出層。
Fig.2 Model of dependencies mining圖2 依存關系挖掘模型
輸入層包含詞語嵌入和詞類標簽嵌入兩個部分。創(chuàng)建兩個矩陣字典,其中詞嵌入字典(Words to Embeddings,WTE)負責詞轉(zhuǎn)詞嵌入,標簽嵌入字典(Tags to Embeddings,TTE)負責詞類標簽轉(zhuǎn)標簽嵌入。字典WTE 中的詞語來源于中醫(yī)電子病歷命名實體識別算法的分詞結(jié)果;字典TTE 中的標簽包括病癥標簽、表現(xiàn)標簽、機構(gòu)標簽、藥物標簽和其他標簽五大類。詞語嵌入與標簽嵌入由Embedding 函數(shù)初始化給出,詞語嵌入維度設置為64,標簽嵌入維度設置為32,并通過訓練不斷優(yōu)化,最終得到詞語嵌入與標簽嵌入連接,組成維度為96 的向量,作為特征提取層的輸入。
該層進一步提取輸入層信息的特征,輸出結(jié)果作為輸出層的輸入。使用BiLSTM 與多層感知器聯(lián)合構(gòu)造特征提取層,BiLSTM 中每一時刻的輸出均需綜合考慮前后時刻的信息。多層感知器是一種最基本的神經(jīng)網(wǎng)絡結(jié)構(gòu),主要通過封裝3 個線性層實現(xiàn),激活函數(shù)使用ReLU 函數(shù)。
該層輸出函數(shù)的作用是根據(jù)特征提取層對結(jié)果進行預測,輸出函數(shù)的性能直接決定著模型最終效果。中醫(yī)電子病歷依存關系挖掘主要包含兩個任務,即判斷關系存在和關系種類,兩種任務對應的輸出函數(shù)也不同。
2.3.1 判斷關系存在
該任務的輸出函數(shù)用于判斷依存關系是否存在,輸出結(jié)果是一個向量v∈Rd,其中d表示該句長度,數(shù)值為正整數(shù)。向量中的整數(shù)代表當前詞語所依存的對象在句中的編號,主要體現(xiàn)在對病癥的修飾上,如“加重”依存于“感冒”等。借助向量v可以直接解析出該句中存在的依存關系二元組。該輸出函數(shù)有求和和求積兩種,求和法輸出函數(shù)表示為:
式中,oij表示wi→wj的權(quán)值;表示詞語作為head 的特征值;表示詞語作為dependent 的特征值。
求積法輸出函數(shù)表示為:
式中,Wi為待訓練參數(shù)。
2.3.2 判斷關系種類
該任務的輸出函數(shù)用于判斷關系的種類,計算方式同上,但輸出的并不是一個整數(shù)值向量,而是一個概率分布v∈Rd,∑vi=1,此處d表示依存關系種類個數(shù)。
損失函數(shù)又稱為目標函數(shù),用于衡量模型預測結(jié)果與實際值的偏差,同時在反向傳播中也發(fā)揮了重要作用。由于中醫(yī)電子病歷依存關系挖掘算法同時完成判斷關系存在和關系種類兩個任務,故損失函數(shù)的輸出是綜合兩種預測任務的結(jié)果,進而同時優(yōu)化兩個任務模型。
本文算法主要針對語言描述半文言半白話、術語使用個性化的名老中醫(yī)電子病歷進行實體抽取,實驗數(shù)據(jù)使用某中醫(yī)院真實的名老中醫(yī)治療兒童哮喘的電子病歷,數(shù)據(jù)集包含近年來約2 000 份電子病歷,每份電子病歷為患者一次門診的全部記錄,刪除部分信息不全和書寫不規(guī)范的電子病歷,剩余1 652 份電子病歷用于實驗測試。
在命名實體識別算法實驗中,分別測試BiLSTM+CRF、自注意力機制+CRF、BiLSTM+自注意力機制+CRF 3 種模型的性能,圖例分別為blstm-crf、attention-crf、attentionblstm-crf,從準確率、損失值、召回率3 個方面進行比較。
圖3 和圖4 給出了兒科哮喘數(shù)據(jù)集在3 種不同命名體識別模型結(jié)構(gòu)下訓練的準確率和損失值變化。可以看出,BiLSTM+自注意力機制+CRF 模型在訓練時的收斂速度較快,在訓練批次為1~3 之間時,該模型優(yōu)化速度最快,從第4批次開始性能緩慢提升。最終,BiLSTM+自注意力機制+CRF 與BiLSTM+CRF 兩種模型的準確率較高。
Fig.3 Results of accuracy圖3 準確率結(jié)果
Fig.4 Results of loss圖4 損失值結(jié)果
準確率并不能完全體現(xiàn)模型優(yōu)劣,還需要評價模型對各種標簽的識別能力。表2 為3 種模型的召回率結(jié)果,測試數(shù)據(jù)集的實體類型包含病癥、表現(xiàn)、機構(gòu)、藥物、其他5類??梢钥闯觯m然BiLSTM+CRF 模型的準確率最高,但在測試數(shù)據(jù)上,其對各類標簽的預測準確率不高,尤其是對機構(gòu)和藥物的預測準確率較低,無法滿足實際應用需求。主要原因在于,BiLSTM+CRF 模型相較于BiLSTM+自注意力機制+CRF 模型更為簡單,訓練過程中更容易收斂,且在實驗中出現(xiàn)了過擬合現(xiàn)象。BiLSTM 在命名實體等序列標注問題中表現(xiàn)良好,這是由于改進的RNN 可以很好地挖掘文本中的位置信息。盡管在自注意力機制加入了位置編碼,但結(jié)果仍然遜于BiLSTM,這是由于自注意力機制難以挖掘位置信息,進而證明了在命名體識別任務中,文本位置信息十分重要。
Table 2 Results of recall表2 召回率結(jié)果
在依存挖掘算法實驗中,分別使用BiLSTM+多層感知器+輸出函數(shù)2、BiLSTM+輸出函數(shù)1、BiLSTM+多層感知機+輸出函數(shù)1 三種模型進行測試,對其準確率、召回率和F值進行比較,3 種模型的圖例分別為blstm+mlp+out2、blstm+out1、blstm+mlp+out1,其中輸出函數(shù)1 與2 分別為依存關系挖掘部分的求和法和求積法輸出函數(shù)。
圖5 和圖6 為3 種模型在不同訓練批次的召回率和F值??梢钥闯觯谠缙趲纵営柧氈?,3 種模型的召回率與F值就已經(jīng)達到較佳水平,但這并不代表此時模型的性能較好。這是由于對于訓練數(shù)據(jù)集中的一個句子來說,需要計算的依存關系數(shù)量往往很少,數(shù)據(jù)中存在大量空依存關系,模型雖然能預測出空依存關系,但卻無法準確預測其他更有價值的依存關系。
Fig.5 Results of recall圖5 召回率結(jié)果
Fig.6 Results of F1圖6 F1 值結(jié)果
為避免空依存關系對實驗結(jié)果產(chǎn)生影響,圖7 列出了排除空依存關系后,模型預測準確率隨訓練批次的變化情況??梢钥闯?,BiLSTM+輸出函數(shù)1 模型雖然召回率、F 值和準確率均最高,但受空依存關系的影響最大,本文建立的BiLSTM+多層感知機+輸出函數(shù)1 模型在召回率、F 值和準確率方面與BiLSTM+輸出函數(shù)1 模型接近,但其受空依存關系影響較小。
Fig.7 Results of accuracy except for null relationship圖7 排除空依存關系的準確率結(jié)果
針對中醫(yī)電子病歷的語言特征與語義分析需求,本文提出一種高效的實體抽取算法,通過基于BiLSTM+自注意力機制+CRF 的命名實體識別模型和基于BiLSTM+多層感知器的實體間依存關系挖掘模型識別語義信息,在真實的中醫(yī)電子病歷中取得了較高的識別精度。該算法可將中醫(yī)電子病歷分析研究從基于關鍵詞的模式提升至基于語義內(nèi)容的模式,但由于名老中醫(yī)電子病歷的獲取難度較高,目前測試數(shù)據(jù)量相對較少,后續(xù)將會收集更多醫(yī)生、更多科室的電子病歷信息,以便對本文算法進行更深入的測試與優(yōu)化。