魏江南,皋軍,熱甫凱提
(1.江蘇科技大學計算機學院,江蘇鎮(zhèn)江 212003;2.鹽城工學院信息化建設與管理辦公室,江蘇鹽城 221051;3.喀什地區(qū)第一人民醫(yī)院網絡信息中心,新疆喀什 844000)
以往在處理不良事件時,醫(yī)護人員完全根據自己的經驗作出處理決定,這種做法既不嚴謹也不方便,而且很容易產生醫(yī)療糾紛。為了提高處理結果的準確性和工作效率,本文對醫(yī)院長久以來積累的不良事件數(shù)據集進行采集訓練,為醫(yī)護人員從眾多的不良事件中推薦最合適的處理方法。文獻[1]-[5]分別提出基于貝葉斯概率模型的協(xié)同過濾推薦預測方法、基于時間序列的協(xié)同過濾個性化推薦算法、使用改進的LDA用戶興趣模型用于個性化推薦、引入推薦列表相似性將兩個推薦列表相結合生成最終推薦集的方法、利用局部網絡拓撲結構組合模型提升推薦集的準確度。這些算法雖然都提升了推薦效果,但是都沒有考慮數(shù)據語義信息之間的關系。知識圖譜是一種大規(guī)模的語義網絡,統(tǒng)一結構化的表現(xiàn)形式,機器可讀,已引起人們的廣泛關注。文獻[6]—文獻[10]分別提出:通過知識圖譜表示學習,將語義信息融入協(xié)同過濾算法;將結構化知識的低緯向量表示、文本知識特征、圖片知識特征這3類特征融合到協(xié)同集成學習框架中,從而實現(xiàn)個性化推薦;將知識圖譜自然地納入推薦系統(tǒng)端到端框架的Ripple Net算法;將知識圖譜實體嵌入與神經網絡相結合的算法,將物品的語義表示和知識表示融合形成新的embedding表示,以進行用戶物品推薦;將物品的外部附加數(shù)據和用戶偏好數(shù)據融入知識圖譜,提取實體與關系的語義,將結果與協(xié)同過濾推薦結果相融合。以上算法雖然將知識圖譜引入推薦系統(tǒng)中,但由于醫(yī)療不良事件數(shù)據有自己專門的業(yè)務邏輯和評價標準,使用這些算法給出的推薦結果與傳統(tǒng)方法相比正確率提升都不超過20%。
為了進一步提升不良事件處理推薦結果的準確率,本文采用知識圖譜特征學習與協(xié)同過濾算法相融合的方式,提出了醫(yī)療不良事件推薦算法MAE_CFH。首先使用知識圖譜自訓練算法得到病人基本信息的語義表示,使用余弦相似性算法獲得病人的語義近鄰;然后運用協(xié)同過濾算法獲取具有相似不良事件病人的矩陣;再將兩種算法的結果融合,兩種結果集中相似度最高的結果形成一個結果集作為最后推薦結果。實驗結果表明,該算法對推薦效果的改善較為明顯,引入知識圖譜也使得推薦結果更具可解釋性。
協(xié)同過濾算法是最早誕生的推薦算法之一,同時也是被使用最多的推薦算法,協(xié)同過濾推薦算法主要分為兩種:一種是基于用戶的推薦,對比其它用戶喜歡過的物品,如果與當前用戶喜歡的相似就推薦給他;另一種是基于物品的推薦,從眾多物品中找出與用戶喜歡物品相似度較高的物品并將它們推薦給用戶。
在醫(yī)療不良事件表中有“事件基本信息”如圖1所示??梢阅7禄谟脩舻膮f(xié)同過濾算法,將其中的信息比喻成不同的物品,如病人A的事件類別是“輸液—外周靜脈”,病人B的事件類別也是“輸液—外周靜脈”,說明兩個人是相似的,因此將病人A的處理方法推薦給病人B。本文使用皮爾遜相關系數(shù)計算出不良事件之間的相似度。
Fig.1 Event basic information圖1 事件基本信息
相較于其他輔助信息,知識圖譜的最大優(yōu)勢是讓推薦結果具有更高的精準性和可解釋性。知識圖譜在推薦算法中的應用主要有兩種:一種是以LibFM為代表的Embedding算法,另一種是以Meta Graph、PER為代表的Path算法。Embedding-based算法一般直接使用知識圖譜信息以改善item和user的表示。該算法有基于翻譯距離模型和語義匹配模型兩類。翻譯距離模型包括:TransE、TransH、TransR等,語義匹配模型包括RESCAL、Dist-Mult、HolE等。Path方法的基本思想是通過發(fā)現(xiàn)連接兩個實體的一組關系路徑預測實體間可能存在的某種特定關系,進而改善推薦效果。本算法使用的數(shù)據集為某市三甲醫(yī)院提供的不良事件數(shù)據集,因其可能存在一個病人有多個不良事件或者單個不良事件對應多個病人的問題,因此采用翻譯距離模型TransH最為妥當。
若只使用協(xié)同過濾算法處理數(shù)據集會導致推薦結果不夠精準且不具備可解釋性,這是醫(yī)療行業(yè)的大忌,很可能造成醫(yī)療糾紛。因此本文引入知識圖譜,將病人的基本語義信息融入推薦算法中,利用知識圖譜的自學習算法,將病人的語義信息變?yōu)榈途暤南蛄烤仃嚕倮孟嗨菩杂嬎惴椒ㄓ嬎愠霾∪酥g的相似程度,最后形成病人的相似性矩陣。使用協(xié)同過濾的學習算法,根據不良事件基本信息評分矩陣,獲取病人相似性矩陣,最后將兩種結果以低位換高位的方式進行融合。算法流程如圖2所示。
Fig.2 Algorithm flow圖2 算法流程
基于用戶的協(xié)同過濾算法,是以用戶的評分矩陣為基礎,將“事件基本信息”中的各種事件類別假設成物品,與對應的類別信息越相近的分數(shù)越高反之分數(shù)越低,取值范圍是0~5,如果沒有對應的事件類別就沒有評分,如圖3所示。
Fig.3 Event category information圖3 事件類別信息
根據打分情況計算出待處理病人與其它病人的相似度,同時從其中選擇相似度最高的5個病人作為推薦結果集。這里運用皮爾遜相關系數(shù)計算病人之間的相似度。
知識圖譜是指將不同種類的信息連接在一起從而得到的一個知識網絡,其具有3個主要特點:①由邊和節(jié)點組成;②每個節(jié)點都有真實對應的實體;③每條邊代表兩個實體之間的關系。以病人信息為例,如圖4所示。
Fig.4 A triplet圖4 三元組
在圖4中,張三與ZY010000XXXXXX通過“住院號”建立實體與實體之間的關系從而構成了一個三元組。三元組與三元組之間再互相關聯(lián)最后得到知識圖譜。因此,在病人信息知識圖譜中,距離越近的兩個病人越是相似。病人知識圖譜如圖5所示。
Fig.5 Patient knowledge graph圖5 病人知識圖譜
在知識圖譜訓練中,本文采用TransH的訓練方法,TransH算法是在TransE模型基礎上改進而來,TransE將所有的三元組實例(h,r,t)中的關系r看作從實體h到實體t的翻譯,通過不停地調整h、r和t,使h+r盡量與t相等,即h+r=t。TransH算法則是將每個向量h和向量t投影到超平面上,得到新的向量(h⊥和t⊥)。在該超平面上有一個關系(d_r),就可以模仿TransE的訓練方法訓練TransH。TransH算法相較于TransE算法在處理一對多或者多對一的情況時更加有效,如多個病人的責任人可能只有一個護士、一個科室可能有多個病人等。經過TransH算法訓練,可以得出病人的實體向量矩陣和關系向量矩陣,利用相似性公式將病人基本信息向量矩陣轉化為病人相似性矩陣,選出與待處理病人相似的其它5個人病人。這里選用余弦相似度公式進行計算。
可以看出,當A、B兩個病人向量的相似度越大,sim(A,B)的數(shù)值就越接近1,即知識圖譜中兩個病人的相似度越接近,反之,相似性越低。最終會計算出病人—病人相似性矩陣,通過矩陣可以得出病人的推薦集合。
本文采用高相似度替換低相似度的方式,即首先將知識圖譜推薦結果集及協(xié)同過濾推薦結果集按照相似度的大小倒序排序,然后用知識圖譜推薦集合中相似度最高的病人替換掉協(xié)同過濾推薦集合中相似度較低的病人。這樣便能保證最終的推薦結果集為最優(yōu)結果集。此外,若某個病人的協(xié)同過濾推薦集合為空,即該病人只有知識圖譜數(shù)據沒有評分數(shù)據,則將知識圖譜推薦結果集視作最優(yōu)結果集。
算法1:結果集融合算法
算法2:MAE_CFH算法
輸入:“事件基本信息”評分矩陣Rm*n,病人知識圖譜KG。
輸出:融合知識圖譜和協(xié)同過濾的病人推薦算法MAE_CFH。
Step1:根據圖3中事件類別信息的評分矩陣計算出與待處理病人的相似性矩陣,最后按照相似性從大到小的順序得到推薦集合。
Step2:利用TransH算法對知識圖譜KG進行訓練,最后得到實體向量集E和關系向量集R。
Step3:利用Step2得到的實體向量集E和關系向量集R計算病人信息的相似性,以此得到與待處理病人的相似性矩陣。最后按照相似性從大到小的順序得到推薦集合。
Step4:如果判斷出協(xié)同過濾算法的集合為空,直接將知識圖譜的推薦集返回,若不為空,則進行下一步。
Step5:輸入融合比例,分別計算出協(xié)同過濾推薦集占比x及知識圖譜推薦集占比y,然后分別取協(xié)同過濾推薦集中前x個成員及知識圖譜推薦集中的前y個數(shù)據。如果在取得過程中出現(xiàn)相同的病人,則順延取下一位。
本文選用的數(shù)據集為某市三甲醫(yī)院提供的不良事件上報數(shù)據,數(shù)據集中包含了知識圖譜三元組和“事件基本信息”評分數(shù)據(見圖3),知識圖譜和事件基本信息都有對應的病人ID號做關聯(lián)。本文將評分數(shù)據分為4份,其中3份作為訓練集,剩下的1份作為測試集。每次實驗結果運行4次取平均值。數(shù)據集信息如表1所示。
Table1 Adverse-Event-Report data set information表1 Adverse-Event-Report數(shù)據集信息
實驗 硬件處理器型號 為Inter(R)Core(TM)i5-1021U,內存為8G,軟件環(huán)境為Python 3.8。
本文采用3個評價指標對算法結果進行分析,即精確率、召回率、F1 score。
精確率表示預測正確的樣本概率。
TP
代表樣本的真實類別為真,最后預測出的結果也為真,FP
代表樣本的真實類別為假,最后預測得到的結果為真。召回率表示正確預測出真樣本占實際真樣本的概率。
FN
代表樣本的真實類別為真,最后預測得到的結果為假。F1對召回率和精確率進行了折中處理。
本算法需要討論推薦集的融合比例,將融合比例作為變量,展現(xiàn)在不同融合比例下的推薦效果。本文選取K值為10,定義相似病人數(shù)為20,融合比例從(協(xié)同過濾推薦:語義相似性推薦)=(0:10)到(協(xié)同過濾推薦:語義相似性推薦)=(10:0)分別做實驗。每一種融合比例都要運行10次再求出平均值。圖6為精確率、召回率和F1曲線。
Fig.6 Precision/Recall rate/F1 curve圖6 精確率、召回率和F1曲線
圖6的橫坐標為融合比例,縱坐標分別表示精確度、召回率、F1值。從圖6可以看出,隨著融合比例的不斷增大,精確率、召回率、F1值均有所提升,一直到融合比例為6∶4時效果達到最好。因此,在進行推薦時協(xié)同過濾占60%,病人信息相似性占40%時效果最好。
圖7-圖9分別是本文算法模型與LibFM、CKE、Ripple Net、DKN算法模型的召回率、精確度及F1值的比較。可以看出,本文提出的模型優(yōu)于其他模型。
Fig.7 Comparison of recall rates of each algorithm圖7 各算法召回率比較
Fig.8 Accuracy comparison of each algorithm圖8 各算法精確度比較
Fig.9 Comparison of F1value of each algorithm圖9 各算法F1值比較
本文提出了一種將醫(yī)療知識圖譜和協(xié)同過濾相結合的推薦算法,將協(xié)同過濾算法推薦出來的病人數(shù)據與知識圖譜推薦的病人數(shù)據相結合,很好地提升了推薦效果。算法利用TransH將知識圖譜數(shù)據轉換為低維空間向量矩陣,獲取病人信息的實體和關系向量矩陣,然后通過余弦相似度公式計算出與待處理病人的相似性矩陣,使用基于用戶的協(xié)同過濾算法計算出與待處理病人相似的病人矩陣,最后將兩個推薦矩陣相結合得到最終結果。該算法避免了只考慮評分而不考慮病人語義關系所帶來的推薦結果不夠準確的問題,使得結果正確率平均提升35%,降低了醫(yī)療事故發(fā)生概率。但該算法還存在待改進之處,例如:目前方法只用到了醫(yī)院提供數(shù)據集的部分信息,還有更多的信息可以應用,推薦效果有待繼續(xù)提升;目前只實現(xiàn)了找到相似病人,讓醫(yī)護人員參考這些相似病人進而作出決策,而醫(yī)院更希望算法能直接給出針對病人的處理方案,這為今后工作指明了方向。