lstm-ppt讲解!neuramatrix官网?

宝宝免费起名关注微信公众号------《梓音》

问题一:在NLP任务中,词向量维度(embeddingsize)是否一定要等于LSTM隐藏层节点数(hiddensize)?词向量(WordEmbedding)可以说是自然语言处理任务的基石,运用深度学习的自然语言处理任务更是离不开词向量的构造工作。在文本分类,问答系统,机器翻译等任务中,LSTM的展开步数(num_st

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

lstm-ppt讲解!neuramatrix官网?

问题一:在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)形成新的一个vector,这个vector我们可以理解成gate的控制信号。而控制三个gate就需要三组不同的weight 和bias。LSTM传入神经网络输入层输入的vector(称为vector B)跟产生的三个控制信号的方法一样,也是通过vector A乘以一组weight 和bias产生。

这里放几张图片再来解释说明一下

lstm-ppt讲解!neuramatrix官网?

Xt就是我们的word embedding vector,也就是上面说的vector A,通过四组不同的weight 和bias的作用生成,Zf,Zi,Z,Zo四组新的vector,其中Zf,Zi,Zo,分别作为forget gate,input gate和output gate的控制信号,而Z就是神经网络输入层的输入,也就是我们上面所处的vector B。embdedding szie指的是Xt的维度,而hidden size指的是Zf,Zi,Z,Zo的维度。而这也就是为什么LSTM的参数值为普通神经网络的四倍了。

解释了这么多,其实也就回答我们这个问题,word embedding vector乘以了权重矩阵weight,从而将维度变化为了hidden size的维度,所以我们在设置embedding size和hidden size 时,二者的值不一定必须相等。

问题二:在多层LSTM中,词向量维度(embedding size)是否一定要等于LSTM隐藏层节点数(hidden size)?

这个问题是我自己在项目中遇到的一个问题,具体模型就是 基于Tensorflow的LSTM-CNN文本分类模型 中的这个模型,在将LSTM层数设置为2层时,代码报错。

根据问题一的解释,多层LSTM的embedding size实际上也不必等于hidden size的,可以通过设置不同shape的weight和bias来实现(第一层与后续层数设置为不同)。

但在Tensorflow实现多层LSTM时,使用的函数tf.contrib.rnn.MultiRNNcell()会自动将累加的LSTM的参数设为相同的shape,或者说,是模块化的直接累加LSTM层数。这样得来的多层LSTM网络,其参数weight和bias的shape都是相同的,所以当设置不同的embedding size和hidden size时会报错,更改为相同值时error消失。

在NLP任务中通常需要使用预先训练好的词向量来加快训练速度,而LSTM的hidden size也是在训练调参时需要进行调整的重要参数,所以我还在寻找如何解决Tensorflow中多层lstm的hidden size和embedding size不相等的问题,也希望有经验的朋友能多多赐教。

宝宝免费起名关注微信公众号------《梓音》

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.zg8899.cn/30545.html