word2vec中的词向量代表什么?

22

Word2vec是谷歌开源的工具:

  • 对于每个单词,它提供了一组浮点数向量,它们到底代表什么?

  • 还有一篇关于段落向量的论文,有人能解释一下如何使用word2vec来获得固定长度向量的段落吗?


4
回答你的问题需要解释神经网络,这已超出了SO问答格式的范围。 - Chthonic Project
我认为这个问题非常有用且与“句子和文档的分布式表示”相关,正如提问者引用的论文中所述。 - user305883
2个回答

37
TLDR: Word2Vec通过在N维的潜在空间中构建单词投影(嵌入)来实现,其中N是获得的单词向量大小。浮点值表示单词在该N维空间中的坐标。
潜在空间投影背后的主要思想是将对象放置在不同且连续的多维空间中,这样您的对象将具有比基本对象更有趣的计算特性的表示(向量)。
对于单词而言,有用的是您拥有编码相似性的密集向量空间(即树的矢量与木材相比比跳舞更相似)。这与经典的稀疏one-hot或“bag-of-word”编码相反,后者将每个单词视为一个维度,并通过设计使它们正交(即树、木和跳舞之间的距离相同)
Word2Vec算法是这样实现的:
想象你有一句话:
"The dog has to go ___ for a walk in the park."
你显然想用单词"outside"填空,但你也可以用"out"。w2v算法受到这个想法的启发。你希望所有填空单词都靠近,因为它们属于一起——这被称为“分布假设”——因此,“out”和“outside”这样的单词会更接近,而像“carrot”这样的单词则会更远。
这在某种程度上是word2vec的“直觉”。如果你想更理论化地解释正在发生的事情,我建议阅读:
- GloVe:全局单词向量表示 - 稀疏和显式单词表示中的语言规律性
  • 神经词嵌入作为隐式矩阵分解
  • 对于段落向量,其思想与w2v相同。每个段落可以由其单词表示。文中提出了两个模型。

    1. 以“词袋”方式(pv-dbow模型)表示一个长度固定的段落向量以预测其单词。
    2. 通过在单词上下文中添加一个长度固定的段落令牌(pv-dm模型)。通过反向传播梯度,他们可以“感知”缺失内容,将具有相同单词/主题的段落“缺失”靠在一起。

    从文章中摘录以下信息:

    段落向量和单词向量的平均值或串联用于预测上下文中的下一个单词。 [...] 段落标记可以视为另一个单词。它充当一个记忆,记住当前上下文的缺失部分-或段落的主题

    要完全理解这些向量是如何构建的,您需要学习神经网络和反向传播算法的构建方式。 (我建议从这个视频和Andrew NG's Coursera课程开始)。

    注: Softmax只是一种花哨的分类方法,w2v算法中的每个单词都被视为一个类。分层Softmax /负采样是加速softmax并处理大量类别的技巧。


    0

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

    对于任何单词,可以轻松地想出固定大小的输入 - 比如说M个单词在其左侧,N个单词在其右侧。如何为大小不同的句子或段落做到这一点并不明显,或者至少起初并不明显。在阅读论文之前,我猜想可以将句子/段落中所有单词的固定宽度嵌入组合起来,以得到句子/段落的固定长度向量嵌入。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接