【KG-BERT:BERT用于知识图谱补全】(非常详细),收藏这一篇就够了
知识图谱是许多人工智能任务的重要资源,但往往存在不完整性问题。在这项工作中,我们使用预训练的语言模型来完成知识图。将知识图中的三元组视为文本序列,并提出了一种新的框架——知识图双向编码表示转换器(KG-BERT)来建模这些三元组。该方法以三元组的实体描述和关系描述为输入,利用KG-BERT语言模型计算三元组的评分函数。在多个基准知识图上的实验结果表明,我们的方法在三重分类、链接预测和关系预测任务中
自我介绍:
您好,我们是一群热情洋溢的探索者,致力于深耕于知识图谱和大型语言模型(LLM)领域。我们的目标是挖掘、分析并分享那些能够启迪思维、推动科学进步的优质学术论文。我们坚信,知识的传播和交流是促进创新和社会发展的关键力量。
论文标题
KG-BERT: BERT for Knowledge Graph Completion
KG-BERT:BERT用于知识图谱补全
论文链接
https://arxiv.org/abs/1909.03193
github地址
https://github.com/yao8839836/kg-bert
作者
Liang Yao, Chengsheng Mao, Yuan Luo∗
论文背景
知识图谱是许多人工智能任务的重要资源,但往往存在不完整性问题。在这项工作中,我们使用预训练的语言模型来完成知识图。将知识图中的三元组视为文本序列,并提出了一种新的框架——知识图双向编码表示转换器(KG-BERT)来建模这些三元组。该方法以三元组的实体描述和关系描述为输入,利用KG-BERT语言模型计算三元组的评分函数。在多个基准知识图上的实验结果表明,我们的方法在三重分类、链接预测和关系预测任务中都能达到最先进的性能。
相关工作
知识图谱嵌入技术:
1.优点:
- 结构信息利用:这些方法利用了知识图谱中的三元组结构信息进行知识图谱补全,能够有效地捕捉实体之间的关系。
- 可扩展性:许多模型如TransE、DistMult等具有较强的可扩展性,能够应用于大规模的知识图谱上。
直观的评分函数:翻译距离模型(如TransE)使用距离作为评分函数,易于理解和实现;而语义匹配模型(如DistMult)则通过相似度评分,能够较好地捕捉实体间的语义关联。 - 引入外部信息:一些研究开始尝试将外部信息(如实体类型、逻辑规则、文本描述等)引入到知识图谱嵌入中,以进一步提高模型的性能。例如,TEKE模型利用实体注释文本语料库中的共现信息来增强KG嵌入。
- 上下文感知:最近的方法(如基于LSTM编码器和注意力机制的模型)能够根据不同关系构造上下文敏感的文本表示,这对于处理实体和关系在不同三元组中的语义多样性尤为重要。
2.缺点:
- 单一性:早期的一些模型(如通过平均词嵌入来表示实体)忽略了词在不同上下文中可能具有的不同含义或重要性权重,导致表示不够精细。
- 信息利用率不足:尽管引入了文本描述等外部信息,但现有的方法往往只利用了实体描述、关系提及及与实体的词汇共现信息,未能充分利用大规模自由文本数据中的所有语法和语义信息。
- 上下文敏感性有限:尽管一些模型试图通过引入上下文信息来改善表示质量,但在处理大规模数据时,如何有效利用上下文仍然是一个挑战。
- 计算复杂度:某些模型(如基于卷积神经网络的模型)可能会增加计算复杂度,尤其是在处理大规模知识图谱时,这可能限制了它们在资源受限环境下的应用。
- 数据依赖性:模型的效果很大程度上依赖于可用的数据量和质量。缺乏充足或高质量的数据可能会限制模型的性能提升。
预训练语言模型:
预训练的语言表示模型可以分为两类:基于特征的方法和微调方法。
基于特征的方法: 传统词嵌入如Word2Vec和Glove学习与上下文无关的词向量。ELMo则引入了上下文感知的词嵌入,能够处理词的多义性。
微调方法:GPT和BERT使用预训练模型作为特定NLP任务的基础,从大量自由文本中捕获语义模式。
近年来,预训练语言模型也被应用于知识图谱(KG)领域:
KG中的预训练: 一些研究如(Wang et al. 2018)在KG生成的实体-关系链上学习上下文嵌入,并用于初始化如TransE这样的KG嵌入模型。
增强语言表示:(Zhang et al. 2019)在KG中引入信息实体以增强BERT的表示。
生成新实体和关系:(Bosselut et al. 2019)使用GPT在常识知识库中生成新的尾部实体。
不同于上述研究,作者的方法是利用实体和关系的名称或描述作为输入,通过微调BERT来计算三元组的合理性分数。
理论方法
BERT (Devlin et al. 2019) 是一种先进的预训练上下文语言表示模型,基于多层双向Transformer编码器 (Vaswani et al. 2017)。Transformer编码器的核心是自注意力机制。
BERT的训练过程分为两个阶段:
-
预训练:
- BERT在大规模未标注的通用领域语料库(如BooksCorpus和英文维基百科中的3300万单词)上进行训练。
- 完成两个自监督任务:
- 掩码语言建模(Masked Language Model, MLM):随机遮挡输入文本中的某些词,BERT预测这些被遮挡的词。
- 下一句预测(Next Sentence Prediction, NSP):判断两个输入句子是否连续出现。
-
微调:
- 使用预训练得到的参数初始化BERT模型。
- 利用特定下游任务(如句子对分类、问答和序列标注)的标注数据对所有参数进行微调。
这种两阶段的方法使BERT能够在多种NLP任务中表现出色。
用于三元组建模的KG-BERT架构如图1所示,这个版本被称为KGBERT(a)。以下是该架构的具体描述:
输入序列组成
- 特殊标记:每个输入序列的第一个标记总是特殊的分类标记
[CLS]
。 - 头部实体表示:头部实体通过包含一系列标记
Tok_h1, ..., Tok_hn
的句子来表示。例如,头部实体“Steve Paul Jobs”可以表示为“史蒂夫·保罗·乔布斯是美国商业巨头、企业家和投资者。” - 关系表示:关系通过包含一系列标记
Tok_r1, ..., Tok_rb
的句子来表示。例如,关系“成立”可以表示为一个单独的句子或短语。 - 尾部实体表示:尾部实体通过包含一系列标记
Tok_t1, ..., Tok_tn
的句子来表示。例如,尾部实体“Apple Inc.”可以表示为“苹果公司是一家美国跨国科技公司,总部设在加利福尼亚州的库比蒂诺。”
分隔符
- 分隔标记:实体和关系的句子由一个特殊的标记
[SEP]
分隔。 - 段嵌入:不同的
[SEP]
分隔的元素有不同的段嵌入。具体来说:- 头部实体和尾部实体的句子中的标记具有相同的段嵌入
eA
。 - 关系句子中的标记具有不同的段嵌入
eB
。
- 头部实体和尾部实体的句子中的标记具有相同的段嵌入
输入表示
对于给定的标记,其输入表示是通过将相应的标记嵌入(token embedding)、段嵌入(segment embedding)和位置嵌入(position embedding)相加来构建的。这样可以确保模型不仅知道每个标记本身的意义,还能理解它在句子中的位置以及它属于哪个段落(头部实体、关系或尾部实体)。
示例
- 输入序列:
[CLS] 史蒂夫·保罗·乔布斯是美国商业巨头、企业家和投资者 [SEP] 成立 [SEP] 苹果公司是一家美国跨国科技公司,总部设在加利福尼亚州的库比蒂诺 [SEP]
- 输入表示:每个标记的输入表示由其 token embedding、segment embedding 和 position embedding 组成。
通过这种方式,KGBERT(a) 能够处理复杂的三元组信息,并利用BERT强大的预训练能力来捕捉实体和关系之间的深层语义联系。这种方法允许模型在进行三元组预测或分类时,利用上下文中的更多信息,从而提高预测的准确性。
在使用BERT进行三元组(三重)评分的过程中,模型通过以下方式处理输入序列并计算评分:
-
输入表示:每个输入标记
i
(i
的范围为{1, 2, 3, …, 512}
)都有一个输入表示E_i
。这些表示被输入到基于 Vaswani 等人(2017)描述的多层双向 Transformer 编码器的 BERT 模型架构中。 -
最终隐藏向量:特殊标记
[CLS]
和第i
个输入标记的最终隐藏向量分别表示为C
和T_i
,其中H
是预训练 BERT 模型中的隐藏状态大小。 -
聚合表示:使用
[CLS]
标记对应的最终隐藏状态C
作为整个输入序列的聚合表示,用于计算三元组的评分。 -
评分函数:对于一个三元组
τ = (h, r, t)
,其评分函数定义为st_τ = f(h, r, t) = sigmoid(CW^T)
。这里的W
是一个2×H
的矩阵,是三元组分类微调过程中引入的唯一新参数。评分函数的结果st_τ
是一个二维的实向量,其中每个元素sτ0
和sτ1
均在[0,1]
之间,且sτ0 + sτ1 = 1
。 -
损失函数:给定正三元组集
D
和相应的负三元组集D−
,使用st_τ
和三元组标签计算交叉熵损失。交叉熵损失衡量了模型预测的概率分布与真实标签之间的差距。
用于预测关系的KG-BERT架构如图2所示,我们称这个版本为KGBERT(b)。下面是该版本的具体描述和公式表示:
架构描述
- 输入序列:KGBERT(b)仅使用两个实体
h
和t
的句子来预测它们之间的关系r
。 - 表示方式:与KG-BERT(a)一样,使用
[CLS]
标记的最终隐藏状态C
作为两个实体的表示。 - 分类层:在关系预测微调过程中,引入的新参数是分类层的权重矩阵
W ∈ R^{R×H}
,其中R
是知识图谱中关系的数量,H
是隐藏状态的大小。 - 评分函数:对于三元组
τ = (h, r, t)
,评分函数定义为:
[sτ=f(h,r,t)=softmax(CWT)][s_{\tau} = f(h, r, t) = \text{softmax}(CW^T)][sτ=f(h,r,t)=softmax(CWT)]
其中 sτ∈RRs_{\tau} ∈ R^Rsτ∈RR是一个
R维的实向量,每个元素
sτi∈[0,1]s_{\tau i} ∈ [0,1]sτi∈[0,1]表示三元组中关系
r属于第
i` 个可能关系的概率,并且所有可能关系的概率之和为 1,即:
[sumi=1Rsτi=1][sum_{i=1}^{R} s_{\tau i} = 1][sumi=1Rsτi=1]
损失函数
给定一个三元组 τ = (h, r, t)
,我们使用 s_{\tau}
和关系的真实标签 y_{\tau}
来计算交叉熵损失:
[L=−∑τ∈D∑i=1Ryτilog(sτi)][L = -\sum_{\tau \in D} \sum_{i=1}^{R} y_{\tau i} \log(s_{\tau i})][L=−τ∈D∑i=1∑Ryτilog(sτi)]
其中 D
是包含所有训练样本的集合,y_{\tau i}
是一个指示变量,如果关系 i
是三元组 τ
的真实关系,则 y_{\tau i} = 1
,否则 y_{\tau i} = 0
。
微调过程
在初步实验中,直接预测两个实体之间的关系比使用关系替换(通过用随机关系替换实际关系来生成负样本)的方法效果更好。这意味着直接从实体的上下文信息中学习关系,而不是通过引入噪声来生成负样本,可能更有利于模型的性能。
KGBERT(b)简化了关系预测过程,通过直接使用实体 h
和 t
的句子来预测它们之间的关系 r
,并引入了一个分类层的权重矩阵 W
来计算每个可能关系的概率。模型通过最小化交叉熵损失来优化参数,从而提高预测准确性。
实验部分
三元组分类任务的分析
目标
三元组分类的目的是判断给定的三元组 (h, r, t)
是否正确。
方法对比
表2展示了不同方法在WN11和FB13数据集上的三元组分类准确率。可以看出,KG-BERT(a)明显优于所有基线模型,这表明该方法的有效性。模型经过10次运行,标准差小于0.2,表明其性能稳定,并且改进显著(p < 0.01)。
各模型表现
- TransE:无法处理一对多、多对一和多对多的关系,因此准确率不高。
- TransH, TransR, TransD, TranSparse, TransG:通过引入关系特定参数来改进TransE,表现优于TransE。
- DistMult:性能相对较好,通过在DistMult-hrs中使用层次关系结构信息可以进一步改进。
- ConvKB:展示了不错的结果,表明CNN模型可以捕获实体和关系嵌入之间的全局交互。
- DOLORES:通过在实体-关系随机行走链中加入上下文信息,进一步改进了ConvKB。
- NTN:表现有竞争力,特别是在FB13上,表明使用词嵌入表示实体是有帮助的。
- TEKE, AATE:优于基本模型如TransE和TransH,证明了外部文本数据的好处,但由于对丰富语言模式的使用较少,改进仍然有限。
KG-BERT(a)的优势
- 输入序列:包含实体词序列和关系词序列,提供了更多的上下文信息。
- 任务相似性:三元组分类任务与BERT预训练中的下句预测任务非常相似,即捕获大型自由文本中两句之间的关系,因此预训练的BERT权值很好地适应了推断三元组中不同元素间的关系。
- 上下文嵌入:令牌隐藏向量是上下文嵌入,相同的令牌在不同的三元组中可以有不同的隐藏向量,从而显式地使用上下文信息。
- 自注意力机制:可以发现与三元组事实相关的最重要词语。
数据集表现
- WN11:KG-BERT(a)的改进比FB13更大,因为WordNet更接近于预训练语言模型中包含的语言模式。
- FB13:即使在只有5%的训练三元组的情况下,KG-BERT(a)也能达到88.1%的测试准确率。
- WN11:使用10%的训练三元组,KG-BERT(a)达到了87.0%的测试准确率。
这些结果表明,KG-BERT(a)能够充分利用大量外部文本数据中的丰富语言模式来克服知识图谱的稀疏性。通过结合实体和关系的上下文信息,以及利用BERT的预训练能力,KG-BERT(a)在三元组分类任务上表现优异,特别是在数据量有限的情况下依然能保持较高的准确率。
链接预测任务
链接预测任务的目标是在给定部分三元组的情况下预测缺失的部分。具体来说,它可以是预测头部实体 h
(?
, r
, t
) 或者是预测尾部实体 t
(h
, r
, ?
),其中 ?
表示未知的实体。
评价指标
为了评估预测结果,通常使用评分函数 f(h, r, t)
对测试集中的每一个三元组进行打分。在我们的方法中,评分函数为 s_τ0
。每个正确的测试三元组 (h, r, t)
会通过将其头部或尾部实体替换为每个可能的实体 e ∈ E
而被破坏。这些候选实体根据它们的可信性得分进行排序。
常用的评估指标有两个:
- 平均排名 (Mean Rank, MR):正确实体的平均排名。MR 越低,模型性能越好。
- Hits@10:正确实体出现在前10名中的比例。Hits@10 越高,模型性能越好。
设置说明
在评估时,我们遵循过滤设置 (Filtered Setting),即在获取排名列表之前删除所有出现在训练、开发和测试集中的损坏三元组。这种设置更公平地反映了模型的泛化能力。
不同模型的表现
表3展示了不同模型在链接预测任务上的表现。我们使用OpenKE工具包测试了一些经典基线模型,而其他结果则来自原始论文。
- KGBERT(a) 在 WN18RR 和 FB15k237 数据集上的平均排名 (MR) 最低,这表明它在预测正确实体的平均位置方面优于其他模型。
- Hits@10 分数:尽管 KGBERT(a) 在 MR 上表现出色,但在 Hits@10 方面,它的分数低于一些最先进方法。这是因为 KGBERT(a) 可以有效地避免那些与实体和关系的句子语义高度相关的排名,但它没有明确地建模知识图谱的结构信息,导致它不能总是将给定实体的某些邻近实体排在前10位。
- ConvE 和 ConvKB:这两种基于 CNN 的模型表现良好,可能是因为它们能够捕捉到实体和关系嵌入之间的全局交互,这对于链接预测任务特别有用。
KGBERT(a) 在链接预测任务中的 MR 表现优秀,但在 Hits@10 指标上略逊于一些先进的模型。这可能是由于它更多依赖于语言模型的上下文理解,而较少考虑知识图谱的结构特性。相比之下,ConvE 和 ConvKB 由于其捕捉全局交互的能力,在 Hits@10 上表现更好。这表明未来的研究方向可能需要结合语言模型的强大上下文理解和知识图谱的结构信息,以进一步提升链接预测的效果。
结论
在这项研究中,作者提出了一个新的知识图谱补全方法——知识图谱BERT(KG-BERT)。这种方法的主要特点是将实体和关系表示为它们的名称或描述文本序列,并将知识图谱补全问题转化为序列分类问题。通过这种方式,KG-BERT能够利用大量的自由文本中的丰富语言信息,突出与三元组相关的重要词汇。
主要贡献
- 序列表示:实体和关系不再仅仅是ID,而是它们的文本形式,这使得模型能够更好地理解实体和关系的含义。
- 任务转换:将知识图谱补全问题转换为序列分类问题,这样就可以利用预先训练的语言模型(如BERT)来解决这一问题。
- 突出重要词汇:通过自注意力机制,KG-BERT能够识别出与三元组事实最相关的关键词汇。
- 性能验证:在多个基准知识图谱数据集上的实验结果表明,KG-BERT能够取得优于现有最先进技术的结果。
未来工作方向
-
结构与文本联合建模:通过结合KG的结构信息和文本信息,可能会进一步提升KG-BERT的性能。这种方法可以弥补当前模型仅依赖文本信息而忽略KG固有结构的不足。
-
预训练模型的应用:利用更强大的预训练模型(如XLNet),这些模型在更大的文本语料上进行了预训练,可能会带来更好的上下文理解和更丰富的语言模式识别能力,从而改进KG-BERT的性能。
-
知识增强的语言模型:将KG-BERT作为一种知识增强的语言模型应用到语言理解任务中,比如问答系统、自然语言推理等。这种方法可以通过引入知识图谱中的结构化知识来增强语言模型的理解能力,从而提高其在这些任务上的表现。
通过上述改进和扩展,KG-BERT不仅能够在知识图谱补全任务中表现得更加出色,还有潜力在更广泛的语言理解任务中发挥重要作用。
PS:整理的PPT和资料稍后上传到公众号,直接回复论文名字,即可获取!
关注我们
欢迎大家关注我们的公众号,我们将会分享更多有关知识图谱和LLM方向的论文:
更多推荐
所有评论(0)