word2vec https://code.google.com/p/word2vec/是 Google 的开源工具:
TLDR:Word2Vec 正在构建单词投影(嵌入) in a 潜在空间N 维(N 是获得的词向量的大小)。浮点值表示该 N 维空间中单词的坐标。
潜在空间投影背后的主要思想是将对象放入不同的连续维度空间中,即您的对象将具有比基本对象更有趣的微积分特征的表示(向量)。
对于文字来说,有用的是你有一个dense编码的向量空间相似(即树的向量更类似于木头而不是跳舞)。这与古典主义相反sparseone-hot 或“bag-of-word”编码将每个单词视为一个维度,从而使它们正交通过设计(即树、木头和舞蹈之间的距离都相同)
Word2Vec 算法执行以下操作:
想象一下你有一句话:
狗必须去公园散步。
你显然想用“outside”这个词来填补空白,但你也可以用“out”。 w2v 算法就是受到这个想法的启发。你想要所有填满附近空白的单词,因为它们属于在一起 - 这就是所谓的分布假说- 因此,“out”和“outside”这两个词会更近,而“carrot”这样的词会更远。
这就是 word2vec 背后的“直觉”。对于正在发生的事情的更理论解释,我建议阅读:
- GloVe:用于单词表示的全局向量 http://nlp.stanford.edu/pubs/glove.pdf
-
稀疏和显式单词表示中的语言规律 http://www.cs.bgu.ac.il/~yoavg/publications/conll2014analogies.pdf
- 神经词嵌入作为隐式矩阵分解 http://www.cs.bgu.ac.il/~yoavg/publications/nips2014pmi.pdf
对于段落向量,其思想与 w2v 中的相同。每个段落都可以用它的单词来表示。论文提出了两种模型。
- 以“词袋”方式(pv-dbow 模型),其中一个固定长度段落向量用于预测其单词。
- 通过添加一个固定长度单词上下文中的段落标记(pv-dm 模型)。通过逆向传播梯度,他们可以“感觉到”缺失了什么,将具有相同单词/主题的段落“缺失”紧密地结合在一起。
文章中的片段 http://cs.stanford.edu/~quocle/paragraph_vector.pdf:
这
段落向量和词向量被平均或连接
预测上下文中的下一个单词。
[...]
段落标记可以被认为是另一个词。它
充当记忆,记住其中缺失的内容
当前上下文 – 或段落主题
为了充分理解这些向量的构建方式,您需要了解神经网络的构建方式以及反向传播算法的工作原理。 (我建议从这个视频 http://youtu.be/q0pm3BrIUFo和 Andrew NG 的 Coursera 课程)
NB:Softmax 只是分类的一种奇特方式,w2v 算法中的每个单词都被视为一个类。分层 softmax/负采样是加速 softmax 和处理大量类的技巧。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)