word2vec中单词的向量代表什么?

时间:2014-11-20 05:40:50

标签: machine-learning nlp neural-network gensim

word2vec是Google的一个开源工具:

  • 对于每个单词,它提供了一个浮点值向量,它们究竟代表什么?

  • 还有一篇关于paragraph vector的论文可以解释他们如何使用word2vec获取段落的固定长度向量。

2 个答案:

答案 0 :(得分:36)

TLDR :Word2Vec正在N维度的潜在空间中构建单词投影( embeddings ),(N是单词的大小)得到的载体)。浮点值表示此N维空间中单词的坐标。

潜在空间投影背后的主要思想是将物体放置在不同且连续的空间中,因为您的物体将具有比基本物体具有更有趣的微积分特征的表示(矢量)。

对于单词来说,有用的是你有一个密集向量空间,它编码相似性(即树有一个更像木头的向量)从跳舞)。这反对经典的稀疏单热或"词袋"编码将每个单词视为一个维度,使它们按照设计正交(即树,木和舞蹈之间的距离相同)

Word2Vec算法执行此操作:

想象一下你有一句话:

  

狗必须去___在公园散步。

你显然想在空白处填写#34;外面的"但你也可能有#34; out"。 w2v算法的灵感来自于这个想法。你喜欢填补空白的所有单词,因为它们属于一起 - 这被称为分布式假设 - 因此单词" out"和"外面"将会更加接近,而像“胡萝卜”这样的词会更加紧密。会走得更远。

这就是"直觉"在word2vec后面。为了更正式地解释我的观点,我建议阅读:

对于段落向量,这个想法与w2v中的相同。每个段落都可以用它的词来表示。本文介绍了两种模型。

  1. 在" Bag of Word"方式(pv-dbow模型),其中一个固定长度段落向量用于预测其单词。
  2. 在单词上下文中添加固定长度段落标记(pv-dm模型)。通过对梯度进行反复传播,他们得到了感觉"什么是缺失的,带有相同的单词/主题和#34;缺少"紧密相连。
  3. Bits from the article

      

    在   段落向量和单词向量是平均的或连接的   预测上下文中的下一个单词。   [...]   段落标记可以被认为是另一个单词。它   充当记忆,记住缺少的东西   当前上下文 - 或段落的主题

    为了全面了解这些向量是如何构建的,您需要了解如何构建神经网络以及反向传播算法的工作原理。 (我建议以this video和Andrew NG的Coursera课程开始)

    NB: Softmax只是说分类的一种奇特方式,w2v算法中的每个单词都被视为一个类。分层softmax /负采样是加速softmax和处理很多类的技巧。

答案 1 :(得分:0)

每个单词的固定宽度上下文用作神经网络的输入。网络的输出是给定维度(通常为50或100)的浮点值向量 - 也就是字嵌入 - 。训练网络,以便在列车/测试语料库中提供良好的单词嵌入。

可以很容易地为任何单词提供固定大小的输入 - 比如左边的M个单词和右边的N个单词。对于一个大小不一的句子或段落,如何做到这一点并不明显,或者至少它不是一开始就是如此。如果不先阅读论文,我猜测可以将句子/段落中所有单词的固定宽度嵌入结合起来,为句子/段落提供固定长度的矢量嵌入。