前馈神经网络语言模型-计算复杂性(word2vec)



我正在阅读这篇关于word2vec的论文,并对前馈NNLM进行了以下描述:

它由输入层、投影层、隐藏层和输出层组成。在输入层,使用1-of-V编码对N个先前单词进行编码,其中V是词汇表的大小。然后,使用共享投影矩阵将输入层投影到维度为N×D的投影层P。由于在任何给定时间只有N个输入是活动的,所以投影层的组成是相对便宜的操作。

以下表达式用于每个训练示例的计算复杂性:

Q=N×D+N×D×H+H×V。

最后两个术语对我来说很有意义:N×D×H大致是从N×D二向投射层到H隐藏神经元的致密层中的参数数量,类似于H×V。然而,我预计第一项是V×D,因为从一个热编码字到D维向量的映射是通过V×D维矩阵完成的。我在阅读了这篇参考论文和这篇SO文章后得出了这个结论,其中更详细地解释了投影层的工作原理。

也许我误解了";训练复杂性";。

如果我正确理解了这个摘录,它就是N x D,因为N之前的单词都被考虑在内了,所以你不能只测试一个单词,也不能测试所有单词(V(。相反,您的输入由N个单词组成。因此N x D是该层的复杂性

最新更新