我已经阅读了很多关于NLP的论文,并遇到了许多模型。我得到了SVD模型并将其表示为2-D,但我仍然不知道如何通过为word2vec/skip-gram模型提供语料库来生成单词向量?它是否也是每个单词的共现矩阵表示?你能举一个语料库的例子来解释一下吗:
Hello, my name is John.
John works in Google.
Google has the best search engine. 基本上,skip gram是如何将John转换为向量的?
发布于 2015-09-13 02:09:12
我认为你需要阅读一篇关于培训过程的论文。向量的值基本上是训练好的神经网络的节点值。
我试着阅读了the original paper,但我认为欣荣的论文"word2vec Parameter Learning Explained"有更详细的解释。
发布于 2016-06-01 04:52:36
通过使用神经网络的Autoencoding示例,可以很容易地理解主要概念。您训练神经网络,使其通过较小的中间层将信息从输入层传递到输出层。
在传统的自动编码器中,您有一个大小为N的输入向量,一个长度为M
在成功完成训练后,您将看到,将信息从输入层传输到输出层的神经网络进行了自我调整,以便每个输入单元在中间层具有对应的向量表示。
简化一点,在word2vec的上下文中,您的输入和输出向量的工作方式大致相同,只是在您提交给网络的示例中,输入层中打开的单元与输出层中打开的单元不同。
实际上,您是在训练网络,从语料库中挑选附近(不一定相邻)的单词对,并将它们提交给网络。
输入和输出向量的大小等于您提供给网络的词汇量的大小。
您的输入向量只打开了一个单元(对应于所选对中的第一个单词),输出向量打开了一个单元(对应于所选对中的第二个单词)。
发布于 2017-02-17 02:42:42
对于当前的读者来说,他们可能还想知道“单词向量到底意味着什么”,就像当时的OP一样:正如在http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf中所描述的那样,单词向量的维度是n,而n“是定义我们嵌入空间大小的任意大小”。也就是说,这个单词向量没有任何具体的含义。这只是这个词可能具有的某些特性的抽象表示,我们可以用它来区分单词。
实际上,为了直接回答“单词如何转换为向量表示”的原始问题,单词的向量嵌入的值在初始化时通常只是随机化的,并改进了逐次迭代。
这在深度学习/神经网络中很常见,在深度学习/神经网络中,自己创建网络的人通常不太了解这些值到底代表什么。网络本身被认为是通过学习逐渐弄清楚这些价值的。它们只是抽象地表示一些东西,并区分一些东西。AlphaGo就是一个例子,在这种情况下,DeepMind团队不可能解释向量中的每个值代表什么。它就是这样的。
https://stackoverflow.com/questions/32458269
复制相似问题