实体关系抽取概述

 现如今,在人工智能领域,神经网络表现出强大的竞争能力,被广泛运用在计算机视觉、模式识别以及自然语言处理等领域。其中在自然语言处理领域中,循环神经网络从众多网络模型中脱颖而出,目前很多实体命名识别与关系抽取都是基于该模型进行建立。但是其也存在一些缺点,就是对于比较大的数据量可能需要训练的模型的时间比较长,所以对此情况,为了提高效率,本文采用参考了博主苏剑林在百度竞赛上使用的一个速度较快的抽取实体关系的模型。它是基于膨胀神经网络的,同时为了效果更好加入当前比较火的注意力机制,并在注意力机制的基础之上进行了一些改动,使之能够更好的提高联合实体关系抽取的准确率。

 

 

模型设计

        根据上述实体关系抽取的的基本思想,结合膨胀卷积网络和Self-Attention结构来设计整体模型,其模型的处理流程为:

  • 1.输入句子,根据训练好的词向量将其每一个字和词进行混合Embedding得到句子向量,然后给其加上位置向量Position Embedding。

  • 2.将得到的混合向量输入到12层的膨胀卷积网络中,得到编码后的序列H。

  • 3.将H传入到一层Self Attention中,得到输出结果。

  • 4.将上一层的输出结果接入一个全连接层,并预测标记主实体出现的开始下标和结束下标。

  • 5.根据预测标记的主实体,将其在H中对应的子向量传入到LSTM中,得到一个主实体的编码向量,并将其加上位置向量Position Embedding,得

  • 到一个与句子序列相同长度的序列。

  • 6.将对应的H向量再次传入到一层Self Attention中,将输入结果与第五步输出的向量序列进行拼接。

  • 7.最后将拼接过后的序列传入全连接层,预测客实体与关系的开始位置和结束位置即得到结果。

        模型的整体结构图如下:

字词混合编码

 如果单纯的只是进行分词很容易导致切分错误,所以为了最大程度上的避免切分错误,应该选择直接对词进行嵌入。但是,单一的词并不具有有效的语义信息,所以本文采取一种折中的办法,就是将字和词混合在一起嵌入词向量空间中,这样即避免了切分错误,也融合了语义信息,其实现过程如下:首先将输入的句子以字为单位,输入到一层嵌入层(Embedding)计算得到句子的字向量序列;然后将输入的句子进行分词,将分好的词通过一个训练好的Word2Vec模型来提取对应的词向量;将词向量重复生成多次,直到其与字向量等长;将得到的等长词向量输入到一个变化矩阵当中生成和字向量一样的维度,并将两者进行相加,得到混合的向量。其处理过程图如下:

 

位置信息

 因为使用的网络模型是卷积网络模型,所以经过其得到的编码向量并不具备位置的特点,但是在进行实体关系抽取的过程中,其位置信息是比较重要的,因为实体的出现是随机的,它既可以出现在句首,也可以出现在句中,或者出现在客实体的附近,这些都是有可能的,所以必须加入一个位置信息才能是模型具有一个较好的效果。本模型加入位置信息的做法是:设定一个比句子最大长度长一些的Embedding层参数矩阵,将其初始化为0,根据传入的位置信息,由该参数矩阵生成对应的Position Embedding向量,并将该Position Embedding向量与上一步生成的字词混合向量相加,作为一个新的混合向量,传入到膨胀卷积网络层进行编码。

 

膨胀卷积神经网络

 有的时候输入的句子可能会很长,为了能够捕捉到整个句子的信息特征且参数不会态度,本模型使用了膨胀卷积神经网络。相较于普通的神经网络,膨胀神经网络可以用更少的参数而使其感受野不会太小,即在相同参数下,膨胀卷积神经网络可以捕捉更远的信息。其模型比较如下:

 

模型效果分析

 本文采用精度评定来评价模型的性能,分别采用准确率P,召回率R,以及F1评分作为评价标准。准确率指的是模型分类正确的正样本数量占被模型判定为正样本数量的比例;召回率指的是模型分类正确的正样本的数量占真正正样本的数量的比例;F1是召回率和准确率的平均值。其数据如下: