统计是通过大量样本来估计真实分布的过程,通常与统计相伴出现的一个词是“平滑”,即对统计结果打折扣的处理过程。平滑的思想来源于:如果样本空间非常大,那么统计的结果是稀疏的,这样由于各种偶然因素的存在,导致了小的统计结果不可靠,如频数为1的结果可能只是偶然的结果,其频率并不一定近似于$1/N$,频数为0的不一定就不会出现。这样我们就需要对统计结果进行平滑,使得结论更为可靠。

平滑的方法有很多,这里介绍一种基于遗忘假设的平滑公式。假设的任务为:我们要从一批语料中,统计每个字的字频。我们模仿人脑遗忘的过程,假设这个字出现一次,我们脑里的记忆量就增加1,但是如果一个周期内(先不管这个周期多大),这个字都没有出现,那么脑里的记忆量就变为原来的$\beta$比例。假设字是周期性出现的,那么记忆量$A_n$就满足如下递推公式
$$A_{n+1} = \beta A_n + 1$$
这个递推的通解是
$$A_n = \frac{1-\beta^n}{1-\beta}$$
其极限是
$$A = \frac{1}{1-\beta}$$
我们认为,这个极限才是我们真正的统计结果,即平滑后的结果。

如果一个语料的总字数为$N$,而某字出现的频数为$F$,假设字是均匀分布的,那么该字的出现周期就为$N/F$。而我们可以假设,遗忘的规律是按指数下降变化的(由艾宾浩斯曲线猜测,参考:https://zh.wikipedia.org/wiki/遗忘曲线,或者读者可以自己猜测其他形式的遗忘规律),那么就存在小于1的常数$\alpha$,使得
$$\beta = \alpha^{N/F}$$
这样,我们得到的数据平滑公式是
$$\hat{F} = \frac{1}{1-\alpha^{N/F}}$$

再仔细分析一下这个公式。不难想到,$\alpha$一定是非常接近于1的,不然一下子就遗忘光了。其次,我们应当期望,当$F$足够大的,平滑后的结果$\hat{F}$应该跟$F$接近才对,因为统计越充分结果越可信嘛。因此,我们假设当$F=N$时,$\hat{F}=F$,这时候应当乘上一个因子
$$\hat{F} = \frac{N(1-\alpha)}{1-\alpha^{N/F}}$$
这才是最终的平滑公式。

如果采用憨叔给出的结果,那么可以考虑使用
$$\alpha = 0.99999962...$$
不过,我们留意到,当$F\to 0$时,有
$$\hat{F} = \lim_{F\to 0}\frac{N(1-\alpha)}{1-\alpha^{N/F}}=N(1-\alpha)$$
这也意味着这个平滑公式给统计频数为0的字也分配了一个大于0的频数$N(1-\alpha)$。显然,固定$\alpha$在这里显得不大适合。倒不如反过来固定$N(1-\alpha)$?我们给没有出现过的字都赋予频数$\gamma$,那么解得
$$\alpha = 1 - \frac{\gamma}{N}$$
于是
$$\hat{F} = \frac{\gamma}{1-(1 - \gamma/N)^{N/F}}$$
这时候,我们从遗忘假设出发,得到了最终的、只带有一个具有清晰含义的参数的平滑公式。最后留意到当$N$足够大时,有
$$(1 - \gamma/N)^N \approx e^{-\gamma}$$
于是
$$\hat{F} \approx \frac{\gamma}{1-e^{-\gamma/F}}$$
这也不失为一个可用的平滑公式,最后我们来看它的泰勒展开
$$\hat{F} \approx \frac{\gamma}{1-e^{-\gamma/F}} = F + \frac{\gamma}{2} + \frac{\gamma^2}{12F^2}+\dots$$
如果只截取前两项,那么可以看到,事实上这种做法的效果,跟加1平滑法类似~这样,我们或许可以说,遗忘假设为加1平滑法提供了更充分的理论依据?

转载到请包括本文地址:https://www.spaces.ac.cn/archives/4182

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Jan. 07, 2017). 《基于遗忘假设的平滑公式 》[Blog post]. Retrieved from https://www.spaces.ac.cn/archives/4182

@online{kexuefm-4182,
        title={基于遗忘假设的平滑公式},
        author={苏剑林},
        year={2017},
        month={Jan},
        url={\url{https://www.spaces.ac.cn/archives/4182}},
}