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

时间:2018-01-18 23:30:17

标签: word2vec word-embedding

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

1 个答案:

答案 0 :(得分:2)

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

具体来说,考虑一个“目标词”,其两侧的上下文窗口为4个字。

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

但请注意,8字窗口和1字目标字只需要一个前向传播和一个后向传播,以及8个值的初始平均值和最终分布 - 8个向量误差校正是相对快速/简单的操作。

现在考虑改用skip-gram。依次将8个上下文窗口字中的每一个单独地作为输入提供给神经网络,向前检查目标字的预测程度,然后进行后向校正。虽然没有进行平均/分裂,但是神经网络操作的次数是原来的8倍。因此,更多的净计算和更多的运行时间。

请注意,额外的努力/时间可以通过提高最终评估的矢量质量来收回成本。是否以及在何种程度上取决于您的具体目标和语料库。