我有一些与skipgram模型相关的实验。所以我已经开始研究和修改tutorials/embedding/word2vec_kernels.cc
中 tensorflow / models 存储库中的优化实现。突然,我来到了语料库子采样完成的部分之上。
根据TomášMikolov论文(https://arxiv.org/abs/1310.4546,eq.5),单词应保持概率
其中t
表示阈值参数(根据选择为10^-5
的论文),以及单词f(w)
的{{1}}频率,
但是w
中的代码如下:
word2vec_kernels.cc
这种变化背后的动机是什么?是仅仅将语料库大小的“某种关系”建模到这个公式中?或者它是原始公式的一些转变?它是根据经验选择的吗?
编辑:链接到github上提到的文件 https://github.com/tensorflow/models/blob/master/tutorials/embedding/word2vec_kernels.cc
答案 0 :(得分:0)
好的,我想如果没有corpus_size
,图表看起来与原始公式有些相同。语料库大小为公式增加了与语料库大小的关系,并且“它与大数字一起工作”,因此我们可以计算丢弃/保持概率,而无需将词频规范化为正确分布。