Word2Vec是语言模型中的一种,它是从大量文本预料中以无监督方式学习语义知识的模型,被广泛地应用于自然语言处理中。
Word2Vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系。
首先用一个神经网络,将词映射一个向量(即分布式嵌入向量);然后将这个向量通过另一个神经网络(预测网络)生成一个词分布,使得这个生成的词分布与其对应的上下文分布尽可能的一致。由于分布式嵌入向量通过预测网络可以近似表达词的上下文分布,因此,我们认为分布式嵌入向量包含课词的上下文信息,进而也就可以作为词语义的一种合理的表达。
目前Word2Vec有两种最常见的算法,分别是CBOM(Continuous Bag-of-Words)算法和Skip-Gram算法。这两个算法互为镜像,理解了其中一个算法,以外一个算法也就非常容易理解。
Skip-Gram:将当前词作为输入,其对应的上下文最为输出,训练神经网络。训练的目标是网络的输出(即预测的上下文)与其实际的上下文越接近越好。
CBOM:在训练时,对于每一个词,他以该词的上下文最为输入,而将该词最为输出,即用词的上下文来预测该词。
目标函数定义如下:
如上图所示,Skip-gram model是通过输入一个词去预测多个词的概率。输入层到隐藏层的原理和simple CBOW一样,不同的是隐藏层到输出层,损失函数变成了C个词损失函数的总和,权重矩阵W′还是共享的。
参考资料:
【1】《深度学习模型及应用详解》