【论文阅读】基于CNN的关系抽取模型

486 阅读10分钟

今天介绍一篇基于CNN的关系提取模型的论文。

原文【Relation Classification via Convolutional Deep Neural Network】

代码地址

摘要

本文是使用CNN来做关系抽取的论文。在此之前,主要使用统计机器学习方法来做关系抽取,这类方法的性能严重依赖提取的特征质量。提取的特征通常是使用现有的NLP工具提取,这就会导致错误传播,从而影响关系抽取的质量。在本文中,提出使用卷积深度神经网络来抽取句子级和词汇级的特征,这样的方法无需复杂的预处理。首先,通过词嵌入方法对将单词转换为向量,对给定的实体抽取词汇特征,使用卷积对句子抽取句子级特征,将两种特征合并起来作为最终的特征向量,最后输入到softmax分类器,预测实体之间的关系。

介绍

关系分类就是给定句子和实体对来判断实体之间的语义关系,可以定义如下,给定句子S*S* 和标注的实体 e1,e2*e_1, e_2*, 目的是预测两个实体e1,e2*e_1, e_2* 的关系。

提出问题

最具代表性的关系抽取方法是使用监督范式,有监督的方法又可以分类为基于特征的方法和核方法。基于特征的方法需要先执行文本分析,从中选取一些特征用于分类。核方法需要以解析树的方法预先处理输入数据。这两种方法都有效,因为它们充分利用了大量的语言知识。但是无论是抽取特征,还是精心设计核函数,都依赖于上一步NLP处理工具的输出。这就导致了错误传播,从而影响关系抽取的效果。

解决方法

  • 提出独立于NLP工具的特征抽取方法,这里使用卷积来自动提取特征。
  • 结合词汇级和句子级的特征用于关系提取。

研究背景

在此之前,Collobert等人在2011年已经提出了使用卷积来用于NLP提取特征,我们的理念与他们类似。不同的是,他们的任务(比如词性标注,分块,命名实体识别)都视为序列标注问题。我们的任务是做关系分类,看做一个多分类问题,因此,目标函数不同。还有一点不同的是,在关系抽取中,必须要明确用于预测的实体对,为此,提出了位置特征PF用于编码性实体的相对位置。

文章总结

  • 探索使用CNN自动抽取特征用于关系分类的可行性。
  • 提出位置特征,用于编码单词到实体对的相对距离。
  • 使用SemEval-2010 任务8 数据集开展实验,证明了所提出方法的有效性。

相关工作

关系抽取是NLP中的一项重要任务,可以分为无监督的关系发现和有监督的关系分类。

在无监督范例中,使用的是上下文特征。分布式假说认为拥有相似上下文的词具有相似的语义。以此类推,可以认为拥有相似上下文的实体对有相似的关系。Hasegawa等人(2004)采用了一种分层聚类方法来聚类名词的上下文,直接选择上下文中出现最频繁的单词表示为实体间的关系。Chen等人(2005)提出了一种基于模型顺序选择和区分标签识别的新的无监督方法来解决这个问题。

在有监督范例中,将关系分类看做是一个多分类问题,主要精力用于提取更复杂的特征。进一步,有监督范式可以分为基于特征的方法和核方法。基于特征的方法的主要困难是如何选择合适的特征集。核方法面临的主要困难是缺少足够多的标记数据。Mintz 在2009年提出了远程监督来解决缺少标记数据的问题。所谓远程监督,就是将现有的知识库中的三元组与无标注的文本进行对齐,如果三元组中的两个实体被出现在同一个句子中,则将这个句子中两个实体的关系标注为三元组中的关系。这样标记数据的方法简单高效,但是会带来大量的噪声数据。为了解决标签错误问题,Riedel 等人(2010),Hoffman 等人提出了多实例学习,将包含相同实体对的句子划分成一个包,包则标注为相应的关系。每个包中含有正例和部分噪声,加入了多示例学习后,关系抽取任务从句子级别的分类任务变成包级别分类任务。

有监督的方法在关系抽取中有效,但是严重依赖于提取的特征质量。随着深度学习的热度,许多研究者开始尝试使用深度学习来提取特征。在NLP中,主要使用类似的方法来学习单词的分布式表示,叫做词嵌入。

Socher等人(2012)提出了一种用于关系分类的新型递归神经网络(RNN),该网络学习连接两个名词的句法树路径中的向量,以确定它们的语义关系。Hashimoto等人(2013)也使用RNN进行关系分类;他们的方法允许对目标任务的重要短语进行显式加权。如前所述,使用现有的NLP工具很难设计出高质量的特征。在本文中,我们提出了一种卷积DNN来提取用于关系分类的词汇和句子级特征;有效地缓解了传统特征的缺点。

模型结构

如图1所示,模型主要可以分为3部分:词向量表示,特征提取和输出。 首先,通过词嵌入方法对将单词转换为向量,对实给定的体抽取词汇特征,使用卷积对句子抽取句子级特征,将两种特征合并起来作为最终的特征向量,最后做softmax分类,预测实体之间的关系。 Untitled.png

词向量表示

通过查找词嵌入将token转换为向量,这里使用的预先训练好的词向量。

词汇特征

特征抽取部分可以分为词汇特征和句子级特征。这里的词汇特征指的是实体对的特征,以往是通过现有的NLP工具对实体对,以及对应的实体类型和他们之间的词序列抽取特征,本文使用的词汇特征是多种特征拼接,包括:

  • 实体对词嵌入向量作为基本特征来源
  • 实体和它们上下文的Embedding
  • 实体在wordNet 的上位词

下表详细介绍选择的鱼实体相关的词嵌入:

句子特征

图二表示的是抽取句子级特征的框架。每个token表示为两部分,单词特征和位置特征。然后,向量经过卷积操作后,进入一个非线性层,得到句子级特征。

Untitled 1.png

单词特征

单词特征就是将单词的向量表示及它的上下文表示结合起来。 假设有句子 SS

[People]0have1been2moving3back4into5[downtown]6[People]_0 \quad have_1 \quad been_2 \quad moving_3\quad back_4 \quad into5 \quad [downtown]_6

句子可以表示为向量列表(x0,x1,x2,x3,x4,x5,x6)(x_0, x_1, x_2, x_3, x_4, x_5, x_6) ,其中xi*x_i* 就是第i个单词对应的词嵌入。设定上下文窗口大小为 w*w*,就是对于每个单词,将临近的w个单词的特征合并起来,用于表示该词的单词特征。假设w=3,则单词 moving 就可以被表示为 [x2,x3,x4][x_2, x_3, x_4]。整个句子被表示为

{[xs,x0,x1],[x0,x1,x2],...[x5,x6,xe]}\{[x_s,x_0,x_1], [x_0,x_1,x_2], ...[x_5,x_6,x_e]\}

位置特征

位置特征就是将当前单词到两个实体的相对距离合并起来。比如在上述句子中,”moving” 相对于 实体“people” 和”downtown“ 的距离分别是3和-3,然后映射到一个维度为de*d_e* 的向量,这个向量是被随机初始化的。这样就获得了当前单词对两个实体的距离向量 d1*d_1*d2*d_2*,因此PF=[d1,d2]*PF = [d_1, d_2]* 。将WFWFPFPF合并就得到了每个单词的特征[WF,PF]T[WF, PF]^T。将得到的特征向量输入到卷积组件中。

卷积

得到单词的特征后,首先经过一个线型变换W1,在所有时刻,所有特征共享权重,输出 ZRn1×tZ \in R^{n_1×t} 其中 tt 为句子的长度,n1*n_1* 为隐藏层大小。然后在 ZZ 上进行一个最大池化操作,得到一个长为 n1n_1 的向量, m=m1,m2,...,mn1m={m_1, m_2, ...,m_{n_1}} 其中

mi=maxZ(i,)0in1m_i=max Z(i, ·), 0 \leq i \leq n_1

这时得到的向量的维度与句子长度无关。

得到句子级特征向量

为了得到更复杂的特征,对上一层的输出进行一个非线性变换,选择 tanh 作为激活函数。可以表示为

g=tanh(W2m)g = tanh(W_2m)

其中 W2Rn2×n1W_2 \in R^{n_2× n_1} , n2n_2 是隐藏层2的大小。

最终输出

合并上述得到的词汇特征和句子特征作为最终的特征向量,即 f=[l,g]f = [l, g]ll 是词汇特征,输入到一个softmax分类器中,得到最终的输出 oo

o=W3f,oRn4×1o = W_3f ,o ∈ R^{n_4×1}

n4n_4 是关系类别的数量。O的每个分量可以看做是对应类别的分数。

目标函数

由于本文将关系抽取看做一个多分类问题,使用交叉熵作为损失函数。首先,使用 θθ 当做模型的所有参数。给定一个句子s, 类别为i的概率为

p(ix,θ)=eoik=1n4eokp(i|x, θ) = \frac {e^{o_i}} {\sum_{k=1}^{n_4} e^{o_k}}

给定T条训练数据,参数的对数似然概率可以写作:

J(θ)=i=1Tlogp(y(i)x(i),θ)J(θ)=\sum_{i=1}^T log p(y^{(i)} | x^{(i)}, θ)

使用随机梯度下降最大化上述似然函数。

数据集和评估指标

使用 SemEval-2010 任务 8 数据集来进行实验,可以点击这里获得。该数据集包括10717个标注数据,其中8000条训练数据,2717条测试数据。总共有9种关系(有两种方向)和一个 other类别。使用平均宏观F1分数作为评价指标。

实验

开展了三组实验。

  1. 通过交叉验证来选择超参数。
  2. 比较卷积和传统特征的性能。
  3. 评估每个特征如何影响模型性能。

参数设置

通过五折交叉验证,研究以下3个超参数对性能的影响:

  • 卷积中窗口w的大小
  • 第一个隐层的大小
  • 第二个隐层的大小

image-20230103003345438.png

图三表示超参数对性能的影响。可以看出,

  • 窗口大小超过3的时候,不会再提高性能。
  • 由于训练集大小有限,当隐藏层超过一定范围,网络容易过拟合。

下表是在后续实验中使用的超参数

卷积与其他特征提取比较实验

选择7种方法来和我们提出的方法做比较,前5种使用传统特征提取,使用SVM或者最大熵做为分类器。 image-20230103004734631.png

实验结果是

  • 使用传统特征时,特征集越丰富性能越好。但是传统特征的质量依赖人力和前置NLP知识,手动选择最佳特征集几乎是不可能的。
  • 本文提出的方法取得了最好的结果。

特征如何影响模型性能

对词汇特征中的5种词征和句子的单词特征和位置特征进行消融实验,从而确定哪种特征的对模型的贡献最大。

image-20230103005529265.png 实验结果表明,词汇级和句子级的特征都对关系抽取有效果。当加入位置特征时,大约有9.2的改进。合并两种特征,得到了最好的结果。

总结

本文提出了使用深度卷积神经网络来提取用于关系分类的词汇和句子级特征。并且提出了位置特征来明确我们想要预测关系的实体对,且加入位置特征后,提升效果明显。