手套和word2vec之间的主要区别是什么?

时间:2019-05-10 06:10:19

标签: machine-learning word2vec word-embedding glove

word2vec和手套有什么区别? 两种方法都可以训练单词嵌入吗?如果是,那么我们如何同时使用两者?

2 个答案:

答案 0 :(得分:1)

是的,它们都是训练单词嵌入的两种方式。它们都提供相同的核心输出:每个单词一个向量,向量以一种有用的排列方式排列-相对距离/方向大致与我们的整体单词相关性,甚至沿着某些显着语义维度的相关性相对应。

Word2Vec通过反复迭代训练语料库来进行神经网络的增量,“稀疏”训练。

GloVe可以使向量拟合以对从语料库构建的巨型单词共现矩阵建模。

使用相同的语料库,创建相同维数的单词向量,并将相同的注意力投入元优化,它们产生的单词向量的质量将大致相似。 (当我看到某个人自信地声称一个或另一个肯定更好时,他们经常将一种算法的某些调整/最佳用例与另一种粗略/任意的默认值进行比较。)

我对Word2Vec更加熟悉,我的印象是Word2Vec的训练可以更好地扩展到更大的词汇量,并且具有更多可调整的设置,如果您有时间的话,可以让您将自己训练有素的单词向量更适合您的特定需求应用。

除非将它们彼此进行比较,否则您可能不会使用两者,因为它们在字向量的任何下游应用中都扮演相同的角色。

答案 1 :(得分:0)

Word2vec是一种预测模型:通过尝试根据给定上下文(CBOW方法)或目标语言(skip-gram方法)预测目标单词进行训练。它使用可训练的嵌入权重将单词映射到其对应的嵌入,这有助于模型进行预测。训练模型的损失函数与模型的预测效果有关,因此,当模型进行训练以做出更好的预测时,将得到更好的嵌入效果。

手套基于单词上下文矩阵的矩阵分解技术。它首先构造一个由(单词x上下文)共现信息组成的大型矩阵,即对于每个“单词”(行),您需要计算在某个“上下文”(列)中我们看到该单词的频率(矩阵值)。大语料库。 “上下文”的数量将非常大,因为它的大小实质上是组合的。因此,我们将这个矩阵分解为一个低维(单词x特征)矩阵,其中每行现在为每个单词产生一个矢量表示。通常,这是通过最小化“重建损失”来完成的。这种损失试图找到可以解释高维数据中大部分差异的低维表示形式。

在GloVe之前,单词表示的算法可以分为两个主要流:基于统计的(LDA)和基于学习的(Word2Vec)。 LDA通过在共现矩阵上进行奇异值分解(SVD)来生成低维单词向量,而Word2Vec使用三层神经网络来完成中心上下文单词对分类任务,其中单词向量只是副产品。

Word2Vec的最令人惊奇的一点是,相似的词在向量空间中位于一起,并且对词向量的算术运算可以构成语义或句法关系,例如“国王”-“男人” +“女人”->“女王” ”或“更好”-“好” +“差”->“更差”。但是,LDA无法在向量空间中保持这种线性关系。

GloVe的动机是迫使模型明确基于共生矩阵来学习这种线性关系。本质上,GloVe是具有加权最小二乘目标的对数双线性模型。显然,这是一种基于统计矩阵使用机器学习的混合方法,这是GloVe和Word2Vec之间的一般区别。

如果我们深入研究GloVe中方程的推导过程,我们会发现直觉固有的差异。 GloVe注意到,单词-单词共现概率的比率具有编码某种形式的含义的潜力。以StanfordNLP(Global Vectors for Word Representation)为例,考虑目标词ice和steam与词汇中的各种探测词的共现概率:

  • 正如人们所期望的那样,冰与固体的并发发生率高于 与气体共存,而蒸汽与气体共生比 它与固体一样。
  • 这两个词经常与它们共有的水一起出现,而这两个词却很少与不相关的词时尚一起出现。
  • 仅以概率的比率抵消了诸如水和时尚之类的非歧视性词的噪声,因此,较大的值(远大于1)与特定于冰的属性相关,而较小的值(远小于1)与冰相关。与蒸汽的特性密切相关。

但是,Word2Vec处理纯共现概率,从而使目标单词周围的单词成为上下文的概率最大化。

在实践中,为了加快训练过程,Word2Vec使用负采样以对真实数据和噪声数据进行操作的S形函数代替softmax功能。显然,这导致了单词在矢量空间中的聚类成圆锥形,而GloVe的单词矢量的位置更加离散。