本文从分析可能导致统计语言模型条件概率稀疏的原因入手,引出对应的平滑方法解决方案。
1. Add-One Smoothing
一种可能导致语言模型条件概率稀疏的原因是:训练语料库是对语料总体的一个抽样,它在抽样过程中必然会遗漏一些出现过的语句单词序列。因此,Add-One Smoothing 认为在训练语料库中未出现过语句单词序列,在总体语料中未必不会出现;它假设训练语料抽样对每种语句单词序列的出现情况最少会漏掉一次,所以在统计条件概率时,对每种情况的出现次数加1,其表达式如下所示:
P
B
i
−
g
r
a
m
(
W
i
∣
W
i
−
1
)
=
C
o
u
n
t
(
W
i
−
1
,
W
i
)
+
1
C
o
u
n
t
(
W
i
−
1
)
+
V
(7)
P_{Bi-gram}(W_i|W_{i-1}) = \frac{Count(W_{i-1}, W_i) + 1}{Count(W_{i-1}) + V} \tag{7}
PBi−gram(Wi∣Wi−1)=Count(Wi−1)+VCount(Wi−1,Wi)+1(7)
式 ( 7 ) (7) (7)中 V V V表示词库中单词数量,它是 W i W_i Wi 每种可能取值情况的总数。
2 Add-K Smoothing
可见,Add-One Smoothing 是 Add-K Smoothing 在
K
=
1
K=1
K=1时的特例,所以Add-K Smoothing是假设训练语料抽样对每种语句单词序列的出现情况最少会漏掉
K
K
K次,在统计条件概率时对每种情况的出现次数加
K
K
K,其表达式如下所示:
P
B
i
−
g
r
a
m
(
W
i
∣
W
i
−
1
)
=
C
o
u
n
t
(
W
i
−
1
,
W
i
)
+
K
C
o
u
n
t
(
W
i
−
1
)
+
K
V
(8)
P_{Bi-gram}(W_i|W_{i-1}) = \frac{Count(W_{i-1}, W_i) + K}{Count(W_{i-1}) + KV} \tag{8}
PBi−gram(Wi∣Wi−1)=Count(Wi−1)+KVCount(Wi−1,Wi)+K(8)
3 Interpolation
另一种可能导致语言模型条件概率稀疏的原因是:马尔科夫假设是对语言模型中单词出现条件概率的一种简化,它必然损失了一部分语句单词序列间影响关系的信息。因此,Interpolation采用模型融合的思想,使用多种阶数马尔科夫假设的加权平均,来共同近似语言模型的条件概率;希望能更全面、立体地表示语句单词序列间的影响关系,其表达式如下所示:
P
T
r
i
−
g
r
a
m
(
W
i
∣
W
i
−
2
,
W
i
−
1
)
=
λ
1
P
(
W
i
∣
W
i
−
2
,
W
i
−
1
)
+
λ
2
P
(
W
i
∣
W
i
−
1
)
+
λ
3
P
(
W
i
)
(9)
P_{Tri-gram}(W_i|W_{i-2}, W_{i-1}) = \lambda_1 P(W_i|W_{i-2}, W_{i-1}) + \lambda_2 P(W_i|W_{i-1}) + \lambda_3 P(W_i) \tag{9}
PTri−gram(Wi∣Wi−2,Wi−1)=λ1P(Wi∣Wi−2,Wi−1)+λ2P(Wi∣Wi−1)+λ3P(Wi)(9)
式 ( 9 ) (9) (9)中 λ 1 + λ 2 + λ 3 = 1 \lambda_1 + \lambda_2+ \lambda_3 = 1 λ1+λ2+λ3=1。
4 Good-Turning Smoothing
待续