3种基于深度学习的有监督关系抽取方法(代码片段)

华为云开发者社区 华为云开发者社区     2022-12-01     546

关键词:

摘要:本文对几种基于深度学习的有监督关系抽取方法进行了介绍,包括CNN关系抽取、BiLSTM关系抽取以及BERT关系抽取。

本文分享自华为云社区《基于深度学习的有监督关系抽取方法简介》,作者: 一枚搬砖工。

随着互联网的快速发展,大数据、信息化时代悄然来临,如何从海量数据中挑选出有利用价值的信息,是十分具有挑战性的。本文将对基于深度学习的有监督关系抽取方法进行介绍。

1、任务定义

关系抽取是信息抽取的重要子任务之一,其目标在于从文本中抽取出两个或多个实体之间的语义关系。根据关系事实中涉及的实体数量,又可以进一步细分为二元关系抽取和多元关系抽取。本文中,关系抽取特指二元关系抽取。

输入:句子、目标实体对(头实体+尾实体)
输出:目标实体对之间的语义关系

------------------------------------------------
例1:
输入:建安二十五年,曹操去世,葬于高陵,其子曹丕继位魏王。
- 头实体:曹操
- 尾实体:曹丕
输出:儿子

在上述例子中,给定输入文本“建安二十五年,曹操去世,葬于高陵,其子曹丕继位魏王。“,其中”曹操“是头实体,”曹丕“是尾实体,两者之间的语义关系为”儿子“,即可抽取关系三元组<曹操,儿子,曹丕>。

2、关系抽取方法

在有监督的关系抽取中,关系抽取任务通常被建模成一个多分类任务,大多数研究工作也围绕着如何提取文本特征用于关系分类展开。本节将介绍三种用于关系抽取的常用方法。

2.1、CNN关系抽取

论文:Relation Classification via Convolutional Deep Neural Network

主要思想:

使用CNN结构提取文本的句子级特征用于关系分类。与文本分类任务不同的是,在关系抽取任务中,头实体和尾实体对关系的预测和判断有着重要的影响。例如,在例1中,如果头实体是“曹丕”,尾实体是“曹操”,则实体对之间的关系变成了“父亲”,即<曹丕,父亲,曹操>。因此,在提取文本特征时考虑实体对的位置是十分有必要的。在这篇文章中,通过引入位置向量的方法来指明头实体和尾实体。如下图所示,词“高陵” 与头实体“曹操” 和尾实体“曹丕” 的相对位置距离分别为4 和-3,可分别在头实体和尾实体对应的位置向量表中查询得到对应的位置向量,再拼接得到词“高陵” 的全部位置向量。最后,拼接上词的原本向量表示,得到最后的词向量化表示。最后,使用一个卷积神经网络提取句子级的文本特征,用于关系分类。

2.2、BiLSTM关系抽取

论文:Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification

主要思想:

使用BiLSTM作为特征提取器提取文本特征,并结合注意力机制捕捉文本中的重要特征。在这篇文章中,对文本进行编码时,使用了四个位置指示符(<e1>,</e1>,<e2>,</e2>)标记实体的位置。例如,在例1中,输入文本就变成了“建安二十五年,<e1>曹操</e1>去世,葬于高陵,其子<e2>曹丕</e2>继位魏王。”,表明“曹操”是头实体,“曹丕”是尾实体。通过位置指示符,可以使模型感知实体的位置,强化模型对于实体关系的理解。然后,使用BiLSTM提取深层次的文本特征。在关系抽取中,局部特征常常足以推测判断实体对的关系。在例1中,“其子” 一词就是预测“曹操” 和“曹丕” 之间人物关系的最重要特征。在这篇文章中,使用句间注意力机制对BiLSTM提取的文本特征进行组合,提取其中最重要的语义特征信息。具体如下:

其中,H \\in R^d^\\omega\\times THRdω×T​是BiLSTM的输出, d^\\omega​ 是隐层维度,TT​ 是句子长度, \\omegaω​ 、 \\alphaα​ 、rr​的维度分别为 d^\\omega​ 、TT​、d^\\omega​。最后使用特征向量rr进行关系分类。

2.3、BERT关系抽取

论文:Enriching Pre-trained Language Model with Entity Information for Relation Classification

主要思想:

使用BERT抽取句子的文本特征用于关系分类。与上节相似,在这篇文章中,也是用特殊符号标记实体的位置,在头实体和尾实体周围分别插入“$”和“#”,并在每个句子的开始位置添加“[CLS]”,然后将目标文本输入到BERT中。关系分类的特征来自于三个部分:句子的整体特征,头实体特征以及尾实体特征。在BERT 预训练时, “[CLS]”被NSP任务用来判断句子对的关系,从而能够学习到对整个句子的表达。因此,句子的整体特征通过 “[CLS]”来获取:

其中,H_0 \\in R^dH0​∈Rd是BERT的CLS输出向量,dd是BERT的隐层维度。

而实体对特征则通过对实体的BERT输出做均值化处理获取。具体如下:

最后,将获取的句子特征及实体特征拼接得到最后的特征向量,进行关系分类。

3、小结

本文对几种基于深度学习的有监督关系抽取方法进行了介绍,包括CNN关系抽取、BiLSTM关系抽取以及BERT关系抽取。

想了解更多的AI技术干货,欢迎上华为云的AI专区,目前有AI编程Python等六大实战营供大家免费学习。(六大实战营link:华为云AI实战营_云主机_云服务器_华为云)

点击关注,第一时间了解华为云新鲜技术~

《自然语言处理实战入门》----nlp方向:面试笔试题集

...应用传统机器学习或者深度学习的方法进行全监督学习;基于Bootstrap的半监督关系抽取方法;基于聚类的无监督学习方法。关系抽取中的远程监督是为了解决什么问题?答;随着深度学习的发展,基于监督学习的方法在性能上有了很... 查看详情

第十七篇:信息抽取informationextraction

...标记,继续NER:特征NER的深度学习关系抽取方法基于规则的关系抽取有监督的关系抽取半监督关系抽取远程监管无监督关系提取(“OpenIE”)评估其他IE任务时间表达提取事件提取最后信息抽取•根据下面这句话:... 查看详情

chap03知识抽取与挖掘

...的知识抽取3.面向半结构化数据的知识抽取4.实践展示:基于百科数据的知识抽取竞赛:MUCACEKBPSemEval    实体识别与链接关系抽取:从文本中抽取两个或两个以上实体的语义关系监督学习——深度学习方法Pipeline ... 查看详情

[人工智能-深度学习-54]:什么是非监督式学习以及常见的非监督式学习的模式(代码片段)

..._文火冰糖的硅基工坊_CSDN博客本文网址:[人工智能-深度学习-54]:什么是非监督式学习以及常见的非监督式学习的模式_文火冰糖(王文兵)的博客-CSDN博客目录第1章机器学习的种类第2章监督学习(Supervisedlearning)第... 查看详情

python深度学习之路-4监督学习(代码片段)

【Python深度学习之路】-4监督学习4.1了解监督学习(分类)监督学习:根据积累的经验数据对新的数据或将来的数据进行预测,或者进行分类的一种学习方式。无监督学习:对积累的经验数据中所存在的结构&#x... 查看详情

《异常检测——从经典算法到深度学习》15通过无监督和主动学习进行实用的白盒异常检测(代码片段)

《异常检测——从经典算法到深度学习》0概论1基于隔离森林的异常检测算法2基于LOF的异常检测算法3基于One-ClassSVM的异常检测算法4基于高斯概率密度异常检测算法5Opprentice——异常检测经典算法最终篇6基于重构概率的VAE异常检... 查看详情

机器学习的方法都有哪些?

...输入数据预测出正确的输出。强化学习:强化学习是一种基于环境和反馈的学习方法,系统在不断的交互中学习到最优策略。聚类:聚类是机器学习中的一种无监督学习方法,它的目的是将数据分成不同的群体,使得群体内的数据... 查看详情

深度学习和机器学习的区别是啥

...深度学习和强化学习。传统的机器学习算法在指纹识别、基于Haar的人脸检测、基于HoG特征的物体检测等领域的应用基本达到了商业化的要求或者特定场景的商业化水平,但每前进一步都异常艰难,直到深度学习算法的出现。2、... 查看详情

machinelearning(吴恩达<一>)(代码片段)

目录一、机器学习(ML)简介1.人工智能、机器学习、深度学习的关系2.机器学习与深度学习的比较2.1、应用场景2.2、所需数据量2.3、执行时间2.4、解决问题的方法3.监督学习(SupervisedLearning)4.无监督学习(Unsupervise... 查看详情

深度学习基础——基本概念和术语整理(代码片段)

...目录1.人工智能(AI)、机器学习(ML)和深度学习(DL)1.1人工智能1.2机器学习1.3深度学习1.4人工智能、机器学习和深度学习的关系2监督学习与无监督学习3.深度神经网络(deepneuralnetworks,DNN)4... 查看详情

机器学习基础教程笔记---机器学习概述(代码片段)

...机器学习概述1.1人工智能概述1.1.1机器学习与人工智能、深度学习1.1.2机器学习、深度学习能做些什么1.1.3人工智能阶段课程安排1.2什么是机器学习1.2.1定义1.2.2解释1.2.3数据集构成1.3机器学习算法分类学习目标分析1.2中的例子࿱... 查看详情

知识图谱关系抽取(代码片段)

...宽卷积、等长卷积二维卷积卷积层作用子采样层参数训练基于卷积神经网络的 查看详情

基于6种监督学习方法的毒蘑菇分类(代码片段)

...题的数据,我个人感觉跑偏了;第二名侧重点是基于贝叶斯理论的分类,能力有限,贝叶斯这块学习好了专门再说。所以,选择了第三名的notebook源码来学习。作者将6种监督学习的方法在本数据集上的建模、... 查看详情

浅析深度学习在实体识别和关系抽取中的应用

...间相互之间存在着不同种类的关系。NER的研究从一开始的基于词典和规则的方法,基于统计机器学习的方法,到近年来基于深度学习的方法,NER研究的进展趋势如下图所示。基于统计机器学习的方法主要包括:隐马尔... 查看详情

多模态深度学习方法综述

多模态方法种类多模态深度学习是指将来自不同感知模态的信息(如图像、文本、语音等)融合到一个深度学习模型中,以实现更丰富的信息表达和更准确的预测。在多模态深度学习中,模型之间的融合通常有以下三种方法:模... 查看详情

深度学习计算框架实现(代码片段)

参考与评述参考书目《DeepLearning》LanGoodfellow.经典的深度学习框架是以计算图&梯度下降方法实现对前馈网络的有监督学习。这里复现了前馈计算图的梯度计算实现。一、前馈计算图实现1.前向与梯度计算结果数组(保存输入节... 查看详情

数学建模:1.监督学习--回归分析模型(代码片段)

... 线性回归的python实现方法 线性回归通常是人们在学习预测模型时首选的技术之一。在这种技 查看详情

10.1意境级讲解关系抽取

...法分类3.1根据训练数据的标记程度分类3.2根据使用的机器学习方法分类3.3根据是否同时进行实体抽取和关系分类子过程进行分类3.3.1Pipeline方法有哪些缺点3.3.2联合学习方法有哪些缺点3.3.2.1参数共享方法与联合解码方法3.4按解码... 查看详情