图表示学习(K-Bert-2019北大和腾讯联合)

在这里插入图片描述
代码地址:https://github.com/autoliuweijie/K-BERT

问题提出:

预训练的语言表示模型,如BERT,从大规模语料库中获取一个通用的语言表示,但缺乏特定领域的知识。在阅读领域文本时,专家会根据相关知识进行推理。为了使机器能够实现这一能力,提出了一种基于知识图(KGs)的知识支持语言表示模型(K-BERT),其中三元组作为领域知识注入到句子中。然而,过多的知识融合会使句子偏离其正确的意思,这就是所谓的知识噪音(knowledge noise,KN)问题。为了克服KN,K-BERT引入软位置和可视矩阵(softposition and visible matrix )来限制知识的影响。由于K-BERT能够从预训练的BERT中加载模型参数,因此不需要预先训练就可以很容易地将领域知识注入到模型中。

  1. 无监督的预训练语言表达(LR)模型,如BERT在多个NLP任务中取得了可喜的成果。这些模型经过大规模开放领域语料库的预训练,得到一般的语言表示,然后在特定的下游任务中进行微调,以吸收特定领域的知识。
  2. 然而,由于预训练和微调之间的领域差异,这些模型在知识驱动的任务上表现不佳。例如,在处理医学领域的电子病历(EMR)分析任务时,Wikipedia预先培训的Google-BERT就不能充分发挥其价值。普通人在阅读某一特定领域的文本时,只能根据语境来理解单词,而专家则能根据相关领域知识进行推理。

解决思路

解决这个问题的一个方法是在培训前强调我们自己特定的领域,而不是使用公共提供的领域。

  1. 但是现阶段挑战:效率低下且成本高昂。例如,如果我们想让模型获得“扑热息痛可以治疗感冒”的知识,那么在训练前的语料库中就需要大量的“扑热息痛”和“感冒”同时出现。
  2. 解决:知识图(KG)在早期的研究中被称为本体论,是一种很好的解决方案。随着知识被提炼成一种结构化的形式,许多领域的知识都被构建出来,如医学领域的SNOMED-CT,中国概念的知网。如果KG能够被集成到LR模型中,它将为模型提供领域知识,提高模型在特定领域任务上的性能,同时降低大规模预训练的成本。此外,由于注入的知识是人工编辑的,因此所得到的模型具有更大的可解释性
  3. 但是,知识整合又有两个重要挑战:
    (1)异构嵌入空间:一般来说,文本中单词的嵌入向量和KG中实体的嵌入向量是通过不同的方式获得的,使得它们的向量空间不一致;
    (2) 知识噪音(Knowledge Noise-----KN):太多的知识融合会使句子偏离正确的意思。

K-Bert

在这里插入图片描述
如图1所示,K-BERT模型体系结构由知识层、嵌入层、观察层和掩模变换器四个模块组成。对于一个输入句子,知识层首先从一个KG注入相关的三元组,将,句子转化为一个知识丰富的句子树。然后句子树同时被输入嵌入层和视觉层,然后转换为嵌入表示和可见矩阵。可见矩阵用于控制每个标记的可视区域,防止由于注入太多的知识而改变原始句子的意义。

Knowledge layer

输入一个sentence S(s 1 _1 1,s 2 _2 2…s n _n n),知识层将KG中关联到的三元组信息注入到句子中,输出一个句子树(每个树枝深度只有1)
在这里插入图片描述

Embedding layer

嵌入层(EL)的功能是将句子树转换为嵌入表示,并将其输入Mask-Transformer。
与BERT相似,K-BERT的嵌入表示是三个部分的总和:标记嵌入、位置嵌入和片段嵌入,( token embedding, position embedding, and segment embedding)但不同之处在于K-BERT嵌入层的输入是一个句子树,而不是一个标记序列。因此,如何在保留句子结构信息的前提下,将句子树转换成序列是KBERT的关键。

Token embedding

token嵌入与BERT一致,并采用google bert提供的词汇表。句子树中的每个标记通过可训练的查找表转换为维数H的嵌入向量。此外,K-BERT还使用[CLS]作为分类标记,并使用[MASK] to mask tokens。K-BERT和BERT的标记嵌入的区别在于,在嵌入操作之前,句子树中的标记需要重新排列。在我们的重新排列策略中,分支中的token插入到相应的节点之后,而后续的令牌则向后移动。如图2所示,句子树被重新排列为“Tim Cook CEO Apple is visiting Beijing capital China is a City now”。这个过程虽然简单,但却使句子无法阅读,失去了正确的结构信息。幸运的是,它可以通过软位置和可视矩阵来解决。
在这里插入图片描述

Soft-position embedding

对于BERT来说,如果不进行位置嵌入,则相当于bag-of-word 模型,导致结构信息(即标记的顺序)的缺失。在位置嵌入中包含了BERT输入句的所有结构信息,使我们能够将缺失的结构信息添加到不可读的重排句子中。以图2中的句子树为例,重新排列后,[CEO]和[Apple]插入到[Cook]和[is]之间,但[is]的主题应该是[Cook]而不是[Apple]。要解决这个问题,我们只需要将[is]的位置号设置为3而不是5。所以在计算transformer encoder中的自我注意分数时,[is]在[Cook]的下一个位置。然而,另一个问题是,[is]和[CEO]的职位号都是3,这使得他们在计算自我关注时位置相近,但事实上,他们之间没有联系。解决这个问题的方法是掩饰自己的注意力,这将在下一小节中介绍。

Segment embedding

和BERT一样,K-BERT在包含多个句子时也使用分段嵌入来识别不同的句子。例如,当输入两个句子{w 0 _0 0 0 _0 0,w 0 _0 0 1 _1 1,…,w 0 _0 0 n _n n}和{w 1 _1 1 0 _0 0,w 1 _1 1 1 _1 1,…,w 1 _1 1 m _m m}时,它们将与[SEP]组合成一个句子{[CLS],w 0 _0 0 0 _0 0,w 0 _0 0 1 _1 1,…,w 0 _0 0 n _n n,[SEP],w 1 _1 1 0 _0 0,w 1 _1 1 1 _1 1,…,w 1 _1 1 m _m m}。对于组合句,它用一系列段标记{A,A,A,…,A,B,B,…,B}标记。

Seeing layer

可见层是K-BERT和BERT的最大区别,也是使这种方法如此有效的原因。K-BERT的输入是一个句子树,其中分支是从KG获得的知识。然而,知识带来的风险是,它可能导致原句意思的改变,即KN问题。**例如,在图2中的句子树中,[China]只修改了[Beijing],与[Apple]无关。因此,[苹果]的代表性不应受到[中国]的影响。另一方面,用于分类的[CLS]标签不应该绕过[Cook]来获取[Apple]的信息,因为这会带来语义变化的风险。**为了防止这种情况发生,K-BERT使用可见矩阵M来限制每个令牌的可见区域,这样[Apple]和[China]、[CLS]和[Apple]彼此不可见。可见的矩阵定义:
在这里插入图片描述
上面表示在同一个分支。下面表示不可见,也就是hard position(0和3,4,8,9,10,11)
在这里插入图片描述

Mask-Self-Attention:

Mask-Transformer:在求自注意力得分的过程中,加入可视化矩阵,从而消除相互不可见词之间的直接影响,为此本文在原本Transformer中的self-attention的基础上提出了扩展,即mask-self-attention,其公式定义如下:
在这里插入图片描述
传统Transformer模型中的self-attention是:
**加粗样式**
公式456只是对 BERT 里的 self-attention 做简单的修改,多加了一个 M,其余并无差别。如果两个字之间相互不可见,它们之间的影响系数 S[i,j] 就会是 0,也就使这两个词的隐藏状态 h 之间没有任何影响。这样,就把句子树中的结构信息输入给 BERT 了。
如:[Apple]只能通过[Cook]间接作用于[CLS],降低了知识噪声的影响
在这里插入图片描述

实验

本文采用两个中文语料库进行预训练,即WikiZH和WebtextZh。
•WikiZH是指中文维基百科语料库,用于培训汉语学习者WikiZh包含100万条格式良好的中文词条,1.2亿个句子。https://dumps.wikimedia.org/zhwiki/latest/
•WebtextZh 是一个大型、高质量的中文问答语料库,有410万条,3.7G。WebtextZh中的每个条目都属于一个主题,共有28000个主题。https://github.com/brightmart/nlp chinese corpus

数据集

KG

CN-DBpedia、知网(HowNet)和自建的医学知识图(MedicalKG)。用于测评的任务分为两类,分别是开放领域任务和专业领域任务。

DATA
  1. Book review 此数据集包含来自豆瓣11的20000条正面评论和20000条负面评论
    https://embedding.github.io/evaluation/
  2. Chnsenti-corp是一个酒店评论数据集,共有12000条评论,包括6000条正面评论和6000条负面评论
    https://github.com/pengming617/bert classification
  3. Shopping是一个包含40000条评论的在线购物评论数据集,包括21111条正面评论和18889条负面评论
    https://share.weiyun.com/5xxYiig
  4. Weibo10是一个包含新浪微博情感注释的数据集,包括6万个正样本和6万个负样本。
    https://share.weiyun.com/5lEsv0w
  5. XNLI(Conneau等人。2018年),LCQMC(Liu等人。2018)是两个句子分类任务,NLPCC-DBQA12是问答匹配任务,MSRA-NER(Levow
    2006)是命名实体识别(NER)任务:

Baseline

Bert and our bert

结果

在这里插入图片描述
在这里插入图片描述
可以看出,K-BERT 相比于 Google BERT,在开放领域的任务上有一点微小的提升,但是提升不是很明显。可能的原因在于开放领域的任务并不需要背景知识。

为了测试在需要“背景知识”的任务上的效果,研究者使用了四个特定领域的任务,分别是金融问答、法律问答、金融实体识别和医学实体识别。实验效果见下图。

可以看出,在特定领域任务上的表现还是不错的,这些特定领域任务对背景知识的要求较高。总体而言,知识图谱适合用于提升需要背景知识的任务,而对于不需要背景知识的开放领域任务往往效果不是很显著。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值