Tree-Structured LSTM模型

Tree-Structured LSTM模型

论文概要

由于能够保持按照时序的序列信息,LSTM(Long Short-Term Memory)网络在序列模型任务上能够有非常好的表现。但是该模型只能输入线型的序列,对于树型的输入(比如依赖树)无法很好的处理,由此,论文提出两种Tree-LSTM的模型,将LSTM拓展到树型的输入结构上,并在两个任务:预测语义相关性和语义分类任务上超过所有现存模型。

模型介绍和比较

大多数短语或句子的分布式表示分为三类:bag-of-words模型、sequence模型、tree-structured模型。词袋模型直接使用词汇的统计信息,没有考虑词汇的顺序,序列模型考虑的是序列结构,树型结构模型通过在给定句子的语法结构树上进行获取句子表示

在标准的LSTM中,当前时刻的隐藏状态从当前时刻输入和上一时刻的状态得到,而对于Tree-LSTM,此刻的状态从该处的输入和任意数量的孩子单元的隐藏状态得到。传统的RNN的转换函数就是一个仿射变换接着一个tanh的激活函数:

                    

但是,这种结构在序列比较长的时候会导致梯度爆炸或消失,对于长距离的信息很难进行传递。LSTM通过使用记忆单元来保存记忆信息,由此缓解了长距离的信息传递问题,标准的LSTM的转换方程如下:

前三个方程分别是产生“输入门”、“遗忘门”和“输出门”的方程,需要重点关注一下“遗忘门”,因为遗忘门涉及到标准的LSTM如何从上一时刻的信息中筛选出有用信息,对应于该论文的Tree-LSTM,就是涉及到父辈节点如何从孩子节点筛选出有用信息,显然,差别就在于后者可能有很多个孩子节点,需要筛选多个信息,而前者只需要筛选一个信息(就是上一时刻的信息)。

其中, x_{t} 是在该时刻的输入,  \sigma 是sigmoid函数,  \odot 表示按元素乘法。基于标准的LSTM结构,还有两种LSTM的变体模型,双向LSTM和多层LSTM,双向LSTM使用两个LSTM单元分别顺序和逆序地对输入序列进行处理,每一时刻的输出就将两个LSTM单元的输出拼接起来,多层LSTM就是将多个LSTM单元叠起来,前一层的LSTM的输出作为后一层LSTM的输入,最后一层的输出作为模型的输出。

Tree-Structured LSTM模型

论文提出两个Tree-LSTM模型结构:Child-Sum Tree-LSTM模型和N-ary Tree-LSTM模型,两种模型都能够处理树型结构的输入。标准的LSTM含有输入门 i_{j}和输出门 O_{j},记忆单元 C_{j}和隐藏状态 h_{j}标准的LSTM和树型LSTM之间的区别在于门向量和记忆单元向量的更新要基于多个child units,前者只需要从上一时刻筛选出信息,而后者需要从多个孩子节点筛选出信息

 

Child-Sum Tree-LSTMs

给定一个树,假设 C(j) 表示节点 j 所有孩子节点集合,模型的转化方程为:

可以看出,第一个方程就是名副其实的Child-Sum,直接将所有孩子节点的隐藏状态求Sum,第三个方程就是和标准的LSTM不同, f_{jk}表示对于 j 节点的每一个孩子节点 k ,都会生成一个遗忘门,用于筛选对应孩子节点的信息

由于该模型是直接将孩子节点的隐藏状态求和,因此,非常适合于分支因子比较大,或者孩子节点是无序的情况。

N-ary Tree-LSTMs

该模型适用于分支因子最大为 N 的情况,而且孩子节点有序,比如说,孩子节点可以被从1到N进行索引,对于节点 j,假设第k个孩子节点的隐藏状态和记忆单元分别为h_{jk}C_{jk},该模型的转换方程如下

模型设置

Tree-LSTM的分类模型

句子对的语义相关性

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值