为什么 skipgram 模型比 CBOW 花费更多时间

Why does skipgram model take more time than CBOW

为什么 skipgram 模型比 CBOW 模型花费更多时间。我用相同的参数(矢量大小和 window 大小)训练模型。

skip-gram 方法涉及更多计算。

具体来说,考虑一个 'target word' 的上下文 - window 两侧各有 4 个词。

在 CBOW 中,所有 8 个相邻单词的向量一起平均,然后用作算法预测神经网络的输入。网络 运行 向前,并检查其预测目标词是否成功。然后反向传播发生:所有神经网络连接值——包括 8 个有贡献的词向量——被微调以使预测稍微好一些。

但是请注意,8-word-window 和 one-target-word 只需要一次前向传播和一次反向传播——以及初始的 8 个值的平均8 个向量上的最终纠错分布都是相对 quick/simple 操作。

现在考虑 skip-gram。 8 个 context-window 单词中的每一个单词依次单独作为神经网络的输入提供,前向检查目标单词的预测效果,然后进行后向校正。虽然 averaging/splitting 没有完成,但神经网络操作是原来的 8 倍。因此,更多的净计算和更多的 运行 时间。

请注意,额外的 effort/time 可能会通过提高最终评估的矢量质量来获得回报。是否以及在何种程度上取决于您的具体目标和语料库。