从word2vec到node2vec
word2vec 1. 什么是word2vec 在自然语言处理任务(NLP)中,最细粒度是词语,所以处理NLP问题,首先要处理好词语。 由于所有自然语言中的词语,都是人类的抽象总结,是符号形式的。而对于数学模型,如果要建立词语到词性关系的映射,必须使用数值形式的输入。因此,需要把他们都嵌入到一个数学空间中,就叫词嵌入(word embedding),而word2vec就是词嵌入的一种。 大部分有监督机器学习模型都可以归结为: f(x) -> y 在NLP中,把x看作一个句子里的一个词语,y是这个词语的上下文词语,那么这里的f,便是NLP中经常出现的『语言模型』(language model)。这个模型的目的,便是判断(x,y)这个样本是否符合自然语言的法则。 word2vec便是来源于这种思想,但是它最终的目的不在于把f训练的完美,而是关心模型输出的模型参数,是否能够完整地向量化整个句子。 2. Skip-gram和CBOW模型 对于上面提到的语言模型 如果是用一个词语作为输入,预测其上下文,这个模型叫做『Skip-gram』模型。 如果是拿一个词语的上下文作为输入,预测这个词语本身,则是『CBOW』模型。 2.1. Skip-gram和CBOW的简单情形 一个例子。y是x的上下文,当y只取上下文中的一个词语时,语言模型变成: 用当前词x预测它的下一个词y