【信息抽取】如何使用BERT进行关系抽取
事物、概念之间的关系是人类知识中非常重要的一个部分,但是他们通常隐藏在海量的非结构文本中。为了从文本中抽取这些关系事实,从早期的模式匹配到近年的神经网络,大量的研究在多年前就已经展开。
然而,随着互联网的爆炸发展,人类的知识也随之飞速的增长,因而对关系抽取(Relation Extraction, RE)提出了更高的要求,需要一个有效的RE系统,能够利用更多的数据;有效的获取更多的关系;高效的处理更多复杂的文本;具有较好的扩展性,能够迁移到更多的领域。
本文首先介绍一种基于预训练模型的关系抽取方法,即能够引入现今最有效的预训练模型BERT,来进行关系分类的方法。
作者&编辑 | 小Dream哥
1 预训练模型
预训练模型是近一两年来NLP领域取得的非常重要的进展。基于大型的预训练模型finetune下游任务,是如今NLP领域非常流行的做法,在很多的NLP任务中都取得了SOTA的效果,我们在此前也写了很多的文章进行介绍,感兴趣的读者可以看看:
【NLP】 深入浅出解析BERT原理及其表征的内容
【NLP】GPT:第一个引入Transformer的预训练模型
【NLP】XLnet:GPT和BERT的合体,博采众长,所以更强
【技术综述】深度学习在自然语言处理中的应用
【每周NLP论文推荐】从预训练模型掌握NLP的基本发展脉络
既然预训练模型这么有效,自然会有用它来做关系抽取和分类的了,我们今天就介绍基于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相关工作的读者,务必要熟悉相关的模型。
下期预告:暂无
知识星球推荐
扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。
知识星球主要有以下内容:
(1) 聊天机器人。
(2) 知识图谱。
(3) NLP预训练模型。
转载文章请后台联系
侵权必究
其他内容
【完结】 12篇文章带你完全进入NLP领域,掌握核心技术
【年终总结】2019年有三AI NLP做了什么,明年要做什么?
【NLP-词向量】词向量的由来及本质
【NLP-词向量】从模型结构到损失函数详解word2vec
【NLP-NER】什么是命名实体识别?
【NLP-NER】命名实体识别中最常用的两种深度学习模型
【NLP-NER】如何使用BERT来做命名实体识别
【NLP-ChatBot】我们熟悉的聊天机器人都有哪几类?
【NLP-ChatBot】搜索引擎的最终形态之问答系统(FAQ)详述
【NLP-ChatBot】能干活的聊天机器人-对话系统概述
【知识图谱】人工智能技术最重要基础设施之一,知识图谱你该学习的东西
【知识图谱】知识表示:知识图谱如何表示结构化的知识?
【知识图谱】如何构建知识体系:知识图谱搭建的第一步
【知识图谱】获取到知识后,如何进行存储和便捷的检索?
【知识图谱】知识推理,知识图谱里最“人工智能”的一段
【文本信息抽取与结构化】目前NLP领域最有应用价值的子任务之一
【文本信息抽取与结构化】详聊文本的结构化【上】
【文本信息抽取与结构化】详聊文本的结构化【下】
【信息抽取】NLP中关系抽取的概念,发展及其展望
【信息抽取】如何使用卷积神经网络进行关系抽取
【NLP实战】tensorflow词向量训练实战
【NLP实战系列】朴素贝叶斯文本分类实战
【NLP实战系列】Tensorflow命名实体识别实战
【NLP实战】如何基于Tensorflow搭建一个聊天机器人
【NLP实战】基于ALBERT的文本相似度计算
【信息抽取】如何使用BERT进行关系抽取相关推荐
- 信息抽取(二)花了一个星期走了无数条弯路终于用TF复现了苏神的《Bert三元关系抽取模型》,我到底悟到了什么?
信息抽取(二)花了一个星期走了无数条弯路终于用TF复现了苏神的<Bert三元关系抽取>模型,我到底悟到了什么? 前言 数据格式与任务目标 模型整体思路 复现代码 数据处理 数据读取 训练数 ...
- 信息抽取(三)三元关系抽取——改良后的层叠式指针网络,让我的模型F1提升近4%(接上篇)
信息抽取(三)三元关系抽取--改良后的层叠式指针网络 前言 优化在验证集上的模型推理结果的SPO抽取方法 不随机选择S(subject),⽽是遍历所有不同主语的标注样本构建训练集. 模型优化 加入对抗 ...
- ACL 2021 | 基于词依存信息类型映射记忆神经网络的关系抽取
©作者 | 陈桂敏 来源 | QTrade AI研究中心 QTrade AI 研究中心是一支将近 30 人的团队,主要研究方向包括:预训练模型.信息抽取.对话机器人.内容推荐等.本文介绍的是一篇信息抽 ...
- 利用Bert进行关系抽取
Bert模型是谷歌2018年10月底公布的,反响巨大,效果不错,在各大比赛上面出类拔萃,它的提出主要是针对word2vec等模型的不足,在之前的预训练模型(包括word2vec,ELMo等)都会生成词 ...
- C.5 Paddlenlp之UIE关系抽取模型【高管关系抽取为例】
NLP专栏简介:数据增强.智能标注.意图识别算法|多分类算法.文本信息抽取.多模态信息抽取.可解释性分析.性能调优.模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强.智能标注.意图识别算法|多分 ...
- 【文本信息抽取与结构化】详聊如何用BERT实现关系抽取
https://mp.weixin.qq.com/s?__biz=MzA3NDIyMjM1NA%3D%3D&chksm=8712ab8db065229bc8ea68f94332be9e03a0 ...
- 必读!信息抽取(Information Extraction)【关系抽取】
来源: AINLPer 微信公众号(每日给你好看-) 编辑: ShuYini 校稿: ShuYini 时间: 2020-08-11 引言 信息抽取(information extraction ...
- [信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取
[信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取 https://aistudio.baidu.com/aistudio/projectdetail/5143572?contribu ...
- SSAN 关系抽取 论文笔记
20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...
最新文章
- 大神教你实现redis键空间通知
- socket不能bind请求的地址_socket通信原理
- 联想小新锐7000设置vt_小新Pro 14 2021正式发布,联想举行秋季新品发布会,10款新品齐亮相...
- MATLAB 图形着色
- 树上倍增求LCA及例题
- php期末考试题机考_phP基础知识期末考试题
- 测绘计算机编程在在道路中的应用,CASIO系列编程计算器在公路测量中的应用.doc...
- 如何列出npm用户安装的软件包?
- html经历了几个版本,HTML 的上一个版本诞生于 1999 年. 自从那以后, Web 世界已经经历了巨变....
- 【JXTA概念介绍(翻译)】
- C11 标准下的 C 语言编程
- MFC——SetTimer函数的用法
- Windows PE的作用
- Java游戏运行框架
- OpenCV打开摄像头《大华摄像头》
- 央妈是怎么印钱的(1)--资产负债表
- 【震惊】没有java环境也能运行jar,在不安装jdk下如何运行jar包
- 测试-答对5道题的人是天才,答对4道的是帅才,答对3道的是将才,答对2道的是奇才,答对1道的是人才...
- MSYS2的下载和安装
- 尚硅谷Java基础学习--常用类部分例题解答(仅使用String类方法)
热门文章
- 强烈推荐:Spring 核心知识点总结.pdf
- SQL 性能优化梳理,干掉慢SQL!
- Android Studio的Gradle常用命令配置和依赖管理
- OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
- 这样给面试官解释约瑟夫环问题的几种巧妙解法,面试官满意的笑了
- Leetcode 76最小覆盖子串77组合78子集
- bo sap 客户端_SAP BO 技术
- if condition 大于_小函数,大用处!巧用AND函数,避开IF函数嵌套
- Linux 系统的备份恢复
- CCNA重点难点:思科交换机生成树配置