NLP——用卷积网络实现关系分类
Relation Classification via Convolutional Deep Neural Network
这是一篇2014年文章,年代比较久远。论文链接: link.
论文的研究点
- 目前存在的问题:用于关系分类最新的方法主要基于统计机器学习,其性能严重依赖所抽取的特征,但是抽取的特征往往是从预先存在的NLP系统的输出中得到的,这会导致在现有工具中错误的传播以及影响系统的性能(这个当然是针对2014年的时候啦)
- 提出的解决方法:本文利用卷积深度神经网络提取词汇和句子级别的特征。
研究方法
网络结构图
这个系统不需要做任何复杂的语句或者是语义的预处理,系统输入是个带有两个名词标记的句子,通过词嵌入的方法将词转换为向量,再分别提取词法特征和句子级别的特征,将其拼接为最终的特征向量。为了计算每种关系的置信度,将特征向量喂进一个Softmax分类器,输出一个向量,其维度等于关系类型的个数18,每个值代表对应relation的分数。
接下里我们看下上述图片中每一步是如何实现的。
1. Word Representation:
将每个输入的词通过word embedding转换为向量,注:本文使用的word embedding是 Turian etal.(2010)
2. Lexical Level Features:
两个标记名词的词向量,两个标记名词相邻词的词向量,以及标记名词的上位词(WordNet)
3. Sentence Level Features:
采用最大池化的CNN得到句子水平的表示以及自动抽取句子水平的特征,结构如图2所示,在 Window Processing中,每个词又进一步表示为Word Features (WF)和Position Features (PF) (后面会讲到),之后将向量通过一个cnn,进行最大池化。最终,通过非线性变化得到句子水平的特征。
3.1 Word Features 假设给定下列序列:
People和downtown为标记的名词,将S表示为向量 (x0 ,x1 , ··· ,x6 ),x i表示句子中的i个词的嵌入向量,为了得到更丰富的特征,引入卷积,令w=3,则“moving”可以表示为 [x2 ,x3 ,x4 ],类似,在整个句子S中,
3.2 Position Features: PF考虑了当前词到w1和w2的相对距离,如:在上述的S中,“moving”到“People”和“downtown”的距离分别是3和-3,再将相对距离映射为一个de(超参数)维的向量,其中de是个超参数,且该向量是随机初始化的。然后我们就得到了当前词到w1和w2的相对距离的距离向量d1,d2,并且:PF=[d1,d2]将PF和WF拼接,得到
3.3 Convolution: 上述Window Processing仅仅得到了句子中每个词的局部特征,在关系分类任务中,目的是预测连个名词间的关系类型,而不是每个词的label,因此,十分有必要运用全部的局部特征来预测关系类型。因此,首先将Window Processing的输出做一个线性变换:
其中, Z(i,·) 代表Z的第i行,上述操作得到向量
4. Output:
将2.中 lexical水平的特征和 sentence水平的特征拼接为 f = [l,g],f为n3 ×1的,n3=n2+ 句子水平I的维度,为了得到每种关系的概率,将其通过一个softmax分类器,得到:
5. Dataset and Evaluation Metrics:
5.1 Dataset : SemEval-2010 Task 8 ,包含10717个例子,8000个训练实例,2717个测试实例,9种relationship,本文中考虑两个名词出现的先后顺序,所以是18种。
5.2 Evaluation Metrics: F1
6. Experiments:
6.1Parameter Settings: 测试超参数的选取对性能的影响,结果如下图:
以下是后续实验选取的超参数:
6.2 Results of Comparison Experiments:
6.3The Effect of Learned Features: