Answers:
像在您的网络体系结构中的任何其他层一样,对Keras中的嵌入层进行培训:它们通过使用选定的优化方法进行了调整,以使损失函数最小化。与其他层的主要区别在于它们的输出不是输入的数学函数。取而代之的是,该层的输入用于使用嵌入矢量[1]索引表。但是,底层的自动微分引擎没有问题来优化这些向量以最小化损失函数。
因此,您不能说Keras中的Embedding层与word2vec [2]一样。请记住,word2vec指的是一种非常特定的网络设置,它试图学习一种捕获单词语义的嵌入。使用Keras的嵌入层,您只是在尝试最小化损失函数,因此,例如,如果您正在处理情感分类问题,则学习到的嵌入可能不会捕获完整的词语义,而只能捕获其情感极性...
例如,以下从[3]截取的图像显示了三个句子的嵌入以及Keras嵌入层的训练,该层是从头开始进行训练的监督网络的一部分,该监督网络旨在检测clickbait标题(左侧)和预训练的word2vec嵌入(右侧)。如您所见,word2vec嵌入反映了短语b)和c)之间的语义相似性。相反,由Keras嵌入层生成的嵌入可能对分类有用,但不能捕获b)和c)的语义相似性。
这就解释了为什么训练样本数量有限时,最好使用word2vec权重初始化嵌入层,因此至少您的模型可以识别出“阿尔卑斯”和“喜马拉雅山”是相似的东西,即使它们没有两者都不会出现在训练数据集中的句子中。
[1] Keras的“嵌入”层如何工作?
[2] https://www.tensorflow.org/tutorials/word2vec
[3] https://link.springer.com/article/10.1007/s10489-017-1109-7
注意:实际上,该图像显示了嵌入层之后的层的激活,但是对于本示例而言,这无关紧要...请参阅[3]中的更多详细信息