Word2vec词向量
词向量(word embedding):
用一个向量表示一个词,机器学习任务需要把任何输入量化成数值表示(稠密向量DenseVector),然后通过充分利用计算机的计算能力,计算得到最终的结果,词向量的一种表达形式为one-hot
CBOW(continuous bag of words)和skip-gram
这是word2vec的两种模式,CBOW是根据目标单词所在的原始语句的上下文来推测目标单词本身,而skip-gram则是利用该目标单词推测原始语句信息也就是上下文
词向量的获取方法
基于奇异值分解的方法:
- 单词-文档矩阵
基于的假设:
相关词往往出现在同一文档中,例如,banks和bonds,stocks,money 更相关常
出现在一篇文档中,而banks 和octous,banana,hockey 不太可能同时出现在一起,
因此可以建立词和文档的矩阵,通过对此矩阵做奇异值分解,可以获取词的向量表示. - 单词-单词矩阵
基于的假设:
一个词的含义由上下文信息决定,那么两个词之间的上下文相似,是否可推测二者
非常相似.设定上下文窗口,统计建立词和词之间的共现矩阵,通过对矩阵做奇异值分解获得词向量
基于迭代的方法:
目前基于迭代的方法获取词向量大多是基于语言模型的训练得到的,对于一个合理的句子,希望语言模型能够给予一个较大的概率,同理,对于一个不合理的句子,给予较小的概率评估,具体的形式化表示如下:
第一个公式:一元语言模型,假设当前词的概率只和自己有关;
第二个公式: 二元语言模型,假设当前词的概率和前一个词有关.那么问题来了,如何从语料库中学习给定上下文预测当前词的概率值呢?
就是使用我们上面说的两种模式:CBOW与skip-gram