word2vec 和 glove 模型的区别

时间:2024-07-07 17:33:44

2019-09-09 15:36:13

问题描述:word2vec 和 glove 这两个生成 word embedding 的算法有什么区别。

问题求解:

GloVe (global vectors for word representation) 与word2vec,两个模型都可以根据词汇的 "共现 co-occurrence" 信息,将词汇编码成一个向量(所谓共现,即语料中词汇一起出现的频率)。

两者最直观的区别在于,word2vec是 "predictive" 的模型,而GloVe是 "count-based" 的模型。

Glove 和 word2vec 从算法实现的角度来说,它们区别在于loss的计算是不同的。

对于原生的w2v,其loss是交叉熵损失;

对于Glove来说,其需要先构建一个共现矩阵X,其中的 Xij 表示 i 和 j共同出现的次数,其loss为如下的公式。

word2vec 和 glove 模型的区别

f(x) 是一个权重函数,当 Xij 等于0的时候,f(x) = 0,并且当 Xij 过大的时候,f(x) = 1。

word2vec 和 glove 模型的区别

word2vec 和 glove 模型的区别