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为如下的公式。
f(x) 是一个权重函数,当 Xij 等于0的时候,f(x) = 0,并且当 Xij 过大的时候,f(x) = 1。
来源:oschina
链接:https://my.oschina.net/u/4370474/blog/3400719