1.应用:Sentiment Analysis情节分析
Recursive Network是比RNN更一般型式的神经网路。
RNN来看情绪分析的案例,将Word Sequence输入神经网路,经过相同的function-f最后经过function-g得到结果。
如果是Recursive Network的话,必需先决定这几个Sequence的关联,上图下案例来看,我们将
x
1
,
x
2
x_1,x_2
x1,x2丢到function-f得到
h
1
h^{1}
h1,再将
x
3
,
x
4
x_3,x_4
x3,x4丢入相同的function-f,得到
h
2
h^{2}
h2,再将
h
1
,
h
2
h^{1},h^2
h1,h2丢到function-f得到
h
3
h^{3}
h3,再经过function-g得到最后结果。
在实作Recursive Network的时候要注意,
x
,
h
x,h
x,h的维度必需要相同(因为用的是同一个f)。
事实上RNN是Recursive Network的一种结构模式。
2.Recursive Network
递归网络时一种RNN的扩展形式,他是空间的展开,且具有树形结构。
目标:『not very good』,我们要决定这句话是好,还是坏。
从syntactic structure(文法结构)可以看的出这句话的结合方式
1.用词嵌入将每一个Word用Vectory来表示。
2.根据文法结构来结合:将Very, Good丢入function-f得到输出(词向量维等于| Z |)输入:| 2Z |,输出:| Z |
直观来看,我们希望得到的输出代表着『Very Good』
function-f是一个nn,它所处理的事情或许比想像中还要复杂一些,因此不会只是单纯的将两个向量相加而以。
举例来说,not是中性字,而good是正面,两个加起来并不是正面偏中性,而是一个负面字眼,因此这不可能是单纯的相加就可以达成的。
透过训练资料的学习,让『not very good』经过function-f的产出再经过function-g来得到最终的情绪等级,再依据与实际情绪的loss做优化。
3.Recursive Network Tensor Network
function-f可以很简单,如上图上所示,单纯的让a,b两个向量相加之后乘上权重W,但这么做可能无法满足我们上说明的需求期望,或者很难达到理想的效果。
改进: 我们要让a,b两个向量是有相乘的关联,因此调整为上图下所示,两个向量堆叠之后转置
X
T
X^{T}
XT乘上权重W再乘上X它的计算逻辑就是将两个元素相乘
x
i
x
j
x_ix_j
xixj之后再乘上相对应的权重索引元素值
W
i
j
W_{ij}
Wij做加总
∑
i
,
j
\sum_{i,j}
∑i,j,这么计算之后得到的是一个数值,而后面所得项目是一个2x1矩阵,无法相加,因此同样的事再做一次,要注意到简报上两个W颜色不同代表的是不同的权重值。
4.Matrix-Vector Recursive Network
该网络的核心思想:将词向量分成两部分,1是自己的部分,2是影响别人的部分。
这个方法感觉比较有道理,但实际上的Performance是较Recursive Network Tensor Network差。