?

知識嵌入的醫療對話生成

2024-01-03 12:04曾磊磊武振華
天津科技大學學報 2023年6期
關鍵詞:子圖圖譜實體

王 嫄,曾磊磊,武振華,熊 寧

(天津科技大學人工智能學院,天津 300457)

現如今,醫療資源緊張的情況普遍存在,根據2020 年中國衛生健康統計年鑒[1],全國平均每千人的醫療機構床位數為6.30 張,其中:東部地區平均每千人的醫療機構床位數為5.78 張,中部地區平均每千人的醫療機構床位數為6.44 張,西部地區平均每千人的醫療機構床位數為6.84 張。不同地域情況不同,西部地區地廣人稀,千人床位數相對較高,而東部地區人口密度較大,千人床位數相對較低。倘若人人都去線下醫院咨詢,這勢必會給醫院造成很大的壓力,并且容易引起交叉感染,導致更加嚴重的后果。因此,一個可以讓患者在線咨詢和問診的醫療對話系統就顯得十分必要。它能夠節省人力、物力,減小線下醫院的壓力,提高問診效率,把有限的醫療資源留給最需要的群體,更好、更及時地滿足患者的需求。

知識圖譜本質上是語義網絡的知識庫,它主要包含實體、屬性和關系。實體是指現實世界中的事物,比如人、地名、概念、藥物、公司等;屬性是指實體具備的某些特征,屬性值即為某種屬性相對應的具體值;關系則用來表達不同實體之間的某種聯系?,F有基于知識圖譜的醫療對話生成的基本思想是在生成回復時向模型提供所需要的實體信息和關系信息。然而,回復生成模型的輸入序列長度通常是有限的。例如,對于GPT-2(generative pretrained transformer,GPT)模型來說,輸入序列長度不能超過1 024 個詞,因而背景知識的引入會高度影響可以輸入模型的上下文信息量的大小。在早期工作嘗試的方法中,圖譜中的局部知識被改寫成偽話語并與對話歷史中的話語一起提供給模型,但這種做法容易丟失知識圖譜中的實體關系邏輯推理信息。

在醫療對話生成中,為了提高模型生成回復的內容準確性和對話信息量,很多學者[2-3]嘗試根據歷史對話引入相關疾病實體信息,但是這些方法在多輪的長對話中仍然存在話語之間聯系不緊密、醫療信息表述多樣化、醫療信息利用不足的問題。

為了解決上述問題,本文提出知識嵌入的醫療對話生成模型(medical conversation generation model based on knowledge embedding,MCG-KE),根據歷史對話進行實體預測得到上下文知識嵌入實體,引入串行圖編碼方式和圖注意力機制獲得當前對話相關的醫療知識圖譜子圖編碼,并保留子圖在其結構中的編碼信息。該模型通過實體預測模塊得到上下文知識嵌入實體,利用歷史對話中的實體生成知識圖譜子圖,同時獲取子圖的語義信息,利用圖注意力機制表示實體之間的關系,使用串行圖編碼技術簡潔地編碼知識圖譜子圖,將上下文知識嵌入實體、歷史對話和子圖編碼結果作為模型的輸入,從而使生成的回復具有醫學常識一貫性。

1 相關工作

在對話系統中產生基于知識的回復是一個重要的研究挑戰。知識圖譜可以被視為現實世界的一個抽象概念,它可以潛在地促進對話系統產生基于知識的回復。然而,以端到端方式將知識圖譜集成到對話生成過程中是一項艱巨的任務。Chaudhuri 等[4]將知識圖譜集成到回復生成過程中,訓練一個 BERT(bidirectional encoder representations from transformers)模型,學習在多任務的端到端設置中使用知識圖譜的元素進行回答。在使用圖拉普拉斯函數進行訓練和推理的過程中,將知識圖譜的k 跳子圖納入模型中。引入外部知識,通過選擇具體的內容加到回復生成過程中,提升回復的質量。但知識為實體,無法為回復生成提供其他更加豐富的信息,而且非結構化的表示方案要求模型具有很強的能力從知識文本集合中進行知識選擇。Liu 等[5]提出基于擴充知識圖的開放域對話生成模型(AKGCM),融合非結構化知識和結構化知識,模型由知識選擇和回復生成這兩個模塊組成。知識選擇模塊轉化為一個多跳圖問題,基于強化學習的推理模型(MINERVA)有效捕獲會話流,實現知識選擇,回復生成模塊使用帶復制機制的編碼器、解碼器模型,基于所選知識和用戶輸入生成最終回復。通過引入外部背景知識,神經對話模型可以在生成流暢和信息豐富的回復方面顯示出巨大的潛力。然而,構建這種以知識為基礎的對話很費力,而且現有模型在遷移到訓練樣本有限的新領域時通常表現不佳?;谌醣O督學習的新型三階段學習框架(TSLF)受益于大規模的對話和非結構化知識庫,同時作者還設計了帶有解耦解碼器的Transformer 變體,促進了響應生成和知識整合的分離學習[6]。

本文研究基于知識的醫療對話生成。知識的引入可以豐富模型生成回復的信息量,緩解高頻無實際意義的回復的問題。目前,基于知識的醫療對話生成主要分為基于實體知識的醫療對話生成和基于圖譜知識的醫療對話生成。

基于實體知識的醫療對話生成主要通過挖掘與上下文相關的醫學實體,輔助回復生成。研究人員分別使用檢索方法和生成方法,將醫學實體知識用于醫療對話生成任務,其中檢索方法通過使用醫學實體作為關鍵信息在語料庫中檢索與該醫學實體最相關的回復,而生成方法則將醫療實體編碼并作為序列到序列模型的輸入逐詞生成回復[2]。

基于圖譜知識的醫療對話生成包括引入圖譜推理技術的醫療對話生成和引入圖譜融合技術的醫療對話生成,主要利用醫療知識圖譜實現。

引入圖譜推理技術的醫療對話生成工作如下。通過構造一種全局注意力機制以及癥狀圖模擬癥狀之間的關聯,提高了在醫療對話中對于每一句話出現相關癥狀的預測準確率,以及癥狀推理(患者是否有某一種癥狀)的精度和癥狀診斷的性能[7]。為了解決訓練數據匱乏疾病的醫療對話生成模型學習困難的問題,Lin 等[8]提出低資源醫療回復生成器,該模型集成了分層上下文編碼器、元知識圖推理網絡和圖指導的響應生成器,利用可動態進化的常識圖反映和推斷疾病與癥狀的相關性,將問診模式從數據資源豐富疾病遷移到數據資源匱乏疾病。

引入圖譜融合技術的醫療對話生成工作如下。為了全覆蓋復雜的醫療對話自然語言模式和場景,Xu 等[9]提出了知識路由關系對話系統,該系統將豐富的醫療知識圖譜融入對話管理的主題切換中,并且使其與自然語言理解和自然語言生成協作。系統使用知識路由DQN(KR-DQN)管理主題切換,它集成了一個關系細化分支編碼不同癥狀和癥狀疾病對之間的關系,以及一個用于主題決策的知識路由圖譜分支。為了使問答型醫療對話系統檢索出來的答案更加科學合理,章毅等[10]提出了一種基于語言模型和實體匹配的問答型醫療對話系統構建方法。作者收集網絡醫療討論帖清洗后存入ElasticSearch 中作為檢索數據集;使用醫療自然語言處理比賽數據集的開源數據,訓練出醫療相關的命名實體識別模型;收集開源網站的公開數據集構成醫療知識圖譜,擴充檢索流程。作者構建的基于語言模型和實體匹配的問答型醫療對話系統在經過召回、精排和綜合評分幾個步驟之后,結合合理的評分機制,輸出一個最為合適的回答,彌補檢索式問答系統和知識圖譜式問答系統的缺陷。穆天楊等[11]將知識圖譜中的結構化信息應用到對話系統中,提出了融合醫療知識圖譜的端到端對話系統。使用詞表匹配與深度學習方法相結合的方式提取對話信息中的關鍵詞,并根據提取的關鍵詞搜索知識圖譜中的相關信息作為GPT-2 模型的輸入,從而提高端到端對話系統的表現效果。

上述基于實體知識和圖譜知識的醫療對話生成方法都在對話生成過程中引入了知識,但知識之間的復雜語義線索關系仍未被有效利用,圖譜的引入仍然占用較多數據空間。

2 模型與方法

2.1 問題形式化描述

知識嵌入的醫療對話生成任務定義如下。給定醫生和患者歷史對話的文本序列 S = {S1, … , Si,… ,Sk}和醫療知識圖譜數據集MKG,其中k 表示當前對話的輪次,Si為來自醫生d 或患者p 的由li個詞組成的話語 Si= {wi1, … ,wili}。任務基于歷史對話S 生成上下文一致且有醫學意義的長度為 r 的文本序列R = {wi1,… ,wir}作為回復為患者提供診斷建議。

2.2 模型框架

本文模型利用歷史對話和醫療知識圖譜引導對話生成預問診回復,模型包含上下文知識嵌入模塊、子圖編碼模塊和回復生成模塊。上下文知識嵌入模塊利用數據集中的候選實體集合計算出與歷史對話最相關的醫學實體;子圖編碼模塊旨在通過串行圖編碼技術編碼從醫療知識圖譜數據集中獲取的子圖;回復生成模型則使用上下文知識嵌入實體、歷史對話和編碼后的醫療知識圖譜子圖生成回復。首先,根據患者和醫生的歷史對話以及候選實體集合計算出與歷史對話最相關的上下文知識嵌入實體;然后,基于歷史對話數據中的醫學實體從醫療知識圖譜中獲取子圖,并使用串行圖編碼方法對其進行簡潔編碼,從而獲取子圖的相關語義信息;最后,將上下文知識嵌入實體、歷史對話和編碼的子圖連接并輸入GPT-2 模型中解碼生成對話回復。訓練過程中,通過最小化下一個標記預測的負對數似然優化來自GPT-2 模型的權值?;谥R嵌入的醫療對話生成模型如圖1所示。

圖1 基于知識嵌入的醫療對話生成模型Fig.1 Medical conversation generation model based on knowledge embedding

2.3 上下文知識嵌入模塊

在上下文知識嵌入模塊中,首先基于醫生和患者的歷史對話的文本序列S 得到對應的類型向量T 和位置向量P。類型向量T 是指醫生d 或患者p,位置向量P 通過學習得到。將文本序列S、類型向量T 和位置向量P 作為BERT[12]的輸入進行編碼即得到歷史對話向量Mu。

為進一步提升模型對非線性復雜上下文語義的表征建模能力,本文引入由多個節點層組成,每一層全連接到下一層的多層感知機(multilayer perceptron,MLP)映射歷史對話向量Mu到患者當次就診上下文表示向量Vp,即

計算 Vp和每個候選實體向量的乘積,使用softmax 函數從數據集的候選實體集合中找到概率值最大即最相關的實體。第i 個候選實體與當前就診歷史對話相關性概率為

其中ei是實體i 的詞向量。

選擇相關性概率最大的實體作為被預測的實體,即關鍵指導實體,為

2.4 子圖編碼模塊

利用歷史對話數據中的醫學疾病實體獲取醫療知識圖譜中以該疾病實體為中心的子圖。串行圖編碼見表1。在串行圖編碼中,子圖中的關系和實體標記在編碼結果GE 中的words 層中串行排列,在編碼結果中的segments 層使用兩個新的標記entity 和relation 區分words 層的關系和實體。由于輸入上下文的長度固定,通過使用串行圖編碼技術,模型編碼知識圖譜所需要的空間減少,實現了知識圖譜高效編碼,節省了輸入數據空間。

表1 串行圖編碼Tab.1 Serial graph coding

為了保存子圖的結構信息,本文創建并添加了子圖的圖注意力矩陣,矩陣中的權值設置為1 或者0,即當兩個實體在醫療知識圖譜中相鄰并有邊連接,矩陣的權值設置為1,否則權值設置為0。例如:實體吸煙中毒癥、肺部檢查、腹痛、高血壓、布美他尼片、消化內科對應的圖注意力機制矩陣如圖2 所示。

圖2 圖注意力機制矩陣Fig.2 Graph attention mechanism matrix

對于序列S,GPT-2 模型在進行預測時,模型第l層第i 個詞的隱狀態計算公式如下,其中Q、K、V是可學習的參數,Pj即圖注意力矩陣。

2.5 回復生成模塊

回復生成模塊旨在使用GPT-2 模型生成醫療問診回復。為了使生成的回復更加具有醫療場景語義信息,將使用子圖編碼模塊得到的編碼結果、嵌入實體i 和歷史對話共同作為GPT-2 模型的輸入,并解碼生成回復

其中:R 為模型生成的回復,GE 為子圖編碼的結果,S 為歷史對話序列,i 為上下文知識嵌入實體。

3 實 驗

3.1 實驗設置

3.1.1 數據集

為了證明本方法的有效性以及魯棒性,使用兩個公開數據集MedDG 和CovidDialog-Chinese 以及知識圖譜MedicaKnowledgeGraph 進行實驗。

MedDG 數據集[2]是一個與12 種常見胃腸道疾病相關的大規模、高質量的醫學對話數據集,它包含從中國健康咨詢平臺收集的超過17 000 段對話,是目前醫療對話回復生成任務測評中的公認數據集。該數據集平均每個話語包含詞數是17.7。候選實體集合有5 類共160 個實體,類別包括疾病、癥狀、屬性、檢查和藥物。疾病實體共12 項,包括胃炎、腸炎、便秘等;癥狀實體共62 項,包括腹瀉、腹痛、腹脹等;屬性實體共4 項,包括時長、誘因、性質、位置;檢查實體共20 項,包括胃鏡、腸鏡、便常規等;藥物實體共62 項,包括奧美拉唑、嗎丁啉、莫沙必利等。本文將該數據集劃分為訓練集(14 864 段對話)、驗證集(2 000 段對話)和測試集(1 000 段對話)。

CovidDialog-Chinese 數據集[13]來源于haodf.com在線醫療服務平臺,它包含1 088 段關于新冠肺炎及其他相關肺炎的中文對話,共有來自935 名患者和352 名醫生的話語9 494 條,平均每個話語包含42.8個詞。候選實體集合使用TF-IDF(term frequencyinverse document frequency)技術從數據集中提取。每段對話由3 個部分組成:對患者病情和病史的描述、患者與醫生之間的對話、由醫生提供的診斷和治療建議。本文將該數據集劃分為訓練集(870 段對話)、驗證集(109 段對話)和測試集(109 段對話)。

MedicaKnowledgeGraph 是一個以垂直型醫藥網站為數據來源的知識圖譜,以疾病為核心,包含7 類規模為4.4 萬的知識實體,11 類規模約30 萬實體關系的知識圖譜。

3.1.2 數據預處理

數據預處理操作主要有MedicaKnowledgeGraph知識圖譜預處理、醫療知識圖譜子圖獲取、歷史對話和話語角色獲取。

首先,利用MedicaKnowledgeGraph 知識圖譜生成以疾病實體為中心的三元組集合,其中每個三元組由兩個實體和它們之間的關系組成,例如肩關節、symptom(癥狀)、骨質疏松。

然后,根據兩個數據集的劃分情況,利用醫生和患者的歷史對話獲取每段對話中醫生和患者的全部話語,根據三元組集合獲取醫療知識圖譜子圖信息并保存在相應的文件中,其中包含實體、關系以及對應的圖注意力機制矩陣。

最后,根據兩個數據集的劃分情況,獲取每段對話對應的全部歷史對話以及每個話語對應的角色,并保存在相應的文件中。

3.1.3 基線模型

由于本文方法旨在根據歷史對話和醫療知識圖譜生成預問診回復,因此選擇目前最優且相關的基于知識庫的回復生成模型進行對比,并從相關文獻中直接抽取實驗結果。

Retrieval:基于檢索的回復生成方法,使用Lucene 搭建檢索引擎。它使用最相關的實體從知識庫中檢索最相關的回復。

Seq2Seq[14]:一種經典的基于注意力機制的序列到序列模型,由編碼器和解碼器組成,其中編碼器負責編碼歷史對話,解碼器負責解碼得到的最終回復。

HRED[15]:在Seq2Seq 的基礎上,采用分層循環神經網絡(RNN)對上下文進行建模。通過分層堆疊兩個RNN 擴展了傳統的RNN 編碼器,一個在單詞級別,一個在話語級別。

DialoGPT[16]:DialoGPT 模型在GPT-2 基礎上進行擴展,也為自回歸語言模型,適合用于處理生成式任務,使用了多層Transformer 解碼器作為模型架構。但不同于GPT-2 模型,DialoGPT 模型的訓練使用了從Reddit 討論鏈中提取出的大規模對話數據,是GPT-2 模型的一個變體,實現了最大化互信息評分方程。

Transformer[17]:Transformer 模型拋棄了傳統的RNN 和卷積神經網絡(CNN)結構,設計了一種注意力機制,它由且僅由自注意力機制和前饋神經網絡組成,使用堆疊的Encoder-Decoder 結構搭建。

BERT-GPT[18]:Transformer 模型的一個預訓練方法,其中BERT 用于預訓練Transformer 編碼器部分,GPT 用于預訓練Transformer 模型解碼器部分。

TAPT[19]:任務自適應預訓練技術。先對任務相關的無標注語料進行預訓練,然后再對特定任務進行微調。

BERT-GPT-TAPT[13]:在BERT-GPT 模型的基礎之上使用了任務自適應預訓練技術。

MCG-HE:基于歷史對話和實體預測的醫療對話生成模型,主要包含實體預測模塊和回復生成模塊,實體預測模塊使用BERT 預測與歷史對話最相關的關鍵指導實體,回復生成模塊將關鍵指導實體以及歷史對話作為GPT-2 模型的輸入實現回復生成。

3.1.4 實驗參數

本文模型MCG-KE 使用PyTorch 深度學習框架實現,其中子圖編碼模塊設置:batch size 為4,學習率為6.0×10-5,epoch 為3,所使用的中文編碼器是BertTokenizerFast;回復生成模塊使用 M=12 層GPT-2 預訓練模型,設置batch size 為1,學習率為1.0×10-5,epoch 為3,模型設置每句生成對話的最長長度為50 個詞,基線模型部分參數設置見表2。

表2 基線模型部分參數設置Tab.2 Parameter configurations of baseline model

3.1.5 評估指標

采用自動評估和人工評估兩種方法評估MCGKE 方法。

自動評估指標:又稱為客觀評價指標。本文參考對話系統采用BLEU(bilingual evaluation understudy)和Distinct 兩個指標。

BLEU 指標評估生成回復與真實回復的詞重疊程度,計算公式為

其中:c 為生成的回復句子長度;r 為參考回復句子長度;Wn指n-gram 的權重,n-garm 是包含N 個詞的連續詞片段,一般設為均勻權重,即對于任意n 都有Wn=1/N;Pn是指n-garm 的精度,計算公式為

其中:candidates 是參考回復,Countclip(n-gram)表示某一個n-gram 在生成回復中的個數,Count(n-gram′)表示n-gram′在candidates 中的個數。

Distinct 指標評估生成回復在詞級別的多樣性。Distinct-1 為所有生成回復中不同的1-gram 占所有1-gram 的比例。Distinct-2 為所有生成結果中不同2-gram 占所有2-gram 的比例。Distinct 指標取值越高,表示生成的結果中含有越多不同的n 元組,說明結果的多樣性更好。Distinct-n 計算公式為

其中:Countunique(n-gram)表示回復中不重復的 ngram 詞語數量,Count(n-gram)表示回復中n-gram 詞語的總數量。

人工評估指標:又稱為主觀評價指標,是對話系統中最重要的評估指標,能表示對話系統模擬人工的有效性。本文使用了correctness、relevance、informativeness、doctor-likeness 這4 個指標評估生成回復的質量。correctness 是指這個回復在臨床上的正確程度,relevance 是指回復與歷史對話的相關程度,informativeness 是指在回復中提供了醫療信息和建議的信息量,doctor-likeness 是指生成回復與真實醫生回復的相似程度。本文邀請4 位醫學相關專業的專家根據相關醫學知識對生成回復進行評估。他們對所有生成回復的4 個指標從1~5 進行打分,分數越高代表效果越好。計算所有生成回復在每個指標上的平均分數,并作為最終結果。

3.2 實驗結果與分析

3.2.1 自動評估

在MedDG 數據集和CovidDialog-Chinese 數據集上的自動評估實驗結果分別見表3 和表4,其中-e表示模型不使用實體預測模塊。本文選取已發表論文中所匯報的在兩個數據集上的先進方法進行對比,這幾種對比模型的實驗結果直接來自相關參考文獻。為了讓實驗結果更加清晰、直觀,本文把所有自動評估實驗結果都歸一化為[0,100]之間,并且最優結果以粗體表示。

表3 在MedDG數據集上的自動評估指標對比Tab.3 Comparison of automated assessment indicators on MedDG datasets

表4 在CovidDialog-Chinese 數據集上的自動評估指標對比Tab.4 Comparison of automated assessment indicators on CovidDialog-Chinese datasets

從表3 可以看出,在MedDG 數據集上,MCGKE 模型在BLEU 指標上優于所有的基線模型,而在Distinct 指標上,MCG-KE 沒有取得很好的表現,不如MCG-HE 模型。猜測可能的原因是Distinct 指標不適用于此任務[20],該指標用于度量生成回復的多樣性,多樣性越高并不代表生成回復的質量就越好,由于醫療對話生成屬于任務型對話,模型應該根據患者的需求給出符合醫學原理的正確回復,因此更加關注生成的回復是否準確,而不是多樣。

從表4 可以看出,在CovidDialog-Chinese 數據集上,MCG-KE 模型在BLEU 指標上優于所有的基線模型,同時MCG-HE 模型也比基線模型效果好;但如果不使用實體預測模塊,指標均有下降,說明實體的加入對生成回復有積極作用。

從以上兩個數據集的實驗結果可以看出,在BLEU 指標上MCG-KE 模型取得了比較好的結果,說明MCG-KE 模型生成的回復更加接近于真實回復,醫療知識圖譜和上下文知識嵌入能夠有效指導模型生成更加準確、合適的回復。

3.2.2 人工評估

在MedDG 數據集和CovidDialog-Chinese 數據集上的人工評估實驗結果見表5 和表6,其中最優結果用粗體表示。與自動評估不同的是,本文選擇在兩個數據集上與相關學者的實驗結果進行對比。

表5 在MedDG數據集上的人工評估指標對比Tab.5 Comparison of manual assessment indicators on MedDG datasets

表6 在CovidDialog-Chinese數據集上的人工評估指標對比Tab.6 Comparison of manual assessment indicators on CovidDialog-Chinese datasets

從表5 和表6 可以看出,在兩個數據集上,MCG-KE 模型在4 個人工評估指標上都取得了最優結果,相比于基線模型有明顯提升。同時,MCG-HE模型比基線模型效果好,再次證明了實體的引入有助于生成回復。另外,從實驗結果可以看出,MCG-KE模型比MCG-HE 模型效果好,模型在引入了醫療知識圖譜之后,模型生成的回復被認為更加正確,與上下文更加相關,信息量更加豐富,由此說明醫療知識圖譜含有豐富的實體以及關系信息,能夠指導模型生成更加接近于人類醫生的回復。

4 結 語

本文提出了知識嵌入的醫療對話生成模型MCG-KE,該模型通過歷史對話預測最相關的上下文嵌入實體,利用圖注意力機制表示實體之間的關系,使用串行圖編碼技術編碼醫療知識圖譜子圖,將醫療知識圖譜集成到基于知識的醫療對話系統當中,指導模型生成更加接近于人類醫生的回復,提升系統的推理魯棒性。在實驗部分,通過在兩個數據集上的實驗結果驗證了本文方法的有效性。知識圖譜在不同實體之間的復雜關系可以被簡潔地編碼,并且不會導致知識正確性、一致性和信息性等關鍵指標下降。

猜你喜歡
子圖圖譜實體
繪一張成長圖譜
前海自貿區:金融服務實體
臨界完全圖Ramsey數
實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
補腎強身片UPLC指紋圖譜
兩會進行時:緊扣實體經濟“釘釘子”
振興實體經濟地方如何“釘釘子”
基于頻繁子圖挖掘的數據服務Mashup推薦
主動對接你思維的知識圖譜
不含2K1+K2和C4作為導出子圖的圖的色數
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合