我对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维度设置为词汇量大小,你会失去一些灵活性 . 例如..当你的词汇量大小改变......或者也许是训练努力..如果有人能证实这一点,那就太棒了:)