文章目录
n-gram LM
语言模型是生成模型,是一个泛泛的概念,通俗来讲,就是给定一句话的前半部分,预测生成剩余的部分。这里主要介绍一个简单的LM方法,n-gram。
任务描述
输入一个句子的开头单词:比如 I;
输出最有可能生成的完整的句子,比如:I love NLP.
假设S代表了整个句子,包含单词W1,W2,…,则我们的目标是逐个单词生成句子,使得最后的句子的概率P(S)最大。根据极大似然估计:
max P ( S ) = max P ( W 1 , W 2 , . . . , W N ) = max P ( W 1 ) P ( W 2 ∣ W 1 ) P ( W 3 ∣ W 1 , W 2 ) . . . P ( W N ∣ W 1 , . . . , W N − 1 ) \max P(S) = \max P(W_1,W_2,...,W_N)= \max P(W_1)P(W_2|W_1)P(W_3|W_1,W_2)...P(W_N|W_1,...,W_{N-1}) maxP(S)=maxP(W1,W2,...,WN)=maxP(W1)P(W2∣W1)P(W3∣W1,W2)...P(WN∣W1,...,WN−1)
模型结构
n-gram模型假设当前生成的单词只与其前面的n-1个单词有关,即:
Bigram/2-gram: P ( W 1 , W 2 , . . . , W N ) = ∏ i = 2 N P ( W i ∣ W i − 1 ) \text{Bigram/2-gram: } P(W_1,W_2,...,W_N) = \prod_{i=2}^N P(W_i|W_{i-1}) Bigram/2-gram: P(W1,W2,...,W