word2vec和glove有什么区别?它们都是训练词嵌入的方法吗?如果是,那么我们如何同时使用它们?
word2vec和glove有什么区别?它们都是训练词嵌入的方法吗?如果是,那么我们如何同时使用它们?
是的,它们都是训练词向量的方式。它们都提供相同的核心输出:每个单词一个向量,并且这些向量排列合理。也就是说,向量的相对距离/方向大致对应于人类对整体词相关性以及某些显著语义维度的想法。
Word2Vec通过反复迭代训练语料库来进行增量稀疏的神经网络训练。
GloVe旨在将向量拟合到从语料库构建的巨型词共现矩阵模型中。
在使用相同的语料库、创建相同维度的单词向量并且注重元优化的情况下,它们产生的结果向量的质量将大致相似。当我看到有人自信地声称其中一种算法明显更好时,他们通常是将某个调整/最佳用途的算法与另一个粗略/任意默认设置的算法进行比较。
我更熟悉Word2Vec,我的印象是Word2Vec的训练对于较大的词汇量更易扩展,并且具有更多可调整的设置,如果您有时间,可能会允许您更具体地调整自己训练的词向量以适应特定应用。 (例如,使用小或大的 window
参数可以强烈影响一个单词的最近邻居是“替换词”还是更一般使用相同主题的词。不同的下游应用可能更喜欢偏向某种方式的词向量。)
相反,GLoVe的一些支持者声称它在不需要元参数优化的情况下表现得相当好。
除非将它们相互比较,否则您可能不会同时使用它们,因为它们在任何词向量下游应用中都扮演着相同的角色。
然而,Word2Vec基于纯共现概率进行工作,以使周围单词成为上下文的概率最大化。
在实践中,为了加速训练过程,Word2Vec使用负采样将softmax函数替换为作用于真实数据和噪声数据的sigmoid函数。这隐含地导致单词在向量空间中聚集成锥形,而GloVe的单词向量则更离散。
x
共现的概率向量(softmax),而是要求模型给出词对共现或不共现的概率(使用sigmoid分布进行二元分类)。这会导致聚类吗,因为负样本比正样本多吗? - undefined