0
点赞
收藏
分享

微信扫一扫

Language Model语言模型

Language Model
LM是一个概率分布模型,对于语言里的每一个字符串S给出一个对应的概率 P ( S ) P(S) P(S),其计算过程:
P ( S ) P(S) P(S)= P ( w 1 w 2 . . . w n ) P(w_1w_2...w_n) P(w1w2...wn) = P ( w n ∣ w 1 w 2 . . . w n − 1 ) P(w_n|w_1w_2...w_{n-1}) P(wnw1w2...wn1) P ( w 1 w 2 . . . w n − 1 ) P(w_1w_2...w_{n-1}) P(w1w2...wn1)= P ( w 1 ) ∏ i = 2 n P ( w i ∣ w 1 . . . w i − 1 ) P(w_1)\prod_{i=2}^nP(w_i|w_1...w_{i-1}) P(w1)i=2nP(wiw1...wi1)
由公式知,这是一个典型的联合概率求解问题,利用RNN实现文本生成,也是一样的原理,利用贝叶斯公式,给定前面的词,求出后面一个词的条件概率。
对于LM的求解,有两种处理方法,N-gram语言模型和神经网络概率语言模型。
N-gram模型:基于马尔科夫假设(任意一个词的出现概率只与它前面出现的有限个N个词相关),基于这个假设的统计语言模型叫n-gram。
对于n的取值,理论上越大越好,但随着n的增大,效果并不一定越好,因为n越大,参数量会越大,区别性增加,但单个参数的影响会减少,从而影响其鲁棒性。常见有n=1.n=2,n=3,自由参数量是词典的^n。
实际求解中,是利用词频计算n-gram中的条件概率:
P ( w i ∣ w i − n − 1 , . . . , w i − 1 ) P(w_i|wi-{n-1},...,w_{i-1}) P(wiwin1,...,wi1) = c o u n t ( w i − ( n − 1 ) , . . . , w i − 1 ) c o u n t ( w i − n − 1 , . . . , w i − 1 ) \frac{count(w_{i-(n-1)},...,w_{i-1})}{count(w_{i-{n-1}},...,w_{i-1})} count(win1,...,wi1)count(wi(n1),...,wi1)
比如:小王今天很努力,分词后【小王,今天,很,努力】,产生的概率为 P ( 小 王 , 今 天 , 很 , 努 力 ) P(小王,今天,很,努力) P()= P ( 小 王 ) × P ( 今 天 ∣ 小 王 ) × P ( 很 ∣ 小 王 , 今 天 ) × P ( 努 力 ∣ 小 王 , 今 天 , 很 ) P(小王)\times P(今天|小王)\times P(很|小王,今天) \times P(努力|小王,今天,很) P()×P()×P()×P(),计算变很复杂,但如果n=2,就简化成了 P ( 今 天 ∣ 我 ) P ( 很 ∣ 今 天 ) P ( 努 力 ∣ 今 天 ) P(今天|我) P(很|今天)P(努力|今天) P()P()P()
神经网络概率语言模型
神经语言模型使用连续表示或词汇Embedding来进行预测。 以神经网络为基础来训练模型。
在这里插入图片描述

举报

相关推荐

0 条评论