劉少欽,唐 爽,趙俊峰,3+,王亞沙,3,卓 琳
1.北京大學 信息科學技術(shù)學院,北京100871
2.高可信軟件技術(shù)教育部重點實驗室,北京100871
3.北京大學(天津濱海)新一代信息技術(shù)研究院,天津300450
4.北京大學 公共衛(wèi)生學院 流行病與衛(wèi)生統(tǒng)計學系,北京100871
醫(yī)療處方是指醫(yī)師在診療活動中為患者開具的,作為患者用藥憑證的醫(yī)療文書。每張?zhí)幏經(jīng)Q定了患者在之后的診療活動中需要使用的藥物,這些藥物能夠?qū)颊叩闹委煯a(chǎn)生極大影響。世界衛(wèi)生組織在內(nèi)羅畢提出,合理用藥即是“對癥開藥,供藥適時,價格低廉,配藥準確,以及劑量、用藥時間和間隔均正確無誤,藥品必須有效、質(zhì)量合格、安全無害[1]。”其中提到的藥方、劑量、用藥時間等通常都由醫(yī)生寫在所開具的處方中。如果醫(yī)療處方出現(xiàn)錯誤,患者所使用的藥物就會有偏差,出現(xiàn)不合理用藥現(xiàn)象,影響患者的治療效果,甚至造成嚴重的后果。
在醫(yī)師所開具的大量處方中,難免會出現(xiàn)一些異常,這些異常會增加醫(yī)療機構(gòu)和患者的負擔。調(diào)查顯示,異常處方中主要的問題有:藥物的濫用、過多給藥以及錯開藥。隨著醫(yī)療系統(tǒng)逐步實現(xiàn)全面數(shù)字化,醫(yī)療處方大多以電子形式開具,如果能夠?qū)崿F(xiàn)一個自動檢測異常處方的方法,將提高患者就醫(yī)效率,對藥物濫用和過多開藥等社會問題都有著重要意義。
處方數(shù)據(jù)一般有三個主要特點:數(shù)據(jù)量巨大,數(shù)據(jù)高維稀疏,數(shù)據(jù)片段(時序)化。雖然已有大量機器學習和統(tǒng)計學方法用于解決異常檢測問題,如有監(jiān)督的分類方法,使用傳統(tǒng)的分類方法如SVM(support vector machine)找出異常的記錄;使用無監(jiān)督學習的異常點算法,通過計算離群點來找出異常記錄;部分使用高斯混合模型的統(tǒng)計學方法。這些方法在一定程度上解決了異常檢測問題,但也存在著一些不足,導致其在異常處方檢測中效果較差,比如有監(jiān)督學習方法訓練時所需要的高質(zhì)量人工標注數(shù)據(jù)集難以獲得;以異常點檢測為主的無監(jiān)督學習方法和以高斯模型為主的統(tǒng)計學方法大都沒有考慮不同種類特征的關(guān)系,傾向于把一些不經(jīng)常出現(xiàn)的特征歸為異常,例如認為一些很少出現(xiàn)的疾病是數(shù)據(jù)異常。但是,這類具有罕見特征的數(shù)據(jù)并非一般情況下人們所認為的異常數(shù)據(jù),人們所認為的異常處方往往是疾病和用藥之間的匹配關(guān)系異于大多數(shù)數(shù)據(jù)的處方,比如無診斷依據(jù)的不合理用藥等。目前,也有一些相關(guān)研究試圖檢測兩類特征不匹配導致的異常,如上下文異常監(jiān)測(contextual anomaly detection,CAD)[2-3]等,但是由于處方數(shù)據(jù)具有高維稀疏的特性,這些方法的應用效果不佳。
主題建模(topic modeling)技術(shù)[4]最初是從自然語言文本中抽取主題信息的一種技術(shù),該技術(shù)假設(shè)主題是一組語義相關(guān)的詞語,而文章由多個主題混合而成。主題建模是一種無監(jiān)督學習方法,它能對無標注數(shù)據(jù)進行分析。由于醫(yī)療處方數(shù)據(jù)具有高維稀疏的特性,在使用異常檢測的機器學習方法前通常需要對處方數(shù)據(jù)進行降維來提高方法的效果。主題模型能夠?qū)崿F(xiàn)文檔從高維的原始特征(單詞)降到低維的抽象特征(主題),相比主元素分析(principal component analysis,PCA)[5]一類的降維方法,主題模型中低維的主題特征是具有語義可以解釋的,在處方數(shù)據(jù)訓練出來的主題模型中,主題特征即為一類病癥所對應的診斷(用藥),在醫(yī)學上具有良好的可解釋性。因此本文選擇主題建模方法來處理前面所提到的大量高維度、低質(zhì)量、無標注的結(jié)構(gòu)化數(shù)據(jù)。
本文提出了一種基于擴展主題模型的異常處方檢測方法,該方法是一個無監(jiān)督學習方法,在不需要標注數(shù)據(jù)集的情況下,能夠檢測處方數(shù)據(jù)中的異常處方。在使用大量處方數(shù)據(jù)對該模型經(jīng)過訓練后,模型可以自動檢測新處方是否異常。本文提出的方法首先通過擴展的主題模型——多視圖主題模型建模得到疾病和用藥之間的匹配關(guān)系,而后對于每個處方,判斷其診斷及用藥是否滿足匹配關(guān)系,進而判斷該處方是否正常。該方法不僅可以用于檢測異常處方,對于醫(yī)療領(lǐng)域中任意需要檢測是否正常匹配的數(shù)據(jù),都可以使用該方法。
本文有兩個主要貢獻:
(1)多視圖主題模型(multi-view latent Dirichlet allocation,MV-LDA):由于樸素的LDA 模型無法發(fā)掘特征之間的聯(lián)系,本文提出了一種改進的主題模型MV-LDA,將不同種類的特征看成是從不同的視圖對實例進行的描述,因而共享同一個實例主題分布,從中得到不同特征之間的匹配關(guān)系。
(2)基于多視圖主題模型的異常處方檢測方法:基于多視圖主題模型,提出了一種異常處方檢測方法,在高維稀疏的處方數(shù)據(jù)上取得了良好的效果。與其他傳統(tǒng)方法(如CAD)相比,該方法準確率較高,在數(shù)據(jù)極其稀疏的時候依舊有著穩(wěn)定的檢查結(jié)果。該方法不僅可以用于檢測異常處方,還可以用于檢測其他特征之間的匹配關(guān)系異常。與其他的醫(yī)療領(lǐng)域中異常檢測算法相比,本文方法的應用范圍更廣。
基于這種方法,本文實現(xiàn)了一個實現(xiàn)異常處方檢測的工具,并在真實數(shù)據(jù)集上進行了實驗,實驗結(jié)果表明,本文方法可以有效地發(fā)現(xiàn)異常處方。
現(xiàn)有醫(yī)療領(lǐng)域內(nèi)的異常檢測算法可以分成有監(jiān)督和無監(jiān)督兩類[6]。在有監(jiān)督的學習方法中,常用一些機器學習方法對人工標注的醫(yī)療數(shù)據(jù)進行分析。例如,Kumar等人在一個標記了足夠多異常實例并且質(zhì)量良好的數(shù)據(jù)集中,運用SVM 有監(jiān)督學習方法,檢測醫(yī)療索賠數(shù)據(jù)中的記錄錯誤[7]。Heller 等人[8]假設(shè)所有實例都屬于某個確定的類別,用SVM 方法從數(shù)據(jù)集中描繪出兩類實例的邊界,任何分錯邊的實例都被視為有異常信息的實例。但是由于獲取有監(jiān)督學習所需要的高質(zhì)量標記數(shù)據(jù)集非常困難,為此研究人員也提出了一系列的無監(jiān)督的異常檢測方法。無監(jiān)督方法一般是通過尋找離群點來實現(xiàn)的,通過把每個實例抽象成高維空間中的一個點,把遠離空間中其他點的數(shù)據(jù)點作為異常點。例如,Yamanishi等人[9]就是使用基于概率生成模型的無監(jiān)督點異常監(jiān)測(point anomaly detection,PAD)方法去檢測病理數(shù)據(jù)的異常;以及Breunig 等人提出的基于密度的局部異常因子(local outlier factor,LOF)方法[10]。但是在醫(yī)療領(lǐng)域中,這類離群點并不一定都是異常數(shù)據(jù),因為醫(yī)療領(lǐng)域中存在著大量的發(fā)病率很低的罕見病,實際上,除去部分較為常見的病癥之外,大部分的疾病發(fā)病率都非常低,異常點檢測的方法無法處理這類問題。與罕見數(shù)據(jù)相比,更希望檢測那些特征之間不匹配的實例。上下文異常檢測(CAD)就是一種使用兩類特征之間的關(guān)系進行異常值檢測的無監(jiān)督方法,CAD 把特征分為上下文特征(設(shè)為y)和指示特征(設(shè)為x),在假設(shè)絕大多數(shù)數(shù)據(jù)是正常的情況下,學習得出x到y(tǒng)的一個映射函數(shù)y=f(x)。對于某一條測試數(shù)據(jù),如果其兩類特征不符合y=f(x),就認為這條數(shù)據(jù)是異常數(shù)據(jù)。CAD 方法在醫(yī)療中也有應用,例如Hu 等人[11]的解決方案是在指示特性和一組語境特征上使用回歸模型,然后使用剩余部分的測試實例,來確定異常值,從而在醫(yī)療記錄中識別異常用藥案例。但是由于醫(yī)療數(shù)據(jù)的高維稀疏性,CAD方法在醫(yī)療領(lǐng)域取得的效果并不好,且CAD 方法只能用于檢測兩類特征之間的不匹配。
主題模型是一類用于描述無結(jié)構(gòu)文本組成方式的統(tǒng)計模型,在機器學習領(lǐng)域中,它被用來從一系列文本中挖掘潛在特征“主題”。通過使用主題這一抽象特征作為中間層,主題模型可以有效地對文本進行特征抽取,將文本的映射向量從高維度的詞空間,映射到低維度的主題空間,并且主題這一抽象概念是一組語義上相關(guān)的詞及其對應概率,描述的是語料的“中心思想”,具有良好的可解釋性。
主題模型相關(guān)的研究有很多,例如最初提出的Deerwester 等人提出潛在語義分析(latent semantic analysis,LSA)[12],利用矩陣求解的方法進行主題計算。Blei 等人[13]在2003 年提出的潛在狄利克雷分布方法(latent Dirichlet allocation,LDA),由于出眾的主題抽取效果以及易擴展的概率表示方式,也成為應用最廣泛的模型。
LDA 主題模型假設(shè)輸入數(shù)據(jù)是無結(jié)構(gòu)的“詞袋”(詞的無序集合),由于處方數(shù)據(jù)為結(jié)構(gòu)化數(shù)據(jù),診斷和用藥之間存在著關(guān)聯(lián)關(guān)系,因此無法直接利用LDA 主題模型進行建模。需要針對性研究面向結(jié)構(gòu)化數(shù)據(jù)的主題建模技術(shù),使得主題模型能夠在對數(shù)據(jù)降維的同時,反映處方數(shù)據(jù)中的匹配關(guān)系。
LDA 主題模型能夠?qū)崿F(xiàn)文檔從高維的原始特征(單詞)到低維的抽象特征(主題)的降維,這一特性可以用來解決處方數(shù)據(jù)高維稀疏的問題。使用主題模型對處方數(shù)據(jù)進行降維,把高維稀疏的處方數(shù)據(jù)轉(zhuǎn)變成其他方法容易處理的形式之后,就可以使用常用的異常檢測方法,同時與PCA 等方法不同,主題模型中的主題是具有語義可以解釋的,在處方數(shù)據(jù)訓練出來的主題模型中,主題特征為一類病癥所對應的診斷(用藥),在醫(yī)學上具有良好的可解釋性。
但是由于處方數(shù)據(jù)中診斷和用藥這兩類特征之間存在著關(guān)聯(lián)關(guān)系,無法直接使用LDA 主題模型,而如果對診斷和用藥都使用一個LDA 模型來降維,就會丟失特征之間的對應關(guān)系。為了在保留處方中診斷和用藥之間的對應關(guān)系的同時對處方數(shù)據(jù)進行降維,本文首先提出了一個改進的主題模型——多視圖主題模型(MV-LDA),而后給出了基于該模型的異常檢測算法。
根據(jù)前文的描述,由于處方數(shù)據(jù)的診斷與用藥這兩類特征之間存在著需要保留的關(guān)聯(lián)關(guān)系,因此無法直接使用LDA 主題模型。但同時注意到,每個實例(處方)由診斷和用藥這兩類特征來描述,而相同種類的特征之間依然滿足詞袋假設(shè),并且不同種類的特征可以看成是從不同的視圖對實例的描述。針對這些情況,本文提出了多視圖主題模型(MVLDA),以解決描述同一實例的不同種類的特征的建模問題。在MV-LDA 中,將不同種類的特征看作描述同一實例的多個視圖,不同種類的特征通過描述的相同實例形成對應關(guān)系。
3.1.1 MV-LDA 模型
為了保持主題模型特征抽象能力的同時給出多類特征間的關(guān)聯(lián)關(guān)系,本文將對LDA 主題模型進行特征視圖的擴充:LDA 主題模型中每個主題所關(guān)聯(lián)的特征屬于同一類別,特征間可相互交換,可以看作只包含一個視圖;對于有多種特征描述的實例,可以把這些特征看作從不同的視圖對實例進行了描述,并通過它們所描述的實例進行關(guān)聯(lián)。
假設(shè)對A、B這兩種特征進行建模,則每個實例都視為從A、B兩個視圖來進行描述,其MV-LDA 模型的概率圖表示如圖1 所示。
Fig.1 MV-LDA probability graph model圖1 MV-LDA 概率圖模型
與LDA 主題模型一樣,圖1 中α為主題分布的超參數(shù),β為主題下詞語分布的超參數(shù),θ表示每個實例的主題分布。不同的地方在于,由于將不同種類的特征視為從不同視圖對實例的刻畫,每個主題也由多個視圖來描述,因此不同的視圖有著不同的主題特征分布?A與?B。在不同視圖中,主題分配變量z,產(chǎn)生的特征x,以及超參數(shù)β均不同,而不同視圖中的特征x也因為由相同的實例主題分布θ產(chǎn)生而產(chǎn)生了對應關(guān)系。
如概率圖中所描述的,多視圖LDA 的概率生成過程見過程1。
過程1MV-LDA 生成過程
(1)對于每個主題:
①從以βA為參數(shù)的Dirichlet 分布中抽樣一個特征的分布?A~Dirichlet(βA),重復K次。
②從以βB為參數(shù)的Dirichlet 分布中抽樣一個特征的分布?B~Dirichlet(βB),重復K次。
(2)對于每一個實例:
①從以α為參數(shù)的Dirichlet 分布中抽樣一個主題分布θ~Dirichlet(α),重復D次。
②對于實例中的每個A類特征:
從該實例主題分布θ中抽樣一個主題Zd,n~Mult(θ)。
基于該特征所屬主題Zd,n從多項分布?A中抽樣一個特征值。在實例d中重復次,得到d實例的所有A類特征。
③對于實例中的每個B類特征重復步驟②,將主題特征分布替換為對應的?B,得到實例d的所有B類特征。
由以上生成過程可知,每個主題都有著多個主題特征分布,每個主題特征分布都屬于不同的視圖。此外,同一個實例中的A、B兩類特征由同一個參數(shù)為θ的多項分布抽樣而來,具有相同的“潛在語義”。以此為關(guān)聯(lián),就能把兩類特征的主題-特征分布對應起來。具體而言,如果把處方看成一個實例,診斷看成A類特征,用藥看成B類特征,那么通過MVLDA 就可以得到診斷與用藥之間的匹配關(guān)系。
這里僅以兩種特征為例說明了MV-LDA 模型,實際上該模型可以擴展到任意多個視圖,這樣的話就可以得到這n種特征之間的匹配關(guān)系。
3.1.2 模型求解
與LDA 模型一樣,本文使用吉布斯采樣方法對MV-LDA 模型進行求解,計算生成過程的參數(shù)。求解過程中,首先對所有的特征隨機分配一個主題;而后根據(jù)當前狀態(tài),對每一個實例的每一個特征所對應的主題進行采樣并更新。具體的將在下面給出采樣時的概率公式。
對于有兩種特征的MV-LDA 模型而言,假設(shè)對A類特征進行抽樣,則在前一時刻的狀態(tài)已知的情況下,為實例m中A類特征xa分配主題k的概率為:
其中,C表示矩陣,對于第一個因子,VA是A類特征類別數(shù)量,代表所有實例中xA分配給主題k的計數(shù),代表所有分配給主題k的任意A類特征的計數(shù),βA是Dirichlet先驗。左邊的式子代表所有分配了主題k的A類特征中特征xa所占的比例,也就是。
對于第二個因子,與上相似,K表示主題數(shù)目,表示實例m中的所有特征(包括AB兩類)中分配了主題K的數(shù)目,表示實例m中的所有特征的數(shù)目,α是Dirichlet 先驗。右式就代表了實例m中分配了主題k的特征占總特征的比例,也即是。
3.1.3 數(shù)據(jù)推斷
在MV-LDA 模型計算完畢后,其可以對新數(shù)據(jù)進行推斷,計算新數(shù)據(jù)的實例主題分布。在使用模型推斷時,MV-LDA 中的每個視圖都能看成一個獨立的LDA 模型,可以單獨使用這一類特征來進行推斷。舉例來說,在某個數(shù)據(jù)集上已經(jīng)訓練了一個圖1中的包含A、B兩類特征的模型,此時可以把A特征的主題-特征分布?A單獨用來對只包含A特征的實例進行推斷,估計其A類特征在該模型上的實例-主題分布,推斷公式如下:
推斷過程只使用了A類特征相關(guān)的主題特征分布和A類特征的技術(shù),因此可以從多個視圖分別進行推斷,得到多個實例-主題分布。由于這些分布是描述同一個實例的,故而這些分布應該非常接近。具體的,對于需要進行異常檢測的處方,使用已有的模型分別對診斷和用藥進行推斷,得出兩個處方的實例主題分布,而后再比較這兩個分布的相似度,來判斷處方是否正常。
由于多視圖主題模型能夠在對處方數(shù)據(jù)進行降維的同時保留診斷和用藥之間的對應關(guān)系,本文提出了一種基于多視圖主題模型的異常處方檢測方法(MV-LDA based abnormal detection,MBAD)。該方法的主要思路是利用多視圖主題模型對處方數(shù)據(jù)中的診斷和用藥兩類特征進行建模得到其對應關(guān)系,之后利用MV-LDA 對新數(shù)據(jù)的推斷能力分別從診斷和用藥兩個視圖推斷處方的實例主題分布,通過比較這些分布的相似度發(fā)現(xiàn)測試數(shù)據(jù)中不符合對應關(guān)系的數(shù)據(jù),并將其作為潛在的異常記錄。
設(shè)診斷特征為A,用藥特征為B,進行異常處方檢測的方法主要包含了以下三個步驟:
(1)模型訓練:利用MV-LDA 在訓練數(shù)據(jù)上抽取代表xA與xB對應關(guān)系的主題。
(2)數(shù)據(jù)推斷:使用步驟(1)學習得到的主題-特征分布去推斷測試數(shù)據(jù)的實例-主題分布。具體的,需要分別使用A、B兩類特征推斷處方的實例-主題分布。
(3)異常值計算:選取合適的度量,計算A類特征的實例-主題分布和B類的實例-主題分布是否匹配,越不匹配則異常值越高。
3.2.1 模型訓練
處方數(shù)據(jù)一般都以結(jié)構(gòu)化數(shù)據(jù)的形式保存,例如保存在關(guān)系數(shù)據(jù)庫中。本文處理了兩個數(shù)據(jù)集:一個是醫(yī)療保險數(shù)據(jù),醫(yī)療保險數(shù)據(jù)主要由病例數(shù)據(jù)組成,每條病例數(shù)據(jù)可能由一條或者多條處方組成,如表1 所示,包含記錄的ID、診斷、用藥三部分;另一個是來自合理用藥監(jiān)測網(wǎng)的處方數(shù)據(jù),與保險數(shù)據(jù)不同的是其每條記錄保存的是單個處方的信息。
Table 1 Medical prescription data sample表1 醫(yī)療處方數(shù)據(jù)樣例
在利用MV-LDA 抽取處方中診斷和用藥之間的對應關(guān)系前,需要先將數(shù)據(jù)轉(zhuǎn)變成適合處理的格式。對于診斷特征,本文將每條記錄中的診斷轉(zhuǎn)換成由國際疾病分類-10 編碼(international classification of diseases-10,ICD-10)[14]的特征集合。而用藥信息中包括藥品編碼及對應費用,這里將費用看成是藥品的用量,將其作為特征集合中的詞頻。
對于某個藥品m,設(shè)其在某個診斷記錄中的費用為cm,將其正規(guī)化為一個整型數(shù)值nm,公式如下:
式中,Median(m)函數(shù)表示藥品m的費用在數(shù)據(jù)集中的中位數(shù)。Round()是四舍五入取整函數(shù),λ表示一個乘數(shù)因子,人工確定用來使藥物數(shù)量(nm)的取值不小于1。經(jīng)過這樣變換之后,能夠得到用于訓練MVLDA 模型的輸入處方數(shù)據(jù)集。
處方數(shù)據(jù)集中每條數(shù)據(jù)都包含一個診斷特征集合和一個用藥特征集合,將該數(shù)據(jù)集作為訓練數(shù)據(jù)作為MV-LDA 的輸入,即可得到保留了診斷和用藥之間關(guān)聯(lián)關(guān)系的K個主題。每個主題包含兩個主題-特征分布,分別對應該主題在用藥特征上的多項分布以及在診斷特征上的多項分布。圖2 展示了從醫(yī)療保險數(shù)據(jù)中抽取的一個主題(主題1)的示例。依據(jù)主題-特征分布中概率值的高低,圖中展示了三個與該主題最相關(guān)的藥品和ICD 編碼。藥品中排在第一位的卡托普利是一種廣泛應用的降壓類藥物;而診斷特征的第一位編碼i63則對應腦梗死疾病??梢娫撝黝}和高血壓引起的腦部血管疾病高度相關(guān)。由此可見,診斷特征和用藥特征的關(guān)聯(lián)關(guān)系通過主題得到了保留。主題個數(shù)K的選擇和數(shù)據(jù)集信息量的豐富程度相關(guān),將會通過后續(xù)的實驗說明如何選擇K值。
Fig.2 MV-LDA sample of topic 1圖2 MV-LDA 主題1 示例
3.2.2 數(shù)據(jù)推斷
在使用MV-LDA 進行異常檢測時有一個重要假設(shè),即絕大部分數(shù)據(jù)都是正常的?;谶@個假設(shè),使用全部的數(shù)據(jù)集進行模型訓練得到的主題分布受到異常數(shù)據(jù)的干擾不大,得到的不同特征之間的對應關(guān)系依然比較準確。
基于這個假設(shè),在模型訓練完成之后,本文要根據(jù)學得的主題模型對每一個測試實例進行檢驗,判斷其是否異常。即在學習完成后,要在相同的數(shù)據(jù)集上進行一次數(shù)據(jù)推斷來檢測原數(shù)據(jù)集中的異常。
在這個步驟,將分別單獨使用診斷數(shù)據(jù)和用藥數(shù)據(jù)來推斷出處方的實例-主題分布,而根據(jù)模型假設(shè),診斷和用藥是從不同的視圖對處方進行的相同描述,而這種對應關(guān)系體現(xiàn)在了主題中,如果處方正常,則從不同的視圖推導出來的實例-主題分布應該相近;反之,如果分布相差較大,則該處方很可能是個異常處方。
3.2.3 異常值計算
根據(jù)假設(shè),正常數(shù)據(jù)的用藥和診斷的對應關(guān)系符合絕大部分數(shù)據(jù)中診斷和用藥的對應關(guān)系,數(shù)據(jù)推斷步驟中通過診斷和用藥分別推斷得到的在各個主題上的分量的值應該較為相似。由于沒有系統(tǒng)性的研究表明哪種相似性度量適用于計算兩個多項分布的相似度,本文分別采用KL 散度(KL)、歐幾里德距離(EUC)、余弦相似度(COS)、皮爾遜相關(guān)性(PS)、向量點乘(DOT)進行了實驗。
(1)KL 散度(KL)。該度量廣泛應用于測量兩個概率分布的相似度。本文利用對稱的KL 散度來作為的相似性度量,值越大相似度越低:
其中:
(2)歐幾里德距離(EUC)。用于計算空間中的兩個點之間距離的最常用相似性度量。該值越大相似度越低。
(3)余弦相似度(COS)。該相似度根據(jù)兩個向量夾角的大小來確定相似度,而不考慮向量的長度:
(4)皮爾遜相關(guān)性(PS)。該度量往往用于度量兩組數(shù)據(jù)間的相關(guān)性。這里由于各個維度上分量之和為1,因此可以用相關(guān)性來度量其相似度。其相關(guān)性越高,則兩個向量的相似度越高。
其中,μ表示向量各個維度的均值,σ表示向量各個維度的方差。
(5)向量點乘(DOT)。和式(7)中的余弦相似度相比,向量點乘舍去了向量長度的歸一化分母,因此既考慮了向量的角度,又考慮了向量的長度。
除了這些距離度量方法之外,本文還將提出一種匹配方法來進行異常值的計算。
(6)主題匹配(topic mapping,TP)。在主題匹配方法中,將使用MV-LDA 中得到的主題-特征分布,為每個診斷和用藥分配一個或多個主題,而后將二者匹配起來。具體的,對每個診斷,先通過MV-LDA模型得到其出現(xiàn)在某個主題的概率,并將它出現(xiàn)概率比較高的主題標記出來;而后對每個藥品,找到其出現(xiàn)概率較高的主題,如果這些主題中沒有任何一個被標記出來,說明該藥品與之前的任何一個診斷都沒有對應,認為其為異常用藥,異常值加1。最后如果異常值的數(shù)目大于閾值,則認為該處方為異常。
后續(xù)的實驗驗證中,將分別采用上述幾種相似度度量的方法,衡量診斷和用藥所對應的主題分布間相似度的效果。由于在現(xiàn)實世界中,一般都缺乏標注好的異常處方數(shù)據(jù)訓練集,因此無法準確確定用以區(qū)分正常記錄和異常記錄的相似度“閾值”。在后續(xù)的實驗中,本文將計算數(shù)據(jù)中所有實例的主題分布相似度,并根據(jù)相似度由低到高對實例進行排序,取排名靠前的實例作為檢測得到的異常數(shù)據(jù)樣本來衡量方法的有效性。
本文在一個醫(yī)療保險數(shù)據(jù)集和一個處方數(shù)據(jù)集上進行了實驗。
實驗的真實醫(yī)保數(shù)據(jù)集包含處方信息,共有47 303個實例,每個實例包含診斷和用藥兩類特征。診斷特征包含1 652個不同的特征值(診斷編碼),用藥特征包含3 785個不同的特征值(藥品);每個實例平均只包含4.81種可見的診斷特征和34.43種可見的用藥特征,因此該數(shù)據(jù)集是一個典型的高維稀疏數(shù)據(jù)集。
處方數(shù)據(jù)由全國合理用藥檢測辦公室收集,該機構(gòu)受衛(wèi)生部委托成立,主要負責收集醫(yī)療相關(guān)數(shù)據(jù)。獲得的數(shù)據(jù)集包括從2016 年10 月到2016 年12月期間,該機構(gòu)收集到的所有醫(yī)院的上報數(shù)據(jù)。原始數(shù)據(jù)約1.3 億條,涉及處方約4 400 萬條,患者2 200萬人。共有用藥1.3 億個,診斷1.9 億個,平均每條處方對應的診斷只有5 個,用藥只有3 個,比醫(yī)保數(shù)據(jù)更加稀疏。此外,處方數(shù)據(jù)集中還有一個約1 萬條數(shù)據(jù)的人工標注出異常數(shù)據(jù)的測試集。
本文首先在醫(yī)保數(shù)據(jù)上對方法進行驗證。在保險數(shù)據(jù)上的驗證分為兩個步驟:首先,由于保險數(shù)據(jù)中缺乏標注數(shù)據(jù),本文利用人工擾動產(chǎn)生模擬的異常數(shù)據(jù),嘗試利用提出的方法檢測數(shù)據(jù)中的人工擾動,以此對方法進行定量分析。而后本文在處方數(shù)據(jù)集上進行了驗證,使用其測試集給出了該方法的準確率。
下面分別給出兩個實驗的結(jié)果。
針對不包含準確的可被標注的“異?!贬t(yī)保記錄的數(shù)據(jù)集,本文將通過人工擾動的方法在其中添加少量的“異常記錄”。具體的,在所有數(shù)據(jù)集中隨機選取1%的醫(yī)療保險記錄,固定每條記錄的診斷信息,同時將記錄的用藥信息重新進行隨機排列。經(jīng)過擾動后,該1%的保險記錄中每條記錄原先的用藥信息被隨機選擇的其他保險記錄中的用藥信息替代,因此可以看作是包含不匹配的診斷和用藥信息的異常記錄。
在添加擾動后的醫(yī)療保險數(shù)據(jù)集上,本文使用CAD 方法和本文所提出的方法進行了比較。對于CAD 方法,其核心在于在兩類特征之間訓練一個映射函數(shù)xA=f(xB),并且檢驗測試數(shù)據(jù)和該函數(shù)的偏離程度。本文采用一個單層的神經(jīng)網(wǎng)絡作為映射函數(shù)來訓練兩類特征間的關(guān)系。
為了衡量方法的效果,本文將所有測試數(shù)據(jù)按照異常檢測方法給出的異常值進行排序,并且利用準確率-召回率曲線的面積(area under the precisionrecall curve,AUPRC)來衡量方法效果。在衡量正負樣本非常不均勻的數(shù)據(jù)在某種分類方法下的效果時,AUPRC 的衡量準確性優(yōu)于一般使用的接收者操作特征曲線的面積(area under the receiver operating characteristic,AUROC)[15]。
由于醫(yī)療保險數(shù)據(jù)中兩類特征的維度較大,數(shù)據(jù)量較多,因此采用了較大的主題數(shù)量K值,在K=20,50,100 這三種情況下測試了各個方法的效果,結(jié)果用AUPRC 表示。具體結(jié)果見表2。
表2 中粗體部分是兩種方法中最優(yōu)的結(jié)果。從表中的實驗結(jié)果可以看到:首先,向量點乘在所有的相似性度量中給出了最好的結(jié)果;其次,本文方法的效果顯著優(yōu)于CAD 方法的效果,可見其更適用于高維稀疏的處方數(shù)據(jù)。
Table 2 Artificial disturbance data anomaly detection result表2 人工擾動數(shù)據(jù)異常檢測結(jié)果
來自合理用藥檢測網(wǎng)的處方數(shù)據(jù)有約4 000 萬條未標注的處方數(shù)據(jù),以及人工標注的1.5 萬條測試數(shù)據(jù),其中有3 000 余條數(shù)據(jù)被標記為異常數(shù)據(jù)。本文在處方數(shù)據(jù)集上進行了實驗2,首先使用未標注的處方數(shù)據(jù)訓練得到MV-LDA 模型,而后在測試集上使用提出的方法進行異常檢測,將異常檢測的結(jié)果與人工標注的結(jié)果相比對來評估方法的效果。
為此在這里使用了一個匹配的方法來計算異常值。比對了模型在主題數(shù)目為20、25、30 下取得的效果。首先比較模型檢出的異常值前100 的處方中異常處方的個數(shù),而后由于匹配的方法檢測的是是否有不匹配的藥物,因此將直接給出其檢測出的所有異常的準確率和召回率。檢測結(jié)果如表3 所示。
Table 3 Anomaly detection results of labeled prescription data表3 標注處方數(shù)據(jù)異常檢測結(jié)果
這里可以看到在25 個主題下,MBAD 檢測出了2 905 個異常處方,其中有37%的處方是被人工標記為異常的處方,占所有異常的32%。
而后觀察了25 個主題下取得的結(jié)果,如表4 所示。從表4 中可以看出,當異常值的閾值設(shè)為3 以上時,能取到比較高的準確度,而當異常值降低時,檢出的異常個數(shù)增加,但是準確率也急劇下降。也因此,通過設(shè)定一個異常值的閾值,MBAD 能夠準確地發(fā)現(xiàn)異常處方。
Table 4 Detailed results of model with 25 topics表4 25 個主題下檢測詳細結(jié)果
Table 5 Example of detected abnormal prescription表5 異常處方檢測實例
最后展示了模型檢出的異常值大于或等于所設(shè)定的異常閾值(本例中異常閾值設(shè)為3)的異常處方,如表5 所示。
綜上所述,本文所提方法能夠幫助專家更加高效地在海量的保險數(shù)據(jù)中發(fā)現(xiàn)潛在的異常記錄,并且能夠覆蓋多種異常情況。這些異常情況通常是由于用藥和診斷兩類高維特征之間的不匹配造成的。這種高維特征之間的多對多關(guān)系難以用傳統(tǒng)的數(shù)據(jù)挖掘方法進行刻畫。多視圖主題模型在對高維特征降維的同時保持了特征之間的對應關(guān)系,因此能夠有效地用于發(fā)現(xiàn)這類異常。
醫(yī)療異常處方檢測技術(shù)是結(jié)構(gòu)化醫(yī)療數(shù)據(jù)挖掘領(lǐng)域的重要部分,由于處方數(shù)據(jù)的規(guī)模巨大,人工檢測難度大,耗時久。此外,由于處方數(shù)據(jù)高維稀疏的特性,用于異常檢測的常用機器學習算法無法在處方數(shù)據(jù)上取得良好的效果。于是,本文提出了一種異常處方檢測方法,該方法基于主題模型,能夠檢測處方數(shù)據(jù)中的異常處方。由于主題模型有著降維的效果,可以將實例的表示向量從高維的特征空間降至低維的主題空間,因此可以“適應”高維稀疏的特性,使本文方法取得比傳統(tǒng)異常檢測方法更好的效果。本文的主要工作包括:
(1)提出了可以對特征之間存在著關(guān)聯(lián)關(guān)系的結(jié)構(gòu)化數(shù)據(jù)進行主題建模的多視圖主題模型。文中把不同種類的特征看成是描述同一個實例的不同視圖中的特征,基于機器學習中多視圖學習的思想,提出了MV-LDA 模型,并討論了其求解過程。多視圖主題模型能夠在抽取主題的同時準確刻畫不同類別特征間對應關(guān)系?;谀P捅A舻膶P(guān)系,本文提出了一個異常檢測算法。
(2)使用多視圖主題模型提出了一個異常處方檢測方法,并通過實驗證明了方法的有效性。本文基于MV-LDA 模型,實現(xiàn)了一個能夠從大量的處方中檢測異常處方的方法。通過驗證,該方法比其他方法的檢測準確率更高、更有效,且擴展性更好。由于MV-LDA 可以擴展到任意視圖并得到多種視圖之間的對應關(guān)系,本文方法可以更方便地檢測多種特征之間的匹配異常。
根據(jù)這一方法,本文實現(xiàn)了相應的工具,可以用于檢測醫(yī)療數(shù)據(jù)中的異常,并在真實數(shù)據(jù)集上進行了實驗。實踐表明本文工作在異常處方檢測中能取得較好的效果。
本文所介紹的異常檢測工具已經(jīng)能夠初步檢測不同類型特征之間的不匹配,但異常檢測的準確性仍有提高空間。未來將嘗試在本文提到的方法中融入領(lǐng)域知識,以求進一步提升準確率;此外,在模型中損失了實例之間的時序信息,如果將這個因素考慮進方法中,準確率可能會進一步提高。