vis*_*ish 2 word2vec word-embedding
为什么skipgram模型比CBOW模型花费更多的时间。我用相同的参数(向量大小和窗口大小)训练模型。
skip-gram 方法涉及更多的计算。
具体来说,考虑一个单一的“目标词”,每侧有 4 个词的上下文窗口。
在 CBOW 中,所有 8 个邻近词的向量被平均在一起,然后用作算法预测神经网络的输入。网络向前运行,并检查其预测目标词的成功性。然后反向传播发生:所有神经网络连接值——包括 8 个有贡献的词向量——都被轻推以使预测稍微好一点。
但是请注意,8 字窗口和一个目标字只需要一次前向传播和一次向后传播——以及 8 个值的初始平均和最终的纠错分布-over-8-vectors 每个都是相对快速/简单的操作。
现在考虑代替skip-gram。8 个上下文窗口词中的每一个都作为输入单独提供给神经网络,前向检查目标词的预测效果,然后进行后向校正。虽然平均/分裂没有完成,但神经网络操作的数量是其 8 倍。因此,需要更多的净计算和更多的运行时间。
请注意,通过提高最终评估的矢量质量,额外的努力/时间可能会得到回报。是否以及在多大程度上取决于您的特定目标和语料库。