NLP之word2vec

80 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,点击查看活动详情

1 储备知识

1.1 语言模型

语言模型是计算一个句子是句子的概率的模型

1.2 语言模型的发展

基于专家知识的语法模型

语言学家企图总结出一套通用的语法规则,比如形容词后面接名词等。

统计语言模型

通过概率计算来刻画语言模型

P(s)= P(w1,w2 ..., Wn)=P(w1)P(w2|w1)P(w3|w1W2 ) ...P(wn|w1w2 ...wn-1)

平滑操作: 有一些词或者词组在语料中没有出现过,但是这不能代表它不可能存在。平滑操作就是给那些没有出现过的词或者词组也给一个比较小的概率。Laplace Smoothing也称为加1平滑:每个词在原来出现次数的基础上加1。

马尔科夫假设: 下一个词的出现仅依赖于前面的一个词或几个词

1.3 语言模型的评价指标

困惑度

image.png 句子概率越大,语言模型越好,困惑度越小。

2 对比模型

2.1 前馈神经网络语言模型NNLM

image.png

  • 根据前n-1个单词,预测第n个位置单词的概率
  • 优化模型,使得输出的正确的单词概率最大化

2.2 循环神经网络语言模型RNNLM

image.png

3 Word2vec

Log-linear model

定义(Log Linear Models):将语言模型的建立看成一个多分类问题,相当于线性分类器加上softmax。

Y = softmax(wx+b)

  • 语言模型基本思想:句子中下一个词的出现和前面的词是有关系的,所以可以使用前面的词预测下一个词。
  • Word2vec基本思想:句子中相近的词之间是有联系的,比如今天后面经常出现上午,下午和晚上。所以Word2vec的基本思想就是用词来预测词,skip-gram使用中心词预测周围词,cbow使用周围词预测中心词。

3.1 skip-gram

image.png

3.2 cbow

image.png

3.3 关键技术

Hierarchical Softmax

Negative Sampling

Subsampling of Frequent Words