【信息抽取】如何使用BERT进行关系抽取
事物、概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中。为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开。
然而,随着互联网的爆炸发展,人类的知识也随之飞速的增长,因而对关系抽取(Relation Extraction, RE)提出了更高的要求,需要一个有效的RE系统,能够利用更多的数据;有效的获取更多的关系;高效的处理更多复杂的文本;具有较好的扩展性,能够迁移到更多的领域。
本文首先介绍一种基于预训练模型的关系抽取方法,即能够引入现今最有效的预训练模型BERT,来进行关系分类的方法。
作者&编辑 | 小Dream哥
1 预训练模型
预训练模型是近一两年来NLP领域取得的非常重要的进展。基于大型的预训练模型finetune下游任务,是如今NLP领域非常流行的做法,在很多的NLP任务中都取得了SOTA的效果,我们在此前也写了很多的文章进行介绍,感兴趣的读者可以看看:
【NLP】GPT:第一个引入Transformer的预训练模型
【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强
既然预训练模型这么有效,自然会有用它来做关系抽取和分类的了,我们今天就介绍基于BERT的关系抽取模型。
本文涉及的模型参考论文如下:
[1] Wu S , He Y . Enriching Pre-trained Language Model with Entity Information for Relation Classification[J]. 2019.
[2] Giorgi J , Wang X , Sahar N , et al. End-to-end Named Entity Recognition and Relation Extraction using Pre-trained Language Models[J]. 2019.
2 关系分类
引入BERT进行关系分类,主要目的是为了利用BERT预训练时学到的大量语言本身的知识。基于此,结合关系分类任务的特点,下面介绍一种典型的基于BERT的关系分类模型,并做一些有益的讨论。
1) 模型结构
如上图所示,是该模型的结构,下面做一个简单的介绍:
1.输入层,跟典型的BERT输入层无异。需要注意的是,在这个模型中,分别用特殊符号$和#号标识两个实体的位置。
2.利用了BERT特征抽取后2个部分的特征:
BERT【CLS】位置的embeding和两个实体相对应的embeding
3.将上述3个特征拼接起来,再接一个全连接层和softmax层输出关系的分类。
论文中用到的模型参数如下,感兴趣同学可以复现一下:
2) 模型结果
模型结构并不复杂,但是取得了不错的效果:
我们可以认为模型对分类任务起到关键效果的部分有3个:
1.BERT【CLS】embedding,学习到了句子级的特征
2.BERT实体embedding,学习到了实体的语义特征
3.特殊符号,带给了模型实体的边界及位置信息
论文做了实验来论证这3部分特征的作用,如下图所示:
1.R-BERT-NO-SEP-NO-ENT 代表既没有分隔符也没有实体embedding特征的模型
2.R-BERT-NO-SEP代表既没有分隔符的模型
3.R-BERT-NO-ENT代表既没有实体embedding特征的模型
4.R-BERT代表完整的模型结构
结果可以看出,实体embedding和分隔符对模型效果贡献了很大。这主要是因为,在关系分类的任务中,句子的语义信息和两个实体的词级信息均很重要。通过两个分隔符,能够帮助BERT学习两个实体的位置,从而提高模型对实体的表征能力。
3 BERT Joint抽取模型
上述模型是一个单纯的关系分类模型,在前面的关系抽取文章中我们提到过,联合抽取通常具有更好的效果,下面介绍一种基于BERT的联合抽取模型,即通过一个模型能够得到输入文本中的实体以及实体之间的关系,供读者参考。
1) 模型结构
如上图所示,是本文要介绍的联合抽取模型的结构图,可以把这个模型分成3个部分:
1.NER Module,实体抽取模块。
2.RE Module,关系分类模块。
3. BERT,共享特征抽取模块。
对于实体抽取模块,跟此前我们介绍的基于BERT的实体抽取模型没有差别,不了解的同学可以出门左转先看一下:
RE模块相对复杂一点,我们详细介绍一下,
RE模块的输入将两个部分的输入近拼接得到:
1.BERT对输入序列编码得到的特征序列;
2.NER模块的输出,经过argmax函数得到一个跟输入序列长度相同的,转化为固定维度的序列。
拼接得到的向量分别通过一个Feed Forward层,通过一个biaffine分类器,预测出实体之间的关系。
biaffine分类器的实际作用如下:
2) 模型结果
如上图所示,该模型在几个数据集中均取得了不错的效果,感兴趣的同学可以实现一下试试。
总结
目前,基于预训练模型的关系抽取即分类模型均取得了SOTA的效果,在实际的生产中也都得到了一定的应用。从事NLP相关工作的读者,务必要熟悉相关的模型。
下期预告:暂无
知识星球推荐
扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。
知识星球主要有以下内容:
(1) 聊天机器人。
(2) 知识图谱。
(3) NLP预训练模型。
转载文章请后台联系
侵权必究
其他内容