前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【信息抽取】如何使用BERT进行关系抽取

【信息抽取】如何使用BERT进行关系抽取

作者头像
用户1508658
发布2020-08-10 13:56:12
5.2K0
发布2020-08-10 13:56:12
举报
文章被收录于专栏:有三AI有三AI

事物、概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中。为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开。

然而,随着互联网的爆炸发展,人类的知识也随之飞速的增长,因而对关系抽取(Relation Extraction, RE)提出了更高的要求,需要一个有效的RE系统,能够利用更多的数据;有效的获取更多的关系;高效的处理更多复杂的文本;具有较好的扩展性,能够迁移到更多的领域。

本文首先介绍一种基于预训练模型的关系抽取方法,即能够引入现今最有效的预训练模型BERT,来进行关系分类的方法。

1 预训练模型

预训练模型是近一两年来NLP领域取得的非常重要的进展。基于大型的预训练模型finetune下游任务,是如今NLP领域非常流行的做法,在很多的NLP任务中都取得了SOTA的效果,我们在此前也写了很多的文章进行介绍,感兴趣的读者可以看看

既然预训练模型这么有效,自然会有用它来做关系抽取和分类的了,我们今天就介绍基于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的实体抽取模型没有差别,不了解的同学可以出门左转先看一下:

【NLP-NER】如何使用BERT来做命名实体识别

RE模块相对复杂一点,我们详细介绍一下,

RE模块的输入将两个部分的输入近拼接得到:

1.BERT对输入序列编码得到的特征序列;

2.NER模块的输出,经过argmax函数得到一个跟输入序列长度相同的,转化为固定维度的序列。

拼接得到的向量分别通过一个Feed Forward层,通过一个biaffine分类器,预测出实体之间的关系。

biaffine分类器的实际作用如下:

2) 模型结果

如上图所示,该模型在几个数据集中均取得了不错的效果,感兴趣的同学可以实现一下试试。

总结

目前,基于预训练模型的关系抽取即分类模型均取得了SOTA的效果,在实际的生产中也都得到了一定的应用。从事NLP相关工作的读者,务必要熟悉相关的模型。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 有三AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档