【文献阅读】K-BERT Enabling Language Representation with Knowledge Graph

文章介绍了K-BERT,一种结合知识图谱(KG)的BERT模型,旨在解决通用语言模型在特定领域知识上的不足。通过将KG中的三元组融入句子表示,K-BERT处理知识噪声并保持模型的可解释性。实验表明,选择合适的KG对不同任务有显著影响,K-BERT在特定领域任务中表现出色。
摘要由CSDN通过智能技术生成

原文链接

摘要

指出问题: 预训练的语言表示模型,例如BERT,从大规模的语料库中捕获通用的语言表示,但缺乏特定领域的知识。
实际场景下: 当专家阅读领域文本时,会利用相关知识进行推理。
提出: 一种带有KG的知识语言表示模型K-BERT。具体做法就是将KG中的三元组作为领域知识注入到句子当中。(三元组(知识特征)->句子(文本特征))
问题: 过多的知识融入会偏离句子的正确含义,这称之为知识噪声(KN)
解决办法: 为了克服KN,K-BERT引入位置和可见矩阵来限制知识的影响(这都是BERT里面的内容,粗略看我大胆的猜想一下,这篇文章大概是使用BERT这个为文本所设计的模型转而放在KG上进行使用)
优势: 可以轻松的将知识注入到模型当中,而无需自行预训练,因为可以直接加载已经预训练过的BERT。

注:读完摘要,我产生了一个猜想和一个疑惑。猜想上面已经说过了,疑惑的是知识图谱既然用来增强语言表示,那么知识图谱又是从何而来呢?带着问题继续看)

引言

进一步细化问题: 近年来BERT虽然表现良好,但是预训练和微调之间的领域差异(通用知识与专业知识的差异),这导致了在知识驱动的任务上表现不佳。导致这一问题的原因是:特定领域和开放领域之间的知识联系很少。
进一步阐述动机: 普通人阅读文本的时候,只能是通过上下文尽量去理解单词本身,而专家则可以利用相关的领域知识进行推理。 BERT这类大模型解决专家知识缺少的办法就是通过在预训练过程中大量的投入相关语料,这显然不是最优的。所以另外一套方案就是使用KG来使得到大模型成为领域专家。
进一步介绍具体做法: 这里解释了之前的疑惑,即知识图谱的来源,作者认为知识图谱的来源即为现有的一些知识图谱,因为这些KG的构建过程中就是知识提炼的过程,直接使用就好了。同时这样的做法使得模型具有一定的可解释性,因为KG的构建本就是可解释的。
引出新的问题: 知识与文本的整合存在以下两个问题

  1. 异质性:文本中的单词和KG中的实体嵌入向量是通过不同方式获得的,这就使得它们的向量空间存在不一致。
  2. 知识噪声(KN):过多的知识合并会导致句子偏离它本身正确的含义
    综上,作者提出K-BERT来实现基于知识的Transformers双向编码。

相关工作

概述为以下几点:

  1. BERT大火,陆续出现了很多BERT的变体工作。
  2. 虽然预训练的LR模型是一个新兴方向(在2019年),但是与KG结合的工作却很少,其中该方向的先驱就是THU-ERNIE。ERNIE融合实体信息,但是忽略了实体之间的关系。COMET使用KG中的三元组作为语料库来训练GPT进行常识学习,但是效率非常低。(可是这会儿已经是AIGC时代了,使用LLM生成内容来结合KG我个人认为是相对更加合理的)
  3. 总结之前工作的缺陷在于,它们的主要思想就是使用”word2vec + TransE"的方式来实现知识特征的注入,而不是使用预训练的LR模型,同时这种方法面对较大的实体表时,例如百万级别的KG时,是不能够奏效的。

方法论

在这里插入图片描述

与其他的LR模型对比,K-BERT配备了可编辑的KG,可以适用于其他领域,只需替换KG即可。详细介绍框架中的四个模块,分别是Knowledger-layer、Embedding layer、Seeing layer以及Mask-Transformer Encoder模块。

Knowledge-layer

将KG中与文本中token相关的三元组注入其中。从而将原始的句子转化为知识丰富的“句子树”。可以分为两个阶段,阶段一,进行知识查询;阶段二,进行知识注入。

Stage1:知识查询

选出句子中涉及的所有实体名称,从KG中查询其对应的三元组。

Stage2:知识注入

将上一阶段得到的三元组知识,拼接到相应的位置当中,即实现知识注入,生成句子树。值得一提的是,句子树可以存在多个分支,但是句子树的深度只能够为1。

Embedding-layer

和BERT类似,但是不同的是,BERT输入的是句子序列,而K-BERT输入的是句子树。那么问题就变成了如何将句子树转换成句子序列。

Token embedding

采用BERT中的词汇表,句子树中的每个Token都通过可训练的查找表来转换为H维的嵌入向量。同时也保留了[CLS]和[MASK]。
这里与BERT不同的地方是需要将句子树展平成序列,这个展平的策略是,将分支中的Token插入到相应节点之后,而后续Token就向后移动。这个的过程使得句子变成了不可读的并且丢失了正确的结构信息。不过,可以通过soft-position和可见矩阵来解决。

Soft-position embedding

没有Position embedding的BERT,就退化成了词袋模型,损失了句子的结构信息。作者通过将结构信息包含在位置嵌入中,从而使得能够解决由于重新排列导致的结构信息丢失的问题。但是Soft-position embedding会导致不同的Token存在相同的Soft-position embedding,那么就需要使用Msk-Self-Attention解决。

Seeing-layer

通过Seeing-layer来控制节点之间是否可见,进而防止由于过多的知识而改变原来句子的而含义。当在同一个分支的时候,是可见的,反之是不可见的。(可见矩阵式基于硬位置编码的)通过图中的可见矩阵举个例子,Tim-Cook-CEO-Apple是从知识抽取出来的,所以它们之间是互相可见的,可是原本句子中的“is”并不是属于这个知识当中的,所以对于is而言它只能看见本就和它同属于一个句子当中的Tim、Cook,但是看不见CEO、Apple。其他的同理。

Mask-Transformer

因为原本的BERT并不是针对句子树的,所以也不会存在使用Matrix的方法。所以需要做一些改变,改变的方法就是堆叠层数。
在这里插入图片描述

实验

实验设置
预训练的语料库:
  • WikiZh:中文BERT常用的
  • WebtextZh:高质量的问答数据集
知识图谱
  • CN-DBpedia:复旦大学开发的百科知识图谱
  • HowNet:针对中文词汇和概念的大语言知识库
  • MedicalKG:文章作者自主研发的医学知识图谱,包括四种上位词。
任务
开放型任务
  • XNLI:跨语言的语言理解任务,确定两个句子之间的关系
  • LCQMC:大型中文问题匹配语料库,确定两个问题是否具有相似的意图。
  • NLPCC-DBQA:从给定文档中预测每个问题的答案。
  • MSR-NER:微软发布的NER数据集,任务是识别文本中的实体名称
  • Weibo:情感标注数据集(仅作文本分类任务)
  • Shopping:网购评论数据集(仅作文本分类任务)
  • Chnsenticorp:酒店评论数据集(仅作文本分类任务)
  • Book_review:豆瓣读书数据集(仅作文本分类任务)
任务表现
  1. KG对情感分析任务(即书评、Chnsenticorp、购物和微博)没有显着影响,因为可以在没有任何知识的情况下根据情感词来判断句子的情感;
  2. Language KG(HowNet)在语义相似性任务(即XNLI和LCQMC)方面表现优于百科全书式的KG
  3. 对于问答和NER任务(即NLPCC-DBQA和MSRA-NER),百科全书式KG(CN-DBpedia)比Language KG更合适。因此,根据任务类型选择合适的KG很重要。
特定领域任务

K-BERT在特定领域表现得会更好。

  • 领域知识问答:从百度知道中抓取一部分数据。
  • 金融知识、法律知识问答:从网友得回答中选取出问题的最佳答案。
  • 财经领域NER:从财经文章中,进行抽取。
  • 电子病历NER:从电子病历中提取与医疗相关的实体。

致谢

特别感谢热心市民BIN!!!

  • 51
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值