C.1 绝对折扣
Kneser–Ney 方法源于一种称为绝对折扣(absolute discounting)的方法。回想一下,我们必须对高频 n 元语法的计数进行折扣,从而留出一部分概率质量,供平滑算法分配给未见过的 n 元语法。
为说明这一点,可以采用 Church 和 Gale(1991)提出的巧妙思路。考虑一个计数为 4 的 n 元语法。我们需要将这个计数减去一定数值,但究竟应减去多少?Church 和 Gale 的做法是查看留出语料库,直接考察训练集中所有计数为 4 的二元语法在留出语料库中的计数。他们利用 2,200 万词的美联社新闻语料建立二元语法模型,再检查这些二元语法在另一个 2,200 万词语料库中的计数。平均而言,在前 2,200 万词中出现 4 次的二元语法,在后 2,200 万词中出现 3.23 次。图 C.1 摘自 Church 和 Gale(1991),列出了训练集计数从 0 到 9 的二元语法在留出集中的平均计数。
| 训练集中的二元语法计数 | 留出集中的二元语法计数 |
|---|---|
| 0 | 0.0000270 |
| 1 | 0.448 |
| 2 | 1.25 |
| 3 | 2.24 |
| 4 | 3.23 |
| 5 | 4.21 |
| 6 | 5.23 |
| 7 | 6.21 |
| 8 | 7.21 |
| 9 | 8.26 |
图 C.1 在 2,200 万词的美联社新闻训练语料中,分别取计数为 0、1、2、……、9 的所有二元语法,并统计它们在另一个同为 2,200 万词的留出语料库中的平均计数。
注意图 C.1:除训练集计数为 0 和 1 的情况外,只需从训练集计数中减去 0.75,就能相当准确地估计留出集中的其他二元语法计数。绝对折扣把这一直觉形式化:从每个计数中减去固定的(绝对)折扣值 。其直觉是,我们已经能够很好地估计非常大的计数,所以较小的折扣值 对它们影响不大。折扣主要改变较小的计数,而我们原本也未必信任这些小计数的估计;图 C.1 表明,在实践中,该折扣对计数为 2 到 9 的二元语法确实很合适。用于二元语法的插值绝对折扣公式为:
第一项是经过折扣的二元语法,其中 ;第二项是插值权重为 的一元语法。观察图 C.1 可知,把所有 都设为 0.75 似乎已经很有效;也可以为计数为 1 的二元语法单独保留第二个折扣值 0.5。还存在一些有理论依据的 值设定方法。例如,Ney 等人(1994)把 定义为 和 的函数,其中 和 分别表示计数为 1 和 2 的一元语法数量: