我目前正在尝试理解 word2vec 神经网络学习算法背后的架构,用于根据语境将词语表示为向量。
阅读Tomas Mikolov paper后,我发现他定义为投影图层。虽然这个术语在被引用到 word2vec 时被广泛使用,但我无法找到它在神经网络环境中的实际定义的精确定义。
我的问题是,在神经网络环境中,什么是投影层?它是隐藏图层的名称,它与以前节点的链接共享相同的权重吗?它的单位实际上是否具有某种激活功能?
另一个更广泛地引用该问题的资源可以在this tutorial中找到,它也引用了第67页的投影层。
答案 0 :(得分:19)
投影层将n-gram上下文的离散单词索引映射到连续向量空间。
正如本thesis
所述共享投影层,使得对于多次包含相同单词的上下文,应用相同的权重集合以形成投影矢量的每个部分。 该组织有效地增加了可用于训练投影层权重的数据量,因为每个上下文训练模式的每个单独地贡献对权重值的改变。
该图显示了如何通过从投影图层权重矩阵中复制列来有效组装投影图层的输出的简单拓扑。
现在,隐藏层:
隐藏层处理投影图层的输出,也使用a创建 拓扑配置文件中指定的神经元数量。
编辑:对图表中发生的事情的解释
投影层中的每个神经元由等于词汇量大小的多个权重表示。通过不使用非线性激活函数,投影层与隐藏层和输出层不同。其目的仅仅是提供一种有效的方法,将给定的n-gram上下文投影到减小的连续矢量空间上,以便通过训练分类这些矢量的隐藏和输出层进行后续处理。给定输入向量元素的一或零性质,具有索引i的特定单词的输出仅是训练的投影层权重矩阵的第i列(其中矩阵的每一行表示单个神经元的权重) )。
答案 1 :(得分:4)
continuous bag of words
用于预测给定其先前和未来条目的单个单词:因此它是一个上下文结果。
输入是来自先前和未来条目的计算权重:并且所有输入都具有相同的新权重:因此该模型的复杂性/特征计数比许多其他NN体系结构小得多。
RE:what is the projection layer
:来自你引用的论文
去除非线性隐藏层并且投影层是 共享所有单词(不仅仅是投影矩阵);所以,所有的话 被投射到相同的位置(他们的向量被平均)。
因此,投影图层是一组shared weights
,并且未指示激活函数。
请注意输入和投影图层之间的权重矩阵 以与NNLM相同的方式共享所有单词位置
所以hidden layer
实际上是由这一组共享权重表示的 - 正如你所说的那样,所有输入节点都是相同的。
答案 2 :(得分:2)
我在这里找到先前的答案有点复杂-投影层只是简单的矩阵乘法,或者在NN的上下文中是规则/密集/线性层,最后没有非线性激活(Sigmoid /想法是将(例如)100K维离散向量投影到600维连续向量中(我在这里随机选择数字,“您的里程可能会有所不同”) 。通过训练过程可以了解确切的矩阵参数。
之前/之后发生的事情已经取决于模型和上下文,而不是OP要求的。
(在practice中,您甚至不用担心矩阵乘法(因为您要乘以1-hot向量,其中单词索引为1,其他所有地方为0),并将训练后的矩阵视为监视表(即,语料库中的第6257个字=投影矩阵中的第6257行)。