语言模型的评估指标-Perplexity

前言

语言模型是什么呢?
标准定义:对于语言序列 w 1 , w 2 , . . . , w n w_1,w_2,...,w_n w1,w2,...,wn,语言模型就是计算该序列的概率,即 P ( w 1 , w 2 , . . . , w n ) P(w_1, w_2,...,w_n) P(w1,w2,...,wn)
通俗解释:判断一句话是不是我们正常说的话,即是不是人话。如P(我,打,篮球)>P(篮球,打,我)。
那么怎样评估语言模型好坏呢?这里介绍一个评估指标:perplexity(困惑度)
由于网上有很多对perplexity的解释,这里就不做重复,只是从应用的角度来说说perplexity。
这里推荐一个知乎的解释:https://www.zhihu.com/question/58482430

perplexity

perplexity公式:

p e r p l e x i t y = 2 − x perplexity=2^{-x} perplexity=2x这里的x为序列的average log probability(平均对数概率),即 x = 1 N l o g P ( w 1 , w 2 , . . . , w N ) x=\frac{1}{N}logP(w_1,w_2,...,w_N) x=N1logP(w1,w2,...,wN)

perplexity应用举例:

例子1:结合n-gram,假如我们使用2-gram计算 P ( w 1 , w 2 , . . . , w N ) P(w_1,w_2,...,w_N) P(w1,w2,...,wN),那么 x = 1 n l o g P ( w 1 , w 2 , . . . , w N ) = l o g P ( w 1 ) + ∑ i = 2 N l o g P ( w i ∣ w i − 1 ) x=\frac{1}{n}logP(w_1,w_2,...,w_N)=logP(w_1)+\sum_{i=2}^NlogP(w_i|w_{i-1}) x=n1logP(w1,w2,...,wN)=logP(w1)+i=2NlogP(wiwi1),则对于2-gram的目标函数为: m i n i m i z e    p e r p l e x i t y = 2 − 1 n [ l o g P ( w 1 ) + ∑ i = 2 n l o g P ( w i ∣ w i − 1 ) ] = 2 − x minimize\,\,perplexity=2^{-\frac{1}{n}[logP(w_1)+\sum_{i=2}^nlogP(w_i|w_{i-1})]}=2^{-x} minimizeperplexity=2n1[logP(w1)+i=2nlogP(wiwi1)]=2x当x越大时,perplexity越小,说明模型的效果越好。
例子2:在一个语言模型中,我们通常会遇到oov(out-of-vocabulary)词,如果直接用0概率计算的话,那么会导致整个句子的概率为0,所以我们通常会引入Add-K smoothing的方法解决,以下是2-gram情况下的Add-K smoothing公式 P A d d − k ( w i ∣ w i − 1 ) = P ( w i , w i − 1 ) + K P ( w i − 1 ) + K V        K = 1 , 2 , . . . , k P_{Add-k}({w_i|w_{i-1}})=\frac{P(w_i, w_{i-1})+K}{P{(w_{i-1})+KV}} \,\,\,\,\,\,K=1,2,...,k PAddk(wiwi1)=P(wi1)+KVP(wi,wi1)+KK=1,2,...,k那么这个K我们怎么选择,才能使模型达到最好的效果呢?假设我们n-gram的n选定的情况下,这时可以将K当作一个超参数,则我们在验证模型时需要 a r g m i n k    f ( K ) argmin_k\,\,f(K) argminkf(K)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值