NLP

自然语言处理——5.3 语言模型(数据平滑)

2018-10-03  本文已影响270人  SpareNoEfforts

基本思想

困惑度定义:

数据平滑方法1——加1法(Additive smoothing )

数据平滑方法2——减值法/折扣法(Discounting)

1. 基本思想:

修改训练样本中事件的实际计数,使样本中(实际出现的)不同事件的概率之和小于1,剩余的概率量分配给未见概率。

2. Good-Turing 估计

假设 N 是原来训练样本数据的大小, n_r 是在样本中正好出现 r次的事件的数目(此处事件为 n-gram),即出现 1 次的n-gram有 n_1个,出现 2 次的 n-gram 有n_2个, ……,出现 r 次的有 n_r 个。
那么:N = \sum\limits_{r = 1}^\infty {{n_r}r} = \sum\limits_{r = 0}^\infty {{n_{r+1}}(r+1)}
由于我们要减小r,记为:r^*N = \sum\limits_{r = 1}^\infty {{n_r}r^*},所以:r^* = (r + 1)\frac{{{n_{r + 1}}}}{{{n_r}}}
那么,Good-Turing估计在样本中出现r次的事件的概率为:{p_r} = \frac{{{r^*}}}{N}

假设有如下英语文本,估计2-gram概率:
<BOS>John read Moby Dick<EOS>
<BOS>Mary read a different book<EOS>
<BOS>She read a book by Cher<EOS>
……
从文本中统计出不同 2-gram 出现的次数:
<BOS> John 15
<BOS> Mary 10
……
read Moby 5
……

假设要估计以 read 开始的 2-gram 概率,列出以read开始的所有 2-gram,并转化为频率信息:


得到r^*后,便可计算概率:{p_r} = \frac{{{r^*}}}{N}

其中,N 为以 read 开始的bigram的总数(样本空间),即read出现的次数。那么,以 read开始,没有出现过的 2-gram的概率总和为:{p_0} = \frac{{{n_1}}}{N}

以read作为开始,没有出现过的 2-gram的个数等于:{n_0} = |{V_T}| - \sum\limits_{r > 0} {{n_r}},其中,|V_T|为语料的词汇量。

那么,没有出现过的那些 以read为开始的概率平均为:\frac{{{p_0}}}{{{n_0}}}


注意:
4. 绝对减值法(Absolute discounting )

从每个计数r 中减去同样的量,剩余的概率量由未见事件均分。
R 为所有可能事件的数目(当事件为n-gram 时,如果统计基元为词,且词汇集的大小为L, 则R=L^n )。

那么,样本出现了r次的事件的概率可以由如下公式估计:


其中,n_0 为样本中未出现的事件的数目。b 为减去的常量,b ≤ 1b(R - n_0)/N 是由于减值而产生的剩余概率量。N 为样本中出现了r 次的事件总次数:n_r \times r

b 为自由参数,可以通过留存数据(heldout data)方法求得 b 的上限为:b \leqslant \frac{{{n_1}}}{{{n_1} + 2{n_2}}} < 1

5. 线性减值法(Linear discounting )

从每个计数r 中减去与该计数成正比的量(减值函数为线性的),剩余概率量\alphan_0个未见事件均分。
{p_r} = \left\{ {\begin{array}{*{20}{c}} {\frac{{(1 - \alpha )r}}{N}{\text{ r > 0}}} \\ {\frac{\alpha }{{{n_0}}}{\text{ r = 0}}} \end{array}} \right.
自由参数α 的优化值为:{\frac{{{n_1}}}{N}}

绝对减值法产生的n-gram 通常优于线性减值法。
6. 四种减值法的比较

数据平滑方法3——删除插值法(Deleted interpolation)

将训练语料分为两部分,即从原始语料中删除一部分作为留存数据(heldout data)。
第一部分用于估计p '(w_3 | w_1w_2 ),p '(w_3 | w_2 )p '(w_3)
第二部分用于计算\lambda_1,\lambda_2,\lambda_3:使语言模型对留存数据的困惑度最小。

上一篇下一篇

猜你喜欢

热点阅读