回退平滑法

 
 
 N-gram 模型的 “回退平滑法”,大白话拆成 “思路 + 例子 + 步骤” ,保证秒懂:

核心思路

当遇到 **“没见过的词串”(比如三元组 a b c 从没出现过 ),别直接给概率 0!而是“退一步”**,找更短的词串(比如二元组 b c )的概率,来凑合用~

举个栗子(人话翻译公式)

假设要算 “P (c | a b)”(三元组 a b c 的概率 ),但语料里从没出现过 a b c :

  • 正常算的话概率是 0 ,但回退法说:“退一步,用二元组 b c 的概率代替!”
  • 公式变成:P(c | a b) = P(c | b) * Bow(ab)
    • P(c | b) :二元组 b c 出现的概率(比如 “吃饭” 的概率 )。
    • Bow(ab) :回退概率(可以理解成 “给这个回退行为打个折扣”,比如 0.5 ,表示 “虽然没找到三元组,但二元组的参考价值打半折” )。

迭代回退(遇到更短的词串咋办?)

如果连二元组 b c 也没见过,继续 “退”!比如算 P(d | a b c)(四元组 a b c d ):

  • 先退到三元组 b c d → 若没见过,退到二元组 c d → 还没见过,退到一元组 d → 最后退到单个词 d 的概率。
  • 每退一步,都乘以对应的 “回退概率 Bow”,保证 “没见过的词串也有概率,且越来越小”。

总结

回退法就是 “没找到长词串,就找短词串凑数” 的偷懒技巧~ 通过一步步退到更短的词串,给 “没见过的组合” 分配一个很小的概率(但不是 0 ),让模型更合理!
posted @ 2025-06-22 09:55  m516606428  阅读(18)  评论(0)    收藏  举报