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

基本思想

  • 数据平滑的基本思想
    调整最大似然估计的概率值,使零概率增值,使非零概率下调,“劫富济贫”,消除零概率,改进模型的整体正确率。

  • 基本目标
    测试样本的语言模型困惑度越小越好。

  • 基本约束

困惑度定义:

  • 对于一个平滑的 n-gram,其概率为,可以计算句子的概率:
  • 假定测试语料由个句子构成,那么整个测试集的概率为:
  • 模型对于测试语料的交叉熵:

    其中, 是测试文本 的词数。
  • 模型 p 的困惑度 定义为:
    PS: n-gram 对于英语文本的困惑度范围一般为50~1000,对应于交叉熵范围为6~10 bits/word。

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

  • 基本思想: 每一种情况出现的次数加1。
    例如,对于 uni-gram,设 三个词,概率分别为:1/3, 0, 2/3,加1后情况?
    5631876-4aa267d2b79816cf.png
  • 举例
    <BOS>John read Moby Dick<EOS>
    <BOS>Mary read a different book<EOS>
    <BOS>She read a book by Cher<EOS>
    词汇量:|V|=11
    平滑以后:
    p(Cher|<BOS>) = (0+1)/(11+3) = 1/14
    p(read|Cher) = (0+1)/(11+1) = 1/12
    p(a|read) = (1+2)/(11+3) = 3/14
    p(book|a) = (1+1)/(11+2) = 2/13
    p(<EOS>|book)= (1+1)/(11+2) = 2/13

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

1. 基本思想:

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

2. Good-Turing 估计
  • 基本思想

假设 是原来训练样本数据的大小, 是在样本中正好出现 次的事件的数目(此处事件为 n-gram),即出现 1 次的n-gram有 个,出现 2 次的 n-gram 有个, ……,出现 次的有 个。
那么:
由于我们要减小r,记为::,所以:
那么,Good-Turing估计在样本中出现r次的事件的概率为:

5631876-57e2270aa109db53.png

  • 举例说明

假设有如下英语文本,估计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,并转化为频率信息:


5631876-0fd4b6dcb84e6411.png

得到后,便可计算概率:

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

以read作为开始,没有出现过的 2-gram的个数等于:,其中,为语料的词汇量。

那么,没有出现过的那些 以read为开始的概率平均为:

5631876-59f24056df97f4c5.png

注意:

因此,需要归一化处理:

3. Back-off (后备/后退)方法
  • 基本思想

S. M. Katz于1987年提出,所以又称Katz后退法。
当某一事件在样本中出现的频率大于阈值K (通常取K 为0 或1)时,运用最大似然估计的减值法来估计其概率,否则,使用低阶的,即(n-1)gram 的
概率替代n-gram 概率,而这种替代需受归一化因子的作用。

  • Back-off 方法的另一种理解:

对于每个计数 r > 0 的n元文法的出现次数减值, 把因减值而节省下来的剩余概率根据低阶的(n-1)gram 分配给未见事件。

  • 举例说明
5631876-a6cf4d919488d9d0.png

5631876-834cb1404bfc2b4f.png
4. 绝对减值法(Absolute discounting )
  • 基本思想

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

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


5631876-cf73f3f4763bc81e.png

其中, 为样本中未出现的事件的数目。 为减去的常量,。 是由于减值而产生的剩余概率量。 为样本中出现了 次的事件总次数:。

为自由参数,可以通过留存数据(heldout data)方法求得 的上限为:

5. 线性减值法(Linear discounting )
  • 基本思想

从每个计数 中减去与该计数成正比的量(减值函数为线性的),剩余概率量被个未见事件均分。

自由参数 的优化值为:

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

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

  • 基本思想:
    用低阶语法估计高阶语法,即当 3-gram 的值不能从训练数据中准确估计时,用 2-gram 来替代, 同样,当 2-gram 的值不能从训练语料中准确估计时, 可以用 1-gram 的值来代替。插值公式:

    其中

  • 的确定

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

猜你喜欢

转载自blog.csdn.net/weixin_33830216/article/details/87229711