长短时记忆网络

(Long Short-Term Memory,LSTM)

不管是我们还是计算机都很难有过目不忘的记忆,当看到一篇长文时,通常只会几下长文中内句话所讲的核心,而一些不太起眼的词汇将会被忘掉。

LSTM网络就是模仿人的这个特点,在计算机处理很多文字时有侧重点的记住具有重要意义的词汇,忘记一些作用不大的词汇。

长短时记忆网络通过不断地调用同一个cell逐次处理时序信息,每阅读一个词汇xt,就会输出一个新的重点记忆信号ht,用来表示当前阅读到的所有内容的整体(具有侧重点的)向量表示。下图就是LSTM网络的内部结构示意图,我们先不提他的内部结构看一下LSTM网络的输入与输出都是什么。

nlp长文本怎么处理 lstm长文本_自然语言处理

nlp长文本怎么处理 lstm长文本_神经网络_02


xt是被逐个词读取的,相当于从一篇文章的第一次开始一直向后读。

h(t-1) 和 C(t-1) 是前面经过处理后保留下来的记忆,h(t-1) 是有侧重点记忆。

h(t) 和 C(t) 则是通过学习当前的xt后形成的记忆,需要传递给下一cell。

h(t-1)与x(t)作为输入,经过处理后汇总进C(t)当中。

最开始学习LSTM需要做的是把输入输出搞清楚(整体的公式写在在本文的最后面),下面来说一说网络内部的结构:

遗忘门

在上图LSTM网络结构图中,函数ft代表着遗忘门(f --> forget),控制着过去记忆融合进C(t)的比例。这里使用sigmoid函数调节信息的重要程度。
nlp长文本怎么处理 lstm长文本_深度学习_03

输入门

在上图LSTM网络结构图中,函数it代表着输入门(i–>input),控制着有多少输入信号被融合。

nlp长文本怎么处理 lstm长文本_深度学习_04

图中的tanh函数处,在这里我们将他叫做单元状态gt,单元状态中以tanh函数对输入数据作处理来调节网络。

nlp长文本怎么处理 lstm长文本_神经网络_05

输入门最后在汇总的时候需要将it的输出与gt的输出相乘,下面这个图展现了两个门是如何控制遗忘和记忆的。

nlp长文本怎么处理 lstm长文本_神经网络_06


nlp长文本怎么处理 lstm长文本_自然语言处理_07

输出门

控制着最终输出多少记忆(Ot -->output)
输出们按比重学习、筛选输入信息然后汇入ht中传给下一个cell;这里需要对h(t-1)处理后再与tanh(Ct)相乘。
nlp长文本怎么处理 lstm长文本_深度学习_08
nlp长文本怎么处理 lstm长文本_nlp长文本怎么处理_09
以上就是单层LSTM网络的大致结构。

其实单层LSTM把输入和输出关系捋清楚之后,似乎就很容易入门了。
nlp长文本怎么处理 lstm长文本_神经网络_10
为了表示输出的Ct和ht,才创建的其他别具职能的函数。其中输入x(t-1)和H(t-1)大多在下面的职能函数里面被带入。