文献阅读_MedWriter: Knowledge-Aware Medical Text Generation

前言

小白读论文系列 文献阅读汇总
MedWriter: Knowledge-Aware Medical Text Generation


Proceedings of the 28th International Conference on Computational Linguistics, pages 2363–2368
Barcelona, Spain (Online), December 8-13, 2020



内容

摘要

利用领域知识来保证生成文本的正确性是近年来的一个热点问题,特别是对于医学等高专业领域。 然而,最近的研究大多只考虑了非结构化文本的信息,而没有考虑知识图的结构化信息。 本文以医学主题到文本的生成任务为研究对象,采用了一种知识感知的医学领域文本生成模型MedWriter,该模型不仅引入了外部MKG中的特定知识,而且具有学习图级表示的能力。 我们在一个从医学期刊中收集医学文献的数据集做实验,每个数据集有一组主题词,一个医学文献摘要和一个CMeKG中相应的知识图谱。 实验结果表明,将知识图引入生成模型可以提高生成的质量并且和竞争对手的方法相比具有更强的鲁棒性。



1 引言

医学文本生成是近年来的热点话题,如电子病历(EMR)生成 (Guan et al., 2018)、医学问题生成(Zhang et al., 2018)、临床笔记属 (Melamud and Shivade, 2019)等。 但是,与一般领域的研究相比,尤其是借助特定知识图谱的研究,仍有很大的探索空间。
在这里插入图片描述

从直观上看,医学知识图(KG)是保证生成文本正确性的必要条件,特别是对于高专业领域。 然而,最近的大多数作品并没有充分利用医学知识图谱(MKG)。Lee et al.(2018)采用编码器-解码器模型在电子健康记录中生成自由文本,Guan et al.(2018)提出了基于GAN的框架,通过增强算法训练生成合成EMR文本,两者都没有利用外部医学知识。Lee等人(2019)将医学概念嵌入到序列到序列模型中,该模型利用UMLS的医学概念唯一标识符进行预先训练,以提高生成的临床文本的质量。 然而,他们将每个三元组视为一个实例,采用Skip-gram算法(Mikolov et al., 2013)获得预先训练的概念嵌入,忽略了医疗实体之间的关系。


在本论文中,我们关注的知识感知医学文本生成,这是一个主题到文本的任务。 我们首先从医学期刊中收集医学文献数据集,其中包含50000多对主题-文本对。 每一篇文章都有一组描述主题的关键词和一个相关的摘要作为目标文本。 对于每一对,我们从一个大型中医知识图谱CMeKG1中收集相应的知识。 图1显示了一个示例。 然后,我们采用了一个知识感知神经生成模型MedWriter,该模型由三个部分组成:主题编码器、图编码器和解码器。 主题编码器用于获取主题词的表示,而图编码器则利用来自MKG的特定信息。 因此,该模型结合了主题词信息和医学知识。 然后,我们使用带复制机制的解码器(Gu et al., 2016)生成医学文本。 实验结果表明,将知识图融合到生成模型中,可以提高生成文本的质量,且与其他方法相比具有较强的鲁棒性。



2 方法

给定一组主题词 K = { w 1 , w 2 , . . . , w s } K = \{ w_1, w_2,...,w_s\} K={w1,w2,...,ws} 和一些系列三元组的知识图谱表示,例如 G = { g 1 , g 2 , g 3 , . . . } G = \{g_1, g_2,g_3,...\} G={g1,g2,g3,...}, 其中每个三元组 g i g_i gi < s i , p i , o i > <s_i, p_i, o_i> <si,pi,oi> 分别代表头实体, 关系,尾实体, 我们的目标是生成一个自然语言文本 Y = { y 1 , y 2 , y 3 , . . . } Y = \{y_1, y_2, y_3, ...\} Y={y1,y2,y3,...}, 改文本要求与主题相关,语法正确,信息丰富。



2.1 话题编码器

我们首先将每个关键字转换为字嵌入表示 e ( w i ) e(w_i) e(wi)的矩阵 M ∈ R l × d M \in R^{l\times d} MRl×d, 其中 l l l 单词的个数,d 表示词嵌入的维度。然后使用双向GRU (Cho et al., 2014)将关键词转换为分布式表示:

其中 ; ; ; 代表连接操作, e ( w t ) e(w_t) e(wt) 代表第 t 个关键词的词嵌入, 前向和后向GRU网络的最后隐藏状态被连接成整个关键字表示
r K ‾ = [ h s → ; h 0 ← ] \overline{r_K} = [\overrightarrow{h_s} ; \overleftarrow{h_0}] rK=[hs ;h0 ]



2.2 图编码器

对于每个知识图,与之前基于图的工作一样,我们首先执行一个Levi 图变换 (Beck et al., 2018),其中G中的每条标记边被两个未标记边替换,并在Levi图中添加逆行边和自环边。例如给定一个三元组 < s ,   p ,   o > <s, ~p, ~o> <s, p, o>, 经过变换之后,我们获得 < s , → , p > , < p , → , o > , < o , → , p ′ > , < p ′ , → , s > < s, →, p >, < p, →, o >, < o, →, p'>, < p', →, s > <s,,p>,<p,,o>,<o,,p>,<p,,s> 还有他们的子环连接, 其中 p ′ p' p 是 P的逆行边。这样,实体和关系都可以被视为顶点而不丢失任何信息。 此外,通过添加一个全局顶点来连接所有实体顶点,以聚合图中不连通部分之间的信息。 因此,原来的知识图谱可以被表示成为一个未标记的图 G ′ = { V , E } G' = \{V, E\} G={V,E}, 其中 V = { v 1 , v 2 , . . . v x − 1 , v g } V = \{v_1, v_2, ...v_{x-1}, v_g\} V={v1,v2,...vx1,vg} 是一个实体,关系和全局顶点 v g v_g vg 的列表, E是一个表示关系的邻接矩阵 M ∈ R x × x M \in R^{x\times x} MRx×x, 其中x是V中包含的顶点的总数。如果 v i v_i vi v j v_j vj 相邻,则 E ( v i , v j ) = E ( v j , v i ) = 1 E(v_i, v_j) = E(v_j, v_i) = 1 E(vi,vj)=E(vj,vi)=1, 否则则为0.


图编码器是由类似于(Vaswani et al., 2017)的几个相同层组成的堆栈,每个层都有一个多头注意子层,然后是一个前馈网络子层。每个子层都有一个剩余连接(He et al., 2016)和一个层归一化(Ba et al., 2016)。使用2.1中的相同操作,顶点被转换为一个嵌入表示 e ( v i ) e(v_i) e(vi)


按照类似的程序(koncele - kedziorski et al., 2019),对于每个顶点 v i v_i vi,为了获得上下文表示,我们采用多头注意机制来关注 G ′ G' G中与 v i v_i vi相邻的其他顶点。 它分别用不同的参数对注意力的输入进行多次线性投影。 注意力函数的所有输入均来自V,则多头自注意可计算为:


其中 N i N_i Ni 表示 v i v_i vi 的邻居; n表示头的数目; d h d_h dh 表示每个头的维度; W , W 1 t W, W^t_1 W,W1t W 2 t W^t_2 W2t 是可学习的参数。然后我们可以通过 r V = F F N ( M u l H e a d A t t ( V ) ) r_V = FFN(MulHeadAtt(V)) rV=FFN(MulHeadAtt(V)) 得到一层的最终输出 r V r_V rV,其中FFN是一个前馈网络,由两个具有ReLU激活的线性变换组成。由于将相同的层进行多次堆叠,其中前一层的输出会被输入到当前层,因此我们将最后一层的输出作为最终的编码表示。


2.3 解码器

我们用一个基于注意力的GRU网络作为解码器,并使用主体表示和全局顶点 [ r k ‾ , r v g ] [\overline{r_k}, r_{v_g}] [rk,rvg]的拼接结果进行初始化。在第 t 个时间步, 隐藏状态 h t h_t ht 可用 h t = G R U ( h t − 1 , e ( y t − 1 ′ ) , c t − 1 ) h_t = GRU(h_{t-1}, e(y'_{t-1}), c_{t-1}) ht=GRU(ht1,e(yt1),ct1), 其中 h t − 1 h_{t-1} ht1 是最后一步的隐藏状态; e ( y t − 1 ′ ) e(y'_{t-1}) e(yt1)是最后一步的输出的嵌入; c t − 1 c_{t-1} ct1 是最后一步的上下文嵌入。上下文嵌入 c c c 包含两个部分: c K c^K cK c V c^V cV, 分别考虑关键词和知识图谱。


其中, W 3 W_3 W3 W 4 W_4 W4 是可学习的参数; c K c^K cK 的计算和 c V c^V cV 的计算很相似。同时,我们还采用了复制机制(Gu et al., 2016),直接从关键字和知识图中选择token。复制的概率 p p p 被表示为 p = σ ( W [ h t ; c t ] + b ) p = \sigma(W[h_t;c_t] + b) p=σ(W[ht;ct]+b)。然后我们可以得到最终的概率分布:


其中 P g e n P_{gen} Pgen 是词汇表中所有单词的概率分布, 它由两个线性神经网络用softmax函数计算得到。 P c o p y P_{copy} Pcopy 是基于在 [ K ; V ] [K;V] [K;V] 上的注意力分数, 然后从输入中复制一个单词的概率分布。



3. 实验


3.1 数据集

为了实现医学文本生成任务,我们从医学期刊中收集了一个中文医学文献数据集。 文献数据集包含大量的对,都来自平台上发表的医学文章。 每一对都有一组描述一些主题信息的关键字和一个与主题相关的文本摘要。 然而,原始对没有相应的知识图。 因此,我们得到了大型中医知识图谱CMeKG的支持。


首先,在CMeKG中建立关键字与实体的映射关系。 除了精确匹配,我们还通过计算它们之间的相似度来进行模糊匹配。 给定一个关键字,我们根据我们建立的倒索引选择几个候选实体,然后利用WMD算法(Kusner et al., 2015)计算关键字与每个候选实体之间的相似度。 我们使用了大量的医学文献对字符嵌入进行预训练。 在计算相似度时,我们保留得分大于0.7分的实体中得分最高的实体。 然后,给定一组实体,在CMeKG中使用所有成对的实体进行搜索,并保留精确匹配的三元组。 此外,我们将模糊匹配视为一种新的关系,并保留所有<关键字、模糊匹配、实体>三元组。 最后,我们获得了一个包含超过50,000项的数据集。 每个条目都有一组主题关键字,一个作为文本的摘要和一个从CMeKG衍生出来的相应的知识图。 数据集的统计信息如表1所示。


3.2 竞争对手的方法

为了验证将知识图谱引入生成模型的有效性,我们将MedWriter与两个竞争对手进行了比较。


第一种方法是基于注意力的序列到序列模型(Sutskever et al., 2014),该模型仅使用主题词作为输入生成文本,其名为Seq2Seq。

第二种方法是Seq2Seq的变体,它不仅使用主题词,还使用线性化的知识图,名为GraphSeq。 借鉴(Konstas et al., 2017)的思想,我们根据知识图在文本中出现的实体顺序,将其扁平化为线性序列。 采用另一种序列编码器对其进行编码。


解码时,两种竞争对手的方法都具有复制机制。



3.3 设置

用SGD优化方法训练模型使训练集的负对数似然最小化。 学习率设置为0.15。 将GRU的隐藏层大小设置为512。 图形编码器堆栈有6个相同的层。 我们使用4个平行的注意层来完成多头注意。 设置嵌入层和注意子层的维数为512,线性子层的中间维数2048。 词汇量被缩减到50,000个。 批量大小设置为32。 我们对模型进行30个epoch的训练,并选择在验证集上性能最好的模型。



3.4 衡量指标

我们采用BLEU (Papineni et al., 2002)和ROUGE (Lin, 2004)指标进行评价。 BLEU是一种被广泛应用于文本生成任务的n-gram重叠测度。 BLEU1, BLEU2和BLEU3等方法被提及。 ROUGE也是自动确定所生成文本质量的常用方法。 我们报告了ROUGE-L的F1分数,它测量参考文献和候选文献之间的最长公共序列(LCS)。



3.5 结果

如表2所示,Seq2Seq方法在BLEU和ROUGE方面的性能最差,因为它只使用主题关键字。 GraphSeq方法优于Seq2Seq,因为它使用了医学知识图,尽管图被视为由实体和关系组成的序列,这意味着知识图可以通过这种设置稍微提高性能。 与竞争对手相比,MedWriter至少提高了+3.36 BLEU1和+3.77 ROUGE-L,而GraphSeq只提高了Seq2Seq +1.0 BLEU1和+0.8 ROUGE-L。 这意味着将既有实体和关系又有图结构的知识图整合到生成模型中,确实有利于医学文本的生成任务。 除了三元组包含实体之间的关系外,知识图还包含三元组之间的关系。 实验结果也说明了这一点。


图3显示了MedWriter生成的文本示例。 除了一些重复的语句, 生成的文本在句法和语义上都有良好的质量。 文中还对这些主题词及其关系进行了描述。 它证明了MedWriter有能力对知识图建模并学习其中包含的信息。 虽然MedWriter取得了很好的性能,但是仍然有很多问题没有解决。 医学文献中往往包含着大量的医学指征及其相应的价值。 如果模型生成了正确的指示描述,但错误的值,整个生成的文本可能是无意义的,甚至在医学领域是危险的。 例如,在生成的文本中,虽然95%高于符合描述的80%,但数值不一定准确,而这些数值非常重要,经常出现在医学文本中。 因此,如何为对应项生成正确的数值是一个相当有挑战性的问题,我们将在未来的研究中进行探索。



4 结论

我们利用医学知识图谱来方便医学文本的生成。我们收集了具有相应知识图的中文医学文献数据集,并提出了一种适用于医学主题到文本生成任务的带图形编码器的编解码器模型。 实验结果通过优于竞争对手方法的性能证明了将知识图融入生成模型的有效性。 本工作是知识意识医学文本生成的初步尝试。 未来,我们计划对自然语言生成技术在医学领域的应用进行更多的研究。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值