语言模型(LM,language Model)
由来
在做机器翻译的过程中,如下图,假设需要翻译“今晚的课程真有意思”,首先先进行分词(今晚|的|课程|有意思)然后依次翻译成英文(Tonight|of|the course|interesting),然后将这些单词进行排列组合,总共会有 4 ! 4! 4!个结果,然后利用语言模型(LM,language Model)来计算这 4 ! 4! 4!个句子的概率,然后选择概率醉最大的一句话进行输出。
1.Chain rule以及马尔科夫假设
1.1Chain rule
预备知识: P ( A B ) = P ( A ∣ B ) ⋅ P ( B ) = P ( B ∣ A ) ⋅ P ( A ) P(AB)=P(A|B) \cdot P(B)=P(B|A) \cdot P(A) P(AB)=P(A∣B)⋅P(B)=P(B∣A)⋅P(A)
Chain rule:
P ( A B C D ) = P ( A ) ⋅ P ( B ∣ A ) ⋅ P ( C ∣ A B ) ⋅ P ( D ∣ A B C ) = P ( A B ) ⋅ P ( C ∣ A B ) ⋅ P ( D ∣ A B C ) = P ( A B C D ) \begin{aligned} {P(ABCD)}&=P(A) \cdot P(B | A) \cdot P(C | AB) \cdot P(D | ABC) \\ &=P(AB) \cdot P(C | AB) \cdot P(D | ABC) \\ &=P(ABCD) \end{aligned} P(ABCD)=P(A)⋅P(B∣A)⋅P(C∣AB)⋅P(D∣ABC)=P(AB)⋅P(C∣AB)⋅P(D∣ABC)=P(ABCD)
同理,
P ( w 1 w 2 ⋯ w n ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋯ P ( w n ∣ w 1 w 2 ⋯ w n − 1 ) P(w_{1}w_{2}\cdots w_{n})=P(w_{1}) \cdot P(w_{2} | w_{1}) \cdots P(w_{n} | w_{1}w_{2}\cdots w_{n-1}) P(w1w2⋯wn)=P(w1)⋅P(w2∣w1)⋯P(wn∣w1w2⋯wn−1)
语言模型中的Chain rule:
P ( 今 天 , 是 , 春 节 ) = P ( 今 天 ) ⋅ P ( 是 ∣ 今 天 ) ⋅ P ( 春 节 ∣ 今 天 , 是 ) P(今天,是,春节)=P(今天) \cdot P(是 | 今天) \cdot P(春节 | 今天,是) P(今天,是,春节)=P(今天)⋅P(是∣今天)⋅P(春节∣今天,是)
如下图所示,P(休息|今天,是,春节,我们,都) 这个概率在文章中可能出现的概率是1/2,而P(运动|今天,是,春节,) 在文章中出现的概率却是0,因此对于那些很长的句子来说,其出现的概率就大概率为0,从而引出了马尔科夫假设。
马尔科夫假设:
一阶:
P ( w 1 w 2 w 3 w 4 ⋯ w n ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) ⋅ P ( w 3