NLP底层技术之语言模型

  本文结合cs224n:Natural Language Processing with Deep Learning的Lecture 8、Lecture 9内容,从语言模型(Language Model)讲到N-Gram LM(N-Gram Language Model)再到RNN-LM(RNN-Language Model)。

Language Model  

  关于语言模型有两种说法,一种认为语言模型是计算某个句子概率的模型(A language model computes a probability for a sequence of words: p(w1,w2,w3...wn)) p ( w 1 , w 2 , w 3 . . . w n ) ) ,概率计算一般基于马尔科夫假设。
  在cs224课程中,语言模型被认为是用来预测下一个单词。
  这里写图片描述
  就笔者看来,这两种说法也具有统一性,因为: 

p(w1,w2,w3...wn)=p(w1)p(w2|w1)p(w3|w2,w1)...p(wn|w1,w2,w3,..,wn) p ( w 1 , w 2 , w 3 . . . w n ) = p ( w 1 ) p ( w 2 | w 1 ) p ( w 3 | w 2 , w 1 ) . . . p ( w n | w 1 , w 2 , w 3 , . . , w n )
在计算整个句子的概率的时候,也需具体到 p(wn|w1,w2,w3,..,wn) p ( w n | w 1 , w 2 , w 3 , . . , w n ) 的计算,这时就是在整个词表中用来预测下一个单词的概率。
 日常生活中,我们在如输入法和搜索引擎中,都用到了语言模型。语言模型也作为自然语言理解的基础任务。
   这里写图片描述 

N-Gram Language Model

这里写图片描述
N-gram存在的问题
1. Sparsity Problem(稀疏性问题)——可通过数据平滑技术如线性插值、Discounting Methods或者back-off方法解决:
这里写图片描述
2. Gigantic RAM requirement(参数空间过大),随着n的增大,存储空间需求也变大。
这里写图片描述

RNN Language Model

  利用RNN对序列建模,复用不同时刻的线性非线性单元和权值。理论上之前所有的单词都会影响到当前的值。
  所需内存只与序列长度有关。
  这里写图片描述
  x(t) is the word vector at the t time step. h(0) is some initialization vector at time step 0. The size of the output y(t) is |V|,which is the length of the vocabulary(整个词表|V|上的概率分布)。
  这里写图片描述
  RNN语言模型的损失函数
  平均所有时刻上的损失,每个时刻的损失通过交叉熵损失函数定义。
  这里写图片描述
  这里写图片描述

Perplexity

  使用交叉熵损失函数定义困惑度,越小越好。
  这里写图片描述
  RNN-LM的优缺点如下,其中RNN难以获取很多时间步之前的信息源自于RNN中的梯度弥散(gradient vanishing),将会在下一篇博客中介绍。
  这里写图片描述

Smoothing

Linear interpolation

  这里线性插值(Linear interpolation)通过trigram model介绍,trigram、bigram和unigram的最大似然估计如下:
   qML(w|u,v)=c(w,u,v)c(u,v) q M L ( w | u , v ) = c ( w , u , v ) c ( u , v )
   qML(w|v)=c(w,v)c(v) q M L ( w | v ) = c ( w , v ) c ( v )
   qML(w)=c(w)c() q M L ( w ) = c ( w ) c ( )
  对上述符号进行介绍, c(w) c ( w ) 表示在训练语料库中单词w出现的次数, c() c ( ) 表示训练语料库中单词出现的所有次数。
  其中trigram、bigram和unigram都有不同的优缺点,unigram不会遇到分子或者分母为零的情况,但是unigram估计完全忽略了上下文信息,因而抛弃了有用的信息,而trigram则会遇到分子或者分母为0的情况,bigram在这两种极端情况之间。
  
  线性插值则是利用这三种估计,通过定义trigram:
   qML(w|u,v)=λ1qML(w|u,v)+λ2qML(w|v)+λ3qML(w) q M L ( w | u , v ) = λ 1 q M L ( w | u , v ) + λ 2 q M L ( w | v ) + λ 3 q M L ( w )
  其中 λ1 λ 1 λ2 λ 2 λ3 λ 3 是三个参数,且满足:
   λ10 λ 1 ≥ 0 λ20 λ 2 ≥ 0 λ30 λ 3 ≥ 0
   λ1+λ2+λ3=1 λ 1 + λ 2 + λ 3 = 1
  因此是对这三种估计的加权平均。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值