> 文档中心 > 语言模型简介

语言模型简介


1.语言模型简介:

统计语言模型是指单词序列的概率分布,假设有一个句子,长度为m,那么整个句子的概率为 p(w1,...,wn) p ( w 1 , . . . , w n )p(w_1,...,w_n),利用语言模型,可以确定哪个词序列的可能性更大,或者给定若干个词,可以预测下一个最可能出现的词语。

假设给定句子:

s=w1,w2,..,wk s = w 1 , w 2 , . . , w k s=w_1,w_2,..,w_k

它的概率可以表示为:

p(s)=p(w1,...,wk)=p(w1)p(w2|w1)...p(wk|w1,w2,...,wk1) p ( s ) = p ( w 1 , . . . , w k ) = p ( w 1 ) p ( w 2 | w 1 ) . . . p ( w k | w 1 , w 2 , . . . , w k − 1 )p(s)=p(w_1,...,w_k)=p(w_1)p(w_2|w_1)...p(w_k|w_1,w_2,...,w_{k-1})

常见的方法有n-gram模型方法、决策树方法、最大熵模型方法、最大熵马尔科夫模型方法、条件随机域方法、神经网络方法。

2.Unigram model

该模型将上下文中不同词语的单独分开,概率上相互独立,

例如,在unigram model中, p(t1t2t3)=p(t1)p(t2|t1)p(t3|t1t2) p ( t 1 t 2 t 3 ) = p ( t 1 ) p ( t 2 | t 1 ) p ( t 3 | t 1 t 2 )p(t_1t_2t_3)=p(t_1)p(t_2|t_1)p(t_3|t_1t_2)可以表示为. p(t1t2t3)=p(t1)p(t2)p(t3) p ( t 1 t 2 t 3 ) = p ( t 1 ) p ( t 2 ) p ( t 3 )p(t_1t_2t_3)=p(t_1)p(t_2)p(t_3)

在这个模型中,每个单词的概率只取决于该单词在文档中的概率。

3.n-gram models

在n-gram models中,句子 p(w1,...,wn) p ( w 1 , . . . , w n )p(w_1,...,w_n)的概率可以表示为:

p(w1,...,wn)=mi=1p(wi|w1,w2,...,wi1)mi=1p(wi|wi(n1),...,wi1) p ( w 1 , . . . , w n ) = ∏ i = 1 m p ( w i | w 1 , w 2 , . . . , w i − 1 ) ≃ ∏ i = 1 m p ( w i | w i − ( n − 1 ) , . . . , w i − 1 )p(w_1,...,w_n)=\prod_{i=1}^m p(w_i|w_1,w_2,...,w_{i-1})\simeq\prod_{i=1}^m p(w_i|w_{i-(n-1)},...,w_{i-1})

该式可以简化计算为:

mi=1p(wi|wi(n1),...,wi1)=count(wi(n1),...,wi1,wi)count(wi(n1),...,wi1) ∏ i = 1 m p ( w i | w i − ( n − 1 ) , . . . , w i − 1 ) = c o u n t ( w i − ( n − 1 ) , . . . , w i − 1 , w i ) c o u n t ( w i − ( n − 1 ) , . . . , w i − 1 ) \prod_{i=1}^m p(w_i|w_{i-(n-1)},...,w_{i-1})=\frac{count(w_{i-(n-1)},...,w_{i-1},w_i)}{count(w_{i-(n-1)},...,w_{i-1})}

bigram 和 trigram model 是n-gram model 中的n=2和n=3时。

4.Exponential language models

最大熵语言模型使用特征函数对单词和n-gram之间的关系进行表示。

p(w1,...,wm)=1Z(w1,...,wm1)exp(aTf(w1,...,wm)) p ( w 1 , . . . , w m ) = 1 Z ( w 1 , . . . , w m − 1 ) e x p ( a T f ( w 1 , . . . , w m ) )p(w_1,...,w_m)=\frac{1}{Z(w_1,...,w_{m-1})}exp(a^Tf(w_1,...,w_m))
其中f是特征函数,Z是partition function。a为参数向量。

5.Neural language models

神经语言模型使用连续表示或词向量来做出他们的预测。 主要使用神经网络。

通常,神经网络语言模型被构造和训练为概率分类器,其学习预测概率分布:

. P(wt|context)tV P ( w t | c o n t e x t ) ∀ t ∈ VP(w_t|context) \forall t \in V

模型在词表上被训练预测概率分布,主要通过上下文来预测当前词的概率,例如,

p(wt|wtk,..,wt1,wt+1,..,wt+k) p ( w t | w t − k , . . , w t − 1 , w t + 1 , . . , w t + k )p(w_t | w_{t-k},..,w_{t-1},w_{t+1},..,w_{t+k})
或者是通过一个词预测上下文的概率:
. k<j1,j<=klogP(wt+j|wt) ∑ − k < j − 1 , j <= k l o g P ( w t + j | w t )\sum_{-k<j-1,j<=k} logP(w_{t+j} | w_t)

素描网