劉少欽,唐 爽,趙俊峰,3+,王亞沙,3,卓 琳
1.北京大學 信息科學技術學院,北京100871
2.高可信軟件技術教育部重點實驗室,北京100871
3.北京大學(天津濱海)新一代信息技術研究院,天津300450
4.北京大學 公共衛生學院 流行病與衛生統計學系,北京100871
醫療處方是指醫師在診療活動中為患者開具的,作為患者用藥憑證的醫療文書。每張處方決定了患者在之后的診療活動中需要使用的藥物,這些藥物能夠對患者的治療產生極大影響。世界衛生組織在內羅畢提出,合理用藥即是“對癥開藥,供藥適時,價格低廉,配藥準確,以及劑量、用藥時間和間隔均正確無誤,藥品必須有效、質量合格、安全無害[1]?!逼渲刑岬降乃幏?、劑量、用藥時間等通常都由醫生寫在所開具的處方中。如果醫療處方出現錯誤,患者所使用的藥物就會有偏差,出現不合理用藥現象,影響患者的治療效果,甚至造成嚴重的后果。
在醫師所開具的大量處方中,難免會出現一些異常,這些異常會增加醫療機構和患者的負擔。調查顯示,異常處方中主要的問題有:藥物的濫用、過多給藥以及錯開藥。隨著醫療系統逐步實現全面數字化,醫療處方大多以電子形式開具,如果能夠實現一個自動檢測異常處方的方法,將提高患者就醫效率,對藥物濫用和過多開藥等社會問題都有著重要意義。
處方數據一般有三個主要特點:數據量巨大,數據高維稀疏,數據片段(時序)化。雖然已有大量機器學習和統計學方法用于解決異常檢測問題,如有監督的分類方法,使用傳統的分類方法如SVM(support vector machine)找出異常的記錄;使用無監督學習的異常點算法,通過計算離群點來找出異常記錄;部分使用高斯混合模型的統計學方法。這些方法在一定程度上解決了異常檢測問題,但也存在著一些不足,導致其在異常處方檢測中效果較差,比如有監督學習方法訓練時所需要的高質量人工標注數據集難以獲得;以異常點檢測為主的無監督學習方法和以高斯模型為主的統計學方法大都沒有考慮不同種類特征的關系,傾向于把一些不經常出現的特征歸為異常,例如認為一些很少出現的疾病是數據異常。但是,這類具有罕見特征的數據并非一般情況下人們所認為的異常數據,人們所認為的異常處方往往是疾病和用藥之間的匹配關系異于大多數數據的處方,比如無診斷依據的不合理用藥等。目前,也有一些相關研究試圖檢測兩類特征不匹配導致的異常,如上下文異常監測(contextual anomaly detection,CAD)[2-3]等,但是由于處方數據具有高維稀疏的特性,這些方法的應用效果不佳。
主題建模(topic modeling)技術[4]最初是從自然語言文本中抽取主題信息的一種技術,該技術假設主題是一組語義相關的詞語,而文章由多個主題混合而成。主題建模是一種無監督學習方法,它能對無標注數據進行分析。由于醫療處方數據具有高維稀疏的特性,在使用異常檢測的機器學習方法前通常需要對處方數據進行降維來提高方法的效果。主題模型能夠實現文檔從高維的原始特征(單詞)降到低維的抽象特征(主題),相比主元素分析(principal component analysis,PCA)[5]一類的降維方法,主題模型中低維的主題特征是具有語義可以解釋的,在處方數據訓練出來的主題模型中,主題特征即為一類病癥所對應的診斷(用藥),在醫學上具有良好的可解釋性。因此本文選擇主題建模方法來處理前面所提到的大量高維度、低質量、無標注的結構化數據。
本文提出了一種基于擴展主題模型的異常處方檢測方法,該方法是一個無監督學習方法,在不需要標注數據集的情況下,能夠檢測處方數據中的異常處方。在使用大量處方數據對該模型經過訓練后,模型可以自動檢測新處方是否異常。本文提出的方法首先通過擴展的主題模型——多視圖主題模型建模得到疾病和用藥之間的匹配關系,而后對于每個處方,判斷其診斷及用藥是否滿足匹配關系,進而判斷該處方是否正常。該方法不僅可以用于檢測異常處方,對于醫療領域中任意需要檢測是否正常匹配的數據,都可以使用該方法。
本文有兩個主要貢獻:
(1)多視圖主題模型(multi-view latent Dirichlet allocation,MV-LDA):由于樸素的LDA 模型無法發掘特征之間的聯系,本文提出了一種改進的主題模型MV-LDA,將不同種類的特征看成是從不同的視圖對實例進行的描述,因而共享同一個實例主題分布,從中得到不同特征之間的匹配關系。
(2)基于多視圖主題模型的異常處方檢測方法:基于多視圖主題模型,提出了一種異常處方檢測方法,在高維稀疏的處方數據上取得了良好的效果。與其他傳統方法(如CAD)相比,該方法準確率較高,在數據極其稀疏的時候依舊有著穩定的檢查結果。該方法不僅可以用于檢測異常處方,還可以用于檢測其他特征之間的匹配關系異常。與其他的醫療領域中異常檢測算法相比,本文方法的應用范圍更廣。
基于這種方法,本文實現了一個實現異常處方檢測的工具,并在真實數據集上進行了實驗,實驗結果表明,本文方法可以有效地發現異常處方。
現有醫療領域內的異常檢測算法可以分成有監督和無監督兩類[6]。在有監督的學習方法中,常用一些機器學習方法對人工標注的醫療數據進行分析。例如,Kumar等人在一個標記了足夠多異常實例并且質量良好的數據集中,運用SVM 有監督學習方法,檢測醫療索賠數據中的記錄錯誤[7]。Heller 等人[8]假設所有實例都屬于某個確定的類別,用SVM 方法從數據集中描繪出兩類實例的邊界,任何分錯邊的實例都被視為有異常信息的實例。但是由于獲取有監督學習所需要的高質量標記數據集非常困難,為此研究人員也提出了一系列的無監督的異常檢測方法。無監督方法一般是通過尋找離群點來實現的,通過把每個實例抽象成高維空間中的一個點,把遠離空間中其他點的數據點作為異常點。例如,Yamanishi等人[9]就是使用基于概率生成模型的無監督點異常監測(point anomaly detection,PAD)方法去檢測病理數據的異常;以及Breunig 等人提出的基于密度的局部異常因子(local outlier factor,LOF)方法[10]。但是在醫療領域中,這類離群點并不一定都是異常數據,因為醫療領域中存在著大量的發病率很低的罕見病,實際上,除去部分較為常見的病癥之外,大部分的疾病發病率都非常低,異常點檢測的方法無法處理這類問題。與罕見數據相比,更希望檢測那些特征之間不匹配的實例。上下文異常檢測(CAD)就是一種使用兩類特征之間的關系進行異常值檢測的無監督方法,CAD 把特征分為上下文特征(設為y)和指示特征(設為x),在假設絕大多數數據是正常的情況下,學習得出x到y的一個映射函數y=f(x)。對于某一條測試數據,如果其兩類特征不符合y=f(x),就認為這條數據是異常數據。CAD 方法在醫療中也有應用,例如Hu 等人[11]的解決方案是在指示特性和一組語境特征上使用回歸模型,然后使用剩余部分的測試實例,來確定異常值,從而在醫療記錄中識別異常用藥案例。但是由于醫療數據的高維稀疏性,CAD方法在醫療領域取得的效果并不好,且CAD 方法只能用于檢測兩類特征之間的不匹配。
主題模型是一類用于描述無結構文本組成方式的統計模型,在機器學習領域中,它被用來從一系列文本中挖掘潛在特征“主題”。通過使用主題這一抽象特征作為中間層,主題模型可以有效地對文本進行特征抽取,將文本的映射向量從高維度的詞空間,映射到低維度的主題空間,并且主題這一抽象概念是一組語義上相關的詞及其對應概率,描述的是語料的“中心思想”,具有良好的可解釋性。
主題模型相關的研究有很多,例如最初提出的Deerwester 等人提出潛在語義分析(latent semantic analysis,LSA)[12],利用矩陣求解的方法進行主題計算。Blei 等人[13]在2003 年提出的潛在狄利克雷分布方法(latent Dirichlet allocation,LDA),由于出眾的主題抽取效果以及易擴展的概率表示方式,也成為應用最廣泛的模型。
LDA 主題模型假設輸入數據是無結構的“詞袋”(詞的無序集合),由于處方數據為結構化數據,診斷和用藥之間存在著關聯關系,因此無法直接利用LDA 主題模型進行建模。需要針對性研究面向結構化數據的主題建模技術,使得主題模型能夠在對數據降維的同時,反映處方數據中的匹配關系。
LDA 主題模型能夠實現文檔從高維的原始特征(單詞)到低維的抽象特征(主題)的降維,這一特性可以用來解決處方數據高維稀疏的問題。使用主題模型對處方數據進行降維,把高維稀疏的處方數據轉變成其他方法容易處理的形式之后,就可以使用常用的異常檢測方法,同時與PCA 等方法不同,主題模型中的主題是具有語義可以解釋的,在處方數據訓練出來的主題模型中,主題特征為一類病癥所對應的診斷(用藥),在醫學上具有良好的可解釋性。
但是由于處方數據中診斷和用藥這兩類特征之間存在著關聯關系,無法直接使用LDA 主題模型,而如果對診斷和用藥都使用一個LDA 模型來降維,就會丟失特征之間的對應關系。為了在保留處方中診斷和用藥之間的對應關系的同時對處方數據進行降維,本文首先提出了一個改進的主題模型——多視圖主題模型(MV-LDA),而后給出了基于該模型的異常檢測算法。
根據前文的描述,由于處方數據的診斷與用藥這兩類特征之間存在著需要保留的關聯關系,因此無法直接使用LDA 主題模型。但同時注意到,每個實例(處方)由診斷和用藥這兩類特征來描述,而相同種類的特征之間依然滿足詞袋假設,并且不同種類的特征可以看成是從不同的視圖對實例的描述。針對這些情況,本文提出了多視圖主題模型(MVLDA),以解決描述同一實例的不同種類的特征的建模問題。在MV-LDA 中,將不同種類的特征看作描述同一實例的多個視圖,不同種類的特征通過描述的相同實例形成對應關系。
3.1.1 MV-LDA 模型
為了保持主題模型特征抽象能力的同時給出多類特征間的關聯關系,本文將對LDA 主題模型進行特征視圖的擴充:LDA 主題模型中每個主題所關聯的特征屬于同一類別,特征間可相互交換,可以看作只包含一個視圖;對于有多種特征描述的實例,可以把這些特征看作從不同的視圖對實例進行了描述,并通過它們所描述的實例進行關聯。
假設對A、B這兩種特征進行建模,則每個實例都視為從A、B兩個視圖來進行描述,其MV-LDA 模型的概率圖表示如圖1 所示。

Fig.1 MV-LDA probability graph model圖1 MV-LDA 概率圖模型
與LDA 主題模型一樣,圖1 中α為主題分布的超參數,β為主題下詞語分布的超參數,θ表示每個實例的主題分布。不同的地方在于,由于將不同種類的特征視為從不同視圖對實例的刻畫,每個主題也由多個視圖來描述,因此不同的視圖有著不同的主題特征分布?A與?B。在不同視圖中,主題分配變量z,產生的特征x,以及超參數β均不同,而不同視圖中的特征x也因為由相同的實例主題分布θ產生而產生了對應關系。
如概率圖中所描述的,多視圖LDA 的概率生成過程見過程1。
過程1MV-LDA 生成過程
(1)對于每個主題:
①從以βA為參數的Dirichlet 分布中抽樣一個特征的分布?A~Dirichlet(βA),重復K次。
②從以βB為參數的Dirichlet 分布中抽樣一個特征的分布?B~Dirichlet(βB),重復K次。
(2)對于每一個實例:
①從以α為參數的Dirichlet 分布中抽樣一個主題分布θ~Dirichlet(α),重復D次。
②對于實例中的每個A類特征:
從該實例主題分布θ中抽樣一個主題Zd,n~Mult(θ)。
基于該特征所屬主題Zd,n從多項分布?A中抽樣一個特征值。在實例d中重復次,得到d實例的所有A類特征。
③對于實例中的每個B類特征重復步驟②,將主題特征分布替換為對應的?B,得到實例d的所有B類特征。
由以上生成過程可知,每個主題都有著多個主題特征分布,每個主題特征分布都屬于不同的視圖。此外,同一個實例中的A、B兩類特征由同一個參數為θ的多項分布抽樣而來,具有相同的“潛在語義”。以此為關聯,就能把兩類特征的主題-特征分布對應起來。具體而言,如果把處方看成一個實例,診斷看成A類特征,用藥看成B類特征,那么通過MVLDA 就可以得到診斷與用藥之間的匹配關系。
這里僅以兩種特征為例說明了MV-LDA 模型,實際上該模型可以擴展到任意多個視圖,這樣的話就可以得到這n種特征之間的匹配關系。
3.1.2 模型求解
與LDA 模型一樣,本文使用吉布斯采樣方法對MV-LDA 模型進行求解,計算生成過程的參數。求解過程中,首先對所有的特征隨機分配一個主題;而后根據當前狀態,對每一個實例的每一個特征所對應的主題進行采樣并更新。具體的將在下面給出采樣時的概率公式。
對于有兩種特征的MV-LDA 模型而言,假設對A類特征進行抽樣,則在前一時刻的狀態已知的情況下,為實例m中A類特征xa分配主題k的概率為:

其中,C表示矩陣,對于第一個因子,VA是A類特征類別數量,代表所有實例中xA分配給主題k的計數,代表所有分配給主題k的任意A類特征的計數,βA是Dirichlet先驗。左邊的式子代表所有分配了主題k的A類特征中特征xa所占的比例,也就是。
對于第二個因子,與上相似,K表示主題數目,表示實例m中的所有特征(包括AB兩類)中分配了主題K的數目,表示實例m中的所有特征的數目,α是Dirichlet 先驗。右式就代表了實例m中分配了主題k的特征占總特征的比例,也即是。
3.1.3 數據推斷
在MV-LDA 模型計算完畢后,其可以對新數據進行推斷,計算新數據的實例主題分布。在使用模型推斷時,MV-LDA 中的每個視圖都能看成一個獨立的LDA 模型,可以單獨使用這一類特征來進行推斷。舉例來說,在某個數據集上已經訓練了一個圖1中的包含A、B兩類特征的模型,此時可以把A特征的主題-特征分布?A單獨用來對只包含A特征的實例進行推斷,估計其A類特征在該模型上的實例-主題分布,推斷公式如下:

推斷過程只使用了A類特征相關的主題特征分布和A類特征的技術,因此可以從多個視圖分別進行推斷,得到多個實例-主題分布。由于這些分布是描述同一個實例的,故而這些分布應該非常接近。具體的,對于需要進行異常檢測的處方,使用已有的模型分別對診斷和用藥進行推斷,得出兩個處方的實例主題分布,而后再比較這兩個分布的相似度,來判斷處方是否正常。
由于多視圖主題模型能夠在對處方數據進行降維的同時保留診斷和用藥之間的對應關系,本文提出了一種基于多視圖主題模型的異常處方檢測方法(MV-LDA based abnormal detection,MBAD)。該方法的主要思路是利用多視圖主題模型對處方數據中的診斷和用藥兩類特征進行建模得到其對應關系,之后利用MV-LDA 對新數據的推斷能力分別從診斷和用藥兩個視圖推斷處方的實例主題分布,通過比較這些分布的相似度發現測試數據中不符合對應關系的數據,并將其作為潛在的異常記錄。
設診斷特征為A,用藥特征為B,進行異常處方檢測的方法主要包含了以下三個步驟:
(1)模型訓練:利用MV-LDA 在訓練數據上抽取代表xA與xB對應關系的主題。
(2)數據推斷:使用步驟(1)學習得到的主題-特征分布去推斷測試數據的實例-主題分布。具體的,需要分別使用A、B兩類特征推斷處方的實例-主題分布。
(3)異常值計算:選取合適的度量,計算A類特征的實例-主題分布和B類的實例-主題分布是否匹配,越不匹配則異常值越高。
3.2.1 模型訓練
處方數據一般都以結構化數據的形式保存,例如保存在關系數據庫中。本文處理了兩個數據集:一個是醫療保險數據,醫療保險數據主要由病例數據組成,每條病例數據可能由一條或者多條處方組成,如表1 所示,包含記錄的ID、診斷、用藥三部分;另一個是來自合理用藥監測網的處方數據,與保險數據不同的是其每條記錄保存的是單個處方的信息。

Table 1 Medical prescription data sample表1 醫療處方數據樣例
在利用MV-LDA 抽取處方中診斷和用藥之間的對應關系前,需要先將數據轉變成適合處理的格式。對于診斷特征,本文將每條記錄中的診斷轉換成由國際疾病分類-10 編碼(international classification of diseases-10,ICD-10)[14]的特征集合。而用藥信息中包括藥品編碼及對應費用,這里將費用看成是藥品的用量,將其作為特征集合中的詞頻。
對于某個藥品m,設其在某個診斷記錄中的費用為cm,將其正規化為一個整型數值nm,公式如下:

式中,Median(m)函數表示藥品m的費用在數據集中的中位數。Round()是四舍五入取整函數,λ表示一個乘數因子,人工確定用來使藥物數量(nm)的取值不小于1。經過這樣變換之后,能夠得到用于訓練MVLDA 模型的輸入處方數據集。
處方數據集中每條數據都包含一個診斷特征集合和一個用藥特征集合,將該數據集作為訓練數據作為MV-LDA 的輸入,即可得到保留了診斷和用藥之間關聯關系的K個主題。每個主題包含兩個主題-特征分布,分別對應該主題在用藥特征上的多項分布以及在診斷特征上的多項分布。圖2 展示了從醫療保險數據中抽取的一個主題(主題1)的示例。依據主題-特征分布中概率值的高低,圖中展示了三個與該主題最相關的藥品和ICD 編碼。藥品中排在第一位的卡托普利是一種廣泛應用的降壓類藥物;而診斷特征的第一位編碼i63則對應腦梗死疾病??梢娫撝黝}和高血壓引起的腦部血管疾病高度相關。由此可見,診斷特征和用藥特征的關聯關系通過主題得到了保留。主題個數K的選擇和數據集信息量的豐富程度相關,將會通過后續的實驗說明如何選擇K值。

Fig.2 MV-LDA sample of topic 1圖2 MV-LDA 主題1 示例
3.2.2 數據推斷
在使用MV-LDA 進行異常檢測時有一個重要假設,即絕大部分數據都是正常的?;谶@個假設,使用全部的數據集進行模型訓練得到的主題分布受到異常數據的干擾不大,得到的不同特征之間的對應關系依然比較準確。
基于這個假設,在模型訓練完成之后,本文要根據學得的主題模型對每一個測試實例進行檢驗,判斷其是否異常。即在學習完成后,要在相同的數據集上進行一次數據推斷來檢測原數據集中的異常。
在這個步驟,將分別單獨使用診斷數據和用藥數據來推斷出處方的實例-主題分布,而根據模型假設,診斷和用藥是從不同的視圖對處方進行的相同描述,而這種對應關系體現在了主題中,如果處方正常,則從不同的視圖推導出來的實例-主題分布應該相近;反之,如果分布相差較大,則該處方很可能是個異常處方。
3.2.3 異常值計算
根據假設,正常數據的用藥和診斷的對應關系符合絕大部分數據中診斷和用藥的對應關系,數據推斷步驟中通過診斷和用藥分別推斷得到的在各個主題上的分量的值應該較為相似。由于沒有系統性的研究表明哪種相似性度量適用于計算兩個多項分布的相似度,本文分別采用KL 散度(KL)、歐幾里德距離(EUC)、余弦相似度(COS)、皮爾遜相關性(PS)、向量點乘(DOT)進行了實驗。
(1)KL 散度(KL)。該度量廣泛應用于測量兩個概率分布的相似度。本文利用對稱的KL 散度來作為的相似性度量,值越大相似度越低:

其中:

(2)歐幾里德距離(EUC)。用于計算空間中的兩個點之間距離的最常用相似性度量。該值越大相似度越低。

(3)余弦相似度(COS)。該相似度根據兩個向量夾角的大小來確定相似度,而不考慮向量的長度:

(4)皮爾遜相關性(PS)。該度量往往用于度量兩組數據間的相關性。這里由于各個維度上分量之和為1,因此可以用相關性來度量其相似度。其相關性越高,則兩個向量的相似度越高。

其中,μ表示向量各個維度的均值,σ表示向量各個維度的方差。
(5)向量點乘(DOT)。和式(7)中的余弦相似度相比,向量點乘舍去了向量長度的歸一化分母,因此既考慮了向量的角度,又考慮了向量的長度。

除了這些距離度量方法之外,本文還將提出一種匹配方法來進行異常值的計算。
(6)主題匹配(topic mapping,TP)。在主題匹配方法中,將使用MV-LDA 中得到的主題-特征分布,為每個診斷和用藥分配一個或多個主題,而后將二者匹配起來。具體的,對每個診斷,先通過MV-LDA模型得到其出現在某個主題的概率,并將它出現概率比較高的主題標記出來;而后對每個藥品,找到其出現概率較高的主題,如果這些主題中沒有任何一個被標記出來,說明該藥品與之前的任何一個診斷都沒有對應,認為其為異常用藥,異常值加1。最后如果異常值的數目大于閾值,則認為該處方為異常。
后續的實驗驗證中,將分別采用上述幾種相似度度量的方法,衡量診斷和用藥所對應的主題分布間相似度的效果。由于在現實世界中,一般都缺乏標注好的異常處方數據訓練集,因此無法準確確定用以區分正常記錄和異常記錄的相似度“閾值”。在后續的實驗中,本文將計算數據中所有實例的主題分布相似度,并根據相似度由低到高對實例進行排序,取排名靠前的實例作為檢測得到的異常數據樣本來衡量方法的有效性。
本文在一個醫療保險數據集和一個處方數據集上進行了實驗。
實驗的真實醫保數據集包含處方信息,共有47 303個實例,每個實例包含診斷和用藥兩類特征。診斷特征包含1 652個不同的特征值(診斷編碼),用藥特征包含3 785個不同的特征值(藥品);每個實例平均只包含4.81種可見的診斷特征和34.43種可見的用藥特征,因此該數據集是一個典型的高維稀疏數據集。
處方數據由全國合理用藥檢測辦公室收集,該機構受衛生部委托成立,主要負責收集醫療相關數據。獲得的數據集包括從2016 年10 月到2016 年12月期間,該機構收集到的所有醫院的上報數據。原始數據約1.3 億條,涉及處方約4 400 萬條,患者2 200萬人。共有用藥1.3 億個,診斷1.9 億個,平均每條處方對應的診斷只有5 個,用藥只有3 個,比醫保數據更加稀疏。此外,處方數據集中還有一個約1 萬條數據的人工標注出異常數據的測試集。
本文首先在醫保數據上對方法進行驗證。在保險數據上的驗證分為兩個步驟:首先,由于保險數據中缺乏標注數據,本文利用人工擾動產生模擬的異常數據,嘗試利用提出的方法檢測數據中的人工擾動,以此對方法進行定量分析。而后本文在處方數據集上進行了驗證,使用其測試集給出了該方法的準確率。
下面分別給出兩個實驗的結果。
針對不包含準確的可被標注的“異常”醫保記錄的數據集,本文將通過人工擾動的方法在其中添加少量的“異常記錄”。具體的,在所有數據集中隨機選取1%的醫療保險記錄,固定每條記錄的診斷信息,同時將記錄的用藥信息重新進行隨機排列。經過擾動后,該1%的保險記錄中每條記錄原先的用藥信息被隨機選擇的其他保險記錄中的用藥信息替代,因此可以看作是包含不匹配的診斷和用藥信息的異常記錄。
在添加擾動后的醫療保險數據集上,本文使用CAD 方法和本文所提出的方法進行了比較。對于CAD 方法,其核心在于在兩類特征之間訓練一個映射函數xA=f(xB),并且檢驗測試數據和該函數的偏離程度。本文采用一個單層的神經網絡作為映射函數來訓練兩類特征間的關系。
為了衡量方法的效果,本文將所有測試數據按照異常檢測方法給出的異常值進行排序,并且利用準確率-召回率曲線的面積(area under the precisionrecall curve,AUPRC)來衡量方法效果。在衡量正負樣本非常不均勻的數據在某種分類方法下的效果時,AUPRC 的衡量準確性優于一般使用的接收者操作特征曲線的面積(area under the receiver operating characteristic,AUROC)[15]。
由于醫療保險數據中兩類特征的維度較大,數據量較多,因此采用了較大的主題數量K值,在K=20,50,100 這三種情況下測試了各個方法的效果,結果用AUPRC 表示。具體結果見表2。
表2 中粗體部分是兩種方法中最優的結果。從表中的實驗結果可以看到:首先,向量點乘在所有的相似性度量中給出了最好的結果;其次,本文方法的效果顯著優于CAD 方法的效果,可見其更適用于高維稀疏的處方數據。

Table 2 Artificial disturbance data anomaly detection result表2 人工擾動數據異常檢測結果
來自合理用藥檢測網的處方數據有約4 000 萬條未標注的處方數據,以及人工標注的1.5 萬條測試數據,其中有3 000 余條數據被標記為異常數據。本文在處方數據集上進行了實驗2,首先使用未標注的處方數據訓練得到MV-LDA 模型,而后在測試集上使用提出的方法進行異常檢測,將異常檢測的結果與人工標注的結果相比對來評估方法的效果。
為此在這里使用了一個匹配的方法來計算異常值。比對了模型在主題數目為20、25、30 下取得的效果。首先比較模型檢出的異常值前100 的處方中異常處方的個數,而后由于匹配的方法檢測的是是否有不匹配的藥物,因此將直接給出其檢測出的所有異常的準確率和召回率。檢測結果如表3 所示。

Table 3 Anomaly detection results of labeled prescription data表3 標注處方數據異常檢測結果
這里可以看到在25 個主題下,MBAD 檢測出了2 905 個異常處方,其中有37%的處方是被人工標記為異常的處方,占所有異常的32%。
而后觀察了25 個主題下取得的結果,如表4 所示。從表4 中可以看出,當異常值的閾值設為3 以上時,能取到比較高的準確度,而當異常值降低時,檢出的異常個數增加,但是準確率也急劇下降。也因此,通過設定一個異常值的閾值,MBAD 能夠準確地發現異常處方。

Table 4 Detailed results of model with 25 topics表4 25 個主題下檢測詳細結果

Table 5 Example of detected abnormal prescription表5 異常處方檢測實例
最后展示了模型檢出的異常值大于或等于所設定的異常閾值(本例中異常閾值設為3)的異常處方,如表5 所示。
綜上所述,本文所提方法能夠幫助專家更加高效地在海量的保險數據中發現潛在的異常記錄,并且能夠覆蓋多種異常情況。這些異常情況通常是由于用藥和診斷兩類高維特征之間的不匹配造成的。這種高維特征之間的多對多關系難以用傳統的數據挖掘方法進行刻畫。多視圖主題模型在對高維特征降維的同時保持了特征之間的對應關系,因此能夠有效地用于發現這類異常。
醫療異常處方檢測技術是結構化醫療數據挖掘領域的重要部分,由于處方數據的規模巨大,人工檢測難度大,耗時久。此外,由于處方數據高維稀疏的特性,用于異常檢測的常用機器學習算法無法在處方數據上取得良好的效果。于是,本文提出了一種異常處方檢測方法,該方法基于主題模型,能夠檢測處方數據中的異常處方。由于主題模型有著降維的效果,可以將實例的表示向量從高維的特征空間降至低維的主題空間,因此可以“適應”高維稀疏的特性,使本文方法取得比傳統異常檢測方法更好的效果。本文的主要工作包括:
(1)提出了可以對特征之間存在著關聯關系的結構化數據進行主題建模的多視圖主題模型。文中把不同種類的特征看成是描述同一個實例的不同視圖中的特征,基于機器學習中多視圖學習的思想,提出了MV-LDA 模型,并討論了其求解過程。多視圖主題模型能夠在抽取主題的同時準確刻畫不同類別特征間對應關系?;谀P捅A舻膶P系,本文提出了一個異常檢測算法。
(2)使用多視圖主題模型提出了一個異常處方檢測方法,并通過實驗證明了方法的有效性。本文基于MV-LDA 模型,實現了一個能夠從大量的處方中檢測異常處方的方法。通過驗證,該方法比其他方法的檢測準確率更高、更有效,且擴展性更好。由于MV-LDA 可以擴展到任意視圖并得到多種視圖之間的對應關系,本文方法可以更方便地檢測多種特征之間的匹配異常。
根據這一方法,本文實現了相應的工具,可以用于檢測醫療數據中的異常,并在真實數據集上進行了實驗。實踐表明本文工作在異常處方檢測中能取得較好的效果。
本文所介紹的異常檢測工具已經能夠初步檢測不同類型特征之間的不匹配,但異常檢測的準確性仍有提高空間。未來將嘗試在本文提到的方法中融入領域知識,以求進一步提升準確率;此外,在模型中損失了實例之間的時序信息,如果將這個因素考慮進方法中,準確率可能會進一步提高。