NLP—RNTN文献翻译

NLP—RNTN文献翻译

1 摘要以及介绍

1.1 摘要

语义空间是非常有用的,但是对于长句子是不能使用一个规则的方式来表示句子的语义信息。对于任务中需要理解组成的部分(例情绪检测),需要更加丰富的监督训练和评估信息(更多的文本特征)以及更加有效的模型结构。为了解决这个问题,作者在这篇文章中提出了情绪树库的结构。一共包含了11855个句子语法分析树中215154个短语的细粒度情感标签。为了阐述他们,这里使用递归张量网络。当在一个新的情绪树库上训练完成的时候,该模型的很多指标都优于之前的模型。它是单个句子正负类的准确率从80%上升到了85.4%。对于细粒度的情感标签的预测的准确率达到了80.7%,比之前的基准线提高了9.7%。最后,这是唯一的一个能够更加有效的捕捉负类信息的模型,并且其基于正例句子和负例句子考虑了各种树结构的范围。

1.2 背景

对于单个词汇而言,其语义向量作为特征,有广泛的应用。因为其不能够去捕捉长句的信息。语义向量空间的组合性已经受到了广泛的关注。然而,由于缺乏了大型的项目、已经标记的组成信息、以及能够精确地捕捉在当前数据中潜在信息的模型,这些都阻碍了语义向量空间组合的发展。为了满足这种需求,这里引入了斯坦福的语义树和一个强大的预测语义元素组成性的递归张量网络结构。

斯坦福的语义树可是第一个完全标记的解析树库,其允许我们对于在语言中的语义组成部分进行一个复杂的分析。这个语料库基于Pang和Lee,其由11855个单独的从电影影评中抽取的句子组成。这些句子通过斯坦福解析器来进行解析,然后解析出215154个不重复的短语。每一个短语通过3个人来进行打标签。这个新的数据集允许我们去分析复杂的语义和抓取复杂的语言现象。下面的图示展现了一个清晰的组成结构:
在这里插入图片描述

数据集的粒度和大小使得社区能够基于监督学习和机器学习的方法去训练组成模型。这里有几个数据集,其内部包含了一些文章和对于整个文章的标签。这里需要对于更小的部分更好的去抓取语义信息。类似于推特数据,其对于每一篇文章提供了更少的全局的标签。

为了以更高的准确率去抓取组成效果。我们这里提出了新的递归张量网络模型(RNTN),RNTN模型以任意长度的句子作为输入,这些句子以词向量和解析树来生成句子的表示。然后,对于树中更高层次的节点使用相同的基于张量组成的函数来进行计算得到。我们比较了几种监督学习的方式。例如标准的RNN模型,矩阵—向量RNNs模型,并且以忽略词的顺序的模型,例如朴素贝叶斯(NB),双向的朴素贝叶斯(bi-gram NB)模型和SVM模型作为基准线。所有的模型在这个新的数据集上训练的时候都有了显著的提升,而RNTN模型在预测所有节点的细粒度的时候达到了最高80.7%的准确率。

最后,我们使用了包含正例和负例,以及负的信息表示。不像词袋模型那样,RNTN模型准确的抓住了语义变化以及负信息的范围。RNTN同时学习到了在句子中的连词,“但是”占主导地位。

2 相关工作

这个部分的工作包括了5个不同领域的NLP研究,每一个领域都包含了大量的相关工作,由于空间的限制,这里不做特别详细的介绍。

2.1 语义向量空间

对于语义向量空间,最主流的方式是使用词的相似性分布假说。一般来说,一个单词的共现统计和该单词的上下文被用来描述每一个词汇。例如ti-idf模型。这种思路的相关变形是使用了更为复杂的频率。例如,在某种句法语境中词汇的出现次数。然而,因为正反义词的上下文类似,向量分布假说通常不能够合适的抽取反义词的不同。一种补救的措施是使用神经词汇向量,这些向量可以被一个无监督的方式进行训练,这种训练可以抽取分布语义,而且在具体的任务中还可以进行微调,例如情感检测。本文中的模型可以使用完全在新语料库上学习的纯监督词表示。

2.2 向量空间的组成性

大多数的组成性算法和相关的数据集都能够抓取两个词汇的组成。Mitchell等人使用两个词汇组成的短语并且通过加法和乘法以及其他的方式来分析相似性。一些例如holographic reduced representations (Plate, 1995), quantum logic (Widdows, 2008), discrete-continuous models (Clark and Pulman, 2007) and the recent compositional matrix space model (Rudolph and Giesbrecht, 2010)的相关模型在更大的语料库上没有经过实验验证。Yessenalina等人对于更长的句子定义了矩阵表示,并且通过矩阵乘法定义了矩阵的组成性。最后在文本上进行了评估。Grefenstte等人分析了主语-宾语三元组并且发现了一个基于矩阵的分类模型很好的关联了人类的决断。我们对比了一些监督学习的组成模型。具体地,我们将会描述并进行实验比较词袋模型中的RNTN模型和自然的神经网络RNN模型以及矩阵-向量模型RNNS。

2.3 逻辑形式

一个采用不同视角来应对组成性的相关领域是试图将句子映射成逻辑的形式。这些模型在相关领域和相关数据集上有着很好的表现。他们只能使用除当前使用的逻辑形式之外的单独机制来捕获情绪分布。

2.4 深度学习

除了上述提到的类似于RNNS的相关工作,几种组成性的思路已经被Bottou和Hinton进行讨论。第一批模型(类似于Rescursive Auto-assocaitive memories)已经在Pollack在1990年提出。这个思路展现了通过三种交互的方式进行输入。通过一个张量来进行参数化在09年的关系分类被提出 (Sutskever et al., 2009; Jenatton et al., 2012),这种方式扩展了受限的玻尔兹曼机。并且在12年的论文 (Yu et al., 2012)的语音识别任务中作为特殊的一个网络层。

2.5 情绪分析

除了上述提及的工作,情绪分析最常见的工作是使用词袋模型进行表示 (Pang and Lee,2008)。Snyder and Barzilay (2007)分析了更长的,含有更多细节,多角度的餐馆评论文本,例如食物和环境等等。有一些工作已经开始通过特征工程或者在句法结构中的极性移位规则来进行(Polanyi and Zaenen, 2006; Moilanen and Pulman, 2007; Rentoumietal., 2010; Nakagawaetal., 2010)。

3 斯坦福情绪树库

依赖于强极性的一些词,例如“很棒”,“令人兴奋的”。词袋分类器可以在长文本中表现的很好。但是,单个句子的二元正/负分类的情绪准确性几年来都没有超过80%。对于包括中立分类的更困难的多分类任务,在推特数据中,准确率经常在60%一下 (Wang et al., 2012)。从一个语言的或者认知的点,忽略词的顺序去对语义任务进行处理是不合理的。众所周知,它很难对去分类一些负例的实例。在未来改善这种表现上,正确的预测这些困难的实例是必须的。

在这一节,我们将介绍和改善一些对于新的情绪树库分析工作,情绪树库中包含了在几千个句子中每一个合理的句法解析的标签。使我们可以去训练和进行评估工作。

我们考虑以影评的语料库,原始的数据中包含了10662个句子,其中的一半是正例,另外一半是负例。每一个标签从一个长的文本中提取,表示的是一个作者对于整个评论的意向。标准化的小写文本首先被从一个原始的网站中用于恢复,这个文本中包含的大写,HTML标签和非英文的句子被删除。斯坦福的解析器用来解析所有的10662个句子。在大约1100情况下,这些文本会被拆分成多个句子。然后我们使用 Amazon Mechanical Turk 去为生成的215154个句子进行打标签。这里使用了滑块来选择情绪标签,具体如下图所示:
在这里插入图片描述
这个滑块拥有25种不同的结果,并且初始的时候处于中立的位置。从所有短语集中随机抽取每个匹配中的短语,以防止标签受到后续内容的影响。

下面,我们使用图来展示每一个n-gram的句子对应的标签分布。开始的长度为20,多数的都是整个的句子内容。从这些读者的看法中的一个发现是这些读者很多都是中立的情绪。我们也注意到强的情绪词一般都是建立在更长的句子中,相对较短的句子一般都是中立的情绪。另外的一个发现是,注释者将滑块移动到下面五个位置中的一个。包括 消极,略微消极,中立,积极和略微积极。极端值很少使用,滑块之间不经常留在刻度之间。因此,即使将这些类别分为5类,也可以捕获标签的主要可变性。
我们将命名这种细粒度的情感分类,我们的主要实验将是恢复这5个标签,以获取所有长度的短语。

在这里插入图片描述

4 递归神经网络

在这一节中,所涉及到的模型都是为了针对一个可变长度和语义类型的句子计算其组成向量表示。这些在后面将会被作为特征用于每一个短语的分类任务。下图展示出了这种方法。当给定一个n-gram的输入给组成模型,其将会被解析成一个二元树。二元树中的每一个叶子节点表示的是一个单词。这些叶子节点使用一个向量进行表示。然后,递归神经网络自底向上的使用组成函数g来计算出父向量。所有的父向量将会被作为特征用于分类器。为了便于说明,文章中使用的是tri-gram来建立递归神经网络。

我首先来描述神经网络中的通用的操作。词向量表示和分类。接下来是对于两个之前的RNN的模型描述以及我们自己定义的RNTN模型。

首先,每一个词使用一个d维的向量进行表示。我们随机的初始词向量。随机值来自于一个均匀分布 U ( − r , r ) U(-r,r) U(r,r),其中r=0.0001。所有的词向量被堆叠成一个矩阵 L ∈ R d ∗ ∣ V ∣ L∈R^{d*|V|} LRdV。其中|V|表示的是词表的大小。虽然初始的词向量是随机的,但是L矩阵可以被视为一个参数矩阵。在组成模型中被训练。

我们可以立即使用词向量作为参数来进行优化,并且可以作为一个softmax的特征输入。对于分类任务,其目标是分成五个分类。我们将通过参数 W s ∈ R 5 ∗ d W_s∈R^{5*d} WsR5d的计算各个标签的后验概率:
y a = s o f t m a x ( W s a ) y^a=softmax(W_sa) ya=softmax(Wsa)
这里 W s ∈ R 5 ∗ d W_s∈R^{5*d} WsR5d是情绪分类的参数。对于给定的tri-gram,对于向量b和c进行重复操作。任务中最主要的不同是模型将自底向上的计算隐向量 p i ∈ R d p_i∈R^d piRd
在这里插入图片描述

4.1 RNN递归神经网络

在递归神经网络一族中最简单的形式是标准的递归神经网络。首先,父节点是由其子节点计算得来。在上述的树结构的例子中, p 1 p_1 p1向量拥有两个儿子节点的向量。RNN使用如下公式来计算父节点向量:
p 1 = f ( W b c ) p_1=f(W\begin{matrix}b&\\ c\end{matrix}) p1=f(Wbc)
p 2 = f ( W a p 1 ) p_2=f(W\begin{matrix}a&\\ p_1\end{matrix}) p2=f(Wap1)

其中f表示的是tanh的激活函数, W ∈ R d ∗ 2 d W∈R^{d*2d} WRd2d是主要被学习的参数,并且为了简单起见,我们忽略了偏置项。偏置项可以作为额外的项被添加到W中的一列。得到的父向量必须拥有和儿子向量相同的维度,并且被作为上一层的输入。每一个父向量 p i p_i pi,给定一个相同的softmax函数来进行分类,计算出其属于每一个分类的概率。

这个模型使用了相同的组成性计算函数作为递归编码器和递归关联记忆。与更加标准的模型相比,唯一的不同是我们修改了树的结构,并且忽略了重构的损失。在初始的实验中,我们发现了添加额外的训练数据,对于模型获得更好的表现,每一个节点的重构损失是不必要的。

4.2 MV-RNN: Matrix-Vector RNN

MV-RNN是语言驱动的,其内部的大多数参数与具体的词汇相关联。计算较长短语的向量的每个合成函数取决于组合的实际单词。MV-RNN最主要的思路是将解析树中的每一个词和长的短语作为一个向量和一个矩阵。当两个成分组合时,一个矩阵与另一个向量相乘,反之亦然。因此,合成函数由参与其中的单词参数化。

在这里插入图片描述

每一个词矩阵被初始化成一个的d*d的单位矩阵,添加一些高斯噪声。与随机初始化词向量类似的是,这些矩阵的参数将会被训练到最小化每一个节点分类损失。在这个模型中,每一个n-gram被表示成一个列表组合。所有内容对应着解析树。对于带有节点的树结构,MV-RNN模型通过下面两个等式来计算其第一个父节点向量:

p 1 = f ( W C b B c ) p_1=f(W\begin{matrix}Cb&\\ Bc\end{matrix}) p1=f(WCbBc)
P 1 = f ( W M B C ) P_1=f(W_M\begin{matrix}B&\\ C\end{matrix}) P1=f(WMBC)

其中, W M ∈ R d ∗ 2 d W_M∈R^{d*2d} WMRd2d并且计算出来的结果仍然是一个d*d的矩阵。类似的,第二个父节点通过之前计算出来的向量—矩阵对 ( p 1 , P 1 ) (p_1,P_1) (p1,P1) ( a , A ) (a,A) (a,A)来进行计算。这些向量被用于分类。每一个短语用相同的softmax分类。

4.3 RNTN:递归神经张量网络

在MV-RNN模型中的一个问题是参数的数量十分的庞大,并且其规模依赖于词表的大小。从认知上,有一个功能强大的合成函数,带有固定数量的参数。是更加合理的。对于这个函数,标准的RNN是一个很好的候选函数。然而,标准的RNN中,其输入向量仅仅通过非线性的激活函数来隐式的进行交互。一种更加直接的方式可能是乘法的交互。这将运行模型能够生成在不同的输入的交互结果。

上述的想法激起了我们的疑问:与许多的特定的输入相比,单个的,更强大的组合函数可以表现的更好,并且能够更准确地从更小的组成部分中生成含义?为了解答这个问题,我们提出了RNTN模型。其主要的思路是对于所有的节点,使用相同的,基于张量的组合函数。

下图展示的是一个张量层:
在这里插入图片描述

我们定义这一层的输出是一个张量 h ∈ R d h∈R^d hRd,通过下面的向量符号和等式来进行计算,其中更加细节的是 V [ i ] ∈ R d ∗ d V^{[i]}∈R^{d*d} V[i]Rdd

在这里插入图片描述

其中 V [ 1 : d ] ∈ R 2 d ∗ 2 d ∗ d V^{[1:d]}∈R^{2d*2d*d} V[1:d]R2d2dd,这是一个向量,定义了多个双线性的形式。

RNTN使用如下的定义来计算向量 p 1 p_1 p1:

在这里插入图片描述
其中W的定义和之前的模型定义相同。下一个父节点 p 2 p_2 p2的向量在三元组的计算使用相同的权重计算:
在这里插入图片描述

与之前的RNN相比,最主要的优势在于通过将V设置为0,可以直接反应相关的输入向量。直观地,我们可以将张量的每个切片解释为捕获特定类型的合成。

RNTN的替代方法是通过添加第二个神经网络层使合成功能更强大。但是,最初的实验表明,很难优化该模型,并且矢量交互作用比RNTN中的隐含作用更大。

4.4 通过结构张量反向传播

下面,我们来具体描述如何训练RNTN模型。通过上面的描述,每一个节点有一个softmax的分类器训练其向量表示来预测一个基本事实或者目标向量t。我们假设在每一个节点的目标分布向量有一个01的编码表示(label)。如果有C个分类,然后向量的长度为,并且其中的一个为正确的标签。其他所有的元素为0。

在预测节点i的标签分布 y i ∈ R C ∗ 1 y^i∈R^{C*1} yiRC1,我们想要最大化正确标签的概率,或者最小化交叉熵的损失。其中节点i的真实标签为 t i ∈ R C ∗ 1 t^i∈R^{C*1} tiRC1。这里使用KL散度来衡量不同分布之间的距离。我们最后定义算是函数为:

E ( θ ) = ∑ i ∑ j t j i l o g y j i + λ ∣ ∣ θ ∣ ∣ 2 E(θ)=∑_i∑_jt_j^ilogy_j^i+λ||θ||^2 E(θ)=ijtjilogyji+λθ2
其中参数θ=( V , W , W s , L V,W,W_s,L V,W,Ws,L),而softmax的参数是标准的,只是需要对于每一个节点的误差相加即可。这里我们定义每一个节点i的节点表示为 x i x^i xi,在tri-gram的例子中, x i ∈ R d ∗ 1 x^i∈R^{d*1} xiRd1,其来源于 ( a , b , c , p 1 , p 2 ) (a,b,c,p_1,p_2) (a,b,c,p1,p2)。我们跳过 W s W_s Ws的标准导数。每一个节点通过递归的使用权重V,W反向传播其误差。这里使用 δ i , s ∈ R d ∗ 1 δ^{i,s}∈R^{d*1} δi,sRd1表示的每一个节点i的softmax误差。
δ i , s = ( W s T ( y i − t i ) ) ∗ f ′ ( x i ) δ^{i,s}=(W_s^T(y^i-t^i))*f'(x^i) δi,s=(WsT(yiti))f(xi)
其中*表示两个向量的点积。并且f’表示的是f函数的导数值。这里f函数取tanh激活函数。

其余的导数只能以自顶向下的方式从顶部节点穿过树到叶节点进行计算。对于V和W的导数是每一个节点的导数之和。我们定义传递到节点i的完整的误差信息为 δ i , c o m δ^{i,com} δi,com。在根节点,也就是节点 p 2 p_2 p2,只能够从根节点的softmax的误差来接收误差信息。也就是 δ p 2 , c o m = δ p 2 , s δ^{p_2,com}=δ^{p_2,s} δp2,com=δp2,s。对于参数W,我们可以获得标准的反向传播梯度。对于每一个切片k=1,2,3,…,d,我们可以获得:
∂ E p 2 ∂ V [ k ] = δ k p 2 , c o m a p 1 a p 1 T \frac{∂E^{p_2}}{∂V^{[k]}}=δ_k^{p_2,com}\begin{matrix}a\\ p_1\end{matrix}\begin{matrix}a\\ p_1\end{matrix}^T V[k]Ep2=δkp2,comap1ap1T
其中 δ k p 2 , c o m δ_k^{p_2,com} δkp2,com表示的是第k个元素向量误差。现在,我们来计算 p 2 p_2 p2的两个儿子节点的误差:
在这里插入图片描述

这里我们定义:
在这里插入图片描述
进一步,我们就可以定义 p 2 p_2 p2的子节点 p 1 p_1 p1的误差:

在这里插入图片描述
其中 [ d + 1 , 2 d ] [d+1,2d] [d+1,2d]表示了节点 p 1 p_1 p1是节点 p 2 p_2 p2的右子节点。同理,对于节点a,其误差是从父节点传递过来的左部分 δ k p 2 , d o w n [ 1 : d ] δ_k^{p_2,down}[1:d] δkp2,down[1:d]

对于 V [ k ] V^[k] V[k]的梯度计算可以为:

在这里插入图片描述

对参数W的计算同理。

5 参考

  1. Recursive deep models for semantic compositionality over a sentiment treebank
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值