为什么skipgram模型比CBOW模型花费更多时间。我使用相同的参数(矢量大小和窗口大小)训练模型。
答案 0 :(得分:2)
skip-gram方法涉及更多计算。
具体来说,考虑一个“目标词”,其两侧的上下文窗口为4个字。
在CBOW中,所有8个邻近单词的向量被平均在一起,然后用作算法预测神经网络的输入。网络向前运行,并且检查其在预测目标字方面的成功。然后发生反向传播:所有神经网络连接值 - 包括8个贡献的单词向量 - 被轻推以使预测稍好一些。
但请注意,8字窗口和1字目标字只需要一个前向传播和一个后向传播,以及8个值的初始平均值和最终分布 - 8个向量误差校正是相对快速/简单的操作。
现在考虑改用skip-gram。依次将8个上下文窗口字中的每一个单独地作为输入提供给神经网络,向前检查目标字的预测程度,然后进行后向校正。虽然没有进行平均/分裂,但是神经网络操作的次数是原来的8倍。因此,更多的净计算和更多的运行时间。
请注意,额外的努力/时间可以通过提高最终评估的矢量质量来收回成本。是否以及在何种程度上取决于您的具体目标和语料库。