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在特定领域上的具有明显的语言表示优势。

目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 开发工具
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人员公开分享和测试他们所训练的模型。 本次分享如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face。
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
|
4月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图 REV1
Bert Pytorch 源码分析:五、模型架构简图 REV1
68 0
|
4月前
|
JavaScript
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI,操作上更加亲民和接地气。
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
|
4月前
|
PyTorch 算法框架/工具
Bert Pytorch 源码分析:五、模型架构简图
Bert Pytorch 源码分析:五、模型架构简图
55 0
|
10月前
lda模型和bert模型的文本主题情感分类实战
lda模型和bert模型的文本主题情感分类实战
189 0
|
10月前
|
并行计算 API C++
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
Bert-vits2项目近期炸裂更新,放出了v2.0.2版本的代码,修正了存在于2.0先前版本的重大bug,并且重炼了底模,本次更新是即1.1.1版本后最重大的更新,支持了三语言训练及混合合成,并且做到向下兼容,可以推理老版本的模型,本次我们基于新版V2.0.2来本地推理原神小姐姐们的音色模型。
又欲又撩人,基于新版Bert-vits2V2.0.2音色模型雷电将军八重神子一键推理整合包分享
|
24天前
|
算法 异构计算
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
自研分布式训练框架EPL问题之帮助加速Bert Large模型的训练如何解决
|
1月前
|
机器学习/深度学习 存储 自然语言处理
【NLP-新闻文本分类】3 Bert模型的对抗训练
详细介绍了使用BERT模型进行新闻文本分类的过程,包括数据集预处理、使用预处理数据训练BERT语料库、加载语料库和词典后用原始数据训练BERT模型,以及模型测试。
37 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
118 9
|
1月前
|
数据采集 人工智能 数据挖掘
2021 第五届“达观杯” 基于大规模预训练模型的风险事件标签识别】3 Bert和Nezha方案
2021第五届“达观杯”基于大规模预训练模型的风险事件标签识别比赛中使用的NEZHA和Bert方案,包括预训练、微调、模型融合、TTA测试集数据增强以及总结和反思。
25 0