K-BERT理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K-BERT理解相关的知识,希望对你有一定的参考价值。

参考技术A

BERT它是一种从大规模语料库中学得语言表征的模型,但是,在专业领域表现不佳。为了解决该问题,作者提出了一个基于知识图谱的语言表示模型K-BERT.

但是,过多的考虑领域知识可能导致语句语义出现错误,这个问题被称为知识噪声(Knowledge noies, KN)。为了解决KN问题,K-BERT引入了soft-position和可视化矩阵(visible matrix)来限制来现在领域知识的影响。

BERT是基于大规模开放预料的预训练模型,对于下游任务,只需微调就可吸收专业领域知识。但是由于预训练和微调之间存在领域知识差异,因而在领域知识驱动型任务上,BERT无法取得满意的表现。

一种解决办法就是基于领域知识的语料库进行预训练,但是这样做耗时耗力,对大多数用户是不能承受的。

因此作者认为 引入知识图谱来使得模型成为领域专家 是一个很好的解决方案,因为:

但是,这种方法面临2个挑战:

于是作者提出了K-BERT模型,K-BERT可以加载任意BERT模型,然后很容易植入领域知识,而不需要在进行预训练。

随着2018年Google推出BERT模型,很多人从预训练过程和编码器两方面进行了优化,具体列举如下:

另一方面,知识图谱与词向量结合的研究早在预训练LR(Language Representation)模型之前就有人在做了:

上述方法的主要缺点是:

K-BERT的模型结构如下图所示:

模型结构包含如下4层:

Knowledge layer(KL)的作用是1)将知识图谱注入到句子中;2)完成句子树的转换。

给定知识图谱 ,输入一句话 ,经KL层后输出句子树

该过程分为两步:知识查询(K-Query)和知识注入(K-Inject)

公式化表示为:

Embedding layer(EL)的作用是将句子树转换成嵌入表达。和BERT一样,K-BERT的嵌入表示包括三部分:token embedding, position embedding 和 segment embedding。 关键是如何将句子树转换成一个序列,同时保留它的结构信息。

这种简单的处理使得句子失去了其结构信息,作者通过soft-position和visible matrix解决该问题。

Seeing layer是K-BERT和BERT的最大区别,也是本文方法有效的关键!

前文已经讲了引入KG可能造成KN问题,于是Seeing layer层的作用就是通过一个visible matrix来限制词与词之间的联系。

visible matrix 的定义如下:

表示两个词在同一支路上; 表示两个词不在同一支路上。 和 是hard-position index.

Note: soft-position index 和 hard-position index 见图2.

因为Transformer的编码器不能接收visible matrix作为输入,因此作者对其进行了改造,称为Mask-Transformer.所谓Mask-Transformer,其实就是 mask-self-attention 块的堆叠。

符号定义同BERT:

Mask-Self-Attention

Mask-Self-Attention的数学定义如下:

其中:

如果 对 不可见,则 ,从而注意力 .

Mask-Transformer的实体图如下:

从上图可以看到, 对 是不可见的。但是 是可以间接影响到 的。

作者在12个中文NLP任务上对K-BERT进行了测试。

为了反应KG和RL(Representation Language)模型之间的角色关系,作者在训练X-BERT时保持与BERT的参数一致。

需要说明的是:在训练K-BERT时并不会加入KG。<font color=red>因为KG会将相关的两个实体绑定在一起,从而训练时被掩码的两个词意思相近或相等,从而导致语义损失??</font>KG是在接下游任务微调时或推理时加入的。

在开放域的8个中文NLP任务上对Google BERT和K-BERT做了比较,结果如下表:

总结如下:

作者分别在金融、法律和医学领域的NLP任务做了测试,见下表:

引入KG确实能带来效果的提升,尤其是医学领域的提升比较明显。

这一节作者主要对soft-position-index和visible matrix的效果进行了变量消除研究,结果如下图所示:

符号说明:

作者总结实验结果如下:

(1)消除soft-position或visible matrix的任何一项,效果都不及K-BERT;
(2)在Law_Q&A任务中,没有visible matrix的K-BERT的效果比BERT还差,证明了KN(Knowledge noise)问题的存在;
(3)在Law_Q&A任务中,K-BERT的收敛速度比BERT快。

作者将KG中的知识注入句子中,通过soft-postion-index和visible matrix控制知识的可见范围。实验怎么KG确实对知识驱动的专业领域任务有帮助。另外因为K-BERT可以做到和BERT参数共享,因此免去了K-BERT的预训练。

改进方向:
(1)查询知识时过滤掉一些不重要的知识;
(2)将方法拓展到其它语言模型。

烦躁 当写日记了

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

能理解不

以上是关于K-BERT理解的主要内容,如果未能解决你的问题,请参考以下文章

EasyNLP集成K-BERT算法,借助知识图谱实现更优Finetune

EasyNLP 集成 K-BERT 算法,借助知识图谱实现更优 Finetune

烦躁 当写日记了

python3 变量理解 解释器理解 常量理解 用户交互理解

深入理解spring

如何理解FFT