©原创作者 | 疯狂的Max
01 预训练模型与知识图谱
1.预训练模型
近年来,随着语言模型的技术发展,其在NLP领域获得巨大的成功,业界SOTA的前沿模型也大多是Transformer结构模型的变体。
Transformer结构模型使用注意力机制来获取文本中长距离字符间的依赖关系,包括对其进行优化的Transformer XL,BERT使用的MLM模型和XLNET使用的PLM模型。
这种类型的模型对语法知识进行编码,同时在一定程度上扩展了非结构文本中蕴含的语义知识,比如有论文证实了BERT模型在编码过程中获取了句法树的知识[5],也就解释了为什么这些预训练模型能够在语法相关的下游任务上表现良好。
2.知识图谱
知识图谱的概念诞生于2012年,由Google公司首先提出。知识图谱的提出是为了准确地阐述人、事、物之间的关系,最早应用于搜索引擎。
知识图谱在不同应用场景和技术范畴内,定义有所不同,但在自然语言处理视角下,知识图谱可以看做从文本中抽取语义和结构化的数据。
简单来说,知识图谱可以被定义为一种用于表示现实世界知识的图形式的数据,其中的每个节点代表一种实体或属性,连接节点的边表示两节点的关系[3]。
简单理解,可以将知识图谱看做是若干三元组的集合,这些三元组在某个知识领域范畴内表示着各个实体概念之间错综复杂的关系。
这些知识图谱既可以是来自于现实世界的常识类知识图谱,如下图1所示[2]。也可以是基于语言学知识构建的单词图谱,如WordNet[4],这是一个覆盖范围宽广的英语词汇语义网,反映了词语之间同义词,反义词,上下位词等关系,如下图2 所示。
图1 常识概念类的知识图谱示例
图2 WordNet示例
3.将知识图谱融入预训练模型
正如前文提到,预训练模型在一定程度上可以从非结构化的文本信息中获取知识,而知识图谱可以看做从文本中抽取语义和结构化的数据,那么可以预想这两者的结合对于提升模型效果将有极大研究价值和探索空间。
但如何将两者有效的结合起来,也激发了许多研究者的兴趣。是否有通用的融合方式使得可以在任何类型的业务场景下或者是下游任务中,都能有效提升模型效果?或者在某些特定条件下,需要针对不同的垂直领域,对融合方式进行实验调整和选择?本文接下来将对一系列将知识图谱融入预训练模型的研究进行介绍,并归纳总结。
02 知识图谱融入预训练模型的三种方式[3]
由于知识图谱是以图的形式表示实体关系,因此需要对其进行转换和改造,以融入预训练模型中,可以将融合方式分为三种类型:改造模型输入的融合方式、改造模型结构的融合方式和改造模型输出的融合方式[3]。
接下来介绍的一系列研究中,可能是采取其中一种融合方式,或者几种融合方式相结合。
1. 改造模型输入的融合方式(input injection)
这种融合方式被定义为对进入预训练模型的输入进行改造,既包括在预处理阶段将知识图谱的三元组知识融入到输入数据中,也包括将输入中实体的embedding和输入本身的embedding结合起来的方式。
无论是以哪种技术实现,只要是对输入模型的数据进行了与知识图谱相关的改造或结合,都被划分为改造模型输入的融合方式。
2. 改造模型结构的融合方式(architecture injection)
通过改造预训练模型结构的方式来融合外部知识,这种融合方式包括在原有预训练模型的层结构之间加入额外的层或者在最终层之后添加额外的层。
3. 改造模型输出的融合方式(output injection)
通过改造模型的预训练或微调任务,这种改造是基于知识图谱构建的,可以理解为隐性的通过训练模型去适应蕴含知识图谱知识的任务来实现知识图谱的融入,这也包括了对损失函数的重新定义。
以上三种融入方式在整个预训练模型中的流程如下图3所示:
图3 知识图谱融入预训练模型的三种方式
03 知识图谱融入预训练的一系列模型
本文除了从融入方式对模型进行归纳,还将从以下几个维度对每种介绍的模型进行归纳总结:使用的知识图谱类型,是否使用知识图谱嵌套,是否在pre-training和fine-tuning阶段融入知识图谱。
1.K-ADAPTER: Infusing Knowledge into Pre-Trained Models with Adapters
1)论文地址:
https://arxiv.org/pdf/2002.01808.pdf
2)融入方式:architecture injection + output injection
3)使用的知识图谱:Wikipedia(常识类),dependency parse(语法类)
4)是否使用知识图谱嵌套:否
5)是否在pre-training和fine-tuning阶段使用知识图谱的融入:fine-tuning
6)模型的介绍说明
K-ADAPTER通过一种灵活且简单的框架将多种知识图谱融入预训练模型中,保留原本的预训练模型参数不变,通过在预训练模型的中间层之外加入额外的模型结构。
整体的模型框架如下图所示。图(a)是之前大部分通过注入知识图谱相关的多任务学习来更新整个模型参数的框架,图(b) 是K-ADAPTER通过知识适配器引入知识的框架。
具体来说,K-ADAPTER保留了预训练模型原本的参数,使其参数固定,在融入某一种知识的时候,只更新对应的adapter,从而产出不同知识对应的不相互混淆的模型输出。这些不同的adapter结构是在预训练模型的之外的,可以插入和抽取。
其输入是预训练模型中间层的隐层输出结构,这就使得每一个adapter在不同的任务上可以对应融入不同的外部知识,并保证原本的预训练模型的参数是被冻结,不被更新的。
具体来说,每个知识图谱对应一种adapter,每个adapter包含K个adapter层,分别插入到预训练模型原本的不同的transformer层之间。而这中间的每个adapter层由N 个transformer层,2 个映射层和1 个残差连接组成,如下图所示:
每个adapter层连接到预训练模型中不同的transformer层上。其中,每个adapter层的输入为:当前adapter层的输入为连接的 transformer层隐藏层的输出和前一个adapter层的输出,这两个表示进行拼接之后进入adapter层。
而整个K-ADAPTER模型的输出为:将预训练模型最后一层的隐藏层输出和最后一个adapter层的输出,进行拼接作为最终的输出。
文中,作者用RoBERTa作为基础预训练模型,共计335M参数。
在其第0层、11层、23层的transformer层之后加入adapter层,每个adapter层中的transformer层数 、隐层维度和自注意力头为2,768,12,两个映射层维度分别是 1024 和 768。
并且,不同的adapter层之间不共享参数,最终一种adapter包含的参数量为42M。
作者融入了两种类型的知识图谱:一种是维基百科三元组构成的知识图谱,另一种是基于句法依存的语法类知识图谱。
训练好的模型在relation classification,entity typing和question answering这3个知识导向的下游任务上效果都优于RoBERTa,由此可见K-ADAPTER所做的改进是有效的。
7)优点及缺点:
优点:①只需要更新少量参数,训练效率高;②支持持续的多种知识的融入,并且新融入的知识不会对旧知识学习到的参数产生影响。
缺点:并没有对如何针对不同的知识设计不同的训练任务进行探索和说明,模型在实际业务场景中的效果不可知。
2. KT-NET: Enhancing Pre-Trained Language Representations with Rich Knowledge for Machine Reading Comprehension
1)论文地址:
https://aclanthology.org/P19-1226.pdf
2)融入方式:architecture injection
3)使用的知识图谱:WordNet(语法类),NELL(常识类)
4)是否使用知识图谱嵌套:是
5)是否在pre-training和fine-tuning阶段使用知识图谱的融入:fine-tuning
6)模型的介绍说明:
KT-NET将注意力机制应用到对知识图谱内知识抽取中,并将其融入BERT预训练模型&#x