首先来看下什么是句子解析:
给定输入:两个候选孩子节点的表示
输出:
如果两个节点聚合在一起,输出语义表示。
新节点的可信度,即一个打分。
比如下面例子,输出向量是(8, 3),对应的得分是1.3。
下面来看下循环神经网络的定义。
其中
树中所有节点的权值 W 相同。
Socher et al. (ICML 2011) 相关工作有以下几个代表性的:
• Pollack (1990): Recursive auto-associative memories
• Goller & Küchler (1996), Costa et al. (2003) 作了假设:树结构是固定的,并且使用 one hot 向量表示法。
• Hinton (1990) and Bottou (2011): 循环模型和循环算子相关的思想,出发点是对logic算子平滑化。
下面是一个利用RNN解析句子的示例
最大间隔框架细节
树的得分通过在每个节点解析决策得分求和得到。
跟最大间隔解析类似(Taskar et al. 2004 ),有监督最大间隔目标函数如下:
损失函数会对所有错误决策加以惩罚
A(x) 的结构搜索法是最大限度贪婪式进行的,可以利用基于图的定向搜索法来代替。
下面介绍通过结构来反向传播的方法。
这种方法由Goller 和 Küchler提出,Goller & Küchler (1996)。原理上跟一般的反向传播算法一样。两个不同点由树结构引起:
在每个节点分离梯度;
将所有节点处W的梯度求和。
下面来看看如何在每个节点分离梯度。
如上图,前向传播时,父节点是由两个子节点计算而来。
所以,误差反向传播时需要对每个子节点都计算相应的误差传播量,并且每个子节点的误差都是n维的。
接下来需要对所有节点梯度求和。
可以假设每个节点具有不同的 W 。下面是一个直观的例子:
当然,分别计算再求和,也可以得到同样的结果
如何优化上述问题呢?跟前面类似,可以将梯度融合成一个标准且现成的L-BFGS优化器。最好的结果是AdaGrad方法(Duchi et al, 2011):
简单的RNN有哪些特点呢? 简单的矩阵RNN已经取得了不错的效果。单个权值矩阵RNN可以捕捉到一些现象,但是,不足以应对更复杂的由高阶成分和语法解析的长句子。
成分函数对于句法分类,标点符号等都是相同的。
针对以上不足,如何解决呢?下面看几种解决方案。
第一种是句法自由的RNN。其思想在于对句法分类构建成分函数加上条件,使得权值自由可变。对于不同的句法分类对,比如Adv+AdjP, VP+NP,可以具有不同的成分函数。这种方法可以将离散的句法分类跟连续的语义信息结合起来。如下图所示:
下面来看下第二种解决方案,即 CVG = PCFG + 句法自由RNN。
这种方法考虑的问题在于,速度,定向搜索每个候选分都需要计算矩阵向量乘积,这无疑需要很大计算量。为了解决这个问题,该解决方案,利用简单的PCFG+RNN和对数似然函数的线性组合来计算得分,并且对可能性较小的候选分进行剪枝,以提高速度。这种方法对每个定向候选评分都提供了对孩子节点粗略的句法分类。
其中CVG全称是Compositional Vector Grammars: CVG = PCFG + RNN。
下面来看下CVG。CVG中每个节点的得分都是将PCFG和SU-RNN结合计算而来的。
具体解释即为,在一个模型中分解成离散和连续句法分析:
更多细节见ACL论文, Socher et al 2013。
一些相关论文如下:
• Klein and Manning (2003a) : 手工特征工程
• Petrov et al. (2006): 学习算法将句法结构分离并聚合
• Lexicalized parsers (Collins, 2003; Charniak, 2000): 每个类都用一个词条来表示
• Hall and Klein (2012) : 每个分解词法解析都包含了若干注解
• Hermann & Blunsom (2013): 将组合类别语法跟RNN结合,并且权值是自由变化的
下面来看个实验设置及结果
标准的WSJ分割,标签F1
基于简单的具有少数状态的PCFG
搜索空间的快速剪枝,少量的矩阵向量乘积
F1 提高了 3.8%, 比斯坦福解析器快了 20%
接下来看看SU-RNN分析
能够从单个相关例子中转换语法信息。比如
训练句子:
• He eats spaghetti with a fork.
• She eats spaghetti with pork.
测试句子:
• He eats spaghetti with a spoon.
• He eats spaghetti with meat.
RNN中的标注是怎么做的呢?可以将每个节点的表示作为softmax分类器的特征。
训练时目标函数可以是标准的交叉熵误差+评分。