K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记

最近实验室要做预训练语言模型和知识图谱结合的交互式智能的研究,于是读了这篇北大与腾讯联合发表的K-BERT: Enabling Language Representation with Knowledge Graph。文章把知识图谱(KG)应用在BERT中创建了K-BERT模型,用以解决BERT模型在专业领域表现不佳的问题,一举解决了HES和KN两大问题。

K-BERT模型主要包括四部分:Knowledge layer、Embedding layer、Seeing layer、Mask-Transformer Encoder

其模型结构如图:

K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第1张图片

1、Knowledge layer(KL):输入一个sentence“Tim Cook is currently visiting Beijing now.”,本层将KG(知识图谱)中关联到的三元组信息注入到句子中,输出一个sentence tree(每个树枝深度只有1),如图:

K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第2张图片

2、Embedding layer(EL):将sentence tree转变成可以输入到Mask-Transformer的Embedding representation,但传统的BERT模型只能处理序列结构的句子输入,而树结构的sentence tree无法直接输入,如果强行把sentence tree转换成序列就会丢失结构信息;因此,在转换过程中要保留树结构的结构信息,这是K-BERT模型的关键,本文采取了一个很巧妙的办法,采用soft-position和visible mask。与BERT一样,转变成的embedding representation有三部分:K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第3张图片

1)Token embedding:与BERT不同之处在于,需要先将sentence tree重新安排,如上图

2)Soft-position embedding:编码结果如图:

K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第4张图片

3)Segment embedding:与BERT一致

3、Seeing layer:这是与BERT最大的不同,使用了一个可视化矩阵,即只有同一分支的词相互可见,该矩阵的元素定义方式如下:

使用这种方式完成的该句子矩阵如图:

K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第5张图片

4、Mask-Transformer:在求自注意力得分的过程中,加入可视化矩阵,从而消除相互不可见词之间的直接影响,为此本文在原本Transformer中的self-attention的基础上提出了扩展,即mask-self-attention,其公式定义如下:

 

可视化矩阵

K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第6张图片

 

作为对比,我们可以看一下传统Transformer模型中的self-attention是什么样子的:

仍以之前输入的句子为例,[Apple]对于[CLS]是不可见的,因此邻层的[Apple]对[CLS]没有影响,但跨层的[Apple]通过影响[Cook]间接影响到[CLS]

K-BERT: Enabling Language Representation with Knowledge Graph阅读笔记_第7张图片

总结:

1、K-BERT模型主要创新点在于soft-position和visible matrix;但除了这两点,K-BERT模型与Google BERT均保持一致,这就使K-BERT可以很好地兼容BERT,从而可以直接加载现已公开的训练好的BERT类魔性的参数,节约大量计算资源;

2、得益于知识图谱的知识输入,K-BERT在特殊领域任务和在许多开放领域内的表现都显著优于BERT;

你可能感兴趣的:(nlp,知识图谱,自然语言处理)