JAKET: JOINT PRE-TRAINING OF KNOWLEDGE GRAPH AND LANGUAGE UNDERSTANDING阅读笔记
- 背景介绍
知识图谱与预训练模型结合的工作存在的挑战:当预先训练好的模型在一个新的领域中使用一个以前没有出现的知识图谱进行微调时,它很难适应新的实体、关系和结构。
提出知识图谱与文本的联合预训练框架:JAKET框架。该框架包含一个知识模块和一个语言模块,这两个模块相互帮助,提供所需的信息,以实现更有效的语义分析。
-
Knowledge Module:利用图形注意力网络为语言建模提供结构感知实体嵌入。
-
Language Module:生成上下文表示作为KG实体和关系的初始嵌入,并给出它们的描述性文本。
- 方法
-
Knowledge Module
目标:对知识图谱进行建模,生成基于知识的实体表示。
方法:采用图注意力网络以及组合算子的思想来组合实体嵌入和关系嵌入
在语言模型的第L层,实体v的嵌入计算为:
其中方程f(x,y)将实体和关系嵌入合并为一个表示,f(x, y) = x + y.
初始实体嵌入和关系嵌入有语言模型提供。
由于知识图谱可能非常大,使得方程(1)中所有实体的嵌入更新不可处理。因此,遵循minibatch设置:给定一组输入实体,执行邻域抽样以生成它们的多跳邻居集,并且只计算嵌入更新所需的实体和关系的表示。 -
Language Module
目标:建立文本数据模型和学习上下文感知表示。
方法:使用RoBERTa-base作为预训练模型; -
Solving The Cyclic Dependency
在该框架中,知识和语言模块相互受益:语言模块LM输出上下文感知嵌入,初始化给定描述文本的知识图谱中实体和关系的嵌入;知识模块(KM)为语言模块输出基于知识的实体嵌入。
问题:这种设计中存在一种循环依赖关系,阻碍了计算和优化。
解决办法:提出了一个分解的语言模块,它包括两个语言模型:LM1和LM2。使用RoBERTa的前6层为LM1,其余6层为LM2。计算过程如下:
(1)LM1对输入文本x操作,生成上下文嵌入Z。
(2)LM1为KM给定的描述文本生成初始实体和关系嵌入。
(3)KM生成其输出实体嵌入,以与Z组合发送至LM2。
(4)LM2生成x的最终嵌入,其中包括上下文和知识信息。
-
Entity Context Embeding Memory
问题:许多知识图包含大量的实体,根据批处理中所有涉及实体的描述文本来计算上下文嵌入是非常耗时的。
解决办法:构造了一个实体上下文嵌入内存Econtext来存储所有KG实体的初始嵌入。
(1)语言模块预先计算所有实体的上下文嵌入并将其放入内存中。知识模块只需要从内存中检索所需的嵌入,而不需要计算它们。
(2)每隔T(i)步用当前语言模块更新整个嵌入内存Econtext。 -
Pre-training
在预培训过程中,知识模块和语言模块都是根据下面列出的几个自监督学习任务进行优化的。所有培训任务的示例如图2所示。
在每个预训练步骤中,首先对一批根实体进行采样,然后对每个根实体执行随机游走采样。对于以下两个任务,将采样的实体输入到KM中。
实体类别预测、关系类别预测、标识掩码预测、实体掩码预测 -
Fine-tuning