胡 穩,張云華
(浙江理工大學信息科學與工程學院,浙江 杭州 310018)
基于傳統就醫方式存在的就醫排隊時間長、獲取問診結果遲緩等問題,因此,智能醫療問答系統有了廣泛的市場需求,而實體識別則可視為是問答系統中極為重要的一個組成部分。
命名實體識別一般認為是序列化標注任務,主要分為傳統機器學習模型和深度神經網絡模型兩類。在傳統機器學習領域,一般使用的模型有HMM[1](Hidden Markov Model)、CRF[2](conditional random field)、SVM[3](Support Vector Machine)等。然而傳統機器學習方法仍然需要大量的人工參與特征的提取,識別效果并非特別理想。近些年來,深度學習技術快速發展,使得該技術被廣泛應用到實體識別任務中。得益于長短期記憶網絡的優秀序列化建模能力,Hammerton[4]才能夠率先把神經網絡中的LSTM(Long-Short Term Memory)應用到實體識別領域中,如李明浩等人[5]將該模型使用在中醫臨床癥狀識別上,該模型隨后成為了命名實體識別的基礎模型之一。張聰品等人[6]使用LSTM-CRF 模型識別醫療電子病歷中的身體部位、疾病名稱、檢查、癥狀和治療五類實體,準確率達到96.29%。2017 年Google 公司提出了基于注意力機制(Attention)的Transformer模型[7],提高了模型的并行效率,獲得了非常好的實驗效果。李博等人[8]構建了Transformer-CRF 神經網絡模型用于識別醫療領域的命名實體,具有較好的識別性能。
本文使用醫療領域數據為研究對象,使用BERT模型(Bidirectional Encoder Representation from Transformers)對原始文本數據進行詞向量嵌入表示,再輸入到BiGRU(BidirectionalGatedRecurrentUnits)層中獲得每個詞向量在所有標簽中的模型得分,最后使用CRF 進行糾正BiGRU 模型得到的非法結果從而生成最終的分類結果。
BERT[9]是由Google 公司推出的基于變換器的雙向編碼器表示技術,性能十分強大,一經推出就取得了非常優秀的成績。BERT 模型將自注意力機制融合進雙向的Tansformer 編碼器,從而使得關于語句上下文的語義信息能夠被更深層次的從兩個方向同時獲取,達到獲取更強的語義特征的目的。BERT 模型的基本結構如圖1 所示,圖中的Trm 表示Transformer模型,Ei表示第i個文本輸入向量,Ti表示第i個輸出的表示向量,通過使用多層雙向堆疊的Transformer 模型使得整個模型的效果更好。

圖1 BERT模型結構
BERT 模型除了使用上述模型結構之外,還提出基于Masked掩碼語言模型以及下一句預測兩個任務,針對一個語句分別從詞語角度和語句角度進行模型訓練。Masked 語言模型會隨機遮住句子里的一些詞語,讓編碼器來預測被遮住的原始單詞。有80%的情況中獎單詞使用Mask標記,10%的情況將其替換為其他單詞,另10%的情況不變。這樣做使得模型對于上下文語義信息獲取的更為充分,如表1 所示。如果一個詞語的一部分被Mask,這個詞語其他部分也要被Mask,這種情況是全詞Mask。下一句預測是指訓練一個二分類模型,用這個模型來對當前兩個句子是否為后繼關系進行判斷,即用于學習句子之間的關系。輸入兩個連續的句子,對該句子在句頭插入[CLS]來標記,使用[SEP]標記語句結束。同時對BERT 模型進行訓練,訓練過程中這兩個任務會一起進行,訓練目標則是將他們的組合損失函數降到最低。

表1 Mask語言模型
在使用RNN(Recurrent Neural Network)模型時研究人員發現使用過程中可能會出現梯度消失,為了解決這一問題研究人員基于RNN 進行改進從而提出了LSTM[10]以及GRU 模型[11](Gate Recurrent Unit)。在LSTM 模型的使用過程中,通過三個門的設計來控制數據的流動。而GRU 模型是RNN 的另外一種改進方案,通過將LSTM 原有的三個門修改成兩個門,合并了其中的兩個門,GRU 單元如圖2 所示。其中的ht?1表示前一時刻的輸出,ht表示當前時刻的輸出信息,xt表示當前時刻的輸入信息,zt是一個更新門,用于控制信息流入下一個時刻,rt是一個重置門,用于控制信息丟失,zt和rt共同控制隱藏狀態的輸出。計算公式如式⑴~式⑷所示。

圖2 GRU單元結構圖
BiGRU 模型是在BiLSTM 和GRU 模型的基礎上提出的一種改進模型,雙向結構的GRU單元被使用來構成BiGRU 模型,這樣做可以讓模型同時從過去和未來兩個角度獲取句子特征。BiGRU 模型比原有基礎模型的參數少,可以減少訓練時間。
條件隨機場CRF 模型是指提供任意數據時模型會給出對應的輸出數據,而輸出輸出數據滿足馬爾科夫隨機場定義。條件隨機場結合了馬爾科夫隨機場和最大熵模型,主要應用于自然語言處理領域的標注問題中,其中最典型的是線性鏈,其形式一般如式⑸、式⑹所示。
本文提出的算法模型主要由三個部分組成,分別是BERT 預訓練模型、BiGRU 模型、CRF 模型。模型結構圖如圖3 所示。先將原始的問答數據被傳入到BERT 模型中,對原始問答數據完成詞向量的表示,詞向量表示的數字矩陣被傳入到BiGRU 模型進行獲取語句的前后語義之間的特征。然而,BiGRU 模型在訓練過程中考慮的是整體上下文信息,而針對標簽和標簽之間的依賴關系沒有給予重視,所以會導致實驗結果中標簽前后語義出現問題。

圖3 BERT-BiGRU-CRF模型結構圖
根據BIO 標注法來說,B 表示當前單詞為開頭部分,I 表示當前單詞為中間部分,O 表示無關的實體。如果對于某個疾病的標注符號為“dis”,對于癥狀的標注符號為“sym”,則針對這個實體識別得到的結果應該是“B-dis”、“I-dis”、“O”、“B-sym”、“I-sym”。然而對于BiGRU 模型來說,它并沒有考慮標簽之間的關系,而是單純輸出當前得分最高的標簽。因此會出現“I-sym”、“I-dis”、“O”、“B-sym”、“I-sym”的輸出,這種情況很明顯不符合標注規則。因此本文在BiGRU模型的輸出結果之后增加了CRF 模型來控制不合法的情況,即糾正錯誤。CRF 模型主要是在訓練過程中根據標簽之間的依賴關系學習到約束規則,從而糾正BiGRU層得到的非法標簽輸出。
本文使用了某醫療網站的數據作為數據集進行實驗,一共8000 條數據,隨機將數據進行打亂,按照80:10:10 的比值進行切分,分別用于模型的訓練測試和驗證,實驗模型的初始化參數如表2所示。

表2 模型初始化參數
本文將隨機選出的驗證集數據與人工標注結果進行比照,人工標注的實體為正類,其他為負類,評估設置如表3所示。其評價指標的計算公式如下:

表3 評估設置
在對驗證集進行的實驗中我們可以看到,BiLSTM 模型的F1 值為69.37%,BiGRU 模型的F1 值為70.15%,BERT-BiLSTM-CRF 模型的F1 值為75.17%,BERT-BiGRU-CRF 模型的F1 值為76.39%。以上數據的具體Precision、Recall 和F1 值如表4 所示。在這一實驗數據中我們可以看到,單模型的F1結果明顯低于使用了BERT 模型和CRF 模型的兩組模型,而其中使用BiGRU 模型在本數據集上的表現略好于BiLSTM 模型的結果。對比兩組模型的訓練時間,BERT-BiGRU-CRF 模型運行使用了4 小時31 分鐘,而BERT-BiLSTM-CRF 模型足足使用了將近6 小時,BiGRU 模型更簡單,從而,其運行速度也明顯優于BiLSTM模型。

表4 實驗結果
本文基于醫療領域數據集研究了實體識別任務,首先將原始的問答數據傳入到BERT 模型中,對原始的問答數據完成詞向量表示,詞向量表示的數值矩陣被傳入到BiGRU 模型進行獲取語句的上下文特征,在完成以上操作后針對原BiGRU 模型針對標簽問題的錯誤判定,使用CRF 模型進行修改。通過試驗對比,模型最終得到的F1 值為76.39%,相比其他模型有所提升。針對實體識別任務,未來還需要做進一步實驗,目前的數據來源不足,未來可以著眼于更加豐富的醫療數據來訓練模型,提升模型表現。此外,BERT 模型使用的是通用語言模型,并沒有使用醫療領域預訓練數據,針對專用名詞不能很好地識別。