题记
LSTM(Long Short-Term Memroy Cell)是一种RNN网络的改进结构,相较于传统的RNN网络在处理长序列时有着很多优势这也让它在自然语言处理的多种任务中有着很广范的运用。关于LSTM的具体介绍有很多,大家也可以从我之前的一篇博客 基于Tensorflow的LSTM-CNN文本分类模型 中查看。
同时最近看到很多朋友对于LSTM的具体运用产生了一些疑问,而这些问题也是我之前在学习和项目中遇到的问题,这篇博客将在此对于这些问题进行详解,也算是个人学习的总结。
问题一:在NLP任务中,词向量维度(embedding size)是否一定要等于LSTM隐藏层节点数(hidden size)?
词向量(Word Embedding)可以说是自然语言处理任务的基石,运用深度学习的自然语言处理任务更是离不开词向量的构造工作。在文本分类,问答系统,机器翻译等任务中,LSTM的展开步数(num_step)为输入语句的长度,而每一个LSTM单元的输入则是语句中对应单词或词组的词向量。
对于embedding size是否一定要等于LSTM的hidden size 这样一个问题,我们可以通过了解单个LSTM单元的原理来进行回答。
我们输入LSTM的 input vector,也就是每个单词的word embedding这里称为vector A,LSTM的三个gate的控制是通过vector A来控制的,具体方法是通过乘以权重矩阵(weight),再加上偏置值(bias)形