参数估计
参数估计
完美的语言模型 对于词序列W=w1,w2,Wn 如何计算p(W)? 根据链式规则: p(W=p(wp(w2lW1.p(wlwi,,wn-d 即使对于很小的n,上面的理想公式也 很难计算,因为参数太多
完美的语言模型 • 对于词序列W=w1 ,w2 ,…,wn • 如何计算p(W)? • 根据链式规则: p(W)=p(w1 )p(w2 |w1 )…p(wn |w1 ,…,wn-1 ) • 即使对于很小的n,上面的理想公式也 很难计算,因为参数太多
马尔科夫链 有限的记忆能力 不考虑太“老”的历史 只记住前k个词W…,Wk 称为k阶马尔科夫近似 p(W)=∏1=1.(ww:k,W1),d=W
马尔科夫链 • 有限的记忆能力 – 不考虑太“老”的历史 – 只记住前k个词w1 ,…,wk – 称为k阶马尔科夫近似 • p(W)=∏i=1…dp(wi |wi-k ,…,wi-1 ), d=|W|
N元语言模型 n-1阶马尔科夫近似称为n元语言模型(LM, Language Model) p(Wl dp(wilwin+l.,Wid), d=W n越大,需要估计的参数越多,假设词汇量为20,000 模型 需要的参数数量 0阶(一元 Unigram) 20,000 1阶(二元 bigram) 20.000*19999=400 million 2阶(三元 trigram) 20.0002*19999=8 trillion 3阶(四元 four-gram) 20.0003*19999=1.6*1017
N元语言模型 • n-1阶马尔科夫近似称为n元语言模型(LM, Language Model) – p(W)=∏i=1…dp(wi |wi-n+1,…,wi-1 ), d=|W| • n越大,需要估计的参数越多,假设词汇量为20,000 模型 需要的参数数量 0阶(一元Unigram) 20,000 1阶(二元bigram) 20,000*19,999 = 400 million 2阶(三元trigram) 20,0002*19,999 = 8 trillion 3阶(四元four-gram) 20,0003*19,999 = 1.6*1017
语言模型的讨论 n多大? 理论上讲,越大越好 经验值:3, trigram用的最多 four-gram需要太多的参数,很难估计了 目前一般直接计算词形,不进行语言学处理, 如形态还原等 可靠性( Reliability)和可区别性( Discrimination 成反比,需要折中 n越大,区别力越大;n越小,可靠性越高
语言模型的讨论 • n多大? – 理论上讲,越大越好 – 经验值:3,trigram用的最多 • four-gram需要太多的参数,很难估计了 • 目前一般直接计算词形,不进行语言学处理, 如形态还原等 • 可靠性(Reliability)和可区别性(Discrimination) 成反比,需要折中 – n越大,区别力越大;n越小,可靠性越高