基于转换的神经网络依存句法分析器
依存句法分析是自然语言处理中一个关键的问题,一是判断给定的句子是否合乎语法,再是为合乎语法的句子给出句法结构。为了准确做出句子的依存关系,不少学者提出了一些方法,如基于图的方法,基于转换的方法等。
基于转换的依存句法分析
Yamada和Matsumoto提出了使用SVM来训练基于转换的依存分析算法。他们根据三种分析行为(shift, right, left)对输入的句子进行从左到右顺序构建一颗依存树,他们的算法属于自底向上(bottom-up)的分析算法。分析器算法分为两步:
1. 使用目标节点周围上下文信息估计合适的分析行为
2. 依据所执行的行为构建一个依存树
分析算法的核心就是提取目标结点的上下文信息,并依据模型估计最可能的分析行为(在训练模型时是由标注的依存树给出分析行为,在预测的时候是学习的模型给出)。
为了提取特征,Yamada使用一个三元组
Nivre总结了两种基于转换的依存分析方法,一种是arc-standard parsing,另一种是arc-eager parsing。前一种是标准的自下而上的方法,如Yamada提出的方法;后一种是结合了自底而上和自上而下(top-down)的方法,这个方法是只要head和其依赖存在,就向依存图中添加弧,即使这个依赖的依赖还没有添加弧。
arc-standard parsing
对于一个单词序列
那么,arc-standard分析器的策略有三种:
1. left-reduce转换,它通过一个左向的弧
2. right-reduce转换,它通过右向弧
3. shift转换,把
left-reduce和 right-reduce的约束就是一个词只能有一个依赖,即
整个过程由下图表示:
arc-eager parsing
arc-eager算法的转换过程如下:
1. left-arc转换,从下一个输入
2. right-arc转换,从栈顶的元素
3. reduce转换,是抛出栈顶元素。
4. shift转换,是把下一个输入元素
left-arc,right-arc和shift与arc-standard中的约束一样,而 reduce的约束是栈顶的元素已经有了一个head。具体表示如下图:
基于转换的神经网络依存分析器
由于很多的依存分析器基于很多的稀疏特征,他们的推广性较差,并且计算代价大,Chen和Manning提出了基于转换的神经网络依存分析,它使用了少量的密集特征,计算迅速,并且attachment scores有所提升。
他们使用的转换方法是arc-standard方法,前面已经叙述过。由下面的一张图展示依存分析转换的过程,其中,第三张图的每一行就是一个configuration:
不过,这里面我有一点不懂的是,它是怎么把栈顶第二个元素抛出而不影响栈顶第一个元素的,比如在上图的第三张图中,第5行的转换为SHIFT,栈为[ROOT has good control],经过LEFT-ARC(amod)转换后,怎么把good抛出的(计算机中,如果是栈的话,抛出栈顶第二个元素那么肯定把栈顶第一个元素已经抛出了,为什么control还在栈中呢?是不是把它又压进栈了呢,不清楚)。
这个神经网络分析器其实只有三层结构,输入层,隐含层和输出层。下图展示了分析器的层级结构:
输入层是词向量,词性标注向量和弧标签向量的拼接层;隐含层使用了一个三次方的非线性函数;输出层就是一个softmax层。其实重点在这个输入层怎么表示。
首先对于词向量,对于每一个词,使用d维的向量
用
这样我们得到了
从输入层到隐藏层使用三次方**函数:
其隐层单元个数为
softmax层输出多元概率
参数初始化及训练
首先从训练句子和“黄金分析树”中产生训练集为
目标函数为交叉熵损失函数加上L2正则化:
其中,
初始化:用预训练的词向量(使用word2vec)初始化
优化:使用min-batched AdaGrad,dropout(0.5)
预测:首先从configuration c中抽取对应的词向量,词性标注向量和类别标签向量,然后计算隐藏层
然后再执行转换
Weiss等人在Chen的基础上又增加了一层隐含层和一层感知机层,并且这两层隐含层和softmax层与感知机层都有连接,如下图:
此网络结构在Chen的基础上准确度提高了大约1%。具体可以参考他们的文章Structured Training for Neural Network Transition-Based Parsing
【Hiroyasu Yamada, Yuji Matsumoto】STATISTICAL DEPENDENCY ANALYSIS WITH SUPPORT VECTOR MACHINES
【Joakim Nivre】Inductive Dependency Parsing
【Joakim Nivre】Incrementality in Deterministic Dependency Parsing
【Danqi Chen, Christopher D. Manning】A Fast and Accurate Dependency Parser using Neural Networks
【David Weiss, Chris Alberti, Michael Collins, Slav Petrov】Structured Training for Neural Network Transition-Based Parsing