此Keras word2vec实现中的余弦相似度如何执行?

时间:2018-11-18 17:00:30

标签: python keras word2vec cosine-similarity word-embedding

我正在关注一个教程 http://adventuresinmachinelearning.com/word2vec-keras-tutorial/ 它使用余弦相似度作为验证模型,但将点积(不同于余弦相似度进行标准化)进行训练。确实令人困惑,但是我的问题是关于点积的轴,对于验证模型是:

similarity = merge([target, context], mode='cos', dot_axes=0)

因此,当我记录验证模型的模型摘要时,会得到:

  

图层(类型)输出形状

     

dot_1(点)(300、1、1)

但用于训练模型

dot_product = merge([target, context], mode='dot', dot_axes=1)

不足为奇的是,模型摘要显示了另一件事

  

图层(类型)输出形状

     

dot_2(点)(无,1、1)

我在摘要中读过“ Ouput”​​(其值通常为“无”)显示了批处理大小(如果由于某种原因而固定),但对我来说仍然没有意义,为什么第一个模型的批处理大小为300认为示例中的批量大小不是固定的,而300也是我的嵌入尺寸。 dot_axes显然有问题,有人可以确认吗?我只是通过将dot_axes=1而不是零来解决它吗?为什么第一轴是1而不是0? dot_axes=0是否超过批处理大小或对我来说没有意义?

github上的代码: https://github.com/adventuresinML/adventures-in-ml-code/blob/master/keras_word2vec.py

0 个答案:

没有答案