在文章Neural Machine Translation by Jointly Learning to Align and Translate Bahdanau et. al.为什么没有使用像Glove或word2vec这样的嵌入词?
我知道这是一篇2014年的论文,但目前在github上的论文实现并没有使用任何单词嵌入?
对于尝试编码的论文,使用word嵌入是否合理?
简而言之 - 模型当然确实使用了单词嵌入,它们不是像Glove或word2vec那样经过预先训练的嵌入;相反,嵌入是随机初始化的,并与网络的其余部分一起进行联合训练。
在原始Bahdanau等人的A.2节中对网络的完整描述。论文,你会看到为编码器和解码器描述的嵌入矩阵E
这个词。如何初始化它们也在B.1节中描述。
在您拥有足够数据的情况下,这通常与预先训练的嵌入一样好或更好。也就是说,在资源较少的情况下,可以通过预先训练的嵌入来初始化嵌入矩阵。 This paper可能会帮助您更详细地探索这个想法。
此外,您当前实现不执行此操作的声明并不完全准确 - 虽然嵌入通常默认是联合训练,但许多现有的神经MT工具包可以选择使用预先训练的向量初始化嵌入。例如,OpenNMT-py,Marian。