林广和 通过多层Attention的CNN模型来实现关系抽取
新闻来源:IR实验室       发布时间:2017/10/14 0:00:00

Relation Classification via Multi-Level Attention CNNs

1.  引言

关系抽取是自然语言处理中一项重要任务,该任务在给定带有两个实体的句子,通过模型学习,能正确识别两个实体在具体上下文中的关系。

如下所示:

两个实体[大火][燃料]的关系为因果关系(Cause-Effect

 

2. 本文创新点

1).提出多级基于Attention机制的卷积神经网络,以下两种Attention机制

1>. Input Attention机制:用于捕获当前词和标注实体间的关联程度

2>. 基于AttentionPooling,用于捕获最有助于关系分类的卷积特征。

2).提出成对的基于边际的损失函数

3).SemEval 2010 Task 8数据集上获得最先进F188%

3. 模型

如上图所示:

1).输入表示

给定句子和两个标注实体,将它们转化为词向量表示。

每个词均由一个总的词向量表示,其中表示当前词的词向量,表示当前词与两个给定实体的相对位置向量。其中,位置向量来自一个随机初始化的矩阵。

编码以为中心词、窗口大小为k的连续k个词为向量,具体表示如下:

2).Input Attention机制

1> Contextual Relevance Matrices

这里引入对角矩阵,对角元素 采用内积的方式,表示词和实体之间的关联度。

同时为刻画词和实体之间的相对关联度,对做了归一化处理,具体如下公式:

2>. Input Attention Composition

根据获得的两个关联因子,产生了三种表示方式:

                              1

                        2

                            3

从两个实体对于当前词的联合影响、语义丰富性、与两个实体间的倾向程度三方面分别刻画当前词的表示,最终由这些形成最终输出矩阵

3).卷积结合基于AttentionPooling

1>. 将所获得的R进过卷积操作,获得

2>. 基于AttentionPooling

由矩阵表示卷积获得的n-gram和类别向量之间的关联程度,其中U为可训练参数,再对G按列进行归一化,获得 ,最后对卷积的输出结果加权计算并选择每一维中最显著的特征,具体如下式:

4. 损失函数

不同于常规多分类中使用的softmax损失函数,本文中使用了成对的基于边际的损失函数,首先定义了一个距离函数,用于度量网络中的输出 和候选类别y之间的近似程度,具体公式如下:

     

整个损失函数如下:

其中 

该损失函数的目标为最小化输出和真实标签间的差距,同时最大化与不正确类别间的差距。

5. 实验部分

实验使用了SemEval-2010 Task 8数据集,包括8000条句子构成的训练集和2717条的测试集。

实验对比了原来任务的优胜者(基于SVM的方法)、CR-CNN模型和最近的DRNNs模型,结果表明文中只基于Input Attention的方法已经超过上述方法,而采用基于Input Attention和基于AttentionPooling的方法F1达到了最优的88.0

同时,对比Input Attention中的默认方式和两个变种,发现还是默认选择更优。而采用消融分析,如上图所示,基于边际的损失函数能提升2%,而Input Attention 基于AttentionPooling分别提升1.4%0.5%

6. 启示

  联系本人研究的命名实体识别,考虑将文中的成对的基于边际的损失函数融合到目前的句级似然函数中,可以作为一个突破点。同时,联系基于AttentionPooling也是一个实体识别的研究点。