机器学习 - Word2Vec 中的维度从何而来



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

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

word2vec 模型使用网络架构来表示输入单词和最有可能关联的输出单词。

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

网络的权重是输入和输出之间映射的子符号表示 - 任何单个权重本身并不一定代表任何有意义的东西。正是网络中所有单元之间的连接权重(即所有权重的交互)导致了网络对函数映射的表示。这就是为什么神经网络通常被称为"黑匣子"模型的原因——很难解释它们为什么做出特定的决定以及它们是如何学习的。因此,很难说向量 [0.3,0.01,0.04] 到底代表什么。

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

  1. 它可以防止在训练开始之前将偏差引入模型
  2. 它允许网络在初始化后从搜索空间中的不同点开始(有助于减少局部最小值的影响)

网络的学习能力对其权重的初始化方式非常敏感。今天有更高级的权重初始化方法,例如本文(参见:权重初始化缩放系数部分)。

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

我想知道同样的事情,并放入一个像(1 0 0 0 0 0...)这样的向量,看看它最接近什么术语。答案是,返回的结果似乎并没有围绕任何特定的含义聚集,而只是随机的。这是使用在谷歌新闻上训练的米科洛夫的300维向量。查找 NNSE 语义向量以查找向量空间,其中各个维度似乎确实具有特定的人类可理解的含义。

最新更新