文|秦金龍 彭盼 陳放 王瑋琪
本文介紹了一款醫(yī)療導診對話管理系統(tǒng),其基于結(jié)構(gòu)深度嵌入(SDNE)和深度Q值網(wǎng)絡(DQN)的組合網(wǎng)絡對話策略優(yōu)化模型,可以實現(xiàn)多輪引導交互。其具有一定的“主觀能動性”,可依據(jù)多輪對話中每個時間步的狀態(tài)主動追問相關信息、主動引導患者下一步動作。搭載該對話管理系統(tǒng)的導診機器人,可以大大提升患者的就診體驗和醫(yī)院的接診效率。
導診服務貫穿于患者看病的全過程,服務質(zhì)量對患者的整體體驗有重要影響。由于醫(yī)院分工精細,就診過程往往涉及不同的樓層區(qū)域,而目前醫(yī)院的服務體系并不完善,患者在進入醫(yī)院環(huán)境時容易感到困惑,無法快速、順利地進行咨詢,容易產(chǎn)生不耐煩和抵觸情緒,降低了醫(yī)療體驗的滿意度和治療效率。
而現(xiàn)有導診機器人僅能被動式回答患者問詢,無法依據(jù)當前狀態(tài)引導或主動追問必要的就醫(yī)信息,對于提升整體滿意度和治療效率作用有限。為了解決上述痛點,本文設計了一款醫(yī)療導診對話管理系統(tǒng),其基于結(jié)構(gòu)深度嵌入(SDNE)和深度Q值網(wǎng)絡(DQN)的組合網(wǎng)絡對話策略優(yōu)化模型,可以實現(xiàn)多輪引導交互,可依據(jù)多輪對話中每個時間步的狀態(tài)主動追問相關信息、主動引導患者下一步動作。
本文設計的醫(yī)療導診對話系統(tǒng)架構(gòu)主要包括兩部分:一是結(jié)構(gòu)深度嵌入(SDNE),二是深度Q值網(wǎng)絡(DQN)。我們使用結(jié)構(gòu)深度嵌入來獲取槽位節(jié)點的嵌入表示作為深度Q值網(wǎng)絡的輸入狀態(tài)特征S,并結(jié)合兩部分的損失函數(shù)進行聯(lián)合優(yōu)化,從而得到給定狀態(tài)下的最佳動作A。

我們把導診對話狀態(tài)統(tǒng)一定義為(槽位,槽值)對,對話狀態(tài)包括(癥狀,*)、(疾病,*)、(科室,*)、(醫(yī)生,*)、(時間,*),(路線,*)。我們定義圖G(V,E),V為槽位節(jié)點集合,E為邊集合,以槽位之間的關系來定義邊,即可使用SDNE來獲取槽位節(jié)點的嵌入表示。直接相連的兩個槽位節(jié)點可以直接互相影響槽值的候選范圍,即用一階相似度來衡量其相似度;通過一個或多個節(jié)點間接相連的槽位節(jié)點可以間接影響槽值的候選范圍,即用二階相似度來衡量。
SDNE又可分為兩個組件:無監(jiān)督和有監(jiān)督部分。其中,無監(jiān)督部分是一個深度自編碼器用來學習二階相似度,監(jiān)督部分是一個拉普拉斯特征映射捕獲一階相似度。
二階相似度優(yōu)化目標:

這里我們使用圖的鄰接矩陣進行輸入,對于第i個頂點,pi包含了頂點i的鄰居結(jié)構(gòu)信息,這樣的重構(gòu)過程能夠使得結(jié)構(gòu)相似的頂點具有相似的嵌入表示。同時,我們使用帶權(quán)損失函數(shù),使非零元素具有更高的懲罰系數(shù)。

SDNE整體優(yōu)化目標即為:

依上所述,即可得到每一個槽位節(jié)點的嵌入表示,再將所有節(jié)點的嵌入表示直接拼接得到狀態(tài)特征S,并送入下一部分DQN。
DQN的輸出值,是在給定狀態(tài)S的情況下,執(zhí)行各行為A后能得到的獎勵r總和,即Q值。不過,事實上我們很難知道最優(yōu)的Q值是什么,但獎勵r卻是不變的,對狀態(tài)S,執(zhí)行動作A,其得到的獎勵r是不變的。因此我們從獎勵r下手,讓預測Q值和真實Q值的比較問題轉(zhuǎn)換成讓模型實質(zhì)上在擬合獎勵r的問題。
DQN的損失函數(shù)即可表示如下:

目標Q值,即TargetQ為:

其中S為當前狀態(tài)特征,A為當前行為, 為執(zhí)行A后的下一個狀態(tài),為下一個行為,r為當前問答行為的獎勵信號,γ為防止模型訓練時不收斂的常數(shù),E為期望值函數(shù),均為網(wǎng)絡的權(quán)重參數(shù),后面詳述為什么區(qū)分兩個權(quán)重。上述公式的意義可以理解為:獎勵r+下一狀態(tài)所能得到的最大Q值,減去這一步的Q值,它們的這個差就是真實獎勵r減去現(xiàn)有模型認為在狀態(tài)S下采取行為A時能得到的獎勵值。
聯(lián)合損失函數(shù)即為:

對于上述目標函數(shù),可直接采用梯度下降算法對其權(quán)重參數(shù)進行求解。
本文實驗數(shù)據(jù),由患者導診流程(尋找導診機器人、病情咨詢、了解醫(yī)生信息、獲取對應科室、掛號繳費、尋找科室)結(jié)合癥狀、疾病、科室、醫(yī)生、時間、路線等槽位節(jié)點之間的關系人工構(gòu)建。
多輪對話示例如下:
患者:恐高掛什么科?
導診:您好,恐高掛精神心理科。您需要掛精神心理科的號嗎?
患者:需要。
導診:精神心理科有張醫(yī)生、李醫(yī)生、王醫(yī)生。您可以直接說掛某某醫(yī)生的號,也可以查看某某醫(yī)生的簡介。
患者:我要掛李醫(yī)生的號。
導診:好的,已為您掛李醫(yī)生的號,請繳費。
患者:(掃碼繳費)
導診:您已繳費成功。需要我為您展示去精神心理科的地圖路線嗎?
患者:需要,謝謝。
實驗評價機制如下:
任務完成率(Task Completion Rate)是指在所有對話任務中成功事件的占比。
任務完成成本(Task Completion Cost)是指完成任務所需的時間效率成本。即在完成同一個任務時,對話輪數(shù)越少越好。
用戶模擬器提供基于預定義規(guī)則或模型模擬的用戶對話。有兩種用戶模擬器:一種是基于議程的模擬器,它只將預定義的用戶目標作為用戶信息提供給對話系統(tǒng)。另一種是基于模型的模擬器,它使用給定約束信息的語言模型生成用戶話語。
我們使用不同的策略模型進行實驗對比,對比模型為DQN、Q-learning、SARSA以及本文構(gòu)造的SDNEDQN聯(lián)合模型。實驗采用用戶模擬器進行模型訓練,最后通過用戶模擬器進行各個模型的效果測試,通過人工自建數(shù)據(jù)集進行完整對話系統(tǒng)的效果測試。自建醫(yī)療導診對話數(shù)據(jù)集是結(jié)合患者就醫(yī)流程與就診醫(yī)院相關信息構(gòu)建的,在真實生活中存在合理性。
用戶模擬器測試結(jié)果與自建數(shù)據(jù)集上測試結(jié)果如表1。

表1 用戶模擬器測試結(jié)果與自建數(shù)據(jù)集上測試結(jié)果
實驗數(shù)據(jù)表明,在對話輪次的表現(xiàn)上,SDNE-DQN較其余三種模型均有更短的對話輪次;在對話成功率的表現(xiàn)上,SDNE-DQN同樣更高。而且,自建數(shù)據(jù)集上對話效果的差距高于用戶模擬器測試的結(jié)果,說明了SDNEDQN模型的泛化性能優(yōu)于其他模型。
本文專注于醫(yī)療導診對話策略優(yōu)化,提出了結(jié)構(gòu)深度嵌入與深度Q值網(wǎng)絡聯(lián)合模型SDNE-DQN,該模型結(jié)合圖嵌入和強化學習最優(yōu)化對話反饋行為。依托于SDNE-DQN的導診機器人,交互簡單,還具備一定的“主觀能動性”,可依據(jù)當前對話狀態(tài)主動提示患者相關流程、主動追問患者正確就診需要提供的信息,大大降低交互成本,對患者情緒穩(wěn)定、流暢就醫(yī)有很大幫助,同時對于醫(yī)院降低管理運營成本、緩解人滿為患和實現(xiàn)智能信息化也有很大積極作用。