Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
book
提交
c164305d
B
book
项目概览
PaddlePaddle
/
book
通知
17
Star
4
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
40
列表
看板
标记
里程碑
合并请求
37
Wiki
5
Wiki
分析
仓库
DevOps
项目成员
Pages
B
book
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
40
Issue
40
列表
看板
标记
里程碑
合并请求
37
合并请求
37
Pages
分析
分析
仓库分析
DevOps
Wiki
5
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c164305d
编写于
1月 11, 2017
作者:
W
wangxuguang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
finished
上级
44ed444b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
6 deletion
+12
-6
understand_sentiment/README.md
understand_sentiment/README.md
+12
-6
未找到文件。
understand_sentiment/README.md
浏览文件 @
c164305d
...
...
@@ -26,17 +26,21 @@
<img
src=
"image/text_cnn.png"
width =
"90%"
height =
"90%"
align=
"center"
/><br/>
图1. 卷积神经网络文本分类模型
</p>
假设
一个句子的长度为$n$,其中第$i$个词的词向量(word embedding)为$x_i
\i
n
\m
athbb{R}^k$,$k$为维度大小。首先我们进行词向量的拼接操作:将每$h$个词拼接起来形成一个大小为$h$的词窗口,记为$x_{i:i+h-1}$,它表示词序列$x_{i},x_{i+1},
\l
dots,x_{i+h-1}$的拼接,其中,$i$表示词窗口中第一个词在整个句子中的位置,取值范围从$1$到$n-h+1$,$x_{i:i+h-1}
\i
n
\m
athbb{R}^{hk}$
。
假设
待处理句子的长度为$n$,其中第$i$个词的词向量(word embedding)为$x_i
\i
n
\m
athbb{R}^k$,$k$为维度大小
。
其次我们进行卷积操作:把卷积核(kernel)$w
\i
n
\m
athbb{R}^{hk}$应用于包含$h$个词的窗口$x_{i:i+h-1}$,得到特征$c_i=f(w
\c
dot x_{i:i+h-1}+b)$,其中$b
\i
n
\m
athbb{R}$为偏置项(bias),$f$为非线性激活函数,如$sigmoid$。将卷积核应用于句子中所有的词窗口${x_{1:h},x_{2:h+1},
\l
dots,x_{n-h+1:n}}$,产生一个特征图(feature map):
首先,进行词向量的拼接操作:将每$h$个词拼接起来形成一个大小为$h$的词窗口,记为$x_{i:i+h-1}$,它表示词序列$x_{i},x_{i+1},
\l
dots,x_{i+h-1}$的拼接,其中,$i$表示词窗口中第一个词在整个句子中的位置,取值范围从$1$到$n-h+1$,$x_{i:i+h-1}
\i
n
\m
athbb{R}^{hk}$。
其次,进行卷积操作:把卷积核(kernel)$w
\i
n
\m
athbb{R}^{hk}$应用于包含$h$个词的窗口$x_{i:i+h-1}$,得到特征$c_i=f(w
\c
dot x_{i:i+h-1}+b)$,其中$b
\i
n
\m
athbb{R}$为偏置项(bias),$f$为非线性激活函数,如$sigmoid$。将卷积核应用于句子中所有的词窗口${x_{1:h},x_{2:h+1},
\l
dots,x_{n-h+1:n}}$,产生一个特征图(feature map):
$$c=[c_1,c_2,
\l
dots,c_{n-h+1}], c
\i
n
\m
athbb{R}^{n-h+1}$$
接下来
我们
对特征图采用时间维度上的最大池化(max pooling over time)操作得到此卷积核对应的整句话的特征$
\h
at c$,它是特征图中所有元素的最大值:
接下来
,
对特征图采用时间维度上的最大池化(max pooling over time)操作得到此卷积核对应的整句话的特征$
\h
at c$,它是特征图中所有元素的最大值:
$$
\h
at c=max(c)$$
在实际应用中,我们会使用多个卷积核来处理句子,窗口大小相同的卷积核堆叠起来形成一个矩阵(上文中的单个卷积核参数$w$相当于矩阵的某一行),这样可以更高效的完成运算。另外,我们也可使用窗口大小不同的卷积核来处理句子(图1作为示意画了四个卷积核,黄色的卷积核窗口大小为3,红色的为2),最后,将所有卷积核得到的特征拼接起来即为文本的定长向量表示。对于文本分类问题,将其连接至softmax即构建出完整的模型。
在实际应用中,我们会使用多个卷积核来处理句子,窗口大小相同的卷积核堆叠起来形成一个矩阵(上文中的单个卷积核参数$w$相当于矩阵的某一行),这样可以更高效的完成运算。另外,我们也可使用窗口大小不同的卷积核来处理句子(图1作为示意画了四个卷积核,不同颜色表示不同大小的卷积核操作)。
最后,将所有卷积核得到的特征拼接起来即为文本的定长向量表示,对于文本分类问题,将其连接至softmax即构建出完整的模型。
对于一般的短文本分类问题,上文所述的简单的文本卷积网络即可达到很高的正确率
\[
[
1
](
#参考文献
)
\]
。若想得到更抽象更高级的文本特征表示,可以构建深层文本卷积神经网络
\[
[
2
](
#参考文献
)
,
[
3
](
#参考文献
)
\]
。
### 循环神经网络(RNN)
...
...
@@ -71,7 +75,7 @@ h_t & = o_t\odot tanh(c_t)\\\\
其中,$i_t, f_t, c_t, o_t$分别表示输入门,遗忘门,记忆单元及输出门的向量值,带角标的$W$及$b$为模型参数,$tanh$为双曲正切函数,$
\o
dot$表示逐元素(elementwise)的乘法操作。输入门控制着新输入进入记忆单元$c$的强度,遗忘门控制着记忆单元维持上一时刻值的强度,输出门控制着输出记忆单元的强度。三种门的计算方式类似,但有着完全不同的参数,它们各自以不同的方式控制着记忆单元$c$,如图3所示:
<p
align=
"center"
>
<img
src=
"image/lstm.png"
width =
"65%"
height =
"65%"
align=
"center"
/><br/>
图3. 时刻$t$的LSTM
图3. 时刻$t$的LSTM
\[
[
7
](
#参考文献
)
\]
</p>
LSTM通过给简单的循环神经网络增加记忆及控制门的方式,增强了其处理远距离依赖问题的能力。类似原理的改进还有Gated Recurrent Unit (GRU)
\[
[
8
](
#参考文献
)
\]
,其设计更为简洁一些。
**这些改进虽然各有不同,但是它们的宏观描述却与简单的循环神经网络一样(如图2所示),即隐状态依据当前输入及前一时刻的隐状态来改变,不断地循环这一过程直至输入处理完毕:**
...
...
@@ -79,7 +83,9 @@ $$ h_t=Recrurent(x_t,h_{t-1})$$
其中,$Recrurent$可以表示简单的循环神经网络、GRU或LSTM。
### 栈式双向LSTM(Stacked Bidirectional LSTM)
对于正常顺序的循环神经网络,$h_t$包含了$t$时刻之前的输入信息,也就是上文信息。同样,为了得到下文信息,我们可以使用反方向(将输入逆序处理)的循环神经网络。结合构建深层循环神经网络的方法(深层神经网络往往能得到更抽象和高级的特征表示),我们可以通过构建更加强有力的基于LSTM的栈式双向循环神经网络
\[
[
9
](
#参考文献
)
\]
,来对时序数据进行建模。如图4所示(以三层为例),奇数层LSTM正向,偶数层LSTM反向,高一层的LSTM使用低一层LSTM及之前所有层的信息作为输入,对最高层LSTM序列使用时间维度上的最大池化即可得到文本的定长向量表示。
**这一表示充分融合了文本的上下文信息,并且对文本进行了深层次抽象。**
最后我们将文本表示连接至softmax构建分类模型。
对于正常顺序的循环神经网络,$h_t$包含了$t$时刻之前的输入信息,也就是上文信息。同样,为了得到下文信息,我们可以使用反方向(将输入逆序处理)的循环神经网络。结合构建深层循环神经网络的方法(深层神经网络往往能得到更抽象和高级的特征表示),我们可以通过构建更加强有力的基于LSTM的栈式双向循环神经网络
\[
[
9
](
#参考文献
)
\]
,来对时序数据进行建模。
如图4所示(以三层为例),奇数层LSTM正向,偶数层LSTM反向,高一层的LSTM使用低一层LSTM及之前所有层的信息作为输入,对最高层LSTM序列使用时间维度上的最大池化即可得到文本的定长向量表示(这一表示充分融合了文本的上下文信息,并且对文本进行了深层次抽象),最后我们将文本表示连接至softmax构建分类模型。
<p
align=
"center"
>
<img
src=
"image/stacked_lstm.jpg"
><br/>
图4. 栈式双向LSTM用于文本分类
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录