基础 | TreeLSTM Sentiment Classification

2018 年 4 月 2 日 黑龙江大学自然语言处理实验室 甄冉冉


阅读大概需要5分钟



昨天的周日讨论班讲的是TreeLSTM Sentiment Classification,主讲人:王铭涛

今天我来做一下总结。

下面的图片来自于 王铭涛的ppt



导读


我们一步一步来。先说最基础的 RNN 结构:



公式为:


就一个简单的隐层h。

但是RNN的缺点是会有梯度爆炸或者梯度消失问题。这里我就不详细解释了。下面推荐阅读有我之前的RNN,LSTM详细讲解,想更深一步了解的可以去看看。


因为这个致命的问题,有人提出了LSTM网络,改善了RNN的缺点,我们来回顾下:



重新添加了输入门i,输出门o,遗忘门f和记忆单元C,外加之前的一个隐层h(此h非RNN的h,公式可见区别,但都是隐层)。



这种普通的LSTM都是解决线性问题的。例如常用的应用之句子分类:每个词在随着时间序列的增加而不断地依次进入LSTM网络。


这种方法有明显的局限性:当前词的输入需要依赖前一步词的输入。但是如果我当前词要进行运算,而此时前一步词还没有进行计算可怎么办?比如下面的基于依存树的情感分类。



TreeLSTM



比如,这是一棵依存树的抽象表达(如果暂时不知道依存树的就把这个当成一棵树):



空白方框就LSTM的一个单元。文本序列为x1,x2,x4,x5,x6。(x3ppt中少画了,谅解)


x是输入的序列,y是每个x输入后经过LSTM一个时间片段的预测输出。我们可以看出(y5你们能看出是哪个),y4的产生依靠于x4的输入,y5的产生依靠于x5的输入,y6的产生依靠于x6的输入;y3产生需要依赖于y4,y5,y6的输入,y2的产生依靠于x2的输入;y1的产生依靠于y2,x1,y3的输入。这个显然就不能用到普通LSTM了。这时候TreeLSTM就登场上了历史舞台,开始绽放放光彩!


既然TreeLSTM和普通LSTM不一样了,那么咱们怎么计算他们呢?


虽说不一样,其实也是有相同的地方。比如普通LSTM当前时间段需要的输入是在执行在本时间段以前就产生了。这样就能一个接一个的运行下去。


TreeLSTM也一样,我们看图:


我们先找y2,y4,y5,y6的产生依赖于的x2,x4,x5,x6都已经存在,那么我们就能通过x2,x4,x5,x6分别过自己的隐层,得到对应的y2,y4,y5,y6;类似的,y2,y3也能相继产生;接着最终的y1也产生了。



计算逻辑


那这样的到底怎么个呢?暂时我知道的有两种方法


前提:

如果当前节点的孩子节点有了值(就是有了y),那么我们就将该孩子节点与当前节点的度去掉。


方法一

当前节点入度为0的时候,也就是计算它的所有准备条件都有了的时候,就能对它进行计算了。所以,这个方法总结就是入度为0的节点都可以计算,然后更新每个节点的入度,再重复该操作。


方法二

层次遍历。最下面的从最下面的开始计算,最下面的肯定是可以直接计算的。然后刷新,再计算。


这两种方法在自己以后优化batch的时候很有用的。



具体TreeLSTM计算分析


我们找具体找一个分析:



y1的产生依靠于y2,x1,y3的输入。那具体怎么计算的呢?


这里有张计算图,请看:



其中h为LSTM的隐层,c为LSTM的记忆单元。


公式为(在普通LSTM上稍微修改了下):



根据公式,我们来梳理下上面计算图:


h2,h3求和再与x1进行

得到u1。

c2,f2与c3,f3分别按位相乘再求和,再加上u1,i1按位相乘,最后两个和相加即可,得到c1。(i1怎么算,公式里有。)


最后通过该公式



得到隐层h1。




计算loss



每个隐层y都要经过一个线性层,映射到具体的类别上,就是每个x对应一个类别,公式为:



最终的损失函数为:



这个损失函数用的是交叉熵,最后是一个正则化










登录查看更多
2

相关内容

情感分类是对带有感情色彩的主观性文本进行分析、推理的过程,即分析对说话人的态度,倾向正面,还是反面。它与传统的文本主题分类又不相同,传统主题分类是分析文本讨论的客观内容,而情感分类是要从文本中得到它是否支持某种观点的信息。
【ICML2020-华为港科大】RNN和LSTM有长期记忆吗?
专知会员服务
74+阅读 · 2020年6月25日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
77+阅读 · 2020年2月3日
知识神经元网络 KNN(简介),12页pdf
专知会员服务
14+阅读 · 2019年12月25日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
基础 | 深度解析LSTM神经网络的设计原理
黑龙江大学自然语言处理实验室
6+阅读 · 2018年6月16日
Linguistically Regularized LSTMs for Sentiment Classification
黑龙江大学自然语言处理实验室
8+阅读 · 2018年5月4日
一文读懂LSTM和循环神经网络
七月在线实验室
8+阅读 · 2018年4月18日
基于attention的seq2seq机器翻译实践详解
黑龙江大学自然语言处理实验室
11+阅读 · 2018年3月14日
基础 | 基于注意力机制的seq2seq网络
黑龙江大学自然语言处理实验室
16+阅读 · 2018年3月7日
深度学习基础之LSTM
全球人工智能
28+阅读 · 2017年12月18日
Simple Recurrent Unit For Sentence Classification
哈工大SCIR
6+阅读 · 2017年11月29日
【推荐】(TensorFlow)RNN入门
机器学习研究会
9+阅读 · 2017年10月10日
【深度学习基础】4. Recurrent Neural Networks
微信AI
16+阅读 · 2017年7月19日
Arxiv
7+阅读 · 2018年1月18日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
【ICML2020-华为港科大】RNN和LSTM有长期记忆吗?
专知会员服务
74+阅读 · 2020年6月25日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
深度学习自然语言处理概述,216页ppt,Jindřich Helcl
专知会员服务
212+阅读 · 2020年4月26日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
77+阅读 · 2020年2月3日
知识神经元网络 KNN(简介),12页pdf
专知会员服务
14+阅读 · 2019年12月25日
【强化学习】深度强化学习初学者指南
专知会员服务
179+阅读 · 2019年12月14日
相关资讯
基础 | 深度解析LSTM神经网络的设计原理
黑龙江大学自然语言处理实验室
6+阅读 · 2018年6月16日
Linguistically Regularized LSTMs for Sentiment Classification
黑龙江大学自然语言处理实验室
8+阅读 · 2018年5月4日
一文读懂LSTM和循环神经网络
七月在线实验室
8+阅读 · 2018年4月18日
基于attention的seq2seq机器翻译实践详解
黑龙江大学自然语言处理实验室
11+阅读 · 2018年3月14日
基础 | 基于注意力机制的seq2seq网络
黑龙江大学自然语言处理实验室
16+阅读 · 2018年3月7日
深度学习基础之LSTM
全球人工智能
28+阅读 · 2017年12月18日
Simple Recurrent Unit For Sentence Classification
哈工大SCIR
6+阅读 · 2017年11月29日
【推荐】(TensorFlow)RNN入门
机器学习研究会
9+阅读 · 2017年10月10日
【深度学习基础】4. Recurrent Neural Networks
微信AI
16+阅读 · 2017年7月19日
Top
微信扫码咨询专知VIP会员