医疗是人们生活中不可少的组成部分,但是部分患者的就医条件受到制约.一方面,医疗资源稀缺,医生供不应求;另一方面,患者受时空限制,无法抽出时间或行程不便,导致许多患者无法及时得到诊断和治疗.
基于患者需求与客观条件制约之间的冲突,我们希望模拟医生对用户的询问作出回答,且为用户提供更便利的在线咨询方式,从而解决时空冲突问题.本文提出了一种基于记忆网络的知识感知医疗对话生成模型(memory networks based knowledge-aware medical dialogue generation model, MKMed).
记忆网络主要解决任务的知识源多、需要容纳大量信息和进行复杂推理等需求,且能够使长期记忆得到更好的保存.Weston等人[1]在2014年首先提出了记忆网络的结构体系,该网络包含4个模块,“input feature map”用于编码知识、“generalization”用于更新旧记忆、“output feature map”用于产生新的输出向量、“response”用于将上一模块的输出转换为回复.Sukhbaatar等人[2]在2015年扩展了这项工作,使得记忆网络可以被端到端的训练.Kumar等人[3]在2016年提出了动态记忆网络,使其在Face-book的bAbI数据集上进行的“Counting and Lists/Sets”任务中得到了很大的改进.Xu等人[4]在2016年通过在最后一层推理中加入复制机制,解决了超出词汇表单词如电话号码、航班号等的问题.
本文提出的基于记忆网络的知识感知医疗对话生成模型恰好面临着记忆网络针对的难点,因为需要同时处理医患的对话历史信息以及医疗数据库中的知识信息,即信息源多且复杂,需要多步的推理,所以模型采用了记忆网络的基本理念,将各信息源进行编码,写入记忆存储单元,然后结合记忆网络中存储的向量进行解码,生成最终回复.
根据生活常识,为了给出正确的诊断和适当的治疗,医生通常考虑症状和疾病.如果该医生以前遇到过相同的症状和疾病,则会通过经验给出答案,如果出现的是罕见的疾病,该医生通常会查阅相关的医学文献.医学文献和医生的经验可以被视为医疗知识.总结上述过程,我们发现:医学知识是生成回复不可缺少的一部分.因此本文提出的模型将外部知识纳入医学对话的生成.
知识感知生成任务指的是根据准确的外部知识生成回复.根据知识的结构进行划分,目前此类任务可以被分为2类,分别是结构化知识感知生成以及非结构化知识感知生成任务,前者主要利用三元组知识[5-6]或者知识图谱[7-8],后者多基于非结构化文本知识[9-10].本文提出的模型MKMed利用三元组知识优化回复生成.Liu等人[5]在2018年提出了NKD模型,该模型设计了实体匹配和实体发散模块,直接结合对话历史的编码向量,使用多层感知机等抽取并预测相关三元组知识.2019年Liu等人[7]提出的AKGCM模型根据对话历史扩充知识图谱,以便在开放域对话任务中与对话历史更好地结合.2019年Lian等人[9]提出了PostKS模型,该模型利用非结构化知识的后验分布来指导回复生成时知识的选择,从而优化基于知识的对话回复生成.目前存在的大多数知识感知生成方法无法应用于医疗场景,如只针对从开放域知识库中选择知识;或者无法处理规模庞大医疗有关的外部数据库;又或无法解决医疗对话任务中需要根据对话历史多步推理进行诊断的问题等.因此本文提出的MKMed模型引入专用的医学领域三元组知识进行知识实体追踪以及2阶段的预测,从而多步筛选,并使用记忆网络以及多跳注意力机制进行推理.
图1是一组医患对话的例子,图1(a)是对话历史,图1(b)是出现在对话历史中有助于诊断和医疗推荐的实体与外部知识.患者和医生的对话历史中可能出现许多疾病、症状,我们可以通过直接精确词匹配从对话历史中提取这些实体.图1(b)部分显示了出现在对话中的疾病和药品部分的实体以及对应的症状、病原和治疗方法等三元组知识.我们发现图1(b)展示的三元组知识,如〈过敏性鼻炎;症状;流鼻涕,打喷嚏,鼻子发痒〉和〈丙酸氟替卡;适用;鼻炎〉,有助于诊断和推荐药物.因此可以佐证:理解对话历史中的实体对于生成正确的回复至关重要.
Fig. 1 Example of multi-turn doctor-patient dialogue
图1 医患多轮对话示例
我们把这些从对话历史中抽取的实体对应的知识命名为追踪知识.考虑到如果仅匹配出症状等实体可能导致缺乏治疗信息,又部署了知识预测器来筛选出可用于回复生成的实体对应的知识,这些知识被称为预测知识;然后,知识写入模块将追踪知识和预测知识的三元组编码成向量表达,并分别写入对应的记忆网络存储单元;最终,回复生成模块通过整合在记忆网络中保存的信息生成回复.
本文在带有外部知识的大规模医疗对话数据集KaMed[11]上进行了相关实验,该数据集中的医疗对话收集来自在线中文医疗咨询平台“春雨医生”[12],医学知识爬取来自最大的中文医学知识平台“中文医学知识图谱”[13],皆为真实数据.实验结果表明基于记忆网络的知识感知医疗对话生成模型在回复生成的流畅性、多样性、正确性和专业性等方面显著优于大部分基准模型.
现有的医学对话回复生成模型大多是任务导向型对话类型,患者表达症状,对话系统将其分类为相应的疾病.最初医疗诊断任务多是基于电子健康记录进行自动诊断[14],如2018年Tou等人[15]发表的论文中提出的感染检测系统.但是电子健康记录需要通过复杂专业的医疗诊断程序来获得,信息获取的代价很高.为了解决这个问题,Wei等人[16]在2018年的论文中提出了利用病人自述以及自动识别对话历史信息中出现过的症状,然后通过强化学习和模板来产生回复的方法.在此基础上,Lin等人[17]在2019年的论文中通过从数据集语料库中抽取症状图来对症状之间的关系进行建模,以提高症状提取识别的性能.Xu等人[18]在2019年的论文开发了一个对话系统,引入外部知识图谱,结合已经标注好的患者对话信息,显示考虑症状与疾病的概率,结合强化学习做出决策概率,最后依然用模板生成回复.虽然以上工作都致力于研究医疗对话生成这一课题,但不能应用于真实的医疗场景.一方面对话历史中出现的症状和疾病等需要大量的人工标注,是劳动密集型的,并且医疗诊断任务被视为分类问题,随着疾病和症状对的增加,模型的学习复杂度会变得很高.另一方面,医学领域知识通常是动态变换和大规模的,现有的方法只处理有限的特定疾病,这导致它们不适用于疾病和症状多的场景.最后上述模型都使用给定的模板生成回复,不能同时给出诊断和医疗建议,用户使用体验不佳.因此本文将外部知识融入医学对话生成,使用精确词匹配自动识别医疗实体并可动态扩展外部实体知识库.
医疗对话生成任务需给定医患对话历史,对话历史由多轮句子组成,可表示为H={S1,S2,…,S|H|}.
给定外部实体知识数据库,医疗实体集合用E={e1,e2,…,e|E|}来表示.根据Bordes等人[19]在2015年提出的方法,将事实定义为包含头实体h、关系r和与头实体h具有关系r的尾实体集合t的三元组.本文中每条知识以(头实体h,关系r,尾实体集合t)的三元组形式来组织,表示为τi,j.所有以ei为头实体的三元组知识集合表示为G(ei)={τi,1,τi,2,…,τi,|G(ei)|}.每条知识经分词后由一系列词组成,可表示为τi,j={Wi,j,1,Wi,j,2,…,Wi,j,|τi,j|}.
模型需要根据对话历史H生成回复,表示为Y={y1,y2,…,yi,…,y|Y|},yi代表Y中的第i个词.
本文提出了基于记忆网络的知识感知医疗对话生成模型.模型需要在与用户的交互过程中收集用户信息,模拟医生在外部数据库中进行搜索并预测实体知识,最后结合信息,生成一个通顺回复.模型框架如图2所示,主要包含4个模块:对话历史编码模块、知识实体追踪与预测模块、知识写入模块和回复生成模块.
1) 对话历史编码模块读取给定的对话历史H并编码成句子级别表示,写入“历史记忆”存储单元.
2) 知识实体追踪部分追踪对话历史中出现过的实体及对应知识,知识实体预测部分搜索外部数据库,预测可能出现在生成的回复里的实体,并且输出其在数据库内对应的知识.
3) 知识写入模块依赖知识实体追踪与预测模块,以它输出的知识集合作为输入,将三元组进行编码,然后写入“追踪记忆”存储单元和“预测记忆”存储单元.
4) 回复生成模块依赖对话历史编码模块和知识写入模块,集成它们写入的4个记忆网络存储单元:追踪记忆、注意力记忆、预测记忆和历史记忆,生成目标回复.
Fig. 2 Framework of MKMed
图2 基于记忆网络的知识感知医疗对话生成模型框架
为了解决句子信息稀释问题,更好地进行信息传递,本模块使用分层循环神经网络编码解码结构(hierarchical recurrent encoder-decoder, HRED).
给定对话历史H={S1,S2,…,S|H|},首先利用HRED的编码器循环神经网络对句子Si进行编码,得到句子级别表达{So,1,So,2,…,So,|H|},So,i∈
h,h是门控循环单元(gate recurrent unit, GRU)的隐状态维度.然后依次向HRED的上下文循环神经网络输入{So,1,So,2,…,So,|H|},得到带有上下文信息的句子级别表达D={d1,d2,…,d|H|},最后时刻的隐层输出记为dh,并将D写入“历史记忆”存储单元.
根据Sukhbaatar等人[2]在2015年发表的端到端记忆网络工作里提到的多跳注意力机制方法,本文对历史记忆存储器中D进行k跳注意力运算.第t跳运算使用的query记为mt,D内向量作为key和value,特别地,dh作为初始query m0.具体公式描述如式(1)所示:
(1)
其中,
表示di在第t跳注意力运算输出向量中所占权重,由mt与di线性变换求相似度后归一化而来.利用权重
对D中向量加权求和,得第t跳运算的输出向量,并把它复用作t+1跳运算的query,即mt+1.
进行k跳运算后,得到“注意力记忆”存储单元Mh的内容,记作Mh={m1,m2,…,m|k|}.最后,用基于GRU的循环神经网络编码Mh内向量,最后时刻输出的隐状态向量聚合了Mh的所有信息,记为mh.
患者希望得到更专业的医疗建议,仅从对话历史中获取信息是不可行的,因此本文引入了额外信息:外部实体知识数据库.因为库中包含所有搜集到的医疗实体及对应知识,数据量庞大,且绝大部分数据与当前对话无关,所以将其全部编码存入记忆网络是不可行且非必要的.为了解决此问题,本文设计了知识实体追踪与预测模块.
知识实体追踪与预测模块分为2个部分:一部分负责追踪对话历史中出现过的实体,这些实体与当前医疗对话密切相关,对应的知识是生成与上下文一致的回复的关键;另一部分进行实体预测,保证回答的多样性和专业性,为推理出没有出现在对话历史的实体和知识提供基础.
2.4.1 知识实体追踪
知识实体追踪部分需要跟踪在对话历史中出现过的实体.通过精确词匹配,该部分将分词后的对话历史H与数据库中的实体名进行匹配,如果匹配到实体e,我们则称e为追踪实体,并将其对应的三元组知识集合G(e)存储在“追踪记忆”存储单元内.本文把追踪实体的集合命名为Etracker,对应三元组知识集合命名为Gtracker={G(e);e∈Etracker}.
2.4.2 知识实体预测
知识实体预测部分期望从数据库中筛选出从未出现在对话历史,却需在回复中使用的实体和知识.知识预测部分又分为粗粒度筛选和细粒度筛选2个阶段.
1) 粗粒度筛选阶段
粗粒度筛选使用统计实体之间共现概率的方法.该阶段首先利用模型训练时使用的全部医患对话记录数据集,统计出所有实体间的共现概率,记共现概率矩阵为T,T∈
b×b,这里b为外部数据库中的实体数目,Ti,j为实体ei和实体ej同时出现的概率.接着该阶段将Etracker转换为one-hot向量表示vtracker∈
b,如果实体ei为追踪实体,则
否则
在粗粒度筛选阶段,任意实体被选为预测实体的概率vpredictor∈
b用vtracker与T相乘得到,因此未在对话历史中出现的实体也有被选中概率,如式(2)所示:
vpredictor=vtracker×T.
(2)
又因为本文希望增加回复的多样性,避免预测实体与追踪实体的重叠度过大,所以从实体全集中过滤掉追踪实体的部分,剩余部分记为Eglobal,如式(3)所示:
Eglobal={e;e∈E∧e∉Etracker}.
(3)
我们在Eglobal中根据vpredictor选择概率最高的c个候选实体,对应集合记为Ecandidate,这里c是候选实体数量的超参.
2) 细粒度筛选阶段
细粒度筛选阶段旨在从Ecandidate的c个候选实体中筛选出标准预测实体.主要用到余弦相似度来表示实体被选中的匹配度.
实体e的表示向量用它的三元组知识集合G(e)编码而来,如式(4)所示:
ti=BiGRU(τi),
(4)
用双向门控循环单元编码G(e)中每条三元组序列τi,可得向量表示ti. ti经过可训练参数Wt线性变换后与包含对话历史信息的dh相乘,接着用softmax函数归一化,得到ti在e的表示中所占的权重
利用
对ti加权求和,得到实体e的表示向量e,如式(5)(6)所示:
(5)
(6)
使用式(4)~(6),我们可以计算得到Ecandidate和Etracker中各实体对应的向量表达,分别记为ec和et.
在此基础上,与式(5)(6)的计算过程相似,本文使用式(7)得到追踪实体集合Etracker的表达向量htc:
(7)
htc+dh包含对话历史和追踪实体集合的信息,本文计算它与候选实体集合Ecandidate中实体的表达向量ec的余弦相似度s,如式(8)所示:
s=cos(ec,htc+dh).
(8)
本文选择s最高的f个实体为预测实体,记集合为Epredictor,其中f是超参,是目标预测实体个数.又将Epredictor在外部数据库中对应的三元组知识集合存放在“预测记忆”存储单元内.
本模块将“预测记忆”和“追踪记忆”存储单元中每条知识τ用双向门控循环单元编码,最后时刻隐层输出的向量τh记为知识的向量表达.如式(9)所示:
τh=Wτ×BiGRU(τ),
(9)
其中Wτ是可训练矩阵,记编码后的“追踪记忆”存储单元为Mt,记编码后的“预测记忆”存储单元为Mp.另外,我们把双向门控循环单元编码过程中每时刻输出的词级别向量表达,即“追踪记忆”和“预测记忆”存储单元中所有知识分词{W1,W2,…,W|B|}的表示,记为{Wo,1,Wo,2,…,Wo,|B|}.
回复生成模块利用在对话历史编码模块中生成的“历史记忆”存储单元内D,dh;“注意力记忆”存储单元内Mh,mh;知识实体追踪与预测模块中生成的“追踪记忆”存储单元Mt;“预测记忆”存储单元Mp生成回复.
本文在此模块中也引入注意力机制,运算过程与式(7)相同.为了方便描述,将回复生成模块在时刻t-1预测出目标词时产生的状态向量记为ht-1,作为注意力运算的query,另记作Q,而D和Mh内向量分别作为key和value,另记作K与V,运算得到的输出向量O分别记作“历史记忆”的表示向量chis和“注意力记忆”的表示向量cmem,运算过程如式(10)所示:
(10)
在读取“追踪记忆”存储单元Mt和“预测记忆”存储单元Mp时,我们也使用注意力机制运算,如式(10)所示,Mt和Mp内向量作为key和value,对应的输出向量O分别记为
和![]()
但是在对Mt进行注意力运算时,时刻t的query记为
由
拼接后经过多层感知机计算得出,如式(11)所示:
(11)
其中,[…;…]表示向量拼接运算,
将在下文介绍.
对Mp进行注意力运算时,query记为
由
和
计算得到,如式(12)所示:
(12)
在此基础上,如式(13)所示,通过可学习参数Wg将
映射成标量g:
(13)
g为“追踪记忆”存储单元表达
和“预测记忆”存储单元表达
间的权重,两者加权求和得到总外部知识表达向量
如式(14)所示:
(14)
将时刻t-1生成词对应的词嵌入与cmem和chis拼接,用门控循环单元编码,可得时刻t的第1个状态向量,记作ht,如式(15)所示:
ht=GRU([emb(yt-1);cmem;chis]).
(15)
当前ht包含传统生成模型常用的信息,在此基础上加入本文的创新点:外部知识,把ht与总外部知识表达向量
拼接作为输入,经过线性变换,得到时刻t另一状态向量,记为
如式(16)所示,同时通过式(17),计算时刻t输出词yt的生成概率:
(16)
(17)
其中Wtrans∈
h×2h和Wgen∈
sizevocab×h是可训练参数,sizevocab是字典大小.
我们通过观察标准回复发现,目标回复大概率带有选中实体对应的知识中的分词,故而为了生成更接近标准的回复,本文引入复制网络,设计时刻t输出词yt的复制概率为pcopy(yt),计算过程如式(18)所示:
(18)
其中Wo,j是“追踪记忆”和“预测记忆”存储单元内第j个知识分词Wj的向量表示,I(x,y)为判断目标x是否等于y的指标函数,即相等则返回1,否则返回0,Z是归一化因子.
时刻t生成词yt的概率分布为归一化后的复制概率pcopy(yt)与生成概率pgen(yt)的和,记为p(yt),如式(19)所示:
p(yt)=softmax(pcopy(yt)+pgen(yt)).
(19)
模型有2个训练目标,分别是正确预测实体以及生成与标准一致的回复,所以本文分别在知识实体追踪与预测模块以及回复生成模块内计算损失.
在知识实体预测部分的粗粒度筛选过程中,由于非标准预测实体个数过多,即仅极少数实体出现在标准回复中,计算每个实体的余弦相似后求负对数似然损失会使计算量超负荷,所以本文使用Max-margin损失来计算实体预测损失Lpred,如式(20)所示:
(20)
其中epos和eneg为我们利用式(4)~(6)运算得出的标准预测实体和从数据库中采样出的非标准预测实体得到的向量表示.受Lin等人[20]在2017年提出方法的启发,我们用因子α来缓解类间不平衡,σ是sigmoid函数,K是超参.
回复生成模块内的生成损失Lgen计算如式(21)所示,即计算交叉熵损失函数:
(21)
总的损失函数由实体预测损失Lpred和生成损失Lgen根据超参λ加权求和构成,如式(22)所示:
L=Lgen+λ×Lpred.
(22)
为了评估本文提出的基于记忆网络的知识感知医疗对话生成模型,本文在带有外部知识的大规模医疗对话数据集KaMed(knowledge-aware medical dialogue dataset)[11]上进行实验.它主要由2部分组成:对话部分、知识部分,包含超过60 000个医疗对话和5 682个实体.对话部分是从中文在线医疗咨询平台“春雨医生”上爬取的网页解析而来的.知识部分收集自最大的中文医学知识平台“中文医学知识图谱”,包含了疾病、药物以及治疗技术和设备的结构化知识描述.其中对话部分分别取3 000轮对话用于验证和测试,其余用于训练.
实验的代码是在pytorch-1.2.0深度学习框架上实现的.为了缓解计算压力,只提取要预测的医疗信息的前10句话作为对话历史信息输入到模型里.字典中分词个数限制为30000,词嵌入维数设置为300,且模型中所有的编码解码器的隐层以及输出层维数设置为512.另外在外部知识预测的粗粒度筛选中,Ecandidate的实体个数c=200,Epredicator的实体个数f=5.在实体预测损失部分中K=10.0,总损失函数的λ=1.0.实验使用的参数优化器为Adam,初始学习率设置为exp(-4),随着训练进行以0.1的比率衰减,逐渐下降到exp(-5).数据集分词使用北京大学开源分词工具pkuseg[21].在测试过程使用的束搜索中束宽设置为5.
本文使用了自动评价以及人工评价2种评估方式对模型进行评价.
自动评价主要采用BLEU@N[22]来衡量生成的回复与标准回复之间的重叠度,另外采用了Distinct@N指标,如式(23)所示:
(23)
其中,Count(unique_n_gram)表示回复中不重复的n_gram分词数量,Count(n_gram)表示回复中n_gram分词的总数.Distinct@N用于计算生成回复的全集内的多样性,检测模型是否产生了安全回复.BLEU和Distinct指标内N皆取1~4.为了衡量模型引入外部知识后生成回复的正确性,本文还使用了回复中生成的实体的F1指标,即利用精确词匹配方法从标准回复和生成回复中分别抽取出现的实体,以标准回复的实体集合为基准,计算得到生成回复的实体集合的F1指标.其中,为了防止模型重复生成对话历史中出现过的医疗实体词从而达到较高的F1指标,防止缺乏实际应用价值的情况出现,进而确保获得高F1指标的模型生成用户真正需要的回复,我们对标准和生成回复的实体集合都进行了筛选,删除了在对话历史中出现过的实体,仅利用回复中创新性提出的医疗实体来计算F1指标.为了验证模型是否能够充分利用外部知识,本文还加入了计算生成回复的全集中实体密度的指标,如式(24)所示:
E@d=|{r;r∈R;r∈B}|/|R|,
(24)
这里R表示生成的回复的集合,B代表外部数据库中实体的集合,公式目标是计算同时出现在生成回复和实体集合中的词的比例.本文把生成回复的全集中出现的实体种类数量也作为一个重要指标,显而易见,出现的实体种类数量越多,回复的多样性也就越高,实体种类记为E@c.
考虑到客观指标的局限性,本文在实验中进行了人工评价.考虑了4个指标,分别是:1)流利度,即生成的回答语法是否正确,句子是否通顺.2)相关性,生成的回复与上下文是否一致.3)知识性,回复中包含有关实体知识的信息量的多少.4)正确性,推荐的治疗方法或药物及诊断是否正确,虽然本文已经对模型的正确性进行了自动评价,但是考虑到正确答案并非局限于标准回复中出现过的医疗实体,因此通过引入正确性的人工评价来鉴别出多样的正确回复.
为了评价基于记忆网络的知识感知医疗对话生成模型的性能,本文选择了以下10个合适的基准模型与它进行对比,这10个基准模型分别是:
1) 带有注意力机制的Seq2Seq模型[23].此基线模型由编码器和解码器构成,将输入序列转换为输出序列.这里将对话历史H作为输入,用循环神经网络进行编码,提取H的信息.将最后时刻输出的隐层向量输入到解码器内生成回复.
2) HRED[24]模型.用分层编码器建模对话历史H,得到带上下文信息的句子级别表达,最后解码出回复.
3) Transformer模型[25].它摒弃了传统的序列模型,用自注意力机制建模对话历史H,可以并行处理序列中的数据且同时产生带有上下文信息的表达,并生成回复.
为了对比公平,在上述3个基准模型的基础上,本文在对话历史H后拼接追踪实体对应的知识作为输入,又得到3个基准模型:
4) Seq2Seq-k模型.
5) HRED-k模型.
6) Transformer-k模型.
本文还引入了另外4个基准模型,分别是:
7) Copynet[26]模型.类似地,以对话历史H后拼接追踪实体对应的知识作为基线模型的输入.
8) CCM[8]模型.此对话模型同样基于外部知识,利用知识图谱生成回复的在CCM中以对话历史H为输入,同时传入KaMed的外部知识.
9) PostkKS[9]模型.此模型利用后验信息来指导知识选择,从而优化回复生成.在此模型中也以对话历史H和KaMed的知识部分为输入.
10) MOSS[27]模型.此模型的对话动作模块预测回复中存在的实体,结合对话历史以及此模块的输出,端到端的生成回复,这里以对话历史H和KaMed的实体部分为输入.
3.4.1 自动评价
从表1中可以得出观察结果:首先,本文提出的MKMed模型在F1,E@d,E@c指标上远优于所有基准模型,这表明基于记忆网络的知识感知医疗对话生成模型可以在回复中生成更多样且更正确的医疗专业知识相关信息,通过直接观察各模型生成的结果,也发现MKMed生成的回复与医生真实的专业标准回复更加相似.同时MKMed模型在BLEU度量上优于大部分基准模型,这说明了MKMed模型在高知识性和专业性的基础上也保证了流畅性.其次,在Distinct指标上,CopyNet和MOSS比MKMed模型表现更好,通过对生成结果的分析,我们发现CopyNet和MOSS倾向于复制输入的对话历史或知识中的分词,即使这些词与上下文并不一致,这可能是造成它们产生的回复更加多样性的原因.总的来说,MKMed模型在Distinct和实体指标上远优于大部分基准模型.另外,PostKS模型虽然利用外部数据库生成回复,但是在实体指标上表现不佳,我们考虑这是因为PostKS无法从大规模的候选知识库中找到合适的知识,故而效果不好,这也说明了MKMed利用实体的共现矩阵进行一步筛选的优越性.最后,通过实验结果观察到,HRED,Transformer,Seq2Seq基准模型的性能随着知识的融入,在某些指标上反而更差了,可以推理出,将外部知识信息整合到会话生成任务中时,需要针对附加的信息设计融入的方案,否则会干扰原始信息.
Table 1 Automatic Evaluation Results
表1 自动评价结果
模型BLEU@N∕%Distinct@N∕%实体N=1N=2N=3N=4N=1N=2N=3N=4F1∕%E@d∕%E@c∕种无知识有知识Seq2Seq13.686.323.542.380.110.451.031.950.880.615HRED12.685.673.112.080.060.220.490.890.240.2335Transformer13.166.153.472.340.050.220.511.040.180.1411MOSS12.686.223.622.480.553.437.2410.710.350.62668Seq2Seq-k13.116.053.402.280.130.571.292.351.111.13188HRED-k12.185.393.002.020.060.230.480.850.450.3647Transformer-k12.085.202.831.880.050.170.350.620.200.1619Copynet13.406.313.572.390.764.9710.4415.371.113.171235CCM13.516.313.602.450.361.683.806.502.652.94921PostKS12.385.693.272.220.422.124.376.520.570.5479MKMed14.06∗6.56∗3.662.440.552.435.218.464.414.732100标准回复2.9530.1066.0784.015.223713
注:有显著差距的指标结果用*标记(显著性检测:t检验,p值小于0.05),Distinct,F1,E@d,E@c指标无法进行显著性检测.黑体数字
表示每种实验设置下的最佳结果.
3.4.2 人工评价
考虑到语言生成任务中客观评测指标的局限性,采用人工评测来验证基于记忆网络的知识感知医疗对话生成模型的优越性.具体来说,从测试集合中随机抽取了200个样例,使MKMed及2个最具竞争力的基准模型:Copynet和CMM,基于样例生成回复.
随后将MKMed生成的回复分别与Copynet和CMM 的回复进行组合,由3 名医学研究生进行人工评价,从流利度、相关性、知识性和正确性4个角度判断MKMed与对比模型相比生成回复的质量为胜、平手或是负,最终得出了各对比结果数在样例总数中的比例,同时使用Kappa系数来判断3名医学研究生人工评估的一致性.
结果如表2所示,本文提出的模型在所有指标中都达到了最好的性能.但是考虑到相关性指标上Kappa系数很小,可能得出结论相关性指标太主观,所有评测人员很难达成一致.基于记忆网络的知识感知医疗对话生成模型在知识性、正确性和流利度上以较高的Kappa系数优于2个对比模型,其中在正确性和知识性上有显著优势,验证了该评价的可靠性和本文提出的模型的优越性.
Table 2 Manual Evaluation Results
表2 人工评价结果
对比模型流利度相关性胜∕%平手∕%负∕%Kappa胜∕%平手∕%负∕%KappaMKMed对比CopyNet24.0059.5016.500.835430.50∗63.006.500.2867MKMed对比CCM27.5053.3019.000.841731.50∗62.006.500.3585对比模型知识性正确性胜∕%平手∕%负∕%Kappa胜∕%平手∕%负∕%KappaMKMed对比CopyNet42.00∗52.006.000.489330.00∗59.5010.500.4911MKMed对比CCM39.50∗55.505.000.653433.00∗57.0010.000.5174
注:有显著差距的指标结果用*标记(显著性检测:t检验,p值小于0.05),黑体数字表示每种实验设置下的最佳结果.
3.4.3 消融实验
本节进行了消融实验,来验证模型中每个模块的重要性和有效性.实验结果如表3所示.考虑了3种设置:1)去掉复制网络(即表3中的no-c),2)去掉知识实体预测部分(即表3中的no-p),3)去掉知识实体追踪与预测模块(即表3中的no-t).
Table 3 Ablation Study Results
表3 消融实验结果
模型BLEU@N∕%Distinct@N∕%实体N=1N=2N=3N=4N=1N=2N=3N=4F1∕%E@d∕%E@c∕种MKMed14.066.563.662.440.552.435.218.464.414.732100no-c13.596.353.592.410.281.433.345.833.713.72581no-p14.016.633.802.590.311.413.185.482.632.81800no-t13.826.493.682.490.140.621.472.751.021.08150
注:黑体数字表示每种实验设置下的最佳结果.
Fig. 3 Case study
图3 样例研究
结果表明,所有模块都有助于Distinct、F1、知识密度以及实体个数指标的提升,移除任意模块都会使指标降低.我们认为,这是因为知识实体追踪与预测模块中的任意一个部分都会增加输入到模型中的知识信息,从而增加了回答的多样性;在此基础上,通过筛选得到的输入知识,使模型更有机会接触到正确信息.增加复制机制,会增加相关性更大且更有可能是正确的知识复制到回答中的概率.但是我们还观察到,移除了知识实体预测部分后BLEU指标最高,合理的解释是基于记忆网络的知识感知医疗对话生成模型没有加入预测实体时会偏向生成一些安全词汇,这样恰好匹配到标准答案的概率更高,且倾向生成更短的回复,使BLEU的指标增大,但是这样会带来回复多样性减少、正确性下降的问题,E@d,F1,Distinct指标值急剧减少与前述解释吻合.
3.4.4 样例展示
图3展示的对话发生在骨科和创伤科,从图3中可以看出,MKMed可以提供适当的药物建议,生成回复中包含的实体“塞来昔布胶囊”是适用于缓解骨关节炎,治疗急性疼痛和滑膜炎的药物.但是CopyNet和CCM生成的回复缺乏有用的专业信息,因为他们没有预测知识的能力,不能将外部专业知识融入回复生成.
从样例展示中我们可以得出结论,MKMed模型生成的回复与真实回复仍有很大差距,但是已经有了预测知识这个质的进展,让回复更加专业性、正确且有实际用处,实现一些传统的生成模型所不能及的效果.
本文提出了一个基于知识和记忆网络的医疗对话系统模型,模型开创性的结合了外部知识,通过知识实体追踪和2阶段的知识实体预测来改进医疗回复生成任务.在KaMed上的大量实验证明,基于记忆网络的知识感知医疗对话生成模型在BLEU,Distinct和实体指标上优于绝大部分基线模型,表明外部知识有助于更专业、正确、多样且流畅的医疗回复的生成.
未来工作中计划通过加入减小专业医学知识与患者话语之间语义差距的方法,来使模型能够更好地理解患者口语化表达的句子,希望生成的回复更个性化和有针对性,进一步提高模型生成回复的性能.
作者贡献声明:张晓宇负责代码运行编写、论文撰写与校对;李冬冬负责模型构思、代码编写与运行、论文撰写;任鹏杰、陈竹敏、马军负责论文撰写指导;任昭春负责对模型构思、代码编写与运行、论文撰写进行全程指导.
[1]Weston J, Chopra S, Bordes A. Memory networks[J]. arXiv preprint, arXiv:1410.3916, 2014
[2]Sukhbaatar S, Szlam A, Weston J, et al. End-to-end memory networks[C] //Proc of the 28th Int Conf on Neural Information Processing Systems.Cambridge, MA: MIT Press, 2015: 2440-2448
[3]Kumar A,Irsoy O, Ondruska P, et al. Ask me anything: Dynamic memory networks for natural language processing[C] //Proc of the 33rd Int Conf on Machine Learning. Cambridge, MA: JMLR, 2016:1378-1387
[4]Xu Jiaming, Shi Jing, Yao Yiqun, et al. Hierarchical memory networks for answer selection on unknown words[C/OL] //Proc of the 26th Int Conf on Computational Linguistics. 2016: 2290-2299 [2021-12-02]. https://aclanthology.org/C16-1216
[5]Liu Shuman, Chen Hongshen, Ren Zhaochun, et al. Knowledge diffusion for neural dialogue generation[C] //Proc of the 56th Annual Meeting of the ACL. Stroudsburg, PA: ACL, 2018: 1489-1498
[6]Zhu Wenya, Mo Kaixiang, Zhang Yu, et al. Flexible end-to-end dialogue system for knowledge grounded conversation[J]. arXiv preprint, arXiv:1709.04264, 2017
[7]Liu Zhibin, Niu Zhengyu, Wu Hua, et al. Knowledge aware conversation generation with explainable reasoning over augmented graphs[C] //Proc of the 2019 Conf on Empirical Methods in Natural Language Processing and the 9th Int Joint Conf on Natural Language Processing (EMNLP-IJCNLP). Stroudsburg, PA: ACL, 2019: 1782-1792
[8]Zhou Hao, Young T, Huang Minlie, et al. Commonsense knowledge aware conversation generation with graph attention[C] //Proc of the 27th Int Joint Conf on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2018: 4623-4629
[9]Lian Rongzhong, Xie Min, Wang Fan, et al. Learning to select knowledge for response generation in dialog systems[J]. arXiv preprint, arXiv:1902.04911, 2019
[10]Meng Chuan, Ren Pengjie, Chen Zhumin, et al. DukeNet: A dual knowledge interaction network for knowledge-grounded conversation[C] //Proc of the 43rd Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2020: 1151-1160
[11]Li Dongdong, Ren Zhaochun, Ren Pengjie, et al. Semi-supervised variational reasoning for medical dialogue generation[C] //Proc of the 44th Int ACM SIGIR Conf on Research and Development in Information Retrieval. New York: ACM, 2021: 544-554
[12]Beijing Chunyutianxia Software Co, Ltd.Chunyuyisheng[EB/OL]. [2021-12-02]. https://www.chunyuyisheng.com/ (in Chinese)(北京春雨天下软件有限公司. 春雨医生[EB/OL]. [2021-12-02]. https://www.chunyuyisheng.com/)
[13]The Institute of Computational Linguistics, Peking University. Chinese medical knowledge graph[DB/OL]. [2021-12-02]. http://cmekg.pcl.ac.cn/ (in Chinese)(北京大学信息科学技术学院计算语言学研究所. 中文医学知识图谱[BD/OL]. [2021-12-02]. http://cmekg.pcl.ac.cn/)
[14]Wu Zongyou, Bai Kunlong, Yang Linrui, et al. Review on text mining of electronic medical record[J]. Journal of Computer Research and Development, 2021, 58(3): 513-527 (in Chinese)(吴宗友, 白昆龙, 杨林蕊, 等. 电子病历文本挖掘研究综述[J]. 计算机研究与发展, 2021, 58(3): 513-527)
[15]Tou Huaixiao, Yao Lu, Wei Zhongyu, et al. Automatic infection detection based on electronic medical records[J]. Bioinfor-Matics, 2018, 19(5): 117-117
[16]Wei Zhongyu, Liu Qianlong, Peng Baolin, et al. Task-oriented dialogue system for automatic diagnosis[C] //Proc of the 56th Annual Meeting of the ACL. Stroudsburg, PA: ACL, 2018: 201-207
[17]Lin Xinzhu, He Xiahui, Chen Qin, et al. Enhancing dialogue symptom diagnosis with global attention and symptom graph[C] //Proc of the 2019 Conf on Empirical Methods in Natural Language Processing and the 9th Int Joint Conf on Natural Language Processing. Stroudsburg, PA: ACL, 2019: 5036-5045
[18]Xu Lin, Zhou Qixian, Gong Ke, et al. End-to-end knowledge routed relational dialogue system for automatic diagnosis[C] //Proc of the 33rd AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2019: 7346-7353
[19]Bordes A, Usunier N, Chopra S, et al. Large-scale simple question answering with memory networks[J]. arXiv preprint, arXiv:1506.02075, 2015
[20]Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(2): 318-327
[21]Li Jiwei, Galley M, Brockett C, et al. A diversity-promoting objective function for neural conversation models[C] //Proc of the 2016 Conf of the North American Chapter of the ACL: Human Language Technologies. Stroudsburg, PA: ACL, 2016: 110-119
[22]Papineni K, Roukos S, Ward T, et al. Bleu: A method for automatic evaluation of machine translation[C] //Proc of the 40th Annual Meeting of the ACL. Stroudsburg, PA: ACL, 2002: 311-318
[23]Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[C] //Proc of the 27th Int Conf on Neural Information Processing Systems. Cambridge, MA: MIT Press, 2014: 3104-3112
[24]Serban I, Sordoni A, Bengio Y, et al. Building end-to-end dialogue systems using generative hierarchical neural network models[C] //Proc of the 30th AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2016: 3776-3783
[25]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C] //Proc of the 30th Int Conf on Neural Information Processing Systems. Cambridge, MA: MIT Press, 2017: 5998-6008
[26]Gu Jiatao, Lu Zhengdong, Li Hang, et al. Incorporating copying mechanism in sequence-to-sequence learning[C] //Proc of the 54th Annual Meeting of the ACL. Stroudsburg, PA: ACL, 2016: 1631-1640
[27]Liang Weixin, Tian Youzhi, Chen Chengcai, et al. MOSS: End-to-end dialog system framework with modular supervision[C] //Proc of the 34th AAAI Conf on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2020: 8327-8335
Zhang Xiaoyu, born in 1999. Master candidate. Her main research interest includes natural language processing.
张晓宇,1999年生.硕士研究生.主要研究方向为自然语言处理.
Li Dongdong, born in 1996. Master candidate. His main research interest includes natural language processing. (lddsdu@mail.sdu.edu.cn)
李冬冬,1996年生.硕士研究生.主要研究方向为自然语言处理.
Ren Pengjie, born in 1990. PhD, professor, PhD supervisor. Member of CCF. His main research interests include natural language processing and information retrieval. (renpengjie@sdu.edu.cn)
任鹏杰,1990年生.博士,教授,博士生导师.CCF会员.主要研究方向为自然语言处理和信息检索.
Chen Zhumin, born in 1977. PhD, professor, PhD supervisor. Senior member of CCF. His main research interests include natural language processing, big data processing and recommender systems. (chenzhumin@sdu.edu.cn)
陈竹敏,1977年生.博士,教授,博士生导师.CCF 高级会员.主要研究方向为自然语言处理、大数据处理和推荐系统.
Ma Jun, born in 1956. PhD, professor, PhD supervisor. Senior member of CCF. His main research interests include information retrieval, data mining and natural language processing. (majun@sdu.edu.cn)
马 军,1956年生.博士,教授,博士生导师.CCF高级会员.主要研究方向为信息检索、数据挖掘和自然语言处理.
Ren Zhaochun, born in 1987. PhD, professor, PhD supervisor. Member of CCF. His main research interests include natural language processing and information retrieval.
任昭春,1987年生.博士,教授,博士生导师.CCF会员.主要研究方向为自然语言处理和信息检索.