王曉勇
(首都經(jīng)濟(jì)貿(mào)易大學(xué),北京 100071)
計算機(jī)與信息技術(shù)的快速發(fā)展,使得當(dāng)今社會的信息呈指數(shù)級增長,而如何從這些海量信息中挖掘有價值的信息服務(wù)于醫(yī)療系統(tǒng),成為現(xiàn)階段各界科研人員的焦點。流程挖掘(Process Mining),作為一種從事件日志(Event Log)中提取有價值信息的技術(shù),是業(yè)務(wù)流程管理(BPM)領(lǐng)域方法的補(bǔ)充。流程挖掘利用現(xiàn)有的數(shù)據(jù)挖掘技術(shù),對事件日志進(jìn)行提取處理,建立相關(guān)流程模型加以分析,旨在獲取流程中有價值的信息,從而改進(jìn)優(yōu)化業(yè)務(wù)流程。這對企業(yè)提高效率、降低成本、優(yōu)化路徑,進(jìn)而擴(kuò)大經(jīng)濟(jì)效益有很大的意義。
近些年來,在眾多流程挖掘領(lǐng)域的研究方向中,預(yù)測業(yè)務(wù)流程活動的研究逐漸成為應(yīng)用比較廣泛的方向。其主要原因在于:流程挖掘、深度學(xué)習(xí)和自然語言處理技術(shù)等多個領(lǐng)域研究的快速發(fā)展和學(xué)科交叉,帶動了業(yè)務(wù)流程活動預(yù)測方向的研究。醫(yī)療過程日志中包含著豐富的患者信息、檢查檢驗信息、醫(yī)囑信息、住院信息等有價值的數(shù)據(jù)。醫(yī)生對于病人的診療決策是基于自己的知識、經(jīng)驗做出的。但一些基層醫(yī)療單位的醫(yī)生沒有三甲醫(yī)院的醫(yī)生那么豐富的經(jīng)驗或者先進(jìn)的醫(yī)療條件,從而限制了醫(yī)生診斷的準(zhǔn)確度。
本文的方法是通過構(gòu)建一個基于改進(jìn)的LSTM 結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的預(yù)測模型,去預(yù)測某一病種臨床路徑的下一個診療活動。而對臨床診療中下一個診療活動的預(yù)測,更具體地說,等同于在整個文本內(nèi)對一句話中下一個單詞的預(yù)測,通過將流程事件日志解釋為文本,痕跡處理解釋為句子,事件處理解釋為單詞,來一步一步預(yù)測未來的流程活動事件。因此,本文預(yù)測研究基于深度學(xué)習(xí)和自然語言處理技術(shù),進(jìn)而構(gòu)建改進(jìn)的LSTM 的預(yù)測模型,來實現(xiàn)對單病種臨床路徑中的下一個診療活動的預(yù)測。
本研究所需的初始數(shù)據(jù)是從某三甲醫(yī)院的信息管理系統(tǒng)中采集的腦卒中患者的單病種真實數(shù)據(jù)。取得數(shù)據(jù)后將進(jìn)行數(shù)據(jù)清洗操作,主要包括數(shù)據(jù)拼接組合、合并相近醫(yī)學(xué)術(shù)語、去除停用詞三方面內(nèi)容。采集到的數(shù)據(jù)在眾多醫(yī)療日志中,主要選取入院初步診斷、醫(yī)囑項目、檢驗項目作為過程日志。將每名患者入院后所做的醫(yī)囑項目、檢驗項目按時間序列順序組成一條數(shù)據(jù),一名患者入院后的所有信息即可視為一個完整的句子,其中每個項目視為句子中的單詞。由于整理好的醫(yī)療過程日志已經(jīng)由空格分開,所以可以省略自然語言處理中的“中文文本分詞”步驟。
由于醫(yī)療數(shù)據(jù)的復(fù)雜性,直接對數(shù)據(jù)進(jìn)行預(yù)測的效果并不理想,本文提出了一個三步框架:①先按照醫(yī)囑信息進(jìn)行聚類,將原始數(shù)據(jù)采用無監(jiān)督學(xué)習(xí)方法劃分為更加相似的組,而后在組內(nèi)進(jìn)行進(jìn)一步預(yù)測;②將分組后的醫(yī)療日志視為文本,將日志中每個病人的記錄視為句子,將記錄中的每個診療活動類似于句子中的單詞,運用自然語言處理模型進(jìn)行向量化編碼;③構(gòu)建了LSTM 的臨床路徑預(yù)測模型,最后使用Dropout 方法來防止神經(jīng)網(wǎng)絡(luò)模型過擬合問題的影響,最終達(dá)到預(yù)測出后續(xù)診療活動的目的。
本文主要用K-Means 算法對數(shù)據(jù)進(jìn)行預(yù)處理,首先先利用手肘法和輪廓系數(shù)法來選取合適的k值。
手肘法的關(guān)鍵指標(biāo)是誤差平方和(sum of the squared errors,SSE),其主要理念是算法隨著k值增大,每個簇的聚合度會越來越高,這時SSE 就會逐漸變小。k小于實際聚類數(shù)時,k值增加會使每個簇的聚合度迅猛增加,這時誤差平方和的下降速度會較快,由于k的增大會大幅增加每個簇的聚合程度,因此SSE 的降低速度會很快,當(dāng)k等于真實聚類數(shù)時,增加k值就不會使得SSE 快速降低,最后隨著k值的增大逐漸平緩。也就是SSE 降低速率減緩的地方就是k值的最佳取值點,其圖像為手肘形狀,因此被稱為手肘法。
輪廓系數(shù)法的關(guān)鍵指標(biāo)為輪廓系數(shù)(Silhouette Coefficient)。簇內(nèi)樣本的距離越近,簇與簇之間的距離就越遠(yuǎn),輪廓系數(shù)就越大,最后的聚類效果就越好。實驗證明k取2、3 時輪廓系數(shù)最大,與手肘法綜合后,本文中k值取2,也就是把原始醫(yī)療數(shù)據(jù)分為兩組,這樣減少了樣本間差異。
在進(jìn)行聚類之前,本文需要把每條日志之間的相似度問題轉(zhuǎn)化為向量矩陣的問題,創(chuàng)建出格式為(輸入詞,輸出詞)的數(shù)據(jù)元祖,其中每個詞都來源于初始文本數(shù)據(jù),同時表示成一個one-hot 向量。定義一個模型,將one-hot 向量作為輸入和輸出進(jìn)行訓(xùn)練。定義損失函數(shù),用于預(yù)測正確的詞,這些詞來自于輸入詞的上下文,從而優(yōu)化模型。通過相似詞具有相似的詞向量來評估模型。
本文構(gòu)建了基于改進(jìn)的LSTM 的臨床路徑預(yù)測模型,最后使用Dropout 方法來防止神經(jīng)網(wǎng)絡(luò)模型過擬合問題的影響。該模型LSTM 中,以詞語的多尺度的特征組合,進(jìn)行預(yù)測。例如,醫(yī)療日志中的一條事件軌跡為{u,v,w,},它的連續(xù)子序列的集合也就是前文所說的輸入數(shù)據(jù)為{u,uv,uvw},輸出數(shù)據(jù)則為{v,w,x,end},其中,end 為代表事件結(jié)束的符號。在預(yù)測臨床路徑下一個活動之后,可以多次循環(huán)使用網(wǎng)絡(luò)來預(yù)測后續(xù)。該模型主要包括聚類分析、詞向量、LSTM 層輸出層3 個部分。主要的算法流程如下:①初始化神經(jīng)網(wǎng)絡(luò)超參數(shù)。句子最大長度1 m,每個訓(xùn)練數(shù)據(jù)批次的大小bs,詞嵌入處理的維度d,過濾器大小fs,過濾器的數(shù)量fn,LSTM 隱含層節(jié)點數(shù)目hs,最大迭代次數(shù)n,全局學(xué)習(xí)率lr,學(xué)習(xí)衰退率ld。②在詞向量處理層,將每個病人的診療過程作為文本數(shù)據(jù),通過詞頻排序進(jìn)行編碼,將編碼好的文本數(shù)據(jù)通過one-hot 模型中形成詞向量,構(gòu)建詞向量矩陣。用詞向量的維數(shù)來表示寬,每個樣本的事件數(shù)量來表示長。③將聚類的結(jié)果作為輸入,降低維度后輸入到LSTM 層,把LSTM 層輸出的結(jié)果作為文本的結(jié)果向量,連接全連接層使用Softmax 進(jìn)行分類,并進(jìn)行Dropout 操作。④計算交準(zhǔn)確率、復(fù)雜度和交叉熵?fù)p失函數(shù)。使用Adam 算法優(yōu)化損失函數(shù),并基于反向傳播不斷調(diào)整參數(shù)。當(dāng)達(dá)到模型設(shè)置的最大迭代輪數(shù),或者滿足其提前設(shè)置的終止要求時,模型結(jié)束訓(xùn)練。
本文所使用的業(yè)務(wù)流程數(shù)據(jù)源自于某三甲醫(yī)院的醫(yī)院信息系統(tǒng)(HIS),HIS 是覆蓋醫(yī)院的所有部門,提供患者診斷信息和內(nèi)部管理信息的信息管理系統(tǒng)。業(yè)務(wù)流程事件日志的數(shù)據(jù)集來自于該醫(yī)院腦卒中患者的用戶臨床路徑數(shù)據(jù)。
由于可訓(xùn)練參數(shù)是隨機(jī)初始化的,不同的初始值會導(dǎo)致不同的訓(xùn)練結(jié)果,其次每一條數(shù)據(jù)的醫(yī)療日志都是按特定順序排列的,但每條數(shù)據(jù)之間順序是任意的,這兩個原因會影響神經(jīng)網(wǎng)絡(luò)的性能。所以為了解決這些隨機(jī)的影響,使用十倍交叉驗證,即將數(shù)據(jù)分成10 份,每次用9 份訓(xùn)練,用1份做驗證,取最后精度的平均值作為驗證結(jié)果。
由上述實驗結(jié)果可知,經(jīng)過K-Means 聚類后,1、2 數(shù)據(jù)都較原數(shù)據(jù)的精確度有了明顯提升,可以說明對原始數(shù)據(jù)進(jìn)行分類可以提高數(shù)據(jù)的聚合度,同一組的數(shù)據(jù)更具有醫(yī)學(xué)相似性。LSTM 預(yù)測模型可提高數(shù)據(jù)準(zhǔn)確率,并且在一定程度上可以降低復(fù)雜度和交叉熵?fù)p失。
未來可以考慮一些其他的神經(jīng)網(wǎng)絡(luò)模型,例如GRU 循環(huán)網(wǎng)絡(luò)、雙向循環(huán)網(wǎng)絡(luò)、注意力機(jī)制等,來進(jìn)一步提高模型預(yù)測的準(zhǔn)確率。對于數(shù)據(jù)向量編碼分布式表示方法,本文只選用了Word2Vec 的基本方法。本文還可以通過選擇更多的語言模型,例如LBL、NNLM、C&W、GloVe 等,進(jìn)一步豐富文本的語義信息。此外還可以在進(jìn)行神經(jīng)網(wǎng)絡(luò)提取特征信息進(jìn)行訓(xùn)練前先自行人工提取一部分特征信息,再與后續(xù)特征進(jìn)行融合,以提高預(yù)測模型的性能。擴(kuò)充實驗數(shù)據(jù)集,筆者們將進(jìn)一步收集近幾年的腦卒中診療數(shù)據(jù),使得模型中參數(shù)能夠得到充分地訓(xùn)練優(yōu)化,提升預(yù)測效果。