论文|万物皆可Vector之语言模型:从N-Gram到NNLMRNNLM

Posted 搜索与推荐Wiki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文|万物皆可Vector之语言模型:从N-Gram到NNLMRNNLM相关的知识,希望对你有一定的参考价值。

Word2vec的出现改变了OneHot的高维稀疏的困境,自此之后各种xxx2vec如雨后春笋般冒了出来,用来解决各种嵌入式编码,包括后来的各种Embedding方式其实很多本质上都是Word2vec的延伸和优化。在本公众号「搜索与推荐Wiki」上也发布了不少Embedding相关的文章,后续也会持续的发布相关文章,欢迎关注。

万物皆可Embedding系列会结合论文和实践经验进行介绍,前期主要集中在论文中,后期会加入实践经验和案例,目前已更新:

后续会持续更新Embedding相关的文章,欢迎持续关注「搜索与推荐Wiki


1.1、基础知识

a)定义

语言模型(Language model)是自然语言处理的重要技术,自然语言处理中最常见的是文本数据,我们可以把一段自然语言文本看作是一段离散的时间序列,假设一段长度为 T T T的文本中的词依次是 w 1 , w 2 , . . . , w T w_1, w_2, ..., w_T w1,w2,...,wT,语言模型就是计算他的概率:
P ( w 1 , w 2 , . . . , w T ) P(w_1, w_2,..., w_T) P(w1,w2,...,wT)
也就是说语言模型是对语句的概率分布的建模。

语言模型可以分为:统计语言模型和神经网络语言模型。

b)概率表示

假设 S S S 表示一个有意义的句子,eg:今天天气晴朗,适合户外爬山,可以将这个句子表示为: S = w 1 , w 2 , . . . , w n S = w_1, w_2, ..., w_n S=w1,w2,...,wn,换成例子中的句子: w 1 = 今 天 , w 2 = 天 气 , w 3 = 晴 朗 , w 4 = 适 合 , w 5 = 户 外 , w 6 = 爬 山 w_1=今天, w_2=天气, w_3=晴朗, w_4=适合, w_5=户外, w_6=爬山 w1=,w2=,w3=,w4=,w5=,w6=

P ( S ) P(S) P(S) 表示这个句子出现的概率,展开为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) P(S)=P(w_1, w_2, ..., w_n) P(S)=P(w1,w2,...,wn)
利用条件概率可以转化为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) . . . P ( w n ∣ w 1 , w 2 , . . . , w n − 1 ) P(S) = P(w_1, w_2, ..., w_n) = P(w_1) P(w_2|w_1)P(w_3|w_1,w_2) ... P(w_n|w_1, w_2,...,w_n-1) P(S)=P(w1,w2,...,wn)=P(w1)P(w2w1)P(w3w1,w2)...P(wnw1,w2,...,wn1)
其中 P ( w 1 ) P(w_1) P(w1) 表示第一个词出现的概率,即「今天」在整个语料库中出现的概率, P ( w 2 ∣ w 1 ) P(w_2|w_1) P(w2w1) 表示在给定第一个词的情况下,第二个词出现的概率,即在整个语料库中给定「今天」这个词,「天气」这个词也出现的概率,后边的依次类推。

其中的 P ( w 1 ) P(w_1) P(w1) P ( w 2 ∣ w 1 ) P(w_2|w_1) P(w2w1)很容易计算得到,但是 P ( w 3 ∣ w 1 , w 2 ) P(w_3|w_1,w_2) P(w3w1,w2)及以后涉及变量较多,计算的复杂度也会变得更加复杂。

1.2、统计语言模型——N-gram模型

a)马尔可夫假设

为了解决上面的过于复杂难以计算的问题,需要引入马尔可夫假设,马尔科夫假设中很重要的一点是有限视野假设,即每一个状态只与它前面的 n − 1 n-1 n1个状态有关,这被称为 n n n 阶马尔可夫链

b)n-gram

当应用在语言模型中时,就是指每一个词的概率只与前边的 n − 1 n-1 n1 个词有关系,这就被称为 n n n 元语言模型,当 n = 2 n=2 n=2 时,被称为二元模型,此时上述公式展开为:
P ( S ) = P ( w 1 , w 2 , . . . , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 2 ) . . . P ( w n ∣ n 1 ) P(S) = P(w_1, w_2, ..., w_n) = P(w_1) P(w_2|w_1)P(w_3|w_2)...P(w_n|n_1) P(S)=P(w1,w2,...,wn)=P(w1)P(w2w1)P(w3w2)...P(wnn1)
经过马尔可夫假设的简化,计算 P ( S ) P(S) P(S)的概率也会变得容易很多,当然随着 n n n的增加,相应的计算复杂度也会增加,而 n n n 越大,越逼近数据的真实分布, n n n 通常取值为2、3、4、5。

c)概率估计

通过上面的描述,可以明确的是:

  • 每一个句子都可以拆分成不同的词的全排列
  • 每一个句子都可以通过条件概率公式计算得到一个表示该句子的合理性概率
  • 通过引入马尔可夫假设,简化句子的计算概率

以二元模型为例,如何计算 P ( w i ∣ w i − 1 ) P(w_i|w_i-1) P(wiwi1)?从概率统计中可知:
P ( w i

以上是关于论文|万物皆可Vector之语言模型:从N-Gram到NNLMRNNLM的主要内容,如果未能解决你的问题,请参考以下文章

论文|万物皆可Vector之Word2vec:2个模型2个优化及实战使用

论文|DeepWalk的算法原理代码实现和应用说明

论文|DeepWalk的算法原理代码实现和应用说明

论文|DeepWalk的算法原理代码实现和应用说明

论文|Doc2vec的算法原理代码实现及应用启发

论文|Doc2vec的算法原理代码实现及应用启发