王 捷,陳 超,周海權,舒德勝,黃 豪
(四川輕化工大學計算機科學與工程學院,宜賓 644000)
互聯網的不斷發(fā)展使得互聯網信息量急劇增加,文本作為主流的信息承載方式,擁有巨大的潛在價值。在醫(yī)療診斷方面,電子病歷作為有效的患者病情描述媒介,通過文本自動分類技術實現非結構化電子病歷文本數據的規(guī)范化,利用文本挖掘技術挖掘描述數據的有效信息并對病情類別自動分類,能夠有效減少當前醫(yī)療系統(tǒng)的壓力,具有較好的社會效益。
近些年來,科研人員對文本分類算法研究不斷深入,產生了很多有效的文本分類方法,Zhang 等[1]利用獨熱表示方法(one-hot representation)把文本表示為向量,通過支持向量機與反饋神經網絡結合對文本分類;Paccanaro 等[2]提出詞嵌入模型(word embedding);龔靜等[3]使用一種對ti-idf 算法加權的方式來提取相關特征,隨后使用樸素貝葉斯網絡對特征分類;豆孟寰[4]使用n-gram 統(tǒng)計語言模型對文本進行分類;Bengio等[5]提出了用神經網絡的方式來構建語言模型。但是對于數據稀疏以及數據之間相似度比較大的數據集,采用上述方法會導致一定程度的精度損失。Lilleberg 等[6]利用Word2Vec 提取相關語義,然后使用SVM 進行文本分類,但是SVM 的訓練速度受數據量的影響較大,有一定的局限性。
RNN 引入循環(huán)核的概率,對于處理上下文聯系較大的數據有一定的優(yōu)勢,而中文文本就完美符合該特征,同時LSTM[7]作為RNN 的衍生,在RNN[8]的基礎上添加了門控神經單元,有效地避免RNN 在更新下一次輸入時由于時間間隔太長導致特征丟失而帶來的模型梯度問題,具有更加有效的記憶功能。
本文在上述基礎上,使用Word2Vec 處理文本得到下一步的向量輸入,同時使用LSTM 分類算法來對病歷文本進行分類。
Word2Vec 采用了Hierarchical Softmax 或Negative Sampling 兩種技術來提高訓練詞向量的性能,本文采用的是基于Hierarchical Softmax 的Skip-Gram模型,訓練模式選用CBOW 模型。
該模型包含三層,分別是輸入層、投影層以及輸出層,輸入層包含2c個長度相同的詞向量組成作為模型的輸入,投影層將輸入層輸入的詞向量累加求和得到均值Xw。輸出層是用哈夫曼樹構建的,其中白色葉子節(jié)點對應的是詞匯列表當中的詞,藍色葉子結點的作用相當于深度神經網絡(DNN)當中隱含層到輸出層的映射函數W′。相比較于傳統(tǒng)DNN 網絡模型,Word2Vec 有以下改進:首先去除了隱含層,隱含層的作用是其激活函數對于處理非線性十分擅長,但文本數據是強線性相關的,去除隱含層有助于簡化模型結構;其次是降低了模型計算量,使用哈夫曼[9]替換了原DNN 當中的softmax,在哈夫曼樹當中,不需要計算非葉子節(jié)點代表的向量,只需要計算在尋找目標節(jié)點時經過路徑上存在的節(jié)點。
圖1 Word2Vec模型結構
文本庫當中的文本長度分布在15~300個詞之間,將Word2Vec 訓練出來的每個詞的詞向量相加然后求平均值,再采用tf-idf、bag-of-words模型對文本進行分類,最后得到結果向量。bag-of-words 模型統(tǒng)計文本集當中出現的詞的頻率,詞每出現一次就把字典當中對應詞所表示的數值加1,例如{“感冒”“發(fā)燒”“胸悶”“頭痛”“牙疼”}這個字典,那么文檔“我今天好像發(fā)燒了,頭痛,是不是感冒了”可以表示為[1,1,0,0,1,0]。而tf-idf 模型在前者的基礎上為關鍵詞添加權重,例如在電子病歷文本處理當中“頭痛”“不舒服”等都是描述癥狀詞,但是“頭痛”所表達的含義明顯對模型能夠準確分類更加有益,其具體公式如(1)所示。
其中:N表示的是所有文本數量,Nt表示的是含有詞t的文本數量,但是這兩個模型的缺點是對于語義相似詞的處理不恰當,例如“頭疼”與“頭痛”這兩個詞在語義上完全相似,但是通過tf-idf 與bag-of-words 模型表示出來的空間向量卻相距甚遠,對最終模型的準確度有一定的影響。
在深度學習領域當中,“長期依賴”的問題普遍存在,例如典型的RNN 模型,該問題產生的主要原因是當前神經元迭代的次數過多,導致距離當前時間點較長時間片的文本特征被覆蓋,進而導致模型產生梯度問題,無法準確地表示文本信息。LSTM作為RNN的變體,引入了門(gate)機制來控制模型特征的流通和損失,從而可以有效避免“長期依賴的問題”。
本數據集包含50000文檔數量,按照種類標簽均勻分布為5 份,在這里采用交叉驗證的方法,文本分類算法使用LSTM 算法,隨后分別采用Word2Vec、tf-idf、bag-of-words 模型提取文本向量作為LSTM 的輸入,由結果可知,基于Word2Vec 與LSTM 的文本表示方法的精確率、召回率以及正確率均高于其它兩種方法。
接下來,繼續(xù)使用Word2Vec 提取文本向量作為模型輸入,然后分別使用支持向量機(SVM)、卷積神經網絡(CNN)、長短期記憶神經網絡(LSTM)分類算法進行結果對比,SVM 求解的是二次規(guī)劃問題,在這里使用梯度下降的方式來獲取最佳SVM 參數,CNN 的特點在于它的局部感知機制以及權值共享機制,在實驗中,卷積層與池化層包含的神經元個數為256個,全連接層的神經元個數設置為病歷文本種類的個數用于文本分類,實驗分別采用準確率與損失率作為模型評估指標,模型迭代次數定為10次,其表示如圖2和圖3所示。
圖2 模型準確率
圖3 模型損失率
如圖2、圖3 以及表1 所示,基于Word2Vec與LSTM 模型的文本分類的準確率最高,損失率也達到最小,現實中深度學習網絡CNN 模型能夠自動提取模型特征,對于較復雜特征的自學習能力高,效率也有保障。長短期記憶神經網絡LSTM 模型的記憶功能更加有利于相鄰位置的信息重構,對于處理音頻、文本等序列化數據表現良好,在自然語言方向應用廣泛。表1的數據也可以充分證明LSTM 在處理文本分類當中的有效性。
表1 基于不同分類算法在不同集合上的分類結果
本文構建了一種基于Word2Vec+LSTM 的文本分類模型,首先在訓練詞向量方面,為了解決文本稀疏問題以及文本相似問題選取Word2Vec 模型訓練文本向量作為模型輸入,通過與tf-idf 模型以及bag-of-words 模型進行比較,發(fā)現Word2Vec 模型在解決文本稀疏以及相似度較高的問題上表現優(yōu)異。為了解決模型在訓練過程中由于“長期依賴”而導致的梯度問題,本文采用長短期記憶神經網絡LSTM,作為RNN的一個分支,它在RNN 的基礎上添加了門控神經單元,能夠根據設定值有選擇地選取下一個時間片輸入的文本向量,實驗與CNN 以及SVM進行比對,結果顯示Word2Vec+LSTM 模型在表現上明顯優(yōu)于其它模型。因此,基于Word2Vec+LSTM 的文本分類模型在電子病歷文本分類方面有一定的實用價值,能夠有效提高醫(yī)療系統(tǒng)在電子病歷歸檔、分類等相關方面的處理效率。
本文所使用的文檔標簽是通過相關人員進一步處理篩選而來,所以主觀性較強,因此文本分類結果可能存在爭議性以及不確定性等問題,有待后續(xù)改進。