写在前面
∙
\bullet
∙ 因为对于N-gram模型
来说,由于语料库过小
或者词语过于专业
可能会出现概率为0
的情况。但是这个词语肯定会有出现的概率不可能为0,为了解决这类零概率问题,引入了平滑技术。
∙
\bullet
∙ “平滑”处理的基本思想是“劫富济贫”
,即提高低概率降低高概率,尽量使概率分布趋于平均。
1.加法平滑
1.1加1法
先来介绍一种简单的情况,对于二元语法
(2-gram或者 Bigram)来说,我们可以使用一种非常简单的方法,即“加一法”
。
公式如下:
P
(
w
i
−
1
∣
w
i
)
=
P
(
w
i
−
1
w
i
)
+
1
P
(
w
i
)
+
∣
V
∣
{\color{Violet}P(w_{i-1}|w_{i})=\frac{P(w_{i-1}w_{i})+1}{P(w_{i})+|V|}}
P(wi−1∣wi)=P(wi)+∣V∣P(wi−1wi)+1
其中 P ( w i − 1 w i ) {\color{Red}P(w_{i-1}w_{i})} P(wi−1wi) 是 w i − 1 w i \color{Red}w_{i-1}w_{i} wi−1wi 同时出现的概率, P ( w i ) \color{Red}P(w_{i}) P(wi) 是 w i \color{Red}w_{i} wi 出现的概率, ∣ V ∣ \color{Red}|V| ∣V∣ 是所有词的个数, P ( w i − 1 ∣ w i ) \color{Red}P(w_{i-1}|w_{i}) P(wi−1∣wi)是在 w i \color{Red}w_{i} wi 的概率下前面出现 w i − 1 \color{Red}w_{i-1} wi−1 的概率。
1.2加法平滑方法
在N-gram
模型中,常见的做法是在N元对出现的次数上加一个常数
δ
\delta
δ,在分母上加上
δ
∣
V
∣
\delta|V|
δ∣V∣,其余和二元语法完全相同。
公式如下:
P
(
w
i
−
n
+
1
i
−
1
∣
w
i
)
=
P
(
w
i
−
n
+
1
i
−
1
w
i
)
+
δ
P
(
w
i
)
+
δ
∣
V
∣
{\color{Violet}P(w_{i-n+1}^{i-1}|w_{i})=\frac{P(w_{i-n+1}^{i-1}w_{i})+\delta}{P(w_{i})+\delta|V|}}
P(wi−n+1i−1∣wi)=P(wi)+δ∣V∣P(wi−n+1i−1wi)+δ
其中 w i − n + 1 i − 1 \color{Red}w_{i-n+1}^{i-1} wi−n+1i−1 表示 w i \color{Red}w_{i} wi 前面的 N N N 个词。
2.古德-图灵(Good-Turing)估计法
对于N-gram
模型中出现了r
次的
w
i
−
n
+
1
i
\color{Red}w_{i-n+1}^{i}
wi−n+1i,我们把它估计为
r
∗
=
(
r
+
1
)
n
r
+
1
n
r
\color{Violet}r^{*}=(r+1)\frac{n_{r+1}}{n_{r}}
r∗=(r+1)nrnr+1
其中
n
r
\color{Red}n_{r}
nr 表示出现了r次的N元对的个数,所以N-gram
中出现了次数为r的N元对
w
i
−
n
+
1
i
\color{Red}w_{i-n+1}^{i}
wi−n+1i 的出现概率为:
P
G
T
(
w
i
−
n
+
1
i
)
=
r
∗
∑
r
=
0
∞
r
∗
{\color{Violet}P_{GT}(w_{i-n+1}^{i})=\frac{r^{*}}{\sum_{r=0}^{\infty}r^{*}}}
PGT(wi−n+1i)=∑r=0∞r∗r∗
古德-图灵估计公式中缺乏利用低元模型对高元模型插值的思想,通常不单独使用,而作为其他平滑算法中的一个计算工具。
3.回退平滑(Katz回退法)
当某一事件在样本中的概率大于阈值K
(通常取0或1)时,运用最大似然估计
的减值法
来估计其概率。否则使用低阶
的,即用
(
n
−
1
)
g
r
a
m
(n-1)gram
(n−1)gram 的概率来替代
n
−
g
r
a
m
n-gram
n−gram 的概率,这种替代受归一化因子
α
α
α 的作用。
公式如下:
P k a t z ( w i − 1 i ) = { d r c ( w i − 1 i ) c ( w i − 1 ) c ( w i − 1 w i ) = r > 0 α ( w i − 1 ) P M L ( w i ) c ( w i − 1 w i ) = r = 0 {\color{Violet}P_{katz}(w_{i-1}^{i})=\left\{\begin{matrix} d_{r}\frac{c(w_{i-1}^{i})}{c(w_{i-1})} & c(w_{i-1}w_{i})=r>0\\ \alpha (w_{i-1})P_{ML}(w_{i}) & c(w_{i-1}w_{i})=r=0 \end{matrix}\right.} Pkatz(wi−1i)={drc(wi−1)c(wi−1i)α(wi−1)PML(wi)c(wi−1wi)=r>0c(wi−1wi)=r=0
其中 r 表示出现次数, P M L ( w i ) \color{Red}P_{ML}(w_{i}) PML(wi) 表示 w i w_{i} wi 的最大似然估计概率,折扣率 d r \color{Red}d_{r} dr 近似等于 r ∗ r \color{Red}\frac{r^{*}}{r} rr∗,减值由 Good-Turing 估计方法预测。
4.线性插值平滑(Jelinek-Mercer)
利用低阶N-gram模型对高阶N-gram 模型进行线性插值
。
公式如下:
P
i
n
t
e
r
p
(
w
i
∣
w
i
−
n
+
1
i
−
1
)
=
λ
w
i
−
n
+
1
i
−
1
∗
P
M
L
(
w
i
−
1
∣
w
i
−
n
+
1
i
−
1
)
+
(
1
−
λ
)
∗
P
i
n
t
e
r
p
(
w
i
∣
w
i
−
n
+
2
i
−
1
)
{\color{Violet}P_{int \ erp}(w_{i}|w_{i-n+1}^{i-1})=\lambda_{w_{i-n+1}^{i-1}}*P_{ML}(w_{i-1}|w_{i-n+1}^{i-1})+(1-\lambda)*P_{int \ erp}(w_{i}|w_{i-n+2}^{i-1})}
Pint erp(wi∣wi−n+1i−1)=λwi−n+1i−1∗PML(wi−1∣wi−n+1i−1)+(1−λ)∗Pint erp(wi∣wi−n+2i−1)
N-gram模型可以递归地定义为:由最大似然估计得到的N-gram模型和线性插值的(N-1)-gram模型。