金瑋, 左嵩, 許健, 黃于飛, 鞏清源, 潘偉華
(上海交通大學醫學院附屬新華醫院 信息管理部, 上海 200025)
隨著信息科技的不斷進步,電子醫學數據量日漸龐大且越來越多樣化[1-3],有效地識別、分類電子醫療數據的文本,可以幫助醫生提高診斷疾病的效率。而傳統醫學文本,尤其是大量的醫學案例文本,具有眾多共同的特征,例如一些專有名詞與縮略語等。此時,結合自然語言處理的共同特點,即對一些詞語如文本的上下文的連接詞、結束語、否定詞進行提取特征處理。文中首先將醫學詞典加入到分詞中,并對文本中的詞語進行共現性統計。盡可能地保留文本數據的語義信息,改善傳統詞向量訓練法的局限性。其次,使用定長矩陣表示文本數據,使預處理后的數據以矩陣的形式加入到神經網絡中。最終通過綜合學習對多個神經網絡模型進行訓練,得到一個優化的整合模型,能夠更優地預測疾病。
本文采用兩所三級醫院的病歷檔案,包括目前病史、既往病史、診斷依據、醫學影像數據,測試數據為CSV格式。反復挑選后,得到2 432個數據。文中將挑選后的數據經過預處理后,按一定比例分別用于訓練與測試。
漢語文本不同于拉丁語文本,以漢語特征為單位作為單詞。單詞之間未有空格,所以需要將整個句子預處理成多個單詞,這種預處理技術就是分詞技術。近年來,發展的中文分詞技術方法主要有以下類別[4-6]:基于分詞算法與基于統計的機器學習算法。本文采用一個基于Java實現、包含多種詞典的分布式中文分詞組件——“Word”工具。該工具能通過模型準確識別各種常見詞匯和用戶自定義的詞庫。對于醫學文本上下文的分詞識別,還需優化以下問題:
(1) 醫學術語的提取。本文增加了一些獨特的醫學詞匯,利用Word的自定義詞典技術,增加了ICD10標準詞匯與完整的醫學詞典等專業詞匯。
(2) 結束語的權重。醫療文本數據中含有大量的結束語文字,雖然頻率較高,但對分類預測未有實際意義。本文通過使用[7-8]單詞權重調整的方法進行了優化,如式(1)—式(3)。
(1)
(2)
(3)
式中,Fd為調節詞權重的因子;N為文件數;i為從1開始的整數文件;λ為經驗參數,本文中取值為0.2。根據權重值來處理結束語,調整詞的權重可得到式(2),n為調節權重參數,式(2)的前半部分表示在該文檔中的出現次數與在所有文件中出現次數的比值,后半部分是根據詞匯對文檔的重要程度進行調整,起到降低高頻詞權重的作用。本文采用式(3)來保證語料庫中詞數的總數保持不變。
(3)否定詞的語義處理。本文將否定詞保留在數據中,并對這些詞進行嚴格的分離,從而保留這些語義信息,并抽象出不同的語言特征。
本文通過GloVe模型[9-11]對分詞后的詞向量進行訓練。通過以Word2Vec模型為基礎的文檔全局信息,GolVe模型盡可能地統計詞的共現性來探索醫學文本的語義,這與分詞中基于統計的機器學習算法較為相似。
首先計算共生矩陣,單詞的協同出現是在一個固定的窗口內建立的。在給定范圍后,可以得到一個V×V矩陣,其中V是詞匯表的大小。在GloVe模型中,使用與Word2Vec相比的共生矩陣調整損失函數。
文中將Skip-gram模型同樣應用于實際訓練中,如圖1所示。

圖1 Skip-Gram模型
其由以下三層結構層組成。
(1) 輸入層:根據輸入的文本詞向量進行統計排序,構建一個單詞詞匯表,并使用One-hot進行編碼;
(2) 隱含層:構建權重矩陣,評估每個詞匯表單中各單詞出現的概率;
(3) 輸出層:使用Softmax分類器求取隱含層的詞向量輸出概率,概率最大的詞向量即是訓練結果。
經過詞向量訓練后,得到詞在向量空間V的映射,即醫療文本數據中的每個字di對應一個向量vi。每個病案的結構不一致,描述文本的長度也不同,導致經過分詞與詞向量訓練的每個病歷數據的二維矩陣空間寬度不統一,最終引起接下來的網絡學習出現偏差。為改善這一問題,則標準化表示所有文本的二維矩陣Mi,以獲得統一的寬度。
本文提出使用定長的文本矩陣表示方法,通過對小于長度L的中文分詞提高矩陣的維數Wd。對超過長度L的中文分詞進行降維,并最終表示成L×L矩陣M。
當Wd
Tanimoto系數可以用來判斷兩個數據集合的相關程度,在文中其被用來評價詞向量的相似度,即可認為是歐幾里德距離與余弦相似度的擴展,如式(4)。
(4)
式中,x、y分別表示兩個數據集合的特征向量,xi、yi分別是向量中第i維度的元素。T(x,y)的數值在0-1之間,兩個集合完全相似為1,未相似為0。即數值越趨向1,則兩個向量越相似。
值得關注的是,文本數據中的詞向量是按詞序排列的。若更改了詞向量,則會影響特征提取的準確性。因此選擇Tanimoto系數最小的兩個相鄰向量求取平均值,即可最大限度地保留原始語義信息,同時也可以消除冗余過程。該結果算法如下:

INPUT二維矩陣:Mi=[vT1,vT2,…,vTk]T;Tanimoto系數:tani;最大系數值:t_max.PROCESS1. for i=k+1, …, L2. for j=1, 2, …, L-13. t_max==Max(tani(vj, vj+1), t_max); index=j of t_max4. end for5. vindes=0.5×(vindex+vindes+1)6. reansfer Mi×L to Mi-1 ×L7. end forOUTPUT固定長度矩陣:M'i=[v'T1,v'T2,…,v'TL]T
Yoon的網絡模型[12-13],如圖2 所示。

圖2 Yoon模型
卷積核的寬度即為訓練詞向量矩陣的維數;而卷積核在每個通道中的長度各有不同,這代表了詞匯文本在整個文檔中的接近程度。多個通道以后是一個全局最大池化層,其將對每個過濾器提取的向量特征進行處理。最終將提取的每個通道特征相結合,并對一個完整的句子進行特征提取。后續處理包括了各種預測,這些預測均是基于這一代表句的特征。
本文借鑒了Yoon模型的思想,在該模型采用多個卷積層對不同核大小的矩陣實數進行卷積。其中詞向量的維數與每個窗口的長度相同,即為L。在實際中表示的是抽象空間中相鄰k個詞之間的語義關系,然后提取特征。根據相鄰4個字向量之間的關系,該模型采用Relu激活函數,輸出層采用Softmax激活函數,最終全局池化層與全連接輸出層輸出概率值。
LSTM模型[14-15]是一種獨特的循環神經網絡模型,可以避免長期依賴性問題。LSTM保留了沿時間與層的反向傳輸錯誤,將誤差保持在一個更恒定的水平。并將信息存儲在循環網絡流之外的“記憶門”中,且設置了“遺忘門”選擇性遺忘某些歷史信息。
本文將每個LSTM單元的“遺忘門”偏差設為1,輸出層激活函數采用軟符號激活函數。
本文提出了一種基于堆疊學習方法的集成學習分類方法,而堆疊是一種經典的學習方法。其首先將原始數據集作為初級學習者進行訓練,然后將這些初級學習者的輸出作為新的數據集再進行訓練,從而得到“元學習者”。文中采用的算法主要有:

INPUT訓練集:D=x1,y1 ,x2,y2 ,…,xm,ym ;初次學習算法:L1,L2,…,LT;二次學習方法:L.PROCESS1. for i=1, 2, …, T2. hi=LiD 3. end for4. D'=?5. for i=1,2,…,m6. for i=1, 2, …, T7. zij=hjxi 8. end for9. D'=D'∪zi1,zi2,…,ziT ,yi 10. end for11. h'=LD' OUTPUTHx =h'h1x ,h2x ,…,hTx
文中采用堆疊學習的思想,將數據集隨機分成兩部分。對上述LSTM改進模型與Yoon改進模型進行了訓練,然后將其輸出值作為“元學習者”的數據輸入,最終得到一個完整的綜合模型。
本文基于實際收集的電子醫療數據集合,通過不同的機器學習分類方法,以逆向文件頻率(TF-IDF)作為權重對文檔特征進行分類,得到不同學習模型與綜合模型下的分類預測性能。文中的實驗是基于Win10系統、32 GB內存的工作站系統環境,編程語言為Python。外部框架有:TensorFlow、Python版的TextCNN(用于神經網絡模型訓練)、Python版的LTP工具(用于詞性標注)、Pyhton版的Gensim工具(用于Word2Vec向量表示),所涉及的集中模型實驗參數設置如下。
(1) Word2Vec:模型結構為Skip-gram,詞向量維度為200,窗口大小為10;
(2) LSTM模型:隱藏節點為256,隱藏層數為2,Batch大小為256,學習率為0.01,訓練循環次數為50;
(3) 深度學習:卷積核高度為2、3、4,卷積核的數量為256,Batch大小為256,Dropout為0.5,損失函數為交叉熵。
根據病歷檔案的2 432個文本數據,按照一定的比例分為訓練集與測試集?;趥鹘y機器學習的各類分類器分類性能,如表1所示。

表1 基于傳統機器學習方法的分類預測性能
從表1的實驗結果可看出,支持向量機(SVM)方法的性能優于其他分類器,但仍未達到較優的準確率,最高也僅有82.9 %。其原因與否定詞的處理方法有關,影響了醫療診斷的準確性。
測試結果,如表2所示。

表2 各種模型下的電子病歷分類性能指標
盡管兩種模型的特點有所不同,采用整合學習模型使LSTM改進模型與Yoon改進模型的優勢得到了綜合發揮。從結果可以看出,本文提出的綜合模型在電子病歷數據的分類中,體現出較優的效果,較改進LSTM模型與改進Yoon模型在各參考性能參數中均提高了約1 %;較參考圖像[16]處理中提出的LENET分類準確率提高了約4 %。
這兩種學習模型各自的優缺點得到了涵蓋與補充,并盡可能地擴大了潛在語義信息的保留程度。綜合學習模型能夠抽象地提取出文本的特征,對分類性能有顯著的提高。
本文為了提高醫療數據文本的分類預測性能,提出了一種固定長度的二維矩陣文本表示方法。對經過詞向量訓練預處理后的數據,以固定長度的二維矩陣形式加入到神經網絡中,并結合改進的Yoon模型與改進的LSTM模型進行優化。最終,在實際醫院數據集上進行實驗測試。實驗結果數據表明,優化后的整合模型對提高醫療數據文本的識別與分類預測性能有較為顯著的成效。