A Hybrid CNN-RNN Alignment Model for Phrase-Aware Sentence Classification

记录一下这篇论文。

网络结构如下:

有3个阶段:第一个阶段是使用CNN生成短语向量,第二个阶段结合短语向量和词向量,并使用软对齐的RNN来生成考虑词顺序的句向量,第三个阶段使用句向量来做类别预测。

1. CNN句向量

是句子中第i个单词对应的k维的词向量,长度为N的句子可以看作列方向上的词向量的拼接。

使用一系列卷积核来学习不同长度的短语表示。

表示第i步的短语向量,包含了所有以结尾的短语。

(短语向量的作用就是后面加入到生成句子状态向量时的输入中)

2. 软对齐RNN

使用第i个词更新的state来表示一个d维的向量,句子状态向量

在GRU的第i步,GRU cell使用更新门Z来遗忘句向量的部分信息,并使用重置门R来更新。GRU cells是由

来控制的。

一般GRU公式:(其中ht-1就相当于这边的Si-1)

在我们的网络结构中,由CNN生成的短语向量也作为GRU RNN的输入。

如何理解在输入中加入

一种理解方法是认为模型尝试基于目前的句子状态向量来决定由词生成的哪个短语比较合理,就是会根据来更新

在上图中,单词guys,权重函数根据这个短语向量和句子状态向量的相似性来决定 "couple of crazy guys" "of crazy guys" "crazy guys"这些短语向量的权重。为了计算相似度,短语向量(以第i个单词结尾的长度为l的短语对应的向量)和句子状态向量被映射到一个新的向量空间,使用点乘来表示相似度,相似度表示为,叫做注意力得分(attention scoring)。是第i个单词对应所有的短语向量的注意力得分。

如果对使用softmax表示神经网络必须关注输入的某一部分,但是在我们的网络结构中,这种假设是不对的,因为短语信息在训练RNN每一步的时候不一定需要。例如“Then one day, completely out of the blue, I had a letter from her.” 以"blue"结尾的短语是需要的,但是以“I”结尾生成的短语是不需要的,所以,动态加入或忽略短语向量的框架是必要的。

使用什么算法来计算短语向量的权重?

使用一系列GRU cell,输入是之前的权重,其他短语的权重,注意力得分作为输入,来计算每个短语向量最终的权重。初衷是想要拼接注意力得分,之前的权重和其他短语的权重来确定的权重(为什么使用三个信息来确定权重?),使用RNN可以存储过去的信息,并考虑当前的权重。为了计算,如果还没有计算,使用作为GRU的输入。

把这个阶段叫做attention gating。最后得到的输出是对应的权重

(attention gate的作用是为了更新,从而动态加入或忽略短语向量吗?可是如果单纯使用attention score,也可以学习使某些attention score=0来得到忽略某些短语向量的作用呀)

其中,表示L中去除l外的其他长度的短语对应的注意力得分。

latest表示i或者i-1,如果已经计算了,那latest就是i,否则就是i-1

[A,B]表示A和B的水平方向的拼接。

(以下维度的说明是我自己的理解,不知道是否正确,望探讨)

维度为(-2+1)   维度为(-1-2+1)  维度为1,所以的维度为(-2+1+-1-2+1+1)= 2*-2

的维度取决于

的维度是 [-2+1, CNN生成的短语向量的维度]

3. 分类层和正则化

使用所有时间点的句子状态向量的平均值作为最终的句向量,使用softmax将句向量映射到K维的概率,K是类别个数,使用概率最大的类作为类别的预测值。

在使用RNN的时候,作者使用了dropout来进行正则化。(TODO:RNN中的dropout)

 

其他:

为什么使用这种网络结构?

CNN可以发现小范围内的语法,但没法解决词顺序敏感的问题。RNN可以保留历史词信息,但并不明确由多少短语信息并利用,作者的这种网络结构可以同时解决CNN和RNN单独使用时存在的问题。

 

自己的想法:

1. 感觉是在生成句子状态向量时又加强考虑了一遍这个词前面的几个词,就是输入中增加了Ci

2. 为什么使用CNN生成短语向量时,不考虑当前词后面的词?是因为在生成句向量的时候是双向GRU,正序的时候考虑这个词之前的,倒序的时候考虑这个词后面的吗?

3. attention gate的作用不太理解

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值