王妞妞,熊回香,劉 櫻
在線問診是互聯網醫療的一種常見服務模式。近年來,國內外涌現出一大批在線問診平臺,如國內的“好大夫在線”“春雨醫生”“快速問醫生”等平臺,國外的Health Tap、American well 和Doctor demand 等平臺。這些在線問診平臺減少了患者線下就診帶來的時間和空間的不便,一定程度上承擔起公共衛生安全知識的宣傳普及和常見疾病的預防、科普、診斷等職能。隨著智慧醫療行業人工智能、物聯網等技術的持續融合發展,在線問診平臺在滿足患者日常健康需求方面將發揮越來越重要的作用。在線問診平臺提供了醫患交互接口,并展示了多項醫生信息供患者決策,有在線健康咨詢需求的患者可以通過問答形式在平臺上向醫生描述自身疾病情況,醫生上線后針對患者咨詢問題給出相應診斷和建議,同時患者也可以通過瀏覽與自身疾病相似的患者的問診過程為個人健康問題尋找答案。然而,隨著在線問診平臺中醫生和患者規模的不斷擴大,平臺產生了海量的相關信息,患者難以從中識別并選擇符合自身需求的醫生。與此同時,多數在線問診平臺往往通過醫生的專業職稱或臨床經驗等單一顯性指標向患者推薦問診醫生,未充分挖掘利用在線問診平臺數據,不能充分評估醫生的專業程度和在線活躍程度[1],患者的問診需求難以得到精確滿足,很多患者的咨詢也不能得到及時回復,降低了患者問診滿意度,因此,為了向有健康咨詢需求的患者推薦高專業度和高活躍度的醫生,本文提出了融合Word2Vec 和層次分析法的醫生推薦模型,以期滿足患者需求并為完善在線問診平臺的功能提供有益探索。
目前,已有學者根據患者和醫生特征將推薦技術應用于醫生推薦研究。如有學者通過計算患者咨詢文本與醫生特征的相似度,為患者推薦醫生[2];有學者利用潛在狄利克雷分配(latent Dirichlet allocation,LDA)主題模型和K-means 算法對醫生專業背景進行聚類,通過將患者咨詢內容和醫生專業背景信息進行相似度比較,向患者推薦專業匹配較高的醫生類別和醫生對象[3];有學者基于醫患交互數據和醫生積累的臨床經驗,利用Word2Vec模型和余弦相似度,生成融合相似患者和相似醫生的醫生推薦集[4];有學者通過計算疾病相似性和醫生專業相似性,尋找隱含的相似疾病和相似醫生,并提出一種改進的矩陣分解方法以提升醫生推薦的有效性[5];有學者運用labeled-LDA 模型得到概率分布,計算患者健康問題信息與醫生專長信息的相似度,為患者推薦匹配度高的醫生[6];有學者根據患者信息和醫生在社交網絡中的權威度進行醫生推薦[7];有學者通過挖掘海量咨詢文本,設計了基于聚類的協同過濾算法,并考慮了醫生的活躍度,根據相似病例向患者推薦適合解決這類病例且在線活躍度高的醫生[8];有學者運用層次分析法(analytic hierarchy process,AHP)建立醫生患者特征模型,通過將患者模型與醫生模型進行匹配,從而實現醫生推薦[9];有學者使用層次分析法,以預約績效和出診績效為指標建立了醫生績效模型,結合協同過濾的思想,提出了一種基于組合模型的醫生推薦算法,該算法能夠較好滿足患者預約需求[10];有學者結合相似患者、相似醫生及醫生績效3 種條件,深入挖掘醫患特征,構建醫生推薦模型,并通過試驗證明了該模型具有良好的推薦效果[11]。
當前的研究結果顯示,基于深度學習的文本特征提取是充分表達用戶偏好的關鍵,Word2Vec 模型將文本用詞以向量的方式表示,通過向量空間的相似度衡量文本相似度,克服了詞袋表示的不足,能夠挖掘詞與詞之間的關聯屬性,從而使語義信息更豐富,可用于醫患問診文本的挖掘[12]。而基于相似患者及醫生績效評價體系的醫生推薦雖具備良好的推薦效果,但多數關于在線醫生推薦的研究未充分評估在線醫生的專業度和活躍度,僅依賴醫生的專業水平或權威程度進行推薦,忽略了醫生的其他專業度指標及在線響應度,往往容易導致最終推薦結果不能滿足患者咨詢的及時性需求。因此,在建立醫生推薦體系時,有必要從患者決策偏好出發,深入挖掘相似醫生及醫生的專業度指標和活躍度指標。目前尚未有融合Word2Vec 模型和層次分析法的醫生推薦研究。基于此,本文擬通過Word2Vec 模型深入挖掘患者咨詢文本及已有醫患就診映射關系,得到相似患者的醫生推薦序列;然后根據醫生的專業度指標和活躍度指標構建層次分析法模型,充分表征患者決策多維屬性,實現更符合患者偏好的醫生推薦,從而向有健康咨詢需求的患者推薦高專業度和高活躍度的在線醫生,提高在線問診平臺服務質量。
“好大夫在線”平臺創立于2006 年,是國內領先的在線問診平臺之一。截至2021 年7 月,“好大夫在線”平臺已累計服務超過7 200 萬名患者[13]。該平臺于2020 年10 月份在患者咨詢界面加入“相關文章”和“相關問診”推薦模塊,后改為“相關推薦”模塊,便于用戶找到相似患者,也起到了醫生推薦的作用,但仍然存在相關問診文本相似度不高、相關醫生擅長科目不同、推薦醫生活躍度不高和推薦結果中含有無診療經驗醫生的問題。因此,基于該平臺服務水平,本著為該網站的進一步優化提供可行建議的目的,本文選擇“好大夫在線”平臺作為實證對象,驗證本文提出的模型的適用性和可靠性。
從“好大夫在線”平臺上的“按疾病”查找導航模塊采集數據,選擇“神經內科常見疾病”中的“頭暈”作為實證研究對象。為了保證在線醫生的活躍度,本文利用Python 網絡爬蟲獲取“推薦醫生”界面的醫生自2020 年9 月1 日至11 月7 日的全部問診數據記錄[14],共采集到249 名醫生的基本信息數據和37 276 條患者相關數據(表1、表2),這部分數據是對海量醫患信息的初步篩選,有利于精確定位符合用戶偏好的高活躍度醫生。其中與醫生相關的數據項包括醫生姓名、醫生職稱、綜合推薦熱度、在線服務滿意度、在線問診量、科普文章數量、感謝信數量、心意禮物數及上次在線時間;患者相關的數據包括在線咨詢文本(包括患者疾病描述、疾病、醫患對話數、問診日期)和患者其他特征(患病時長、懷孕情況、過敏史)。需要說明的是,患者在“好大夫在線”平臺咨詢時,需提供其疾病描述和疾病名稱,如果不確定疾病名稱,則需要提供2~20 字以內的主要疾病癥狀,實際上是一種短文本類型的疾病描述。本文按照該網站規定,將疾病名稱和主要疾病癥狀統稱為“疾病”。此外,為了保障醫生、患者的隱私及權益,本文在推薦過程中用醫生編號和患者編號代替姓名數據項。

表1 部分醫生基本信息數據集

表2 部分患者咨詢文本及基本信息數據集
為便于數據分析,提高醫生推薦質量,需進行必要的數據預處理工作。因此,本文在將表1 數據中的重復值剔除后,將醫患對話數少于2、醫生被咨詢文本少于5、無法獲取臨床經驗、上次在線時間為1 個月之前的醫生全部剔除,并清理無實際意義的咨詢文本數據記錄,如“今天己復診”“今天去您那看病”“因我打字太慢,我把病情概述和檢查結果及目前用藥都拍照上傳給您了……不好意思給您添麻煩了”等文本。預處理后篩選得到141條醫生記錄,以及21 291 條患者咨詢文本。
為構建醫生診斷能力層次分析法模型,需要對醫生基本數據進行標準化處理。首先,按照公式(1)對綜合推薦度、在線滿意度、總患者數、總文章數、感謝信數、心意禮物數等做歸一化處理,將上述數據映射為(0,1)區間的小數,避免不同數量級對最終結果的影響;其次,將醫生職稱從高到低排序,轉化為數字表示,將主任醫師標記為1,副主任醫師標記為0.5,主治醫生標記為0.35;最后,標識醫生最后在線時間,按照上次上線時間從近到遠活躍度水平依次遞減的順序,將在線時間為今天標記為1、1 天前標記為0.8、2 天前標記為0.6、3 天前標記為0.4、4 天前標記為0.2,其他時間均標記為0.1。最終處理后的醫生基本數據如表3 所示,患者基本數據如表4 所示。


表3 預處理后醫生基本數據表示

表4 預處理后患者基本數據表示

續表4
本文融合Word2Vec 和層次分析法構建醫生推薦模型,主要分為基于Word2Vec 的醫生推薦、基于層次分析法的醫生推薦、融合Word2Vec 和層次分析法的醫生推薦3 部分。具體模型如圖1所示。

圖1 融合Word2Vec 和層次分析法的醫生推薦框架
基于Word2Vec 的醫生推薦。對從在線問診平臺上獲取到的患者咨詢文本數據(包括疾病描述和疾病2 個數據項)進行篩選剔除、分詞、去停用詞等預處理操作,借助Word2Vec 模型將咨詢文本轉化為詞向量,通過計算詞向量之間的余弦相似度,得到與目標患者咨詢文本相似度較高的患者集合A。然后根據患者的患病、是否懷孕等特征,篩除集合A 中的部分患者,得到相似患者集合B。依據患者和醫生的實際問診關系,得到醫生候選集C。
基于層次分析法的醫生推薦。將從在線問診平臺上獲取的醫生基本數據項分為專業度指標和活躍度指標,構建層次分析法評價模型,得到每位醫生的診斷水平評分,按照評分從高至低排序,輸出醫生推薦序列D。
融合Word2Vec 和層次分析法的醫生推薦序列,綜合上述2 項醫生排名,得到最終醫生推薦集合E,供目標患者參考。
Word2Vec 是Tomas Mikolov 團隊在2013 年提出的用于快速有效地訓練詞向量的模型[15]。Word2Vec 能夠從海量的文檔數據中學習出高質量的詞向量,該詞向量在語義和句法上都有很好的表現,因此該模型已被廣泛應用于自然語言處理的各種任務中。本文基于Word2Vec 進行患者咨詢文本相似度計算,將患者咨詢文本轉化為向量形式,通過計算空間中向量的相似度來表示文本語義上的相似度。當前主要有Continuous Bag-of-Word(CBOW)和Skip-gram 2 種訓練模型,其中CBOW 模型根據中心詞周圍的詞來預測中心詞,Skip-gram 模型則根據中心詞來預測周圍詞。在Skip-gram 模型中,每個詞均受到周圍詞的影響,每個詞作為中心詞時都需要進行多次的預測、調整,這種多次調整會使詞向量更加準確。因此,本文選擇以Skip-gram 模型作為訓練模型,將初始患者咨詢文本集合(37 276條患者咨詢文本記錄)作為訓練語料,預處理后的咨詢文本集合(21 291 條患者咨詢文本記錄)作為測試語料。用戶在“好大夫在線”平臺問診時,需提供其疾病名稱及疾病描述,本文將這2 類數據統稱為“患者咨詢文本”。為更精確地衡量患者相似水平,本文綜合考慮疾病描述和疾病2 類數據相似度,并賦予相應權重得到最終相似度。根據2 類數據的實際文本長度,設置疾病描述詞向量維數為100,疾病詞向量維數為10,得到患者疾病描述向量表示和疾病向量表示(表5、表6)。

表5 患者疾病描述向量表示

表6 患者疾病向量表示
根據表5 和表6 中的向量表示,計算向量之間的余弦相似度,得到患者咨詢文本的相似度。本文認為患者會將更多的患病信息表述在疾病描述中,同時根據實際測試,當為疾病描述相似度和疾病相似度分別賦予0.7 和0.3 的權值時,得到的患者病情相似度更為精確,其結果如表7 所示。

表7 患者病情相似度
為直觀顯示本模型的推薦過程,又不失一般性,本文隨機選擇第5609 號患者作為目標患者,該患者的疾病描述為“近半個月來總是感覺頭暈,早上起來好點,越到后面感覺越明顯,頭暈的感覺不是天旋地轉的那種暈,就是走路不穩、老想摔倒的感覺。”其疾病應為“雙側額葉及左側頂葉缺血灶、頭暈、手麻”。現根據前文所述的患者疾病相似度計算方法,尋找與該患者相似的其他患者,根據已有的醫患問診關系,向該患者推薦可接診醫生。多次試驗測試發現,當設置相似度閾值μ=0.76時,既確保了患者之間較高的相似性又保證了相似患者的數量在可接受范圍內。依據設定閾值得到相似患者集合A,總計3 723 名患者(表8)。

表8 與第5609 號患者相似的患者集合A
同時考慮第5609 號患者患病時長為“半年內”,“未懷孕”且無“過敏”和他病史,針對上述特征,篩除患病時長“大于半年”,“懷孕”及有過敏史患者,得到相似患者集合B,總計1 601名相似患者(表9)。

表9 與第5609 號患者相似的患者集合B
根據相似患者集合B 與醫生的實際問診關系,找到集合B 中患者問診過的醫生,然后將患者按照為其問診過的醫生姓名分類,計算出每位醫生類別下診斷過的相似患者的相似度均值,作為這些患者與第5609 號患者的病情相似度,按照相似度遞減順序排列生成共含有111 名醫生的醫生推薦序列C(表10)。如隨機抽取相似患者集合B 中第17704 號患者,該患者實際咨詢過的是編號為84的醫生(即“醫生84”),同時編號集合{17708、17710、17716、17720、17724、17725}中的患者也咨詢過“醫生84”,則將{17704、17708、17710、17716、17720、17724、17725}集合的患者以醫生姓名劃分,歸為一類,將這些患者與第5609 號患者的咨詢文本相似度均值0.873 作為該類患者與5609 號患者的相似度。

表10 第5609 號患者的醫生推薦序列C
層次分析法是由美國運籌學家 Thomas L.Saaty 于20 世紀70 年代初應用網絡系統理論和多目標綜合評價方法提出的一種定性與定量相結合的、系統化、層次化的分析方法[16]。該方法將與決策有關的元素分解成目標、準則、方案等層次,在此基礎上進行定性和定量分析,具有系統、靈活、簡潔的優點,適用于具有分層交錯評價指標的目標系統[17],現已在資源分配、選優排序、績效考核等領域廣泛應用。本文借助層次分析法建立醫生診斷能力評分體系,旨在綜合考量醫生的專業指標和活躍程度,為患者提供更可靠的推薦服務。具體步驟如下。
步驟1:建立遞階層次結構模型。建立評價體系前,需將全部指標條理化、層次化,構造出一個有層次的結構模型(圖2),這些層次可以分為最高層(目標層)、中間層(準則層)、底層(方案層)。本文將醫生診斷能力評分體系構建作為目標層,以專業度指標和活躍度指標2 項準則為中間層。本文在專業度指標下設置了醫生職稱、患者數、心意禮物數、感謝信數、綜合推薦熱度和滿意度6 個指標,在活躍度指標下設置了綜合推薦熱度、滿意度、科普文章數量和上次在線時間4 個指標,符合基本認知。

圖2 醫生診斷能力評分體系遞階層次結構模型
步驟2:構建各層次中的所有判斷矩陣。根據步驟1 中構建的遞階層次結構,將同一層內各個指標進行兩兩重要性對比,得到準則層的判斷矩陣Z,以及方案層的判斷矩陣F1、F2,F1代表專業度指標這一準則下6 個方案的重要程度判斷矩陣,F2代表活躍度指標這一準則下4 個方案的重要程度判斷矩陣。判斷矩陣中第i行j列的元素aij代表第i行表示的指標重要程度與第j列表示的指標重要程度的比值。通常情況下我們選擇表11 所示的標度進行度量。為保證判斷矩陣的可信度,本文前期調研了一定數量的“好大夫在線”平臺用戶,收集了用這些用戶構建的3 個判斷矩陣,并對各分量求均值,得到最終的判斷矩陣Z、F1、F2。其中,矩陣Z中數值1.433 代表調研用戶認為在選擇在線醫生時,專業度指標的重要程度是活躍度指標重要程度的1.433 倍,其他元素同理。


表11 判斷矩陣標度定義



表12 平均隨機一致性指標
步驟4:各指標權重計算。層次分析法中權重的計算有幾何平均法、算術平均法、特征向量法和最小二乘法4 種。在本步驟中利用算術平均法依次計算出各指標的權重(表13 至表16)。

表13 目標層醫生診斷能力評價體系判斷矩陣及各指標的權重

表14 準則層專業度指標判斷矩陣及各指標的權重

表15 準則層活躍度指標判斷矩陣及各指標的權重

表16 方案層各指標的最終權重
利用方案層各指標對醫生診斷能力的權重(表16)對表3 中的各項數據進行賦權,得到醫生診斷能力評分結果及排序(表17),即“醫生推薦序列D”。

表17 醫生診斷能力評分結果及醫生推薦序列D
利用Word2Vec 計算出患者相似度,生成醫生推薦序列C;通過層次分析法,綜合考慮醫生的專業度指標和活躍度指標,得到醫生推薦序列D。對醫生推薦序列C 和醫生推薦序列D 中同一醫生的排名進行相加,按照排名之和輸出醫生推薦序列E(表18),按照最終排名輸出前10 名醫生作為向第5609 號患者推薦的醫生集合。

表18 醫生推薦序列E
假定第5609 號患者尚未就診,根據咨詢文本和醫生診斷能力評分體系向該患者推薦的醫生集合為{118,29,131,18,78,108,81,129,117,104}。醫患實際問診結果顯示,為其接診的是編號為78 的醫生,在推薦集合內,說明該推薦結果可以很好地滿足患者需求。本文將疾病名稱作為醫生的特征表示,計算醫生之間的臨床相似度,再抽取上述集合中醫生之間的相似度(表19)。結果顯示,該推薦集中的醫生普遍具備較高的專業水平相似度,能夠較好地滿足患者的診斷需要,并且所推薦醫生的活躍程度都很高,能夠及時響應患者的咨詢需求。

表19 推薦醫生的臨床經驗相似度

續表19
為證明該推薦模型的普適性,本文隨機生成20 位患者編號集合{14801,10598,1742,10618,15363,10557,13266,7083,12578,2644,6952,16041,3054,5776,17403,1846,4819,2854,5900,2165}作為測試集。將測試集分成2 組進行試驗。第一組,根據相似患者的疾病描述和疾病相似度,得到相似度較高的前10 名醫生,若該患者實際就診的醫生F 在推薦列表里,并滿足其他推薦醫生與實際就診醫生F 的臨床經驗相似度高于0.9 這一條件,且保證推薦醫生最近在線時間為今天,則說明推薦成功,滿足上述條件的醫生數量記做實際有效推薦數量;若不滿足上述條件,則說明推薦失敗。第二組,按照本文所提融合Word2Vec和層次分析法的醫生推薦模型,依次完成推薦,最終推薦結果若滿足第一組試驗中推薦成功的標準,則代表推薦成功,反之則代表推薦失敗。計算出每組試驗的有效推薦比例,記為本次試驗準確率(圖3)。從圖3 可以看出,融合Word2Vec和層次分析法的醫生推薦模型優于只考慮相似度的推薦方式。

圖3 兩組試驗的準確率測試結果
近年來,我國積極推進的“健康中國”戰略及醫療服務供給側改革已取得一定成效,但仍存在醫患交流時效低下、醫療資源分配不均和就醫流程繁瑣等問題,在線問診平臺的出現為解決上述困境開辟了一種新思路[18]。對用戶來說,從在線問診平臺尋求合適的醫生是他們最關注的問題,醫生的專業度和活躍度通過影響用戶的“感知成本”和“感知信任”成為導致用戶發表負面評論的關鍵因素[19]。本文從當前“好大夫在線”平臺相關問診推薦模塊存在的“推薦問診文本相似度較低”“推薦醫生活躍度不高”等問題入手,提出了融合Word2Vec 和層次分析法的醫生推薦模型。利用網絡爬蟲技術抓取醫生、患者的多重特征,綜合考慮文本、數值類型,進行實證研究,結果顯示該模型綜合考慮了醫生的專業程度和活躍程度,可以更加有效地評估醫生能力,具備較好的推薦效果,可以作為該網站下一步優化完善的可行思路。此外,融合Word2Vec 和層次分析法的醫生推薦模型也可進一步適用于其他如“春雨醫生”等在線問診平臺,這些問診平臺都包含醫患問診文本及醫生專業度和活躍度信息,同樣適用于該模型的推薦體系。但本文也存在一定不足,在構建層次分析法模型時,調研用戶量不夠大,今后可考慮進一步擴大調研范圍,完善優化判斷矩陣構建過程,優化推薦模型。