BERT家族:K-BERT

K-BERT

论文:《K-BERT: Enabling Language Representation with Knowledge Graph》

论文地址:https://arxiv.org/pdf/1909.07606v1

作者/机构:北京大学+腾讯

年份:2019.9

K-BERT主要是为了提升BERT在知识驱动任务上微调性能,由于通用语料训练的BERT模型在知识驱动型的任务上较大的领域差异,微调效果欠佳。K-BERT通过将知识图谱的三元组信息引入到BERT的预训练中,使能够模型习得特殊领域的语义知识,以提升其在知识驱动型任务上的表现。K-BERT对BERT的预训练过程做了如下步骤的改进:

(1)句子树生成

句子首先会经过一个知识层(Knowledge Layer)。其中知识层包括三大中文知识图谱:CN-DBpedia、知网(HowNet)和自建的医学知识图(MedicalKG),知识层会检索知识图谱,将与句子中词相关联的知识图谱中的三元组信息注入到句子中,形成一个富有背景知识的句子树(Sentence tree)。

(2)句子树顺序信息的表达

然后将句子树拉平,更改BERT输入的位置嵌入方式,具体做法是:通过给每个token进行软位置(Soft-position)编码来表达句子树的顺序信息。

(3)句子树信息编码

为了将句子树中的结构信息引入到BERT中,其对transformer-encoder中的self-attention中进行改动,在计算softmax分数的时候在QK后多加了个可见矩阵(Visible matrix)M,可见矩阵的加入使得对当前词进行编码时候,模型能‘看得见’当前词枝干上的信息,而‘看不见’与当前词不相干的其他枝干上的信息,以防不相干枝干在self-attention计算时候互相影响。

更多NLP相关技术干货,请关注我的微信公众号【NLP有品