【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

华为联合中科大提出知识图谱结合预训练模型新方法,节省 20% 计算成本

  • 2019-12-28
  • 本文字数:6888 字

    阅读完需:约 23 分钟

华为联合中科大提出知识图谱结合预训练模型新方法,节省20%计算成本

如何将知识图谱的信息嵌入到预训练语言模型中,已经成为当前的研究热点。近日,来自华为云、华为诺亚方舟实验室和中科大的研究人员共同发布了一项新研究成果,通过提取知识图谱中的子图,并输入到基于 Transformer 的模型中来学习知识嵌入,在多个医学 NLP 任务上达到最佳性能。本文是 AI 前线第 103 篇论文导读,我们将对这项研究工作进行详细解读。

论文作者| Bin He,Di Zhou,Jinghui Xiao 等

概览

预训练的语言模型通过一种自我监督的学习方法在大规模文本语料库中学习上下文的单词表征,借助这种方法对下游任务进行微调,就可以获得最佳(SOTA)性能。这一方法逐渐成为自然语言处理研究的新范式。近年来,知识信息被整合到预先训练好的语言模型中,以增强语言的表现力,如 ERNIE-Tsinghua 和 ERNIE-Baidu。Zhang 等人初步尝试利用从知识图谱中获得的知识信息来改进某些知识驱动型任务的性能。直观地说,该模型可以直接应用于医学领域,在医学领域中,大规模的语料库和知识图都是可用的。


在 ERNIE-Tsinghua,实体嵌入是通过 TransE 学习的,这是一种流行的基于转换的知识表征学习方法(KRL)。TransE 只是将知识图中的每一个三元组看作一个训练实例,这可能不足以对知识图中节点之间的复杂信息传输进行建模。在医学知识图谱中,有些实体有大量的相关邻域,而 TransE 不能同时为相应的邻域建模。


图 1 显示了包含多个医疗实体的医学知识图的子图。在此图中,列出了节点“细菌性肺炎”的四个传入和四个传出相邻节点(以下称为“传入实体”和“传出实体”),节点之间具有各种类型的关系。因此,为了学习更全面的节点嵌入,有必要在节点之间合并更多的交互信息(我们称之为“图上下文信息”)。图注意力网络(GATs)通过一跳邻居更新实体嵌入,更加关注节点信息交互。基于 GATs,对给定实体的多跳邻居进行集成以获取更多信息(Nathani 等人,2019 年)。



受先前工作的启发,我们将节点间的信息交互扩展到一种更一般的方法,可以将知识图中的任意子图作为训练实例。具体地说,子图被转换成一系列节点,KRL 过程的执行方式类似于训练语言模型。在这个模型中,每个节点更全面的上下文信息可以被整合到学习的知识表征中。此外,我们认为在 KRL 过程中实体和关系应该是相互影响的,因此关系也被视为图节点,并与实体共同学习。


最后,我们的预训练模型 BERT-MK(一个基于 BERT 的医学知识语言模型)是在一个大规模的医学语料库中学习的,并与用上述 KRL 方法表示的医学知识图相结合。我们的贡献如下:


(1)提出了一种能对任意子图进行建模的知识表征学习方法。该方法极大地丰富了知识表征中的信息量,探索了实体和关系的联合学习。


(2)图的上下文知识被整合以提高预先训练语言模型的性能,这在医学领域的几个 NLP 任务上优于最新的模型。

研究方法

在我们的模型中,每次从知识图中选取一定数量的节点及其连接节点来构造训练样本。然后,利用一种新的基于 Transformer 的知识表示学习算法,从节点的邻域中学习节点的嵌入。最后,将学习到的知识表示融入到语言模型中,增强模型的预训练和微调能力。

利用 Transformer 学习知识图嵌入

Transformer 可作为一个强大的编码器来模拟顺序输入。最近,Koncel-Kedziorski 等人扩展了 Transformer 来编码图结构的输入。在他们的工作中,文本首先被转换成一个图,然后通过图 Transformer 编码器编码输出到一个文本生成模型中。在他们工作的激励下,我们将一个知识子图转换为一个节点序列,并利用一个基于 Transformer 的模型来学习节点嵌入。我们称此模型为“KG-Transformer”,其中,KG 表示知识图,方法的进一步细节在随后章节中作了说明。

Graph Conversion

我们将知识图表示为 G=(E,R),其中 E 表示实体集,R 是 G 中实体对之间的关系集。G 中的三元组表示为 t=(es,r,eo),其中 es 是主观实体,eo 是客观实体,r 是 es 和 eo 之间的关系。图 1 给出了医学 KG 的一个子图示例。两个实体(矩形)和它们之间的关系(箭头)构成了一个知识三元组,例如,(细菌性肺炎,细菌的病原体)。


在传统的 KRL 方法中,如 TransE 以及 ConvKB。在这个设置中,来自实体邻居的信息不能同时更新实体嵌入。图注意力网络(GATs)被提出来是为了解决这一问题。Nathani 等人利用 GAT 来建立 KRL 模型,其中所有指向客观实体的主观实体被用于学习客观实体的嵌入。在我们的工作中,我们提出了一种更通用的方法,以 KG 的任意子图为训练样本,极大地丰富了学习知识表示的情境化信息。为了便于解释,在图 2(a)中,我们选择一个实体及其两个输入实体和输出实体来构建训练样本。


此外,将 KG 中的关系学习为等价于实体的节点,实现了实体嵌入和关系嵌入的联合训练。节点转换过程如图 2(b)所示。知识图可以重新定义为 G=(V,E),其中 V 表示 G 中的节点,涉及 E 中的实体和 R 中的关系,E 表示 V 中节点之间的有向边的邻接矩阵。图 2(c)中的邻接矩阵显示了图 2(b)中节点之间的连接性。


子图的转换结果如图 2(c)所示,包括节点序列、节点位置索引矩阵和邻接矩阵。节点位置索引矩阵的每一行对应于图中的一个三元组。例如,三元组(e1,r1,e)表示为该矩阵中的第一行(0,1,4)。在邻接矩阵中,如果节点 i 连接到图 2(b)中的节点 j,则元素 aij 等于 1,否则为 0。


基于 Transformer 的编码器

我们将节点序列表示为{x1,…,xN},其中 N 是输入序列的长度。此外,节点位置索引矩阵和邻接矩阵分别定义为 P 和 A。实体嵌入和关系嵌入集成在一个矩阵 V,V∈R(ne+nr)×d,其中 ne 是 E 中的实体数,nr 是 R 中的关系类型数,节点嵌入 X={x1,…,xN}可以通过在嵌入矩阵 V.X,P 中查找节点序列{x1,. . ,xN}产生,A 构成 KRL 模型的输入,如图 3 所示。



输入被送入到基于 Transformer 的模型中,对节点信息进行编码。



其中 x’i 是节点 xi 的新嵌入。(+)表示连接这一层中的 H 个注意力头,aij(h)和 Wv(h)是节点 xj 的注意力权重和节点嵌入 xj 在 h(th)注意头中的线性变换。方程 3 中的掩码函数限制了输入节点之间的上下文依赖关系,只涉及节点的入度和当前节点本身来更新节点嵌入。与 Wv(h)类似,Wq(h)和 Wk(h)是节点嵌入的独立线性变换。然后,新的节点嵌入被送到前馈神经网络层以进行进一步的编码。


在 Transformer 模型中,我们将前面提到的 Transformer 块叠加 L 次。基于 Transformer 的编码器的输出可以形式化为


训练目标

编码器 X(o)的输出和节点位置索引 P 用于恢复三元组并生成这些三元组的嵌入:



其中 Tk=(Xeks,Xrk,Xeko)和 Pk=(eks,rk,eko)是有效知识三元组的位置索引。


在本研究中,基于转换的评分函数被用来衡量知识三元组的能量。通过最小化训练数据上 margin-based 的损失函数来学习节点嵌入:



其中 t=(ts,tr,to),d(t)=| ts+tr−to |,γ>0 是一个 margin 的超参数,f(t)是一个实体替换操作,三元组中的头实体或尾实体被替换,而被替换的三元组在 KG 中是一个无效的三元组。

将知识集成到语言模型中

给定一个综合的医学知识图,利用 KG-Transformer 模型可以学习图的上下文知识表示。我们遵循提出的语言模型体系结构(Zhang 等.2019),利用图上下文知识增强医学语言表示。语言模型预训练过程如图 3 的左侧所示。Transformer 块对词的上下文表示进行编码,聚合块实现知识和语言信息的融合。


根据医学 NLP 任务的特点,设计了特定领域的 finetuning 过程。类似于 BioBERT,符号“@”和“, which gave the patient better relief of @ his epigastric pain $ ”。在实体类型任务中,实体提示及其上下文对于预测实体类型至关重要,因此实体提示的更多本地化特征将有助于此预测过程。在我们的实验中,实体开始标签“@”被选择来表示实体类型示例。

实验

数据集

医学知识图

统一的医学语言系统(UMLS)(Bodenreider 2004)是生物医学领域的一个综合性知识库,包含了大规模的概念名称及其相互关系。UMLS 中的元词表涉及各种术语系统,包含约 1400 万个术语,涵盖 25 种不同的语言。在本研究中,我们提取此知识库的一个子集来建构 KRL 的医学知识图。过滤非英语和长术语,最终统计如表 1 所示。


预训练语料库

为了保证足够的医学知识能够被整合到语言模型中,选择了 PubMed 摘要和 PubMed 中心全文作为训练前的语料库,它们是生物医学和生命科学期刊文献的开放存取数据集。由于不同段落中的句子可能没有很好的上下文连贯性,因此选择段落作为下一个句子预测的文档单元。使用自然语言工具包(NLTK)在一个段落中将句子切分,对少于 5 个单词的句子进行分解。结果,一个包含 9.9B 词的大型语料库被归档,用于语言模型的预训练。


在我们的模型中,出现在语料库中的医学术语需要在训练前与 UMLS 元词表中的实体对齐。为了确保元分类中识别的实体的覆盖,使用正向最大匹配(FMM)算法从上述语料库中提取术语跨度,并且过滤小于 5 个字符的跨度。然后,使用 BERT 词汇表将输入文本标记成词块,并且医疗实体与标识的词的第一个子词对齐。

下游任务

在本研究中,我们使用医学领域中的实体分类和关系分类任务来评估模型。

实体类型

给定一个带有实体提示标记的句子,实体类型的任务是识别该实体提示的语义类型。例如,类型“medical problem”用于标记句子中提到的实体“he had a differential diagnosis⟨e⟩asystole⟨/e⟩”。据我们所知,医学领域没有公开的实体类型数据集,因此,从相应的医学命名实体识别数据集构造了三个实体类型数据集。在这些数据集中,实体提及和实体类型被标注,在本研究中,实体提及被视为输入,而实体类型是输出标签。表 2 显示了实体类型任务的数据集统计信息。


关系分类

给定一个句子中有两个实体,任务的目的是确定实体之间的关系类型。例如,在“pain control was initiated with morphine but was then changed to ⟨e1⟩demerol⟨/e1⟩,which gave the patient better relief of ⟨e2⟩his epigastric pain ⟨/e2⟩”这句话中,两个实体之间的关系类型是 TrIP(治疗改善医疗问题)。在本研究中,我们使用三个关系分类数据集来评估我们的模型,这些数据集的统计数据如表 2 所示。

实现细节

知识表征学习

为了实现基本的知识表示,将 UMLS 三元组输入到 TransE 模型中。OpenKE 工具包(Han 等人,2018)对实体和关系嵌入进行训练,嵌入维数设为 100,训练 epoch 数设为 10000。


遵循(Nguyen 等人,2018 年;Nathani 等人,2019)使用的初始化方法,使用 TransE 生成的嵌入来初始化 KG Transformer 模型的表征学习。层数量和隐藏头的数量都设置为 4。由于 UMLS 中节点的中位数为 4(如表 1 所示),因此将一个具有两个输入节点和两个输出节点的节点作为训练实例进行采样。KG-Transformer 模型在一个 NVIDIA Tesla V100(32GB)GPU 上运行 1200 个 epoch,以训练知识嵌入,批量大小为 50000。

预训练

首先,在 UMLS 三元组和 PubMed 语料库上训练医学 ERNIE(MedERNIE)模型,继承了相同的模型超参数(Zhang 等人。2019 年)。此外,将 KG-Transformer 模型学习到的实体嵌入集成到语言模型中,训练 BERT-MK 模型。在我们的工作中,我们将相同数量的预训练与使用与我们相同的预训练语料库的 BioBERT 对齐,并对 PubMed 语料库上的 BERT-Base 模型进行一个 epoch 的优化。

调优

由于有些数据集没有标准的验证集,我们将训练集按 4:1 分为一个新的训练集和一个验证集。对于包含标准测试集的数据集,我们在不同随机种子的特定实验设置下,对每个实验进行 5 次预处理,并将平均结果用于提高评估的可靠性。此外,还采用了 10 倍交叉验证方法来评估没有标准测试集的数据集的模型性能。根据每个数据集中句子的最大长度,输入序列长度为 2010 i2B2/VA(UZUNER 等,2011 年),JNLPBA(Kim 等人,2004 年),BC5CDR(Li 等人,2016 年),GAD(Bravo 等人,2015 年)和 EU-ADR(Van Mulligen 等人,2012 年)分别设置为 390、280、280、130 和 220。初始学习速率设置为 2e-5。

基线

除了这些数据集上的最新模型外,我们还添加了流行的 BERT 基模型和另外两个在生物医学文献上预训练的模型,以供进一步比较。

BERT-Base

这是 Google 最初提出的双向预训练语言模型,它在一系列 NLP 任务上实现了最先进的性能。

BioBERT

这个模型遵循与 BERT-Base 模型相同的模型架构,但是 PubMed 摘要和 PubMed 中心全文文章(大约 18B 令牌)用于对 BERT-Base 进行模型微调。

SCIBERT

一个新的词条词汇表是建立在一个大型科学词条(大约 32 亿个标记)的基础上的。然后,利用这个新的科学词汇和科学语料库,从头开始训练一个新的基于 BERT 的模型。由于科学语料库的很大一部分是生物医学文章,因此该科学词汇也可以看作是生物医学词汇,可以有效地提高生物医学领域下游任务的性能。

结果

表 3 给出了实体类型和关系分类任务的实验结果。对于实体类型任务,所有这些预先训练的语言模型都能达到很高的准确性,这表明医学实体的类型不像一般领域中的类型那么复杂。BERT-MK 的平均准确率分别比 BERT-Base、BioBERT 和 SCIBERT 高 0.71%、0.24%和 0.02%。在不使用外部知识的情况下,SCIBERT 在预先训练的语言模型中获得了与 BERT-MK 相当的结果,这证明了领域特定词汇对输入的特征编码至关重要。


在医学领域中,长词汇是比较常见的,当使用领域无关词汇时,这些词汇将被分割成短片段,这将导致词汇特征的过度泛化。因此,在接下来的工作中,可以将 PubMed 语料库生成的医学词汇引入到 BERT-MK 中。



在关系分类任务中,BERT-Base 的性能不如其他模型,这说明在受限域中使用预先训练的语言模型需要一个域自适应过程。与 BioBERT 相比,BERT-MK 使用了与我们相同的领域特定语料库对预先训练的语言模型进行领域适应,其平均 F 值提高了 2.27%,说明医学知识确实对医学关系的识别起到了积极的作用。下面的例子简要解释了为什么医学知识可以提高关系分类任务的模型性能。“On postoperative day number three,patient went intoatrial fibrillation,which was treated appropriately withmetoprololand digoxin and converted back to sinus rhythm”是 2010 i2b2/VA 数据集的关系样本,关系标签为 TrIP。同时,上述实体对可以与医学知识图中的知识三元组(atrial fibrillation,may be treated by ,metoprolol )对齐。显然,这些知识信息有利于上述示例的关系分类。

TransE vs. KG-Transformer

为了更直观地分析我们提出的预训练语言模型的 KRL 方法,我们将 MedERNIE(TransE 用于学习知识表示)和 BERT-MK(对应于 KG-Transformer)在两个关系分类数据集上进行了比较。表 4 展示了这两个模型的结果。正如我们看到的,集成 KG-Transformer 模型学习到的知识信息,两个关系分类数据集的 F 值分别提高了 0.9%和 0.64%,说明知识质量的提高对预训练语言模型有一定的促进作用。



在图 4 中,随着训练前数据量的增加,在 2010 i2b2/VA 关系数据集上,BERT-MK 始终优于 MedERNIE,并且性能差距有增加的趋势。然而,在 GAD 数据集上,BERT-MK 和 MedERNIE 的性能是相互交织的。我们将关系样本中的实体链接到知识图,并对链接节点之间的关系进行统计分析。我们观察到 2010 年 i2b2/VA 中有 136 个 2 跳邻居关系,而 GAD 中只有 1 个。表 5 所示的第二种情况举例说明了上述情况。三元组(CAD,member of ,Other is chemic heart disease(SMQ))和(Other ischemic heart disease(SMQ),has member,Angina symptom)被发现在医学知识图中,表明实体 cad 与 entity angina symptoms 有 2 跳 neigh-bor 关系。KG Transformer 在 2010 年的 i2b2/VA 中学习了这些 2 跳 neigh-bor 关系,并对 BERT-MK 进行了改进。但是,由于 GAD 数据集的特性,KG Transformer 的能力有限。



在预训练中语料库大小的影响

图 4 显示了不同比例的预训练语料库的模型性能比较。从这个图中,我们观察到,BERT-MK 只使用了 10%-20%的语料,其性能优于 BioBERT,这表明医学知识具有增强预训练语言模型和节省计算成本的能力。

未来工作

我们提出了一种新的方法来学习更全面的知识表示,重点是用一种基于 Transformer 的方法来建模知识图中的子图。此外,学习到的医学知识被整合到预先训练的语言模型中,在几个医学 NLP 任务中,预先训练的语言模型优于 BERT-Base 和另外两个特定领域的预先训练语言模型。我们的工作验证了医学知识对某些医学自然语言处理任务有益的直觉,为医学知识的应用提供了初步的探索。


在后续工作中,将采用传统的下游任务知识表示学习方法,如关联预测等,进一步验证 KG-Transformer 模型的有效性。此外,我们还将探索一种更优雅的方式,将医学知识与语言模型结合起来。


论文原文链接:


https://arxiv.org/pdf/1912.00147.pdf


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-12-28 14:008548
用户头像
蔡芳芳 InfoQ主编

发布了 781 篇内容, 共 494.2 次阅读, 收获喜欢 2748 次。

关注

评论 1 条评论

发布
用户头像
好好好
2019-12-29 06:09
回复
没有更多了
发现更多内容

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

做梦都在改BUG

Java Kubernetes k8s

分布式事务的21种武器 - 7

俞凡

架构 云原生

Redis和MySQL的爱恨情仇!

Java你猿哥

Java MySQL redis ssm 缓存雪崩

StarUML教程:CLI(命令行界面)功能的使用

魔仙苹果mac堡

StarUML教程 CLI(命令行界面) UML软件建模器 StarUML for Mac StarUML Mac破解下载

太牛了!在GitHub上“千金难求”的SpringBoot趣味实战课免费分享

Java你猿哥

Java spring Spring Boot ssm SpringBoot实战

软件测试/测试开发丨学习笔记之Web自动化测试

测试人

程序员 软件测试 自动化测试 测试开发 web自动化

Java面试集锦

源字节1号

微信小程序 开源 软件开发 后端开发

基于Redis讲解,学懂缓存雪崩,缓存击穿,缓存穿透

做梦都在改BUG

Java redis 缓存穿透 缓存击穿 缓存雪崩

Parallels Desktop如何退出账号?PD18虚拟机退出账号方法

魔仙苹果mac堡

Parallels Desktop下载 PD18虚拟机破解 Parallels如何退出账号

mac分屏功能怎么用?mac分屏软件推荐 magnet

魔仙苹果mac堡

Magnet中文版 Magnet破解版 mac分屏功能 Magnet Mac下载 苹果窗口管理软件

软件测试/测试开发丨Web自动化 PageObject 设计模式

测试人

程序员 软件测试 自动化测试 测试开发 Web自动化测试

利用springboot初始化机制三种实现策略模式的应用

Java你猿哥

Java spring Spring Boot 设计模式 ssm

简直人生外挂,直接涨薪25K,跪谢这份Java性能调优实战宝典

做梦都在改BUG

Java 性能优化 性能调优

Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K

做梦都在改BUG

耗时一周整理的牛客网上最火Java面试八股文,面试必备

架构师之道

Java 面试

学懂缓存雪崩,缓存击穿,缓存穿透仅需一篇,基于Redis讲解

Java你猿哥

Java redis 缓存击穿 缓存雪崩 Redis缓存穿透

MySQL Idea 启动主程序 无法识别时区

Andy

智能工厂 | 联合汽车电子有限公司汽车驱动科技上海智能工厂

工赋开发者社区

国外顶级架构师编写2580页DDD领域驱动设计笔记,看到内容后破防了

做梦都在改BUG

Java 架构 领域驱动设计 DDD

工厂+策略在springboot项目中的使用场景

做梦都在改BUG

Java Spring Boot 工厂模式 策略模式

Typora for Mac:一款极简风格Markdown写作软件

魔仙苹果mac堡

Typora破解 Mac软件 Markdown文本编辑器 Typora Mac下载

爆肝了!阿里最新版的这份Spring Security源码手册,狂揽GitHub榜首

做梦都在改BUG

Java spring spring security Spring Security OAuth

阿里巴巴Java开发手册(华山版)

Java你猿哥

Java MySQL ssm JAVA开发 Alibaba

关于Spring Cloud Alibaba,看阿里这篇笔记真香

Java你猿哥

分布式事务 微服务 Spring Cloud 服务治理 Spring Cloud Aliababa

五十万字总结!2023最新Java面试八股汇总(含答案,收藏版)

采菊东篱下

Java 面试

ps神经滤镜是干什么的,神经滤镜的功能和作用

魔仙苹果mac堡

ps神经滤镜 PS2023破解 Neural Filters下载 Photoshop2023 Mac

MySQL SQL脚本语句加上数据库存在判断

Andy

DR5白金版 for mac(PS一键磨皮插件Delicious Retouch)支持ps2022 v5.0汉化版

Rose

DR5白金版 PS一键磨皮插件 dr5插件 汉化版PS插件 dr5插件教程

阿里巴巴工程师1480道Java面试题及答案整理( 2023年 整理版)

Java你猿哥

Java MySQL redis JVM java面试

非常全面的 SpringBoot 保姆级笔记,面面俱到,太牛了

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

GitHub星标126K的京东「微服务进阶笔记」首次开源!好评如潮

Java你猿哥

Java 架构 微服务 Spring Cloud ssm

华为联合中科大提出知识图谱结合预训练模型新方法,节省20%计算成本_语言 & 开发_吴少杰_InfoQ精选文章