2020李宏毅机器学习笔记——18. Recursive Network(递归网络)

摘要: 本章主要讲解了Recursive Network(递归网络)的基本原理,首先通过情感分析任务为例来说明递归神经网络(recursive neural network)和循环神经网络(recurrent neural network)的关系,即循环神经网络可以看做递归神经网络的特殊情况,以及Recursive 模型与具体的实现过程。接着阐述了Recursive Structure中function f 的具体设计,如:Recursive Neural Tensor Network、Matrix-Vector Recursive network和Tree LSTM。

文章目录

  • 1. 递归神经网络(recursive neural network)
    • 1.1 Application: Sentiment Analysis(应用:情感分析)
  • 2. Recursive Model
  • 3. Recursive Network 的function f 是怎样的
  • 4. Matrix-Vector Recursive Network
  • 5. Tree LSTM
  • 6. 总结与展望

1. 递归神经网络(recursive neural network)

1.1 Application: Sentiment Analysis(应用:情感分析)

情感分析案例的目标:输入一个word sequence,machine判断该word sequence的sentiment(正面,负面,中性)。

用RNN做情绪分析案例:我们先word Sequence用一组vector(x1,x2,x3,x4)表示,然后找一个初始的h0,将h0和x1丢到function f中,得到h1,依此类推(使用相同的function-f),将最后得到的值丢入function g,得到最后的结果。假如正面-负面分为5个等级,那么最后的输出是5维的vector。如下图(上部分):

2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第1张图片
用Recursive Structure去做分析:必需先决定这几个Sequence的关联,上图(下部分)来看,我们将x1,x2丢到function-f得到h1,再将x3,x4丢入相同的function-f,得到h2,再将h1,h2丢到function-f得到h3,再经过function-g得到最后结果。

Recursive Networ与RNN的关系:Recursive network是RNN一种更更一般型式的神经网络,RNN是Recursive network的一种结构模式(相当于它的一个子集)。

2. Recursive Model

Recursive Network是一种RNN的扩展形式,他是空间的展开,且具有树形结构。(RNN是一种结构模式)
2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第2张图片
判断一个句子的情感分析
具体过程如下:
从syntactic structure(文法结构)可以看的出这句话的结合方式

  • 先用词嵌入将每一个Word用Vectory来表示
  • 根据文法结构来结合:将Very, Good丢入function-f得到输出(词向量维等于| Z |)输入:| 2Z |,输出:| Z |)

function-f是一个NN,它所处理的事情或许比想像中还要复杂一些,因此不会只是单纯的将两个向量相加而以。 如下图:
2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第3张图片

举例来说,not是中性字,而good是正面,两个加起来并不是正面偏中性,而是一个负面字眼,因此这不可能是单纯的相加就可以达成的。如下图:
2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第4张图片
比如:机器需要识别not,看到not就将词性转向!

而very则需要机器去将与之关联的词性加强,如下图:
2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第5张图片

通过训练资料的学习,让“not very good”经过function-f 的产出再经过function-g 来得到最终的情绪等级,再依据与实际情绪(标签)的loss做优化。过程如下图:
2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第6张图片
那么我们的function f 到底应该是什么样子的呢?其实我们的function f是一个NN,那究竟是怎样的模型呢 ?

3. Recursive Network 的function f 是怎样的

  1. 最简单的模型就是下图所示:乘以一个权重矩阵W(W是一个2X4的矩阵),是由机器直接学到的,然后经过一个激活函数。这样做的缺点是没有将输入a,b联系起来,机器就没法知道两者之间的关系,不能做到反转或者加重情感,因此很难达到理想的效果。模型如下图:
    2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第7张图片
  2. 改进的function-f 模型,我们要让a,b两个向量是有相乘的关联,调整模型,让两个向量堆叠之后转置XT乘上权重W再乘上X( x T w x x^Twx xTwx),它的计算逻辑就是将两个元素相乘xixj之后再乘上相对应的权重索引元素值Wij 做加总∑i,j ,这么计算之后得到的是一个数值,而后面所得项目是一个2x1矩阵,无法相加,因此同样的事再做一次,要注意到上下两个W颜色不同代表的是不同的权重值。如下图:

2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第8张图片

4. Matrix-Vector Recursive Network

Matrix-Vector Recursive Network的核心思想:将词向量分成两部分,一是代表自身的意思的部分,二是代表影响别其他word能力部分。如下图:

2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第9张图片
那究竟哪些部分代表自身意思,哪些代表影响其他Word的能力 ?

5. Tree LSTM

LSTM(长短期记忆网络)是一种改进之后的循环神经网络(RNN),可以解决RNN无法处理长距离的依赖问题。
典型的LSTM: h和m的输入对应相应的输出,但是h的输入输出差别很大,m的不大。
Tree LSTM:就是把其中的function-f 换成LSTM(如下图)

2020李宏毅机器学习笔记——18. Recursive Network(递归网络)_第10张图片

6. 总结与展望

本章主要是学习Recursive Structure(递归神经网络),它是采用树状结果进行设计的,可以很好的解决词性判断的问题,Recursive Model的设计并不是难点,重点是在设计归神经网络的中function f,如何选择一个合适的函数f,将每个word之间联系起来,让机器知道word之间的含义,这一点尤为重要。

主要有三种f设计:Recursive Neural Tensor Network,Matrix-Vector Recursive Network,Tree LSTM。Matrix-Vector Recursive Network的核心思想是:将词向量分成两部分,一是代表自身意思的部分,二是代表影响其他word能力的部分。这个方法感觉比较有道理,但实际上的Performance是较Recursive Network Tensor Network差。Tree LSTM也就是使用LSTM来充当递归神经网络的 。

递归神经网络主要应用在情感分析和评估句子相似度等应用上,即输入的序列有明显的结构层次(比如文法结构等),但是这种结构是需要去提取预处理的,耗费较大,所以一般的效果都不是很好!

你可能感兴趣的:(机器学习基础课程知识,神经网络,机器学习,深度学习)