K-BERT | 基于知识图谱的语言表示模型

简介: K-BERT | 基于知识图谱的语言表示模型

今天给大家介绍发表在AAAI 2020上的文章“K-BERT: Enabling Language Representation with Knowledge Graph”,该工作由清华大学Weijie Liu等人完成。文章提出将知识图谱与预训练语言表示模型BERT相结合,使机器在阅读特定领域文本时,能够利用相关领域知识进行推理。


image.png

image.png

1


研究背景


BERT曾被应用在多项NLP任务中,并且取得了很好的结果。它通过在大规模开放语料库上进行预训练以获得通用的语言表示,然后在特定的下游任务中进行微调,吸收特定领域的知识。但这些模型在不同的领域执行知识驱动任务时,效果不佳。为了解决这个问题,可以在特定领域的数据集上进行预训练,或者在预训练时注入特定的领域知识。但这些方法一般非常耗时且昂贵。


有些学者提出将知识图谱(KG)集成到语言表示(LR)中,为模型配备领域知识,提高模型在特定领域任务上的性能,同时降低大规模预训练成本。但在知识整合的同时,存在两个不可避免的问题:1)异构嵌入空间(HES),文本中的词和KG中的词嵌入向量空间不一致;2)知识噪音(KN),过多的知识融合会使句子偏离正确的意思。为了解决这些问题,文章提出一种基于知识图谱的语言表示模型——K-BERT。K-BERT能够与BERT模型兼容,加载任何预先训练好的BERT模型,并且通过配置KG可以很容易地将领域知识注入到模型中,而不需要预训练。另外,该模型引入了软位置和可见矩阵来限制知识的影响以克服知识噪音。


2


方法


文章详细介绍了K-BERT的实现,K-BERT的模型体系结构主要由四个模块组成,即知识层、嵌入层、视图层和掩码转换。其总体框架如图1所示:

image.png

图1 K-BERT的模型结构


K-BERT模型的每一部分都有着不可或缺的作用。对于输入的句子,知识层首先从KG向其注入相关的三元组,将原始句子转换为知识丰富的句子树。然后将句子树同时馈送到嵌入层和视觉层,然后将其转换为符号级嵌入表示和可视矩阵。可见矩阵用于控制每个符号的可见区域,防止由于注入过多的知识而改变原句的意思。


2.1 知识层


知识层(KL)用于句子知识注入和句子树转换。给定输入句子s={w0,w1,w2,...,wn}和知识图谱K,KL输出句子树t={w0,w1,.,wi{(ri0,wi0),...,(rik,wik)},...,wn}。这个过程可以分为两个步骤:知识查询(K-Query)和知识注入(K-Inject)。

image.png

在K-Query中,从K-Query中选出句子s中涉及的所有实体名称来查询其对应的三元组。K-Query可以表示为(1),


(1)


其中E={(wi,ri0,wi0),.,(wi,rik,wik)}是相应三元组的集合。


接下来,K-Inject通过将E中的三元组注入到它们对应的位置,将查询到的E注入到句子s中,并生成一个句子树t。在本文中,一棵句子树可以有多个分支,但其深度固定为1,这意味着三元组中的实体名称不会迭代地派生分支。K-Inject可以表示为(2),

image.png

2.2 嵌入层


嵌入层(EL)的功能是将语句树转换为可以馈送到掩码转换器中的嵌入表示。与BERT相似,K-BERT的嵌入表示是由符号嵌入、位置嵌入和段嵌入三部分组成,不同之处在于K-BERT嵌入层的输入是句子树,而不是符号序列。因此,如何在保留句子树结构信息的同时将句子树转换成序列是K-BERT的关键。


符号嵌入与BERT基本一致,不同之处在于语句树中的符号在嵌入操作之前需要重新排列。在重新排列策略中,分支中的符号被插入到相应节点,而后续的符号则向后移动。经此操作后句子变得不可读,丢失了正确的结构信息。但该问题可以通过软位置可视矩阵来解决。


BERT输入句子的所有结构信息都包含在位置嵌入中,可以将缺失的结构信息重新添加到不可读的重新排列的句子中,但句子位置信息会有所改变。要解决这个问题,需要给句子树重新设置位置标号。但在设置位置编号时又会发生实际没有联系的词汇,因具有相同的软位置标号而出现联系,导致句子意思发生改变。这个问题的解决方案是使用掩码-自我注意机制。


2.3 视图层


视图层是K-BERT和BERT的最大区别,也是这种方法如此有效的原因。K-BERT的输入是一棵句子树,其中的分支是从KG获得的知识。但它可能导致原句意思的变化,即KN问题。


在句子树中,一个实体的三元组应与其他词汇无关。同时,用于分类的[CLS]标签不能绕过主体词汇来获得修饰三元组的信息。为了解决这个问题,K-BERT使用可见矩阵M来限制每个符号的可见区域防止不相干词汇相互干扰。可视矩阵可以表示为(3),

image.png

(3)

其中wi⊖wj表示在同一分支,wi⊘wj则不在。i和j是硬位置索引。

嵌入层和可视层的工作原理如图2所示:

image.png

图2 句子树转换成嵌入表示和可视矩阵工作过程


2.4 掩码转换


可视矩阵M包含句子树的结构信息,但BERT中的编码器不能接收M作为输入,所以我们需要将其修改为Mask-Transformer,它可以根据M限制自注意区域。Mask-Transformer是一个由多个掩码-自我注意块组成的堆栈。


为了利用M中的句子结构信息来防止错误的语义变化,文章提出了一种掩码-自注意,它是自我注意的扩展。掩码-自注意表示如(4)。

image.png

其中Wq,Wk和Wv表示可训练的模型参数;hi表示第i个掩码自我注意块;dk是比例因子;M是可视矩阵。掩码转换的工作原理如图4所示:

image.png

图4 掩码转换是多个掩码自我注意块的堆栈


3


实验


3.1 数据集


K-BERT在12个中国自然语言处理任务上进行微调,其中8个是开放领域的,4个是特定领域的。文章采用两个预训练语料库:WikiZh和WebtextZH;三个中文知识图谱:CN-DBpedia、HowNet和MedicalKG。在文章中,作者将K-BERT和Google BERT和Our BERT模型进行了一个比对,以观察它的性能。


3.2 实验分析


在文章中,作者首先比较了KBERT和BERT在八个中文开放领域自然语言处理任务上的性能。这八个任务分别是:Book_revire、Chnsenticorp、Shopping、Weibo、XNLI、LCQMC、NLPCC-DBQA和MSRA-NER。


上述每个数据集分为三个部分:训练、开发和测试。实验结果如表1和表2所示:


表1 句子分类任务的不同模型在开放领域任务上的结果(ACC%)

image.png

表2 不同模型对NLPCC-DBQA(MRR%)和MSRA-NER(F1%)的结果

image.png

从表中可以看出,使用额外的语料库(WebtextZh)也可以带来性能提升,但不如KG显著。

作者在两个特定领域的任务:Domain Q&A和Law_Q&A上评估了K-BERT的性能。实验结果如表3所示:

表3 特定领域任务的各种模型的结果(%)

image.png

结果表明,K-BERT在特定领域上的具有明显的语言表示优势。

目录
相关文章
|
8月前
|
机器学习/深度学习 人工智能 开发工具
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人员公开分享和测试他们所训练的模型。 本次分享如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face。
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
|
8月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
125 0
|
8月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
81 0
|
3月前
|
自然语言处理 PyTorch 算法框架/工具
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
【10月更文挑战第1天】随着深度学习技术的进步,预训练模型已成为自然语言处理(NLP)领域的常见实践。这些模型通过大规模数据集训练获得通用语言表示,但需进一步微调以适应特定任务。本文通过简化流程和示例代码,介绍了如何选择预训练模型(如BERT),并利用Python库(如Transformers和PyTorch)进行微调。文章详细说明了数据准备、模型初始化、损失函数定义及训练循环等关键步骤,并提供了评估模型性能的方法。希望本文能帮助读者更好地理解和实现模型微调。
114 2
掌握从零到一的进阶攻略:让你轻松成为BERT微调高手——详解模型微调全流程,含实战代码与最佳实践秘籍,助你应对各类NLP挑战!
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
【大语言模型-论文精读】谷歌-BERT:用于语言理解的预训练深度双向Transformers
182 1
|
3月前
|
机器学习/深度学习 自然语言处理 知识图谱
|
3月前
|
机器学习/深度学习 自然语言处理 算法
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
[大语言模型-工程实践] 手把手教你-基于BERT模型提取商品标题关键词及优化改进
273 0
|
4月前
|
搜索推荐 算法
模型小,还高效!港大最新推荐系统EasyRec:零样本文本推荐能力超越OpenAI、Bert
【9月更文挑战第21天】香港大学研究者开发了一种名为EasyRec的新推荐系统,利用语言模型的强大文本理解和生成能力,解决了传统推荐算法在零样本学习场景中的局限。EasyRec通过文本-行为对齐框架,结合对比学习和协同语言模型调优,提升了推荐准确性。实验表明,EasyRec在多个真实世界数据集上的表现优于现有模型,但其性能依赖高质量文本数据且计算复杂度较高。论文详见:http://arxiv.org/abs/2408.08821
113 7
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
5月前
|
机器学习/深度学习 存储 自然语言处理
【NLP-新闻文本分类】3 Bert模型的对抗训练
详细介绍了使用BERT模型进行新闻文本分类的过程,包括数据集预处理、使用预处理数据训练BERT语料库、加载语料库和词典后用原始数据训练BERT模型,以及模型测试。
89 1

热门文章

最新文章