【信息抽取】如何使用循环神经网络进行关系抽取

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

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

本文介绍一种基于循环神经网络的关系抽取方法。

作者&编辑 | 小Dream哥

1 导论 

因为基于统计的关系抽取方法需要复杂的特征过程,基于深度学习的方法得以引入,最早的应用在关系抽取中的深度学习模型是CNN,上一篇我们介绍了一种较早的用于关系抽取的CNN模型,感兴趣的读者可以看看:

【信息抽取】如何使用卷积神经网络进行关系抽取

相比于基于统计的方法,基于CNN的方法确实取得了不错的进展,但是CNN对于时序特征的抽取能力偏弱,特别是

当两个实体之间的“距离”比较远时,CNN模型的效果会变差。

RNN时最适合做时序特征抽取的模型,本文介绍一种简单的基于RNN的关系抽取框架,虽然简单,但是在当时取得了非常不错的效果。

Daojian Zeng, Kang Liu, Siwei Lai, Guangyou Zhou, and Jun Zhao. 2014. Relation classifification via convolutional deep neural network. In Proceedings of COLING, pages 2335–2344.

2 网络结构

【信息抽取】如何使用循环神经网络进行关系抽取_第1张图片

如上图所示,是这次要介绍的基于RNN的关系抽取模型的的框架图,总的来说,这个框架非常的简洁,主要包括3个部分:词嵌入,双向RNN层,池化层

1)词嵌入(Word Representation)

词嵌入就是目前NLP领域最普通的词嵌入,每一个输入词语转化成一个固定维度的向量。这个向量是从预先训练好的词向量字典中查找得到,这份词向量字典中的词向量表征了词之间的语义关系。论文中用到的词向量是用word2vec训练好的词向量。

2) 双向RNN层

采用双向RNN层进行特征抽取,这里的双向RNN是最朴素的RNN模型,通过双向RNN建模输入序列的语义特征。循环神经网络是NLP中最基本的概念,这里就不再赘述了。

3) 池化层

在现在的NLP模型中,池化层并不多见,但是在早期的深度学习模型中,池化用的还挺多的,主要是用于特征抽取。

输入序列经过双向RNN层的特征抽取之后,得到一个输出序列[h1,h2,h3,...ht],那么如何利用这些特征,得到一个句向量,来表征输入序列呢?该论文中,参考CNN的池化层,做如下的操作,得到句向量m:

其中t表示输入序列的长度,M表示RNN的size。

总的来说,这个操作就是,对每一个维度,取t个特征向量中最大的值,得到一个维度为M的向量m,用来表征输入序列。

为什么最大池化能有效呢?论文认为,只有那些关键的特征对最后的关系分类有作用,通过模型的训练,可以突出这些特征,从而获得效果。

4) 输出层

输出层就非常的简单了,接一个全连接层,在接softmax就可以输出分类,然后用交叉熵做损失函数,用来训练了。

需要提出的是,论文的输入还引入了实体位置的标识(Position indicators)。即用特殊的标识在输入序列中将两个实体标识出来,例如:

周杰伦七里香很受欢迎。

3 模型效果

【信息抽取】如何使用循环神经网络进行关系抽取_第2张图片

如上图所示,展示了模型增加不同部分,对最终F1值的影响,我们可以得出一下结论:

(1) 最大池化对模型的效果影响很大:池化的过程能够提取出对关系分类最重要特征,用于分类。

(2) 标识出实体的位置能够给模型带来很好的性能提升。

这些结论和经验对于后续的模型建模都是宝贵的经验,基于这些经验,后面的工作才能更能进一步。

总结

本文介绍了一种基于循环神经的关系抽取的方法,总的来说,这个模型很简洁,但是效果却很好。

最大池化能够提升模型的性能,但是同时也会损失很多特征。因此这个模型对于一些难度较高的,需要一定的语义理解关系的情况会比较吃力,这也是为什么后面的NLP模型都摒弃了池化层的原因之一。

前面介绍的都是关系分类模型,下一篇介绍一种一个模型就能够抽取出来实体和关系的联合模型。

下期预告:一种端到端的关系抽取模型

知识星球推荐

【信息抽取】如何使用循环神经网络进行关系抽取_第3张图片

扫描上面的二维码,就可以加入我们的星球,助你成长为一名合格的自然语言处理算法工程师。

知识星球主要有以下内容:

(1) 聊天机器人。

(2) 知识图谱。

(3) NLP预训练模型。

转载文章请后台联系

侵权必究

【信息抽取】如何使用循环神经网络进行关系抽取_第4张图片

往期精选

  • 【完结】 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的文本相似度计算

你可能感兴趣的:(【信息抽取】如何使用循环神经网络进行关系抽取)