文章目录

  • 前言
  • 命名实体识别任务
    • Softmax和CRF
    • 指针网络
    • span排列
  • 关系分类任务
    • 半监督学习方法
      • 基于远程监督的优化
        • 多示例学习
        • 强化学习
      • 预训练
    • 监督学习方法
  • 联合抽取
    • 共享参数的联合抽取模型
    • 联合解码的联合抽取模型
  • 总结

本文是阅读完娄杰所写 NLP中的实体关系抽取方法总结一文之后,摘录其中部分段落,结合自己对关系抽取工作的理解,记成的个人笔记。

前言

说到信息抽取,不得不提的就是实体关系抽取(Entity and Relation Extraction),实体关系抽取是信息抽取的关键任务之一。本文也将主要围绕这个关键任务进行讨论。实体关系抽取任务是一个级联任务,分为两个子任务:命名实体识别(NER)和关系抽取(RE)。如何更好处理这种类似的级联任务是NLP的一个热点研究方向。
这里个人觉得这两个任务除了先后顺序以外,具体没有太多内在关联,识别到实体和判别实体之间的关系我认为是两种任务,两个词组存在关系,但是这两个词组不一定就是命名实体。例如my father和i之间是父子关系,但是father和i都不是命名实体。相反,两个命名实体之间也不一定存在着关系,China和Trump之间就没有任何关系,(但可以通过关系图的形式构成间接关系)。两者唯一的关联,可能就源自两者的判断依据都源自同一句话,只是任务需求的各自处理方式不同而已。

命名实体识别任务

说到命名实体识别任务,现今主流采用的几乎都是之前阅读笔记中的LSTM(BiLSTM)+CRF的网络结构。那么除此之外还有哪些decode的方式?

Softmax和CRF

Softmax本质上就是token的多分类问题,通常采用经过CNN,RNN或者BERT特征提取之后的序列然后直接对序列中的每一个token进行softmax分类。之后可能再用CRF进行标签约束。

指针网络

指针网络在命名实体中的应用其实就是寻找实体的起始和结束位置,对于可能存在多个实体span的NER,需要n个二元sigmoid分类(个人认为还可以是三元softmax分类,添加以上都不是一类即可),预测每一个词是头指针还是尾指针还是都不是。

span排列

《Span-Level Model for Relation Extraction》基于片段排列的方式,提取所有可能的片段排列,由于每一个片段都是独立的,所以可直接提取span-level的特征去解决重叠实体问题。对于含T个token的文本,理论上共有N=T(T+1)2N=\frac{T(T+1)}{2}N=2T(T+1)种片段排列。如果文本过长,会产生大量的负样本,在实际中需要限制span长度并合理削减负样本。没有预训练模型或者有力的特征提取模型时,实体span的编码表示就是在span范围内采取注意力机制与基于原始输入的LSTM编码进行交互,然后所有的实体span表示并行的输入SoftMax进行实体分类。

关系分类任务

通常是在一句话中的实体都被识别好给定之后,对于这些给定的实体之间存在什么样的关系,分别进行分类。

半监督学习方法

如果面临训练数据不足的情况,该如何进行关系分类任务?半监督学习就是大部分研究这个问题的学者的研究方向。

基于远程监督的优化

先解释一下远程监督,其主要的基本假设是,如果一个实体对在训练集中满足某个给定关系,那么其他出现在任何句子中的这个实体对的标签就都是这样的关系。这个方法无疑可以巨幅扩充数据集,但是这个假设太强,误差太多了。该部分内容例举的方法都是对远程监督误差问题的缓解方法。

多示例学习

代表论文主要如下:

  • Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks(PCNN)
  • Selective Attention over Instances (PCNN+ATT)
  • Relation Extraction with Multi-instance Multi-label Convolutional Neural Networks(Multi-label CNNs)
  • Distant Supervision for Relation Extraction with Sentence-Level Attention and Entity Descriptions(APCNNs)

以APCNNs为例,采取PCNN模型提取一句话的特征向量,最后通过attention加权得到Bag级别的特征,关系分类是基于Bag特征进行的(这里bag指包含相同实体对的句子的集合)。而原始的PCNN模型只选择Bag中使得模型预测得分最高的句子用于模型参数的更新,这会损失很多信息。

强化学习

在采用多示例学习策略时,可能会出现整个Bag包含大量噪声的情况。《Reinforcement Learning for Relation Classification from Noisy Data》中,基于强化学习的CNN+RL比句子级别和Bag级别的关系分类模型取得更好效果。
模型主要由样例选择器和关系分类器构成。样例选择器负责从样例中选择高质量的句子,采取强化学习方式在考虑当前句子的选择状态下选择样例;关系分类器向样例选择器反馈,改进选择策略

预训练

《Matching the Blanks: Distributional Similarity for Relation Learning》首次在预训练过程中引入关系分类目标,但仍然是自监督的,没有引入知识库和额外的人工标注,将实体metion替换为[BLANK]标识符。不同于传统的远程监督,该方法训练中不使用关系标签,采用二元分类器对句子对进行相似度计算。预训练的损失包含2部分:MLM loss二元交叉熵关系损失。在FewRel数据集上,不进行任何tuning就已经超过了有监督的结果。

监督学习方法

这部分不过多例举,可参考在关系分类经典数据集上刷榜的那些新模型,具体数据集有TACRED和SemEval 2010 Task 8,以TACRED为例,就有下面的工作可参考。

联合抽取

联合抽取的难点是如何加强实体模型和关系模型之间的交互,比如实体模型和关系模型的输出之间存在着一定的约束,在建模的时候考虑到此类约束将有助于联合模型的性能。

现有联合抽取模型总体上有两大类。

共享参数的联合抽取模型

1、共享参数的联合抽取模型

通过共享参数(共享输入特征或者内部隐层状态)实现联合,此种方法对子模型没有限制,但是由于使用独立的解码算法,导致实体模型和关系模型之间交互不强。

绝大数文献还是基于参数共享进行联合抽取的,这类的代表文献有:

End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures 一文用依存结构树先抽取实体,再关系分类。

Going out on a limb: Joint Extraction of Entity Mentions and Relations without Dependency Trees 一文用指针网络识别实体的同时进行关系抽取。

Extracting Relational Facts by an End-to-End Neural Model with Copy Mechanism 一文用seq2seq框架,依次抽取关系、head实体和tail实体。

Joint entity recognition and relation extraction as a multi-head selection problem 一文应用广泛,用多头选择机制+sigmoid先抽取实体,再利用实体的标签embedding进行关系抽取(训练时用真实标签,推断时用预测标签),利用实体边界信息组建三元组。
针对上文的实体标签embedding在训练和推断时存在的gap,BERT-Based Multi-Head Selection for Joint Entity-Relation Extraction 一文提出了soft label embedding并引入BERT。

此外还有
Joint Extraction of Entities and Relations Based on a Novel Decomposition Strategy
Entity-Relation Extraction as Multi-Turn Question Answering
Span-Level Model for Relation Extraction
SpERT:Span-based Joint Entity and Relation Extraction with Transformer Pre-training

联合解码的联合抽取模型

联合解码的联合抽取模型

为了加强实体模型和关系模型的交互,一些联合解码算法被提出来。比如文献Joint inference for fine-grained opinion extraction提出使用整数线性规划(ILP)对实体模型和关系模型的预测结果进行强制约束。文献Investigating lstms for joint extraction of opinion entitiesandrelations利用条件随机场(CRF)同时建模实体和关系模型,并通过维特比解码算法得到实体和关系的输出结果。文献Incremental joint extraction of entity mentions and relations将实体关系抽取看为一个结构化预测问题,采用结构化感知机算法,设计了全局特征,并使用集束搜索进行近似联合解码。文献End-to-end neural relation extrac- tion with global optimization提出使用全局归一化(Global Normalization)解码算法。文献Joint extraction of entities and relations based on a novel graph scheme针对实体关系抽取设计了一套转移系统(Transition System),从而实现联合实体关系抽取。

在加强实体模型和关系模型的交互时,需要对子模型特征的丰富性以及联合解码的精确性之间做权衡

  • 一方面如果设计精确的联合解码算法,往往需要对特征进行限制,例如用条件随机场建模,使用维特比解码算法可以得到全局最优解,但是往往需要限制特征的阶数。
  • 另一方面如果使用近似解码算法,比如集束搜索,在特征方面可以抽取任意阶的特征,但是解码得到的结果是不精确的。

因此,需要一个算法可以在不影响子模型特征丰富性的条件下加强子模型之间的交互。

此外,很多方法再进行实体抽取时并没有直接用到关系的信息,然而这种信息是很重要的。需要一个方法可以同时考虑一个句子中所有实体、实体与关系、关系与关系之间的交互

有3种易于应用的统一实体和关系标注框架(BIOES)的联合解码方法
Joint extraction of entities and relations based on a novel tagging scheme
Joint Extraction of Entities and Overlapping Relations Using Position-Attentive Sequence Labeling
Joint extraction of entities and relations based on a novel tagging scheme

总结

在前文中,笔者叙述了pipeline和联合抽取中的一些实体关系抽取方法,其中面临的挑战,笔者初步总结如下并给出一点建议:

1、对于pipeline方法中的NER来说:

虽然很多方法已经很普及,但更需要关注复杂场景下的实体重叠问题;此外,对于NER问题其实应用很广,在很多性能敏感的场景下,使用深度学习的方法似乎不能满足要求,这时就需要我们采取「词典+规则」的方法,例如:

  • 对于医疗场景中的很多实体歧义性并不强,对上下文也不够敏感,这时构建出一个针对目标实体的词表更为有效。
  • 对于通用领域中歧义性的实体,是否可以采用多种分词方式和句法分析等融合的方法去寻找实体边界呢?这都值得我们进一步尝试。

此外,应用解决NER的方法是否可以解决一些事件段落切割问题,方便我们将复杂任务进行拆解。

2、对于pipeline方法中的关系分类来说:

首要问题是怎么降低计算复杂度,关系分类时不再对句子重复编码,而是one-pass。

在低资源场景下,采取远程监督的方法确实可以自动进行语料构建,但其中针对样本噪音的降噪方法是否还有提升空间?降噪方法能否做到与模型无关,是否可以借鉴图像分类中很有效的置信学习呢?

此外,预训练语言模型如此火爆,针对关系分类任务,能否在预训练阶段引入更有效的关系分类的目标呢?如前文提到的文献MTB。

3、对于联合抽取任务来说:

难点是如何加强实体模型和关系模型之间的交互,怎么对需要对子模型特征的丰富性以及联合解码的精确性之间做权衡?

此外,很多方法再进行实体抽取时并没有直接用到关系的信息,然而这种信息是很重要的。需要一个方法可以同时考虑一个句子中所有实体、实体与关系、关系与关系之间的交互

引入图神经网络是否能够解决关系与关系之间的交互呢?由于篇幅原因,本文不再赘述。感兴趣的读者可以参考ACL2019中的系列文献:

Graph Neural Networks with Generated Parameters for Relation

GraphRel: Modeling Text as Relational Graphs for Joint Entity and Relation Extraction

Attention Guided Graph Convolutional Networks for Relation Extraction

Joint Type Inference on Entities and Relations via Graph Convolutional Networks

4、对于低资源问题复杂样本问题来说:

在刘知远老师的《知识图谱从哪里来:实体关系抽取的现状与未来》一文中,详细叙述了这方面的问题:

  • 对于少次关系学习问题:他们提出了FewRel 2.0,在原版数据集FewRel的基础上增加了以下两大挑战:领域迁移(domain adaptation)和“以上都不是”检测(none-of-the-above detection)。
  • 对于文档级别的关系抽取问题:提出了DocRED数据集,是一个大规模的人工标注的文档级关系抽取数据集,文档级关系抽取任务要求模型具有强大的模式识别、逻辑推理、指代推理和常识推理能力。

此外,如何引入将低资源问题的解决方案引入实体关系抽取中是一个值得探讨的问题,如主动学习、迁移学习(领域自适应、跨语言问题)、元学习、半监督学习等;还有怎么解决不平衡数据下的关系抽取?一些顶会的系列文献也做了一些尝试:

Knowledge-Augmented Language Model and its Application to Unsupervised Named-Entity Recognition

Description-Based Zero-shot Fine-Grained Entity Typing

Zero-Shot Entity Linking by Reading Entity Descriptions

Multi-Level Matching and Aggregation Network for Few-Shot Relation Classification

Exploiting Entity BIO Tag Embeddings and Multi-task Learning for Relation Extraction with Imbalanced Data

Massively Multilingual Transfer for NER

感兴趣的读者可以参考。

NLP中的关系抽取方法归纳相关推荐

  1. 知识图谱中传统关系抽取方法

    目前主要采用统计机器学习的方法,将关系实例转换成高 维空间中的特征向量或直接用离散结构来表示,在标注语 料库上训练生成分类模型,然后再识别实体间关系  基于特征向量方法 最大熵模型(Kambhatl ...

  2. nlp中的实体关系抽取方法总结

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要35分钟 跟随小博主,每天进步一丢丢 来自:知乎 地址:https://zhuanlan.zhihu.com/p/77868938 作者:Jay ...

  3. python实体关系抽取_【关系抽取】从文本中进行关系抽取的几种不同的方法

    关系提取是指从文本中提取语义关系,这种语义关系通常发生在两个或多个实体之间.这些关系可以是不同类型的." Paris is in France "表示巴黎与法国之间的" ...

  4. 2021-04-03生产中实体关系抽取一般采用什么方法?

    生产中实体关系抽取一般采用什么方法? 实体关系抽取有很多种方法,如基于特征向量的方法,基于核函数的方法,基于Bootstrapping的方法,基于深度学习的方法等等.看了很多这些方面的论文,各自评价不 ...

  5. 论文小综 | 文档级关系抽取方法(下)

    本文作者: 陈想,浙江大学在读博士,研究方向为自然语言处理 张宁豫,浙江大学助理研究员,研究方向为自然语言处理.知识表示与推理 这篇推文是文档级关系抽取方法的第二部分,前面的部分请移步推文" ...

  6. 【信息抽取】介绍一种端到端的关系抽取方法

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

  7. 论文小综 | 文档级关系抽取方法(上)

    本文作者: 陈想,浙江大学在读博士,研究方向为自然语言处理 张宁豫,浙江大学助理研究员,研究方向为自然语言处理.知识表示与推理 1. 前言 关系抽取(Relation Extraction, RE)是 ...

  8. 使用NeMo快速完成NLP中的信息抽取任务,英伟达专家实战讲解,内附代码

    信息抽取(IE)是从非结构化.半结构化的可读文档或其他电子表示来源中自动提取结构化信息的任务.信息抽取技术为文本挖掘.智能检索.智能对话.知识图谱.推荐系统等应用提供了基本的技术支持. 近日,英伟达x ...

  9. 使用NeMo快速完成NLP中的信息抽取任务 | 英伟达NLP公开课

    信息抽取(IE)是从非结构化.半结构化的可读文档或其他电子表示来源中自动提取结构化信息的任务.信息抽取技术为文本挖掘.智能检索.智能对话.知识图谱.推荐系统等应用提供了基本的技术支持. NeMo是英伟 ...

最新文章

  1. 闲鱼同城第三方对接架构设计
  2. 使用PHP顶替JS有趣DOM
  3. Vmware 中Windows和虚拟机共享文件--VMware-tools补丁安装
  4. python工作-Python自动化运维|Python语言工作岗位待遇如何?
  5. duration java_Java Duration类| minusMillis()方法与示例
  6. java list分批_Java实用笔记——mybatis批量导入
  7. 对接第三方支付接口-记录
  8. rsa 2048 java_使用SHA-256和RSA 2048进行加密和签名
  9. spring 事务配置
  10. GlusterFS更换故障Brick
  11. 信号检测与估计理论_永磁同步电机无传感器控制的新策略,提升转子位置检测精度...
  12. Java项目的开发流程
  13. Python爬虫——selenium爬取当当畅销图书排行
  14. SpringBoot整合Activiti Modeler可视化流程定制
  15. response.text 与 response.content
  16. 文献(8): 单细胞和空间分析揭示FAP+成纤维细胞和SPP1+巨噬细胞在结直肠癌中的相互作用
  17. JS的 验证组织机构的合法性
  18. 2021杭电多校第八场补题
  19. CNSD/Echarts图的使用
  20. (转)ibatis Tips 之 java.util.Map作为parameterClass和resultClass

热门文章

  1. VBA-VBS脚本编辑-Visual Studio 调试-WScript
  2. MS Office Word 2007/2003 资料下载汇总
  3. java基于Vue的体育用品 篮球NBA周边商城系统ssm毕业设计项目源码
  4. 破解网通宽带我世界实现路由共享上网
  5. 知识付费-windows环境安装之 swoole-loader
  6. HTML-从零开始的学习过程(2)
  7. 在内部局域网内搭建HTTPs
  8. 一对一直播源码系统平台搭建
  9. android studio 引入vitamio,Android Studio对 vitamio 的导入及demo运行
  10. MAC苹果电脑关闭系统完整性保护SIP