基于多级注意卷积神经网络的关系分类
1. Introduction
由于语言表达的丰富性,我们可以使用多种不同的方式来表达同一种关系,这种不同可以是词汇、句法甚至是语用上的,因此一个有效的解决方法就需要能够考虑到有用的语义和句法特征,这不仅包括目标实体在词汇层面的意义,还包括它们的直接上下文和整个句子结构。
因此,出现了很多基于特征和内核的方法,其中很多方法依赖于成熟的NLP堆栈,包括词性标记、形态分析、依赖解析、语义分析以及用于捕捉词汇和语义特征的知识资源。近年来我们看到了向深层架构的发展,这种架构能够学习相关的表示和特性,而无需大量的手动特征工程或使用外部资源,许多卷积神经网络(CNN)、循环神经网络(RNN)和其他神经结构已被提出用于关系分类。尽管如此,这些模型往往无法识别关键线索,其中许多模型仍然需要外部依赖解析器。
因此,作者提出了一种新的CNN架构用于解决以前的方法的缺点,贡献如下:
- 作者提出的CNN架构依赖于一种新的多层注意力机制来捕获实体特定的注意(关于目标实体的输入界别注意)和关系特定的集中注意(关于目标关系的次要注意)。这使得它能够检测到更微妙的线索,尽管输入句子的结构不同,使它能够自动学习与给定分类相关的部分。
- 作者引入了一种新的目标函数,并证明了其由于标准损失函数。
- 在 SemEval 2010 Task 8数据集上以88%的F1 score获得了state-of-the-art的结果,优于依赖更丰富先验知识的方法。
2. Related Word
除了一些无监督的聚类方法,现有的关系分类大部分是有监督的,关系抽取通常作为标准的分类或多标签分类任务。传统的基于特征的方法依赖于预处理步骤计算出的一组特征的输出,而基于核的方法使用卷积树核、子序列核或依赖树核,因此这些方法要么依赖于精心制作的特征(通常是在反复实验的基础上选择的),要么依赖于精心设计的内核,而这些内核又往往来自其他预训练过的NLP工具或词汇和语义资源。尽管这些方法可以从外部NLP工具中受益,以发现离散的在句子结构方面的信息,但是句法分析容易出错,而依赖于其成功就可能会影响性能。进一步的缺点是对没见过的词汇概括能力有限,以及在新领域、体裁或语言时缺乏稳健性。
近年来,很多的方法都是依赖与外部NLP工具,我们需要一个简单而有效的体系结构,它不需要依赖解析或训练多个模型,因此,作者提出了这个模型。
3. The Proposed Model
3.1 Classification Objective
对于一个给定的句子S,网络最终会产生输出。对于每个输出的关系
,假设其对应的输出嵌入为
,这将由网络自动学习得到。
我们提出了一个新的距离函数来衡量预测网络的输出
与候选关系y的相似性:
使用正则化(注意到
已经正则化了)。基于这个距离函数,我们设计了一个基于边缘的两两损失函数
其中1是边缘,是一个参数,
是预测标签的嵌入
和真实标签之间的差距,
指
和选择的不正确关系标签
的距离,即
与经验损失函数相比,这种基于边缘的目标函数具有较强的可解释性和有效性。基于由词语类比驱动的距离函数,我们最小化了预测输出和真实标签之间的差距,通过迭代地最小化这一损失函数,逐渐减小,而
逐渐增大。
3.2 Input Representation
给定一个带有实体标记和
的句子
,需要进行词嵌入和位置嵌入。
词嵌入:将每个单词映射到
,其中
是词嵌入的维度。
位置嵌入:计算每一个单词距离头实体和尾实体的距离,每一个相对距离都被映射到一个随机初始化的位置向量中,其中
位置嵌入的维度,是超参数。这就能得到关于实体
和
两个位置向量
和
。
然后将词嵌入和位置嵌入进行组合,就能够得到第i个单词的向量表示
使用以第i个单词为中心大小为k的滑动窗口,我们就能将k个连续单词编码为向量来结合上下文信息
3.3 Input Attention Mechanism
虽然位置编码是有用的,但是我们认为它们不足以完全捕获特定单词与目标实体的关系以及它们可能对目标关系的影响。因此,我们设计了我们的模型,以便自动识别输入句子中与关系分类相关的部分。
注意机制已成功应用于顺序对顺序的学习任务,如机器翻译和抽象句子总结,以及句子对建模和问答等任务。到目前为止,这些机制通常用于允许输入和输出序列的对齐,例如机器翻译中的源句子和目标句子,或者在句子相似性评分和问答中允许两个输入句子之间的对齐。
在我们的工作中,我们将注意力建模的思想应用到一种完全不同的场景中,该场景涉及异构对象,即一个句子和两个实体。因此,我们试图让我们的模型能够确定句子的哪些部分对两个相关的实体最具影响力。在一个有多个从句的长句子中,也许只有一个动词或名词可能与给定的目标实体处于一种相关关系中。
如图2所示,输入表示层与对角注意矩阵和卷积输入联合使用。
Contextual Relevance Matrices. 我们引入了两个对角线注意矩阵
,其值
用来描述实体
和单词
之间的上下文关联。评分函数f被计算为单词
和实体
各自的词嵌入的内积,并被参数化到网络中,随着训练过程不断更新(这里的更新应该指的是更新实体和单词的嵌入表示)。我们定义
来量化每个单词相对于第j个实体的相对关联度。
Input Attention Composition. 使用上式我们能够得到两个权重矩阵(分别是使用头实体和尾实体计算得到的),对于第i个单词的权重和
,我们的模型将通过平均联合使用这两个权重
除了这种方法,还有另外两种变体。
最后,将进行组合得到矩阵
,其中n是句子的长度。
3.4 Convolutional Max-Pooling with Secondary Attention
Convolution Layer. 给定由input arttention-based产生的表示R,应用大小为过滤器,其权重为
(size为
),然后再添加线性偏置
,最后使用非线性双曲切线变换表示如下特征:
Attention-Based Pooling. 与常规的池化不同,我们依赖基于注意的池策略来确定窗口的重要性。这里的目标是选择
中与3.1节中的目标函数相关的部分。
我们创建一个相关矩阵G,它用于捕获句子中的卷积上下文窗口和在3.1节中的输出嵌入的相关连接。
其中,U为由网络学习的权重矩阵。
然后,使用Softmax函数对该关系矩阵进行处理得到注意力矩阵
其中是G中第(i,j)的元素,
是
是中第(i,j) 的元素。
最后,我们将这个注意力池矩阵与卷积的输出相乘,以突出重要的单个短语级成分,并利用最大池化操作来选择对于给定输出向量最显著的一个,即
其中是
的第i个元素,而
是
的第(i,j)元素。
3.5 Training Procedure
我们使用随机梯度下降(SGD)来更新等式2中关于损失函数的参数:
其中,和
是学习率,它们结合了等式2中的参数
。
4 Experiments
Dataset and Metric.
- 数据集:SemEval-2010 Task 8
- 衡量标准:Macro-F1 score
Setting. 使用word2vec的skip-gram模型来学习Wikipedia上的初试词表示。其它矩阵初始化为高斯分布的随机值。我们对训练数据应用交叉验证程序来选择合适的参数。
参考论文:Wang L, Cao Z, De Melo G, et al. Relation classification via multi-level attention cnns[C]//Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2016: 1298-1307.