GloVe和word2vec有什么不同?
0 270
2
该提问暂无详细描述
收藏
2021-01-26 16:16 更新 🍊小桔子 •  2437
共 1 个回答
高赞 时间
0

这两个模型都从单词的共现信息(它们在大型文本语料库中一起出现的频率)中学习单词的几何编码(向量)。它们的不同之处在于word2vec是一个“预测”模型,而GloVe是一个“基于计数的”模型。

有关这两种方法之间的区别,请参阅文本: http://clic.cimec.unitn.it/marco/publications/acl2014/baroni-etal-countpredict-acl2014.pdf

通过预测模型学习向量,提高对损失的预测能力(目标词|上下文词;向量),即从给定的向量表示的上下文词中预测目标词的损失。在word2vec中,这是一个前馈神经网络,并使用SGD等进行了优化。

基于计数的模型通过对共生计数矩阵进行降维来学习它们的向量。它们首先构建一个由(单词x上下文)共现信息组成的大型矩阵,即对于每个“单词”(行),计算在一个大型语料库中的某些“上下文”(列)中我们看到这个单词的频率。

“上下文”的数量当然很大,因为它本质上是组合的大小。因此,它们将这个矩阵分解成一个低维的(单词x特征)矩阵,现在每一行为每个单词生成一个向量表示。

一般来说,这是通过最小化“重构损失”来实现的,重构损失试图找到能够解释高维数据中的大多数方差的低维表示。在GloVe的特定情况下,可通过对计数进行归一化和对数平滑来对计数矩阵进行预处理。就学习特征的质量而言,这是一件好事。

然而,正如前面所指出的,当我们控制所有的训练超参数时,使用这两种方法生成的嵌入在下游的自然语言处理任务中表现得非常相似。与word2vec相比,GloVe的额外好处是更容易并行化实现,这意味着它更容易在更多数据上进行训练,对于这些模型来说总是一件好事。

收藏
2021-01-26 16:46 更新 Lisa •  1796