22

word2vec是 Google 的开源工具:

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

  • 还有一篇关于段落向量的论文,任何人都可以解释他们如何使用 word2vec 来获得段落的固定长度向量。

4

2 回答 2

37

TLDR :Word2Vec 在 N 维的潜在空间中构建词投影(嵌入),(N 是获得的词向量的大小)。浮点值表示这个 N 维空间中单词的坐标。

潜在空间投影背后的主要思想是将对象置于不同且连续的维度空间中,即您的对象将具有比基本对象具有更有趣的微积分特征的表示(向量)。

对于单词来说,有用的是你有一个密集的向量空间来编码相似度(即树有一个向量,它与木头比跳舞更相似)。这与经典的稀疏one-hot 或“词袋”编码相反,后者将每个词视为一个维度,使它们在设计上是正交的(即树、木头和舞蹈之间的距离都相同)

Word2Vec 算法这样做:

想象一下,你有一句话:

狗必须去___去公园散步。

你显然想用“outside”这个词来填补空白,但你也可以有“out”。w2v 算法的灵感来自于这个想法。你希望所有填空的词都靠近,因为它们属于一起——这被称为分布假设——因此“out”和“outside”这两个词会更靠近,而像“carrot”这样的词会更远.

这是 word2vec 背后的某种“直觉”。对于正在发生的事情的更理论解释,我建议阅读:

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

  1. 以“词袋”方式(pv-dbow 模型),其中一个固定长度的段落向量用于预测其单词。
  2. 通过在单词上下文中添加固定长度的段落标记(pv-dm 模型)。通过逆向传播梯度,他们可以“了解”缺失的内容,将具有相同单词/主题“缺失”的段落放在一起。

文章中的位

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

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

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

于 2014-12-02T20:58:17.550 回答
0

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

人们可以很容易地为任何单词想出一个固定大小的输入——比如左边的 M 个单词和右边的 N 个单词。对于大小不一的句子或段落,如何做到这一点并不那么明显,或者至少一开始并不明显。在不先阅读论文的情况下,我猜可以结合句子/段落中所有单词的固定宽度嵌入来为句子/段落提供固定长度的向量嵌入。

于 2014-12-01T15:14:19.543 回答