汪正康,劉 陽,楊錦鋒,梁先桂,郭熙銅
(1.哈爾濱理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱 150080;2.哈爾濱工業(yè)大學(xué) 經(jīng)濟(jì)與管理學(xué)院,黑龍江 哈爾濱 150001)
以糖尿病為代表的慢性病發(fā)病率高、持續(xù)時(shí)間長并且醫(yī)療支出成本高,已成為導(dǎo)致我國居民預(yù)期壽命受損、因病致貧、因病返貧的主要疾病。一方面,慢性病發(fā)展進(jìn)程相較于急性病顯得溫和,因而其危害性和對其進(jìn)行健康管理的重要性容易被忽視;另一方面,我國慢病患者數(shù)量龐大,醫(yī)療資源緊張、醫(yī)療資源分配不均等問題導(dǎo)致慢病患者得不到有效的慢病管理,加劇了慢病患者的醫(yī)療成本和貧困狀況。慢性病已成為重大公共衛(wèi)生問題和社會(huì)問題,為應(yīng)對慢性病帶來的重大公共衛(wèi)生威脅,國務(wù)院于2017年印發(fā)的《新一代人工智能發(fā)展規(guī)劃》明確提出推廣應(yīng)用人工智能治療新模式新手段,建立快速精準(zhǔn)的智能醫(yī)療體系,發(fā)展智能醫(yī)療和智能健康管理。慢性病患者通常受多種癥狀長期困擾,對健康管理的需求是隨時(shí)隨地的,且具有個(gè)性化,以聊天機(jī)器人(Chatbot)形式的健康管理服務(wù)具備向廣大慢性病患者提供及時(shí)且個(gè)性化健康服務(wù)需求的潛力。作為人工智能技術(shù)的典型代表,聊天機(jī)器人,也叫對話系統(tǒng)(Dialogue System),以其智能、自主、易擴(kuò)展的優(yōu)勢,正逐步發(fā)展為慢性病健康管理的新技術(shù)和新方式。
糖尿病患者在日常生活中難免會(huì)產(chǎn)生一些關(guān)于疾病方面的疑問,例如,“糖尿病患者能喝湯嗎?”,“有胃病的人應(yīng)該吃什么降糖藥對胃的刺激小一點(diǎn)?”等等。當(dāng)這些日常生活上的問題不足以驅(qū)使患者大費(fèi)周章去醫(yī)院時(shí),糖尿病健康管理對話系統(tǒng)便顯得尤為重要,它作為一個(gè)貼身“醫(yī)生”,能高效解答廣大患者日常醫(yī)療咨詢方面的問題,讓患者享受到高效便捷的智能服務(wù)。
當(dāng)前主流的對話系統(tǒng)主要分為任務(wù)導(dǎo)向型對話系統(tǒng)(Task-Oriented Dialogue System, TOD)和開放域?qū)υ捪到y(tǒng)(Open-Domain Dialogue System, OOD)兩大類[1]。任務(wù)導(dǎo)向型對話系統(tǒng)中,人機(jī)對話具有較強(qiáng)的目的性,對話系統(tǒng)主要為了幫助用戶完成某些特定的任務(wù)。而開放域?qū)υ捪到y(tǒng)中,對話系統(tǒng)主要與用戶進(jìn)行閑聊,沒有特定領(lǐng)域的限制。
本研究關(guān)注的糖尿病健康管理對話系統(tǒng)為任務(wù)導(dǎo)向型對話系統(tǒng),主要服務(wù)于糖尿病患者,在居家場景下為患者解答日常生活中糖尿病相關(guān)問題。該對話系統(tǒng)采用管道結(jié)構(gòu),將核心功能分為自然語言理解(Natural Language Understanding, NLU),對話狀態(tài)跟蹤(Dialogue State Tracking, DST),對話策略(Dialogue Policy, POL)和自然語言生成(Natural Language Generation, NLG)四個(gè)模塊。自然語言理解模塊主要描述為意圖識別(Intent Detection)任務(wù),根據(jù)醫(yī)患語句,識別對話意圖(Intent)以及收集所傳遞的信息,例如患者的血糖值,飲食情況以及醫(yī)生給出的用藥建議等,并輸出相應(yīng)的對話動(dòng)作。對話狀態(tài)跟蹤模塊通過自然語言理解模塊抽取的關(guān)鍵信息,跟蹤維護(hù)更新患者以及系統(tǒng)的對話狀態(tài),即置信狀態(tài)(Belief State)。對話策略模塊根據(jù)患者的對話狀態(tài),學(xué)習(xí)醫(yī)生的對話動(dòng)作,進(jìn)行下一步?jīng)Q策并輸出對話動(dòng)作,例如系統(tǒng)針對患者當(dāng)前描述的飲食情況進(jìn)行多吃或少吃的建議。自然語言生成模塊關(guān)注的任務(wù)為受控對話生成,利用對話策略模塊決策的對話動(dòng)作生成通順的、患者能夠理解的自然語言。
作為數(shù)據(jù)驅(qū)動(dòng)型對話系統(tǒng),以上模塊模型的訓(xùn)練自然離不開大量數(shù)據(jù)的支撐。本研究為糖尿病健康管理對話系統(tǒng)構(gòu)建了名為“Diachat”的數(shù)據(jù)集,從醫(yī)生與糖尿病患者的溝通記錄中收集并整理對話數(shù)據(jù),制定對話標(biāo)注規(guī)范,對每句話進(jìn)行標(biāo)注,同時(shí)基于標(biāo)注數(shù)據(jù)構(gòu)造用戶目標(biāo)和對話狀態(tài),完整支持四個(gè)模塊的研究。該數(shù)據(jù)集的標(biāo)注規(guī)范和部分?jǐn)?shù)據(jù)樣例可通過此鏈接(1)https://hrbust-youth.github.io/2022/11/20/Diachat簡介及相關(guān)信息/下載獲取。
本文在接下來主要內(nèi)容為介紹Diachat源數(shù)據(jù)的準(zhǔn)備過程,數(shù)據(jù)標(biāo)注規(guī)范的制定,數(shù)據(jù)標(biāo)注的過程,對話狀態(tài)的構(gòu)造,數(shù)據(jù)集規(guī)模的介紹與對比。
本文主要關(guān)注典型任務(wù)型對話系統(tǒng)數(shù)據(jù)集和醫(yī)療健康咨詢對話系統(tǒng)數(shù)據(jù)集。典型任務(wù)型對話系統(tǒng)以出行咨詢對話系統(tǒng)為代表,如MultiWOZ[2]數(shù)據(jù)集,標(biāo)注體系完善,規(guī)模龐大,受關(guān)注度高。醫(yī)療健康咨詢對話系統(tǒng)正獲得越來越多的關(guān)注,關(guān)注的問題涉及醫(yī)療問診、飲食、運(yùn)動(dòng)等有關(guān)健康的方方面面。
當(dāng)前已發(fā)布的一些大規(guī)模任務(wù)導(dǎo)向型對話數(shù)據(jù)集和開放域?qū)υ挃?shù)據(jù)集大多都是通過人-人模擬對話進(jìn)行構(gòu)建,一人扮演對話系統(tǒng)(Wizard),一人扮演用戶(User)。任務(wù)導(dǎo)向型對話的對話系統(tǒng)起到主導(dǎo)作用,對話系統(tǒng)通過數(shù)據(jù)庫查詢用戶需要的信息,然后將信息提供給用戶,用戶只需要將自己的需求表達(dá)出來即可。在任務(wù)導(dǎo)向型對話數(shù)據(jù)集構(gòu)建過程中需要為當(dāng)前對話給定對話目標(biāo)(Goal),對話圍繞完成對話目標(biāo)而展開。對話系統(tǒng)與用戶的對話在標(biāo)注工具的支持下通過文字形式交替對話,在對話過程中對他們的語句進(jìn)行標(biāo)注操作。出行咨詢對話系統(tǒng)是目前研究涉及最多的領(lǐng)域,這方面具有代表性的英文數(shù)據(jù)集是MultiWOZ,中文數(shù)據(jù)集是CrossWOZ[3]。
MultiWOZ是一個(gè)大規(guī)模多領(lǐng)域、多輪次的任務(wù)導(dǎo)向型對話數(shù)據(jù)集,該數(shù)據(jù)集跨越了7個(gè)領(lǐng)域,包含了10 000多個(gè)完全標(biāo)記的對話語句,7個(gè)領(lǐng)域分別為Attraction,Hospital,Police,Hotel,Restaurant,Taxi和Train。MultiWOZ使用了Wizard-of-Oz的眾包方式創(chuàng)建大規(guī)模人類自然對話語料庫,眾包方式可以以相對較低的成本和較短的時(shí)間收集帶注釋的對話語料庫。為了收集大規(guī)模的數(shù)據(jù),收集方為對話系統(tǒng)提供了易于操作的系統(tǒng)界面供對話系統(tǒng)訪問數(shù)據(jù)庫,為用戶提供了易于遵循的目標(biāo)。該數(shù)據(jù)集將需求預(yù)定(Booking Requirement)視作一個(gè)單獨(dú)的任務(wù),并以一定的概率在允許的領(lǐng)域抽樣額外的預(yù)定請求,以此構(gòu)造出對話目標(biāo)。為了確保一致性,對話系統(tǒng)和用戶都需要通過事先查看對話歷史以了解各自的對話上下文信息。CrossWOZ數(shù)據(jù)集是一個(gè)類似于MultiWOZ的大規(guī)模多領(lǐng)域多輪對話中文數(shù)據(jù)集,涉及景點(diǎn)、酒店、餐館、地鐵、出租5個(gè)領(lǐng)域。CrossWOZ對話數(shù)據(jù)來自參加眾包的工作人員(Worker)模擬用戶在北京地區(qū)旅游時(shí)與客服的對話,對話場景包括景點(diǎn)推薦、餐館推薦、預(yù)訂酒店等。收集方為工作人員提供了一個(gè)在線對話網(wǎng)站,選擇用戶和系統(tǒng)角色的兩個(gè)工作人員匹配成功后,雙方進(jìn)入聊天室圍繞對話目標(biāo)進(jìn)行模擬對話和標(biāo)注工作。收集方為用戶提供了對話目標(biāo),為系統(tǒng)提供了數(shù)據(jù)庫查詢服務(wù)。CrossWOZ的對話目標(biāo)基于數(shù)據(jù)庫生成,通過設(shè)計(jì)模板生成任務(wù)目標(biāo)的自然語言描述。景點(diǎn)、餐館、酒店以及這些地點(diǎn)鄰近關(guān)系的數(shù)據(jù)庫信息通過爬蟲獲取,組成了數(shù)據(jù)庫。相比MultiWOZ,CrossWOZ提供了更加全面的標(biāo)注信息,除了提供對話雙方的對話目標(biāo)、系統(tǒng)端的對話狀態(tài)這些信息之外,還額外提供了每輪用戶端的對話狀態(tài)。用戶端狀態(tài)記錄了目標(biāo)的完成情況,每輪根據(jù)系統(tǒng)回復(fù)動(dòng)態(tài)更新,可用于研究用戶模擬器的搭建。與MultiWOZ和CrossWOZ類似構(gòu)建方法的數(shù)據(jù)集還有SGD、NLU++等。這類數(shù)據(jù)集規(guī)模龐大、標(biāo)注體系完整,其構(gòu)建思路和方法值得借鑒。
醫(yī)療健康咨詢是任務(wù)型對話系統(tǒng)關(guān)注的又一項(xiàng)重要任務(wù),旨在為用戶提供實(shí)時(shí)的健康咨詢,緩解醫(yī)療資源緊張等問題。醫(yī)療健康咨詢除了疾病、癥狀、用藥等醫(yī)療問題咨詢,還涉及飲食、運(yùn)動(dòng)、減肥等方面,在這些咨詢?nèi)蝿?wù)的探索中,數(shù)據(jù)集一般來自線上平臺的醫(yī)患咨詢數(shù)據(jù)。
Zhang等人[4]基于心內(nèi)科咨詢對話數(shù)據(jù)探索了對話數(shù)據(jù)的信息抽取,從而自動(dòng)生成電子病歷,該數(shù)據(jù)集設(shè)計(jì)了四個(gè)實(shí)體Symptom,Surgery,Test,Other info,每個(gè)實(shí)體有若干相關(guān)實(shí)體屬性,醫(yī)療實(shí)體構(gòu)造的標(biāo)簽集是有限集合,因此該研究采用多標(biāo)簽分類的方法來進(jìn)行關(guān)鍵信息抽取。在Shi等人[5]的相關(guān)研究中,源數(shù)據(jù)來自于丁香園和百度拇指醫(yī)生。該研究中數(shù)據(jù)集的構(gòu)造定義了分類標(biāo)簽,也采用了多標(biāo)簽分類的思路。但本研究還額外考慮了弱監(jiān)督的策略以減少人工標(biāo)注的樣本量。在Liu等人[6]的研究中為醫(yī)療對話系統(tǒng)構(gòu)建了一個(gè)大規(guī)模醫(yī)療對話數(shù)據(jù)集,源數(shù)據(jù)來自于春雨醫(yī)生腸胃病咨詢數(shù)據(jù),腸道病相關(guān)的實(shí)體來自中文醫(yī)療知識圖譜CMeKG。該研究把醫(yī)療對話系統(tǒng)構(gòu)建分解為兩個(gè)任務(wù),首先基于對話歷史預(yù)測醫(yī)生的回復(fù)里將要包含的醫(yī)療實(shí)體,然后基于預(yù)測的醫(yī)療實(shí)體生成醫(yī)生的回復(fù)。為了有效預(yù)測醫(yī)生的回復(fù)里將要包含的醫(yī)療實(shí)體,需要構(gòu)建標(biāo)注數(shù)據(jù),將實(shí)體預(yù)測任務(wù)轉(zhuǎn)化為多標(biāo)簽分類,實(shí)體一共5個(gè)大類,160個(gè)小類。Gupta等人[7]的研究值得關(guān)注,其數(shù)據(jù)并非來自真實(shí)數(shù)據(jù),而是召集用戶和健身教練在模擬場景下構(gòu)造出來的對話數(shù)據(jù),研究目的是開發(fā)一個(gè)虛擬健康教練,以對話的形式幫助患者設(shè)定活動(dòng)目標(biāo),并督促執(zhí)行,因此需要識別對話表達(dá)的目標(biāo),并在隨后的對話中識別任務(wù)不同階段的進(jìn)展。該研究通過招募慢性病患者和健身教練,收集對話數(shù)據(jù),進(jìn)行了兩輪收集,第一輪招募了1個(gè)健身教練和28個(gè)患者進(jìn)行一對一文本對話交流,一共2 853條對話記錄,第二輪招募了3個(gè)教練和30個(gè)患者。在Du等人[8]的研究中,研究的任務(wù)是從對話記錄中識別患者表達(dá)的癥狀及其狀態(tài),因此僅對癥狀和狀態(tài)進(jìn)行了標(biāo)注,能支持對話理解的研究。由于癥狀在表達(dá)上的靈活性,對話中存在顯式表達(dá)和隱式表達(dá),該研究針對顯式表達(dá)采取的是BIO的標(biāo)注方法,針對隱式表達(dá)采取的是給文本塊標(biāo)注分類標(biāo)簽的方法。
上述醫(yī)療健康領(lǐng)域?qū)υ捪到y(tǒng)數(shù)據(jù)集主要側(cè)重于從對話記錄中抽取關(guān)鍵信息,適用于任務(wù)導(dǎo)向型對話系統(tǒng)中自然語言理解模塊的研究,但不足以支撐完整對話系統(tǒng)構(gòu)建。另一方面,現(xiàn)有醫(yī)療健康領(lǐng)域?qū)υ挃?shù)據(jù)集主要來自臨床場景,面向醫(yī)療問診,而在慢性病健康管理這一領(lǐng)域較少涉及。本文基于收集到的醫(yī)生和糖尿病患者的對話數(shù)據(jù),歸納出對話場景和領(lǐng)域,定義意圖和槽位(Slot),制定了對話標(biāo)注規(guī)范,構(gòu)建了Diachat數(shù)據(jù)集,同時(shí)構(gòu)造了對話目標(biāo)和對話狀態(tài),為糖尿病健康管理對話系統(tǒng)提供了完整的數(shù)據(jù)支持。
本文Diachat對話數(shù)據(jù)來自于QQ群中糖尿病患者與醫(yī)生的對話,患者在QQ群里就生活中的日常問題如飲食、運(yùn)動(dòng)、吃藥、血糖值等問題向醫(yī)生咨詢,醫(yī)生就患者的問題、身體情況進(jìn)行追問或者解答。我們把一個(gè)醫(yī)生和同一個(gè)患者在短時(shí)間內(nèi)的聊天記錄合并在一起,組成患者與醫(yī)生的一次咨詢記錄,即為一段對話。
對話數(shù)據(jù)經(jīng)過如下的清洗和處理,最終得到Diachat對話數(shù)據(jù)集:
(1) 刪除對話中公司名稱、醫(yī)生名稱,以及@符號提及的用戶名;
(2) 本研究規(guī)定Diachat的每段對話由患者發(fā)起,醫(yī)生結(jié)束,即患者的語句作為每段對話的第一句話,醫(yī)生的語句作為每段對話的最后一句話。若數(shù)據(jù)中某段對話的最后一句話由患者發(fā)出,我們就利用規(guī)則為醫(yī)生添加一句“不客氣”;
(3) 在日常在線聊天場景中,聊天雙方可能連續(xù)發(fā)送多條消息,Diachat數(shù)據(jù)也一樣,我們利用規(guī)則對一個(gè)聊天角色的連續(xù)消息進(jìn)行合并歸為一句話,確?;颊吲c醫(yī)生的語句嚴(yán)格交替進(jìn)行。
另外,由于數(shù)據(jù)來自于QQ群聊天記錄,有不少患者多次咨詢醫(yī)生的聊天記錄,這類持續(xù)咨詢數(shù)據(jù)有助于后續(xù)更好地探索患者健康跟蹤,針對這種情況,我們保留了患者的ID信息,以便能獲取到一個(gè)患者的持續(xù)咨詢數(shù)據(jù)。
本研究的標(biāo)注規(guī)范制定是在逐步迭代中完成的。首先,考察糖尿病咨詢的對話數(shù)據(jù),歸納出對話場景,定義意圖、領(lǐng)域和槽位,制定初步規(guī)范;然后,基于規(guī)范對數(shù)據(jù)進(jìn)行標(biāo)注,在標(biāo)注過程中改進(jìn)標(biāo)注規(guī)范,再用新規(guī)范標(biāo)注對話數(shù)據(jù),如此迭代,直至標(biāo)注規(guī)范穩(wěn)定。通過對一定數(shù)量的Diachat對話語句分析,本研究歸納出6個(gè)領(lǐng)域以及各自對應(yīng)的槽位: 患者所咨詢的問題,患者的飲食情況,患者的行為,患者進(jìn)行過的運(yùn)動(dòng),患者目前采取的治療方式,患者的基本情況。在健康咨詢中,對話場景比較復(fù)雜,醫(yī)生和患者表達(dá)的語義比較多樣化,本研究歸納出涵蓋醫(yī)生與患者對話語句的15個(gè)動(dòng)作標(biāo)簽,動(dòng)作標(biāo)簽是自然語言理解模塊基于對話動(dòng)作的表示形式,與任務(wù)導(dǎo)向型對話系統(tǒng)中對話意圖類似。語義即可通過動(dòng)作標(biāo)簽與領(lǐng)域-槽位-槽值的組合以結(jié)構(gòu)化的形式進(jìn)行表達(dá)。
3.1.1 領(lǐng)域和槽位
領(lǐng)域和其對應(yīng)的槽位是對糖尿病健康管理領(lǐng)域重要信息的結(jié)構(gòu)化表示,可作為醫(yī)生與患者進(jìn)行健康管理咨詢時(shí)的信息獲取目標(biāo)和信息傳達(dá)目標(biāo),同時(shí)也限定了對話信息的涉及范圍。
(1) 問題
問題的槽位有疾病、癥狀、癥狀部位、持續(xù)時(shí)長、血糖值以及時(shí)間等。主要標(biāo)記患者的疾病、癥狀、以及誘發(fā)和被誘發(fā)的癥狀。問題及相關(guān)槽位詳情如表1所示。
表1 問題及相關(guān)槽位詳情
(2) 飲食
飲食的槽位有飲食名、時(shí)間、飲食量、成分、成份量、效果。主要標(biāo)記患者的日常飲食信息。飲食及相關(guān)槽位詳情如表2所示。
表2 飲食及相關(guān)槽位詳情
(3) 行為
行為的槽位有行為名、頻率、時(shí)間、持續(xù)時(shí)長、效果。主要標(biāo)記患者日常行為的信息。行為及相關(guān)槽位詳情如表3所示。
表3 行為及相關(guān)槽位詳情
(4) 運(yùn)動(dòng)
運(yùn)動(dòng)的槽位有運(yùn)動(dòng)名、頻率、時(shí)間、持續(xù)時(shí)長、強(qiáng)度、效果。主要標(biāo)記語句中表達(dá)的運(yùn)動(dòng)項(xiàng)目,也可以標(biāo)記籠統(tǒng)的運(yùn)動(dòng),如醫(yī)生建議患者適當(dāng)運(yùn)動(dòng)。運(yùn)動(dòng)及相關(guān)槽位詳情如表4所示。
(5) 治療
治療的槽位有藥品、用藥量、用藥(治療)頻率、時(shí)間、持續(xù)時(shí)長、適應(yīng)癥、藥品類型、治療名、部位、檢查項(xiàng)、檢查值、效果。主要標(biāo)記語句中所采取的治療項(xiàng)目等相關(guān)信息。治療及相關(guān)槽位詳情如表5所示。
(6) 基本信息
基本信息的槽位有身高、體重、年齡、性別、既往史。主要標(biāo)記患者自身的身體信息?;拘畔⒓跋嚓P(guān)槽位詳情如表6所示。
表6 基本信息及相關(guān)槽位詳情
3.1.2 動(dòng)作標(biāo)簽
在任務(wù)導(dǎo)向型對話系統(tǒng)中,自然語言理解NLU(或Spoken Language Understanding,SLU)結(jié)果的兩種表示方式分別為基于意圖表示和基于對話動(dòng)作表示,兩種表示方式都是基于框架(Frame-based)的結(jié)構(gòu)。在Zhang等人[9]的任務(wù)導(dǎo)向型對話系統(tǒng)的最新進(jìn)展和挑戰(zhàn)文章中,作者在任務(wù)表述上并未區(qū)分意圖和動(dòng)作。雖然基于意圖表示和基于對話動(dòng)作表示方式相似,但卻存在區(qū)別。在Qin等人[10]的自然語言理解的最新進(jìn)展和新前沿的綜述文章中提到,現(xiàn)有研究基本上都將自然語言理解任務(wù)分解為意圖分類(Intent Classification)和槽位填充(Slot Filling)兩個(gè)子任務(wù),而大型對話數(shù)據(jù)集MultiWOZ和CrossWOZ則將自然語言理解任務(wù)分解為動(dòng)作分類(Act Classification)和槽位填充。兩種表示方式各有優(yōu)劣,適用的交互對話場景也有所不同?;谝鈭D表示方式一般應(yīng)用在人機(jī)交互(Human-Machine Interaction)中。早期的任務(wù)導(dǎo)向型對話系統(tǒng)可以追溯到呼叫中心或者電話客服,用戶使用語音服務(wù)時(shí),呼叫路由系統(tǒng)(Call Routing System)根據(jù)用戶的呼叫意圖自動(dòng)路由(Call Routing)至對應(yīng)的業(yè)務(wù)處理模塊。由于呼叫中心只能處理有限的任務(wù),所以呼叫意圖自動(dòng)路由任務(wù)本質(zhì)為呼叫路由系統(tǒng)對呼叫類別進(jìn)行分類,也就是意圖。因此,人機(jī)交互對話場景的首要任務(wù)為意圖分類,同時(shí),對話意圖也代表著用戶的目標(biāo)或者對話系統(tǒng)要完成的任務(wù)。所以意圖通常是領(lǐng)域相關(guān)的(Domain-dependent),例如,訂酒店、退機(jī)票、改簽火車票這三種意圖即為領(lǐng)域明確的任務(wù)。意圖分類也被叫做意圖確定(Intent Determination),確定意圖后進(jìn)行槽值填充,識別與意圖密切相關(guān)的信息要素,領(lǐng)域,意圖與槽值對(Slot-value)組合起來表達(dá)用戶目標(biāo),所以槽位是意圖相關(guān)的。在基于意圖表示的語義框架表示下,頂層是領(lǐng)域,然后是意圖,最后是槽位。在基于意圖表示的語義框架中,一個(gè)領(lǐng)域可以有多個(gè)意圖,并且相同領(lǐng)域下的多個(gè)意圖可以有不同的槽位,每個(gè)意圖的槽位是領(lǐng)域槽位的子集。所以領(lǐng)域-意圖-槽位的完整結(jié)構(gòu)如圖1所示,可以看出該結(jié)構(gòu)在表達(dá)跨領(lǐng)域語義方面稍顯不足。
圖1 領(lǐng)域-意圖-槽位的完整結(jié)構(gòu)
基于對話動(dòng)作表示方式多應(yīng)用在人-人交互(Human-Human Interaction)中。對話動(dòng)作的源起比呼叫意圖自動(dòng)路由還要早。在對人-人對話(包括多人會(huì)議)的分析探索中,演講動(dòng)作理論(Speech Act theory)被提出來,該理論認(rèn)為對話中說話者說的每句話都是要完成一個(gè)動(dòng)作,根據(jù)動(dòng)作的性質(zhì),分為四類或者五類[11],該理論啟發(fā)了對話動(dòng)作的設(shè)計(jì)和應(yīng)用。人-人對話的研究理論和方法很自然地應(yīng)用到人-機(jī)對話中,自然語言理解的輸出也可以表示為對話動(dòng)作的形式[12],成為和基于意圖表示研究并行的一種表示方式,其中最有代表性的學(xué)者是Steve Young和Dan Jurafsky。在Young的代表性研究[13]中,基于對話動(dòng)作的表示結(jié)構(gòu)為Actt(a1=v1,a2=v2,...),“actt”即動(dòng)作類別(Act Type),根據(jù)對話系統(tǒng)交互特性設(shè)計(jì),也叫對話動(dòng)作,動(dòng)作類別的參數(shù)是槽值對列表,例如:
Inform(Type=Restaurant,Food=Italian,Near=Cinema)
在Young的研究中,一個(gè)語句只能用一個(gè)對話動(dòng)作表示意圖,為了兼顧多意圖場景,一個(gè)對話動(dòng)作可以有多個(gè)槽值對作為參數(shù),并且對多個(gè)槽值對的對話動(dòng)作和多個(gè)對話動(dòng)作做了區(qū)分[14],這一點(diǎn)在本文的Diachat數(shù)據(jù)集上也有體現(xiàn)。對話動(dòng)作的一個(gè)重要特點(diǎn)就是動(dòng)作類別與領(lǐng)域無關(guān),而與交互的行為特性相關(guān)。這與人-人交互研究中對話動(dòng)作最初的理論和應(yīng)用有關(guān)。Gokhan等人[15]在從語音中提取語義信息的自然語言理解系統(tǒng)的研究中對對話動(dòng)作的特性總結(jié)為三條:
(1) 對話動(dòng)作是對語句行為的基本抽象和近似表示;
(2) 對話動(dòng)作是領(lǐng)域獨(dú)立的;
(3) 對話動(dòng)作的主要目標(biāo)是用于對話語句的篇章分析和理解。
在對話動(dòng)作的語義結(jié)構(gòu)中,槽位是領(lǐng)域相關(guān)的,對話動(dòng)作的表示結(jié)構(gòu)同樣涉及動(dòng)作類別,領(lǐng)域和槽位三個(gè)方面,其一般結(jié)構(gòu)可表示為:
Act_type(Domain1.slot1=value1,Domain2.slot2=value2,...)
動(dòng)作標(biāo)簽-領(lǐng)域-槽位的完整結(jié)構(gòu)如圖2所示,此結(jié)構(gòu)的優(yōu)點(diǎn)在于可以很自然地表示跨領(lǐng)域的語義和行為,并且由于對話動(dòng)作是從交互行為的角度設(shè)計(jì),因此也適用于表示系統(tǒng)端語句,即對話管理(Dialogue Manager,DM)的輸出,以及自然語言生成的輸入。不過用戶和系統(tǒng)的行為是有區(qū)別的,所以對話類別的定義需要考慮交互過程中角色的語句動(dòng)作。
圖2 動(dòng)作標(biāo)簽-領(lǐng)域-槽位的完整結(jié)構(gòu)
基于以上對自然語言理解結(jié)果的兩種表示方式分析,Diachat數(shù)據(jù)集的交互模式為人-人交互,且從對話雙方交互行為考慮,醫(yī)患對話意圖涉及多領(lǐng)域信息,動(dòng)作類別和領(lǐng)域-槽位呈現(xiàn)弱相關(guān)性。同時(shí),Diachat的對話目標(biāo)并非訂酒店、退機(jī)票、改簽火車票等常規(guī)任務(wù)。所以Diachat數(shù)據(jù)集采用對話動(dòng)作對跨領(lǐng)域的語義和行為進(jìn)行表示。通過對數(shù)據(jù)的分析和歸納,Diachat定義了15種表示行為的動(dòng)作標(biāo)簽,即動(dòng)作類別,動(dòng)作標(biāo)簽和領(lǐng)域-槽位-槽值共同組成一個(gè)完整的對話動(dòng)作。對話動(dòng)作從兩個(gè)方面表達(dá)表示語義和行為: 首先,領(lǐng)域-槽位-槽值作為動(dòng)作標(biāo)簽的參數(shù),部分動(dòng)作標(biāo)簽沒有領(lǐng)域-槽位-槽值;其次,動(dòng)作標(biāo)簽與對話的角色相關(guān),有些動(dòng)作標(biāo)簽表示患者的動(dòng)作,有些表示醫(yī)生的動(dòng)作,有些表示患者和醫(yī)生都具有的動(dòng)作。
(1) 領(lǐng)域-槽位-槽值作為動(dòng)作標(biāo)簽的參數(shù)
對于一句話,可以用同一動(dòng)作標(biāo)簽來表示槽位之間的組合關(guān)系。有些槽位在一句話中是搭配出現(xiàn)的,如血糖值和時(shí)間,這兩者存在關(guān)聯(lián)關(guān)系,因此一句話中同一動(dòng)作標(biāo)簽可以記錄多個(gè)槽位來表示它們之間的組合關(guān)系。例如,醫(yī)生建議患者: “餐后血糖值控制在10以內(nèi)?!边@句話的標(biāo)注如下:
Advice(問題.時(shí)間=餐后,問題.血糖值=10以內(nèi))
同時(shí),標(biāo)注中可以多次使用同一動(dòng)作標(biāo)簽來表示組合關(guān)系,例如,同一句話中的Domain.slot1=value1與Domain.slot2=value2的關(guān)系是相互對應(yīng)的,Domain.slot3=value3與Domain.slot4=value4是對應(yīng)的。則這句話的標(biāo)注如下:
Advice(Domain.slot1=value1,Domain.slot2=value2)
Advice(Domain.slot3=value3,Domain.slot4=value4)
(2) 動(dòng)作標(biāo)簽與對話的角色相關(guān)
醫(yī)生和患者在咨詢對話中的角色不是對等的,表達(dá)的行為和語義也有較大差異,動(dòng)作標(biāo)簽與對話角色的相關(guān)性體現(xiàn)了不同角色的對話場景。動(dòng)作標(biāo)簽與患者的對話場景和醫(yī)生的對話場景如表7、表8所示?;颊邔υ挼娜齻€(gè)主要場景分別是向醫(yī)生告知當(dāng)前健康狀況、向醫(yī)生詢問具體的問題、回應(yīng)醫(yī)生的提問或建議,也會(huì)有些閑聊的語句。
表7 患者的動(dòng)作標(biāo)簽和對話場景
表8 醫(yī)生的動(dòng)作標(biāo)簽和對話場景
醫(yī)生在對話中被動(dòng)地響應(yīng)患者,對應(yīng)的三個(gè)主要場景分別是根據(jù)患者告知的信息或患者提問給出確切的回答,為了進(jìn)一步了解患者而追問患者的情況、再就是一些寬泛的回答。在健康管理應(yīng)用中,患者是主導(dǎo),主動(dòng)尋求幫助,醫(yī)生被動(dòng)響應(yīng)。這一點(diǎn)與門診咨詢不同,在門診咨詢中,醫(yī)生是主導(dǎo),主動(dòng)詢問患者的問題,并引導(dǎo)門診咨詢的進(jìn)展。
15種動(dòng)作標(biāo)簽匯總以及標(biāo)注示例如表9所示(2)各動(dòng)作標(biāo)簽詳細(xì)定義可通過引言的Diachat標(biāo)注規(guī)范下載鏈接獲取。
表9 動(dòng)作標(biāo)簽信息匯總
在制定標(biāo)注規(guī)范的同時(shí),本研究開發(fā)了對話數(shù)據(jù)標(biāo)注系統(tǒng)。標(biāo)注主界面如圖3所示,分為左右兩部分,左邊是對話記錄,右邊是標(biāo)注人員對左邊語句進(jìn)行標(biāo)注的窗口。對話數(shù)據(jù)的標(biāo)注工作比較繁瑣,本研究采取如下三個(gè)方面的措施盡可能保證標(biāo)注的準(zhǔn)確性:
圖3 標(biāo)注界面
(1) 在進(jìn)入正式標(biāo)注工作之前,標(biāo)注人員進(jìn)行了培訓(xùn)和多次預(yù)標(biāo)注,直至掌握了標(biāo)注規(guī)范;
(2) 數(shù)據(jù)首輪標(biāo)注結(jié)束后,通過程序自動(dòng)檢查出一些規(guī)則性錯(cuò)誤,又進(jìn)行了多次人工核查,以盡可能消除標(biāo)注錯(cuò)誤;
(3) 在后續(xù)模型訓(xùn)練工作中,對發(fā)現(xiàn)的錯(cuò)誤標(biāo)注也進(jìn)行了多次修改。
對話狀態(tài)是每輪對話的重要信息,是系統(tǒng)端對用戶現(xiàn)狀的記錄和對用戶的響應(yīng)記錄?,F(xiàn)有醫(yī)療健康領(lǐng)域的對話數(shù)據(jù)集僅對語句進(jìn)行了標(biāo)注,缺少對話目標(biāo)、對話狀態(tài)、用戶端和系統(tǒng)端的狀態(tài)構(gòu)造,因此不足以支撐完整對話系統(tǒng)的構(gòu)建。對話系統(tǒng)中對話狀態(tài)跟蹤模塊需要通過前一輪的對話狀態(tài)、對話歷史、當(dāng)前對話等信息,推斷并更新置信狀態(tài),所以Diachat數(shù)據(jù)集針對用戶和系統(tǒng)的對話狀態(tài)構(gòu)造了用戶狀態(tài)(User State)和系統(tǒng)狀態(tài)(System State)。而對話策略模塊探索強(qiáng)化學(xué)習(xí)(Reinforcement Learning, RL)方法時(shí),對于用戶模擬器、系統(tǒng)模擬器、智能體(Agent)的搭建,用戶狀態(tài)、系統(tǒng)狀態(tài)和對話目標(biāo)也是不可或缺的。綜上,Diachat構(gòu)造了對話狀態(tài)和對話目標(biāo),為對話狀態(tài)跟蹤,對話策略模塊提供數(shù)據(jù)支持,支撐對話系統(tǒng)完整的數(shù)據(jù)需求。
3.3.1 用戶目標(biāo)和用戶狀態(tài)
對話系統(tǒng)中,用戶端對應(yīng)的是患者。Diachat數(shù)據(jù)集為每段對話構(gòu)造了初始的用戶目標(biāo)和最終目標(biāo)(Final Goal),隨著對話的展開,每輪對話的對話動(dòng)作更新用戶目標(biāo),即得到每輪對話的用戶狀態(tài)。在Diachat對話數(shù)據(jù)中,某些患者的目標(biāo)不明確,與出行咨詢的目標(biāo)有很大不同。Diachat數(shù)據(jù)集將患者的目標(biāo)分為兩種,第一種是患者表達(dá)明確問題的目標(biāo),第二種是患者表達(dá)當(dāng)前情況的目標(biāo)。
對于第一類目標(biāo),患者說出他目前的癥狀、飲食、治療、運(yùn)動(dòng)等情況后(對應(yīng)的動(dòng)作標(biāo)簽是Inform),引出一個(gè)具體問題,例如患者詢問醫(yī)生: “是不是不能喝呀”,希望得到患者一個(gè)明確的回答。第一種對話患者表達(dá)了明確的問題,在Diachat標(biāo)注體系里主要涉及AskForSure、AskFor、AskHow、AskWhy這四個(gè)動(dòng)作標(biāo)簽。針對這四類問題,醫(yī)生給出了回答,即認(rèn)為患者詢問的目標(biāo)達(dá)到了。
對于第二類目標(biāo),在表10例舉的對話中,患者只在講述自身情況,語句中沒有明確的、顯式的問題,這在健康管理咨詢中很常見?;颊咄ㄟ^講述自身情況,目標(biāo)無非是獲得醫(yī)生對健康方面的建議或者對疾病認(rèn)知的理解。所以,患者講清楚自己當(dāng)前的情況,讓醫(yī)生對自己有充分的了解,至于醫(yī)生是給出建議還是給出解釋都是可以的。如果醫(yī)生覺得用戶當(dāng)前有哪些做得不好,就會(huì)給出建議;如果醫(yī)生覺得目前用戶情況正常,不必?fù)?dān)心,就可以給出個(gè)解釋讓用戶寬心。所以,在這類場景下,患者描述完自己的情況就算是達(dá)到目標(biāo)了。
表10 患者表達(dá)當(dāng)前情況的目標(biāo)對話示例
通過對患者兩類目標(biāo)的分析,本研究可以基于患者對話數(shù)據(jù)的標(biāo)注構(gòu)造用戶目標(biāo),其思路就是遍歷一次咨詢對話中所有患者語句的對話動(dòng)作標(biāo)注,抽取Inform、AskHow、AskWhy、AskFor、AskForSure的領(lǐng)域和槽位,即構(gòu)成患者每次咨詢要完成的任務(wù)目標(biāo)。
3.3.2 系統(tǒng)狀態(tài)
系統(tǒng)端對應(yīng)對話中的醫(yī)生角色。Diachat數(shù)據(jù)集的系統(tǒng)狀態(tài)是指每輪對話時(shí)系統(tǒng)的狀態(tài),分為系統(tǒng)響應(yīng)用戶前的狀態(tài),即初始系統(tǒng)狀態(tài)(sys_state_init)和系統(tǒng)響應(yīng)用戶之后的狀態(tài),即系統(tǒng)狀態(tài)(sys_state),記錄著系統(tǒng)對用戶需求的理解和對用戶做出的響應(yīng)。區(qū)別于CrossWOZ數(shù)據(jù)集的系統(tǒng)狀態(tài),Diachat數(shù)據(jù)構(gòu)造初始系統(tǒng)狀態(tài)和系統(tǒng)狀態(tài)采取了不同的思路,出于如下三方面的考慮:
(1) 系統(tǒng)端不可能出現(xiàn)給不了滿足用戶需求的回答;
(2) 我們需要記錄系統(tǒng)端對用戶的回答;
(3) 因?yàn)橐涗浵到y(tǒng)端對用戶的回答,系統(tǒng)在響應(yīng)用戶前和響應(yīng)用戶后的狀態(tài)具有差別。
因此,在Diachat數(shù)據(jù)里,初始系統(tǒng)狀態(tài)表示的是系統(tǒng)在收到用戶的對話動(dòng)作,并且做出響應(yīng)前的系統(tǒng)狀態(tài),系統(tǒng)狀態(tài)表示系統(tǒng)在做出響應(yīng)后的狀態(tài)。所以,初始系統(tǒng)狀態(tài)是基于上一輪系統(tǒng)的系統(tǒng)狀態(tài)和本輪收到的用戶對話動(dòng)作構(gòu)造,系統(tǒng)狀態(tài)是把系統(tǒng)本輪的對話動(dòng)作、本輪的初始系統(tǒng)狀態(tài)合并得到,系統(tǒng)狀態(tài)和初始系統(tǒng)狀態(tài)構(gòu)造過程如圖4所示。
圖4 系統(tǒng)狀態(tài)和初始系統(tǒng)狀態(tài)構(gòu)造過程
Diachat數(shù)據(jù)集總共收集并標(biāo)注了693段對話,語句總和為4 686句,共6 594條對話動(dòng)作標(biāo)注。
圖5給出了Diachat的動(dòng)作標(biāo)簽標(biāo)注數(shù)量分布,其中Inform這一動(dòng)作標(biāo)簽的數(shù)量遙遙領(lǐng)先于其他動(dòng)作標(biāo)簽,AskForSure和Advice動(dòng)作標(biāo)簽的數(shù)量分別位于第二和第三,說明Diachat數(shù)據(jù)集的醫(yī)患對話以患者告知的自身情況、醫(yī)生針對患者告知的信息進(jìn)行確認(rèn)和建議為主。該數(shù)據(jù)集符合糖尿病健康管理對話系統(tǒng)的研究目的,即為廣大糖尿病患者就自身情況和日常醫(yī)療咨詢給出相關(guān)建議。
表11將Diachat數(shù)據(jù)集與Zhang等人研究發(fā)布的MIE數(shù)據(jù)集、Shi等人相關(guān)研究中的數(shù)據(jù)集(本文簡稱為UMC)、Liu等人研究發(fā)布的MedDG數(shù)據(jù)集、Du等人從臨床對話中提取癥狀及其狀態(tài)的相關(guān)數(shù)據(jù)集(本文簡稱為ES)、Lin等人[16]關(guān)于增強(qiáng)對話狀態(tài)診斷中的數(shù)據(jù)集(本文簡稱為EDSD)等現(xiàn)有醫(yī)療健康咨詢對話數(shù)據(jù)集在應(yīng)用場景、對話數(shù)量、語句數(shù)量、標(biāo)注數(shù)量、定義的實(shí)體屬性(槽位)數(shù)量進(jìn)行了對比。本文的Diachat數(shù)據(jù)集進(jìn)行了更加全面的標(biāo)注工作,相比于表11所列舉的其他數(shù)據(jù)集,Diachat還構(gòu)造了用戶目標(biāo)、用戶狀態(tài)和系統(tǒng)狀態(tài)。同時(shí),Diachat也為后續(xù)糖尿病健康管理對話系統(tǒng)數(shù)據(jù)集的擴(kuò)充工作奠定了基礎(chǔ)。
服務(wù)于慢性病健康管理的對話系統(tǒng)是人工智能技術(shù)在醫(yī)療健康領(lǐng)域的重要代表,本研究面向糖尿病患者,將慢性病健康管理的對話系統(tǒng)視為任務(wù)型對話系統(tǒng),構(gòu)建了首個(gè)面向糖尿病健康管理的對話數(shù)據(jù)集Diachat。Diachat數(shù)據(jù)集經(jīng)歷了數(shù)據(jù)收集、數(shù)據(jù)處理、標(biāo)注規(guī)范制定、標(biāo)注工具開發(fā)、數(shù)據(jù)標(biāo)注、基礎(chǔ)實(shí)驗(yàn)階段,標(biāo)注了4 686句醫(yī)患對話,共6 594條對話動(dòng)作。本文完成的工作主要體現(xiàn)在如下幾個(gè)方面:
(1) 收集并整理了一定規(guī)模的真實(shí)糖尿病健康咨詢對話數(shù)據(jù)。
(2) 從對話數(shù)據(jù)中歸納了糖尿病健康管理涉及的問題、飲食、行為、運(yùn)動(dòng)、治療這五個(gè)主要領(lǐng)域及其槽位,這五個(gè)領(lǐng)域在其他慢性病健康管理中具有共通性。
(3) 在對話意圖表示方面,歸納并設(shè)計(jì)了基于對話動(dòng)作的表達(dá)用戶行為的15個(gè)動(dòng)作標(biāo)簽,與用戶角色相關(guān)的動(dòng)作標(biāo)簽體現(xiàn)了用戶健康咨詢的對話場景,與系統(tǒng)角色相關(guān)的動(dòng)作標(biāo)簽體現(xiàn)了醫(yī)生回答用戶咨詢的對話場景。
(4) 為了支持構(gòu)建完整的對話系統(tǒng)研究,Diachat還構(gòu)造了用戶目標(biāo)、用戶狀態(tài)和系統(tǒng)狀態(tài)。在當(dāng)前數(shù)據(jù)集的標(biāo)注體系下,用戶語句的對話動(dòng)作可以支持自然語言理解模塊研究,系統(tǒng)狀態(tài)可以支持對話狀態(tài)跟蹤模塊研究,系統(tǒng)狀態(tài)和醫(yī)生語句的對話動(dòng)作可以支持對話策略模塊研究,醫(yī)生語句的對話動(dòng)作可以支持自然語言生成模塊研究。另外,用戶目標(biāo)、用戶狀態(tài)可以支持用戶模擬器研究,并支持對話策略模塊研究。
(5) 基于Diachat數(shù)據(jù)集,本文分別構(gòu)建了自然語言理解、對話狀態(tài)跟蹤、對話策略和自然語言生成基礎(chǔ)模型,并搭建了一個(gè)簡單的糖尿病健康管理對話系統(tǒng)“Diachatbot”,從評價(jià)值來看還有較大提升空間。
糖尿病健康管理任務(wù)的復(fù)雜性遠(yuǎn)大于常規(guī)任務(wù)(如出行咨詢),不僅需要大規(guī)模數(shù)據(jù)的支持,還需要醫(yī)療健康知識圖譜及基于知識圖譜的推理模型。因此,本文構(gòu)建的數(shù)據(jù)集需要進(jìn)一步擴(kuò)充,模型構(gòu)建方法也有待進(jìn)一步提升。未來工作擬從以下幾個(gè)方面展開:
(1) 借鑒成功經(jīng)驗(yàn),構(gòu)建更大規(guī)模的標(biāo)注數(shù)據(jù)集。真實(shí)健康管理對話數(shù)據(jù)獲取難度較大,而MultiWOZ、CrossWOZ等數(shù)據(jù)集通過模擬對話成功構(gòu)造出大規(guī)模的對話數(shù)據(jù),并在構(gòu)造對話的同時(shí)獲得標(biāo)注信息。未來工作將在此思路的啟發(fā)下,設(shè)計(jì)模擬對話的場景、交互方式和平臺,招募醫(yī)生和志愿者進(jìn)行模擬對話,構(gòu)造健康管理對話數(shù)據(jù)集。
(2) 在現(xiàn)有數(shù)據(jù)集上,結(jié)合當(dāng)前對話系統(tǒng)研究趨勢,持續(xù)探索各模型的優(yōu)化,包括用戶模擬器的探索。
(3) 對話系統(tǒng)充當(dāng)著醫(yī)生的角色,所做出的健康決策不僅和對話策略密切相關(guān)的,而且還高度依賴于糖尿病相關(guān)的醫(yī)療健康知識圖譜以及基于知識圖譜的推理模型。糖尿病相關(guān)知識圖譜涉及的知識與本文所制定規(guī)范里的五個(gè)主要領(lǐng)域一致,因此未來工作也將重點(diǎn)關(guān)注這五類健康知識的擴(kuò)充,構(gòu)建知識圖譜,并針對醫(yī)生回復(fù)的三個(gè)場景探索基于這五類知識的健康推薦模型。
(4) 對話系統(tǒng)的研究思路除了管道和端到端(End-to-End)兩種經(jīng)典體系外,在知識圖譜研究的推動(dòng)下,近年來還出現(xiàn)了知識感知的構(gòu)建思路,不同的體系各具優(yōu)勢,因此未來工作也可探索融合多種實(shí)現(xiàn)的對話系統(tǒng),這在現(xiàn)實(shí)生活中有真實(shí)的對照,比如患者遇到重要醫(yī)療問題時(shí)通常會(huì)綜合多個(gè)醫(yī)生的建議再做決策。