论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)

Part1 Introduction
BERT这种公共模型,对于通用领域表现优秀,但是垂直领域表现不佳,除非在垂直领域进行训练,但是非常耗时耗力。将知识图谱整合到语言表示中,领域知识将能提升垂直领域的任务,并且模型具有更好的可解释性。
论文提出的K-BERT通过引进知识图谱(将知识库中的结构化信息(三元组)融入到预训练模型)中,可以更好地解决领域相关任务。
Part2 Methods
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第1张图片
模型主要包括四个子模块:Knowledge layer、Embedding layer、Seeing layer和Mask-Transformer Encoder
对于输入句子,知识层首先从KG中将相关的三元组注入,将原始句子转换为句子树。 然后将句子树同时输入到嵌入层和查看层,然后将其转换为令牌级嵌入表示和可见矩阵。 可见矩阵用于控制每个标记的可见区域,防止由于注入太多知识而改变原始句子的含义。
Knowledge layer用于将知识图谱注入到句子中并且完成句子树的转换。
1)Knowledge layer
Input:s=[_0,_1,_2,….,_ ]
Output: t=[_0,_1,….,〖_ [(_0,_0 ),…,(_,_ )],…,〗_ ]
包括两个步骤:K-Query和K-Inject
K-Query:利用输入句子中所有的实体去查询知识图谱中其对应的三元组
在这里插入图片描述
K-Inject:把相关三元组注入到句子中形成句子树
在这里插入图片描述
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第2张图片
其中,E:相应三元组的集合;s:输入的句子;K:知识图谱;t:输出的句子树
注:一个句子树可以有多个分支,但深度固定为1,即三元组的实体名称不会迭代派生分支
2)Embedding layer
和BERT相似,嵌入包含三个部分:token embedding、position embeddinge和segment embedding,不同的是BERT输入的是个句子,而K-BERT输入的是个句子树。
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第3张图片
a) Token embedding
把每个token转换为一个维度为H的向量,而且K-BERT同样使用[CLS]作为分类标签,使用[MASK]掩词。不同点是K-BERT需要对句子重新整理, 将分支中的token插入到相应的节点之后,而后续的token则向后移动。
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第4张图片
在这里插入图片描述
b) Soft-position embedding
Token embedding重排后的句子显然是毫无意义的,这里利用了position embedding来还原回结构信息。
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第5张图片
c) Segment embedding
同BERT一样。
3)Seeing Layer
这层是与BERT最大的区别,由于输入K-BERT的是句子树,其中分支是从知识图谱中获取来的,这就可能导致Knowledge Noise问题。
为了防止KN发生,使用visible matrix M来限制可视区域,即只有同一分支的词相互可见。M定义为:
在这里插入图片描述
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第6张图片
4)Mask-Transformer
前面的可视化矩阵M包含了句子树的结构信息,但是BERT中的Transformer不能接受M作为输入,因此将其修改为Mask-Transformer,可以根据M限制自注意区域。
Mask-Transformer是多个 mask-self-attention 的集合,定义自注意层的层数为L,维度为H,自注意头数为A。
Mask-Self-Attention:是一种自注意力的扩展,利用在M中的句子结构信息来防止错误的语义变化。
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第7张图片
在self-attention中,Q,K,V是相同的字嵌入(X)乘以训练得到的权重得到的。Wq,Wk,Wv是可训练的模型参数;hi为第i个mask-self-attention的隐藏状态;dk为比例系数;S为注意力分数,如果不可见,则注意力分数为0.
Part3 Results
数据集:
中文语料库:WikiZh 、WebtextZh
中文知识图谱:CN-DBpedia、 HowNet 和 MedicalKG。
NLP任务:
(1)Open-domain tasks:
Bookreview, Chnsenticorp, Shopping, Weibo, XNL, LCQMC, NLPCC-DBQA, MSRA-NER
(2)Specific-domain tasks:
Finance_Q&A, Law_Q&A, Finance_NER, Medicine_NER
(1)Open-domain tasks
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第8张图片
(1)KG对情感分析任务没有显著影响(i.e., Bookreview, Chnsenticorp, Shop-ping and Weibo) 。
(2)就语义相似性任务而言,HowNet的性能优于CN-Dbpedia。
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第9张图片
(3)对于Q&A和NER任务(即NLPCC-DBQA和MSRA-NER),CN-DBpedia比HowNet更适合。
(2) Specific-domain tasks
论文解读:K-BERT:Enabling Language Representation with Knowledge Graph(AAAI-20)_第10张图片
Part4 Conclusion
K-BERT最大的创新点在于提出了Seeing Layer层,并且通过堆叠的方式整合进了BERT原有框架中,使得BERT模型能够很好兼容K-BERT。得益于知识图谱的辅助,K-BERT相比于BERT能更好的完成知识驱动类型的任务。
未来工作:1)改进K-Query以基于上下文过滤不重要的三元组
2)将此方法扩展到其他LR模型,例如ELMo, XLNet 。

你可能感兴趣的:(自然语言处理)