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

2020-07-22 16:04:54 浏览数 (1)

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

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

本文首先介绍一种端到端的关系抽取方法,即能够通过一个模型,共享参数,进行实体识别和关系分类。

作者&编辑 | 小Dream哥

1 导论

我们前面介绍的深度学习方法进行关系的分类,包括卷积神经网络和循环神经网络,这类模型主要关注的是关系分类的问题,且在此类问题中取得了一定的进展。

但是,在现实的场景中,我们遇到最多的问题是,需要直接从非结构的文档中抽取出<e1, r, e2>的三元组。

如果采用上述的模型,就需要先用NER任务,讲文本的中的实体抽取出来;随后,基于NER的结构,用关系分类模型对抽取到的实体的关系进行识别。

目前得到的一种共识是,NER任务会有误差,这种误差会积累,然后传递到关系分类的任务中去,从整体的效果会变差。

进而出现了一些联合的抽取模型,在一个模型里就能端到端的抽取出实体及他们之间的关系。

Suncong, Zheng, Yuexing, etc. Joint entity and relation extraction based on a hybrid neural network[J]. Neurocomputing, 2017.

2 网络结构

如上图所示是该基于循环神经网络和卷积神经网络的实体及其关系分类的联合抽取模型的框架图,从图中可知,模型的输入是一段话;输出包括一个序列标注序列和一个预测的类别,实现了实体抽取和关系分类的联合抽取

联合抽取的一个主要思想是参数共享,这个模型可以分开去看,包括实体抽取和关系分类两个部分。两个部分进行了部分的参数共享,可以任务关系分类模型共享了实体抽取模型特征抽取过程的参数,获得很多实体以及文本语义及文法特征,从而能够较好的进行关系分类。

下面我们来详细介绍这个模型的结构:

1)公共特征抽取

模型的底座,公共部分,是一个双向LSTM网络,通过这个网络,进行输入文本的特征抽取及表征。

2) 实体抽取部分

实体识别部分的输入是上述双向LSTM网络T(T为输入序列的长度)个时刻的编码<h1,h2,h3,...hT>。

实体抽取部分,针对输入<h1,h2,h3,...hT>先做一个解码操作,解码部分引入了一个decoding LSTM层,该层LSTM的解码过程,可参考下面的计算公式:

其中,ht是该时刻encoding的编码向量;st-1为上一个时刻decoding LSTM的cell state;Tt-1为上一个时刻解码器的序列标记预测向量;(ps,it=st)

再通过一个线性变化,得到当前时刻的序列标记预测向量:

最后接一个softmax层,预测是每一个标记的概率。

这里解码层跟现今大部分的模型不一样,如今的NER模型通常采用CRF,感兴趣的同学,可以试试效果会不会变好。

3) 关系分类层

如上图所示,是关系分类部分的结构图。从图中可知,关系分类部分采用的是卷积神经网络。

该部分的输入包括2个部分:

1.实体的编码向量,因为有的实体会包含几个字,会将该实体内所有字的编码向量相加,得到实体的编码向量he1he2

2.实体间的词向量。

讲实体的编码向量及实体间的词向量拼接在一起,输入到卷积神经网络中进行进一步的解码。

解码后经过一个最大池化层,改池化层的用法跟前面讲的池化是一样的逻辑,忘记的读者可以出门左转看看。

最后,经过一个softmax层就可以输出这两个实体是某种关系的概率了。

3 训练过程

训练过程采用RMSprop优化器,NER喝RC的损失函数分别为:

需要注意的一点是,模型在训练时,先把NER模型训练一段时间,获得一定的准确度后,再进一步加入关系分类模型一起训练

有意思的一点是,作者认为大部分有关系的实体,他们之间相差的词不会超过20个,所以再模型里加了一个Lmax的超参数,假如两个实体间的距离超过了20,则认为他们没有任何关系。

其实这个结论,应该只在作者训练的数据集(ACE05)有效,在目前很多的数据集都存在大量的“远距离实体间的关系”。

总结

联合模型的想法其实挺朴素的,主要基于如下两个点:

1.减少模型间的误差传递。

2.让NER和RC模型共享参数,让RC模型能够充分利用NER模型获取到的实体间的语义信息。

0 人点赞