我对Tensorflow中LSTM的实现有一个疑问......尤其是seq2seq建模的应用(你有一个编码器和解码器) .
In short: Learning a word embedding while using the seq2seq model, aren’t we having redundant weights?
通常的方法是嵌入输入字(对于编码器),如word2vec向量,但是建模方法也能够学习这些嵌入 . 这意味着当我们要为编码器设置变量时,我们有一个额外的嵌入矩阵(在LSTM之外),它编码我们的词汇表 . 我对LSTM节点的理解,或者让我们采用(更简单的)RNN节点,是应用以下等式
sigma(W \cdot x + U \cdot h + b)
我们有哪些尺寸
(n_hidden \times n_feature) (n_feature \times 1) + (n_hidden \times n_hidden) (n_hidden \times 1) + (n_hidden \times 1).
这里的值一(1)可以被我认为的batch_size替换 . (请纠正我,如果我错了请)
我担心的是 W \cdot x
部分 . 因为在这种情况下,向量x已经是嵌入向量,因此计算 W \cdot x
感觉是多余的......如果x是单热编码向量,那么它将是有意义的IMO .
任何人都可以告诉我,如果我的推理是合理的,如果我正确理解seq2seq模型的'额外嵌入' .
编辑:我现在唯一能想到的是你不想因为某些原因而在你的LSTM中完全嵌入......(为什么我不清楚) . 但是我可以想象如果你需要将LSTM的n_hidden维度设置为词汇量大小,你会失去一些灵活性 . 例如..当你的词汇量大小改变......或者也许是训练努力..如果有人能证实这一点,那就太棒了:)