RNN & Word2Vec
Posted lightsun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RNN & Word2Vec相关的知识,希望对你有一定的参考价值。
RNN(Recurrent Netural Network)循环神经网络,用来处理和预测序列数据,在语音识别,语言描述,翻译等领域有很好的运用。
传统神经网络结构如CNN是假设所有的input之间是相互独立的,output之间也相互独立,但实际中会存在由前面几个字去推测后面的词,这个时候CNN的假设就不能成立了。
而RNN可以通过时序结构来关联input,记住input之间的关系。
RNN的典型结构如下:
展开之后为:
可以看到隐藏层的输入有两个:隐藏层的输入(前一个隐藏层的输出 h)以及原始输入(指某个词的vector x)
具体例子如下:
RNN模型中有个time step的概念,表示记忆的长度,例子中的记忆长度就是4.
但是RNN无法解决长时间依赖的问题,也就是记忆长度不能特别长(容易出现梯度弥散的问题),因此出现了一些改进版的RNN,如LSTM(Long short term memory)
两者的结构对比图如下:
从对比图上可以看出,所有RNN都具有一个重复模块,标准RNN重复模板是比较简单的tanh,而LSTM则是由通过精心设计的称作“门”的结构来去除或者增加信息。
(1)清除无用信息 (遗忘门 forget gate)
(2)添加新的信息
(3)更新细胞状态
(4)输出信息
以上便展示了LSTM的几个重要计算逻辑。
在现实中,我们用的训练数据往往是句子或者词组,因此需要先做一些处理,下面介绍几个句子处理中的常见概念
(1)词向量(把一个词转换成一个向量)
a. one hot representation
用一个很长向量表示一个词,向量长度是词典长度,向量中只有元素0和1,1的位置对应词在词典中的位置
这种方法在NLP中运用的比较多,但也有明显的问题:维度灾难和无法刻画近义词之间的相似性
b. distributed representation
以普通向量表示一个词,一般是50维或者100维 (??? how)
以上是关于RNN & Word2Vec的主要内容,如果未能解决你的问题,请参考以下文章
Big Spatio temporal Data(R-tree Index and NN & RNN & Skyline)