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

然而,随着互联网的爆炸发展,人类的知识也随之飞速的增长,因而对关系抽取(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进行关系抽取相关推荐

  1. 信息抽取(二)花了一个星期走了无数条弯路终于用TF复现了苏神的《Bert三元关系抽取模型》,我到底悟到了什么?

    信息抽取(二)花了一个星期走了无数条弯路终于用TF复现了苏神的<Bert三元关系抽取>模型,我到底悟到了什么? 前言 数据格式与任务目标 模型整体思路 复现代码 数据处理 数据读取 训练数 ...

  2. 信息抽取(三)三元关系抽取——改良后的层叠式指针网络,让我的模型F1提升近4%(接上篇)

    信息抽取(三)三元关系抽取--改良后的层叠式指针网络 前言 优化在验证集上的模型推理结果的SPO抽取方法 不随机选择S(subject),⽽是遍历所有不同主语的标注样本构建训练集. 模型优化 加入对抗 ...

  3. ACL 2021 | 基于词依存信息类型映射记忆神经网络的关系抽取

    ©作者 | 陈桂敏 来源 | QTrade AI研究中心 QTrade AI 研究中心是一支将近 30 人的团队,主要研究方向包括:预训练模型.信息抽取.对话机器人.内容推荐等.本文介绍的是一篇信息抽 ...

  4. 利用Bert进行关系抽取

    Bert模型是谷歌2018年10月底公布的,反响巨大,效果不错,在各大比赛上面出类拔萃,它的提出主要是针对word2vec等模型的不足,在之前的预训练模型(包括word2vec,ELMo等)都会生成词 ...

  5. C.5 Paddlenlp之UIE关系抽取模型【高管关系抽取为例】

    NLP专栏简介:数据增强.智能标注.意图识别算法|多分类算法.文本信息抽取.多模态信息抽取.可解释性分析.性能调优.模型压缩算法等 专栏详细介绍:NLP专栏简介:数据增强.智能标注.意图识别算法|多分 ...

  6. 【文本信息抽取与结构化】详聊如何用BERT实现关系抽取

    https://mp.weixin.qq.com/s?__biz=MzA3NDIyMjM1NA%3D%3D&chksm=8712ab8db065229bc8ea68f94332be9e03a0 ...

  7. 必读!信息抽取(Information Extraction)【关系抽取】

    来源: AINLPer 微信公众号(每日给你好看-) 编辑: ShuYini 校稿: ShuYini 时间: 2020-08-11 引言     信息抽取(information extraction ...

  8. [信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取

    [信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取 https://aistudio.baidu.com/aistudio/projectdetail/5143572?contribu ...

  9. SSAN 关系抽取 论文笔记

    20210621 https://zhuanlan.zhihu.com/p/353183322 [KG笔记]八.文档级(Document Level)关系抽取任务 共指id嵌入一样 但是实体嵌入的时候 ...

最新文章

  1. 大神教你实现redis键空间通知
  2. socket不能bind请求的地址_socket通信原理
  3. 联想小新锐7000设置vt_小新Pro 14 2021正式发布,联想举行秋季新品发布会,10款新品齐亮相...
  4. MATLAB 图形着色
  5. 树上倍增求LCA及例题
  6. php期末考试题机考_phP基础知识期末考试题
  7. 测绘计算机编程在在道路中的应用,CASIO系列编程计算器在公路测量中的应用.doc...
  8. 如何列出npm用户安装的软件包?
  9. html经历了几个版本,HTML 的上一个版本诞生于 1999 年. 自从那以后, Web 世界已经经历了巨变....
  10. 【JXTA概念介绍(翻译)】
  11. C11 标准下的 C 语言编程
  12. MFC——SetTimer函数的用法
  13. Windows PE的作用
  14. Java游戏运行框架
  15. OpenCV打开摄像头《大华摄像头》
  16. 央妈是怎么印钱的(1)--资产负债表
  17. 【震惊】没有java环境也能运行jar,在不安装jdk下如何运行jar包
  18. 测试-答对5道题的人是天才,答对4道的是帅才,答对3道的是将才,答对2道的是奇才,答对1道的是人才...
  19. MSYS2的下载和安装
  20. 尚硅谷Java基础学习--常用类部分例题解答(仅使用String类方法)

热门文章

  1. 强烈推荐:Spring 核心知识点总结.pdf
  2. SQL 性能优化梳理,干掉慢SQL!
  3. Android Studio的Gradle常用命令配置和依赖管理
  4. OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
  5. 这样给面试官解释约瑟夫环问题的几种巧妙解法,面试官满意的笑了
  6. Leetcode 76最小覆盖子串77组合78子集
  7. bo sap 客户端_SAP BO 技术
  8. if condition 大于_小函数,大用处!巧用AND函数,避开IF函数嵌套
  9. Linux 系统的备份恢复
  10. CCNA重点难点:思科交换机生成树配置