Word2Vec中的维度来自何处?

时间:2016-07-12 09:51:22

标签: nlp neural-network word2vec word-embedding

我使用word2vec模型训练神经网络并构建神经嵌入以在向量空间中找到相似的单词。但我的问题是关于单词和上下文嵌入(矩阵)中的维度,我们在训练开始时通过随机数(向量)对它们进行初始化,如https://iksinc.wordpress.com/2015/04/13/words-as-vectors/

假设我们想在图表上显示{book,paper,notebook,novel}字样,首先我们应该建立一个尺寸为4x2或4x3或4x4等的矩阵,我知道矩阵的第一个维度我们词汇量的大小| v |。但是矩阵的第二个维度(向量的维数),例如,这是一个单词“book" [0.3,0.01,0.04],这些数字是多少?他们有什么意义吗?例如,与“book"”之间的关系有关的0.3数字。和词汇中的“纸”,0.01是书与笔记本等的关系。 就像TF-IDF或Co-Occurence矩阵一样,每个维度(列)Y都有意义 - 它是与行X中的单词相关的单词或文档。

2 个答案:

答案 0 :(得分:1)

word2vec模型使用网络架构来表示输入字和最可能相关的输出字。

假设有一个隐藏层(如问题中链接的示例),引入的两个矩阵表示允许网络计算其映射输入向量的函数的内部表示的权重和偏差(例如“cat”)在链接的例子中)到输出向量(例如“爬”)。

网络的权重是输入和输出之间映射的子符号表示 - 任何单个权重都不一定代表任何有意义的东西。它是网络中所有单元之间的连接权重(即所有权重的交互),它产生了网络对功能映射的表示。这就是神经网络通常被称为“黑匣子”模型的原因 - 很难解释为什么他们做出特定的决定以及他们如何学习。因此,很难说出矢量[0.3,0.01,0.04]的确切含义。

传统上,网络权重初始化为随机值有两个主要原因:

  1. 它可以防止在训练开始之前向模型引入偏见
  2. 它允许网络在初始化后从搜索空间中的不同点开始(有助于减少局部最小值的影响)
  3. 网络的学习能力对其权重初始化的方式非常敏感。今天有更多高级的初始化权重的方法,例如this paper (see section: Weights initialization scaling coefficient)

    权重初始化的方式和隐藏层的维度通常被称为超参数,通常根据启发式和问题空间的先验知识来选择。

答案 1 :(得分:0)

我想知道同样的事情并放入一个像(1 0 0 0 0 0 ...)这样的矢量来查看它最接近的条件。答案是,返回的结果似乎并没有围绕任何特定的含义聚集,而只是随机的。这是使用在Google新闻上训练的Mikolov的300维向量。 查找向量空间的NNSE语义向量,其中各个维度似乎具有特定的人类可掌握的含义。