一、机器智能


最早提出机器智能的设想的是计算机科学之父阿兰.图灵,提出验证机器是否智能的方法称为图灵测试法。如下图所示:

二、统计语言模型


1.1 核心思想

一个句子是否合理,就是看它的可能性大小如何,至于可能性就用概率来衡量。

1.2 一个句子的二元模型

例如以下一个句子S,统计语言模型的应用贝叶斯公式 统计语言模型的核心_元模型为一个词:
统计语言模型的应用贝叶斯公式 统计语言模型的核心_自然语言处理_02
则句子的概率为
统计语言模型的应用贝叶斯公式 统计语言模型的核心_自然语言处理_03
根据条件概率得

统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_04
由于统计语言模型的应用贝叶斯公式 统计语言模型的核心_统计语言模型的应用贝叶斯公式_05计算非常困难,德国数学家马尔可夫提出一种假设:
假设任意一个词统计语言模型的应用贝叶斯公式 统计语言模型的核心_元模型出现的概率只同它前面的词统计语言模型的应用贝叶斯公式 统计语言模型的核心_统计语言模型的应用贝叶斯公式_07有关。
由此可得二元模型:
统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_08

1.3 任意一个词的条件概率

根据条件概率定义:
统计语言模型的应用贝叶斯公式 统计语言模型的核心_机器智能_09
现在估计联合概率统计语言模型的应用贝叶斯公式 统计语言模型的核心_统计语言模型的应用贝叶斯公式_10和边缘概率统计语言模型的应用贝叶斯公式 统计语言模型的核心_元模型_11变得比较简单了,只要在语料库中数一数统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_12这对词前后相邻出现了多少次,表示为#统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_12。同样数一数词统计语言模型的应用贝叶斯公式 统计语言模型的核心_统计语言模型的应用贝叶斯公式_07在语料库中出现的次数,表示为#统计语言模型的应用贝叶斯公式 统计语言模型的核心_机器智能_15。语料库的大小为#,即可得这些词或者二元组的相对频度:
统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_16
统计语言模型的应用贝叶斯公式 统计语言模型的核心_自然语言处理_17
根据大数定理,只要数据统计量足够,相对频度就等于概率:
统计语言模型的应用贝叶斯公式 统计语言模型的核心_自然语言处理_18
统计语言模型的应用贝叶斯公式 统计语言模型的核心_元模型_19
由此可得
统计语言模型的应用贝叶斯公式 统计语言模型的核心_自然语言处理_20

1.4 高阶语言模型

由二元模型扩展,假设句中的每个词统计语言模型的应用贝叶斯公式 统计语言模型的核心_元模型和前面的N-1个词有关,而与更前面的词无关,这样词统计语言模型的应用贝叶斯公式 统计语言模型的核心_元模型的条件概率为:
统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_23
由于N如果比较大,计算的复杂度将以指数级增加,而且N大于3之后,效果的提升就不明显了,所以实际中应用最多的是N=3的三元模型,Google的系统使用的是四元模型。
其中|V|为一种语言词典的词汇量。N元模型算法的复杂度如下:
空间复杂度为统计语言模型的应用贝叶斯公式 统计语言模型的核心_机器智能_24
时间复杂度为统计语言模型的应用贝叶斯公式 统计语言模型的核心_自然语言处理_25

1.5 模型的训练、零概率问题和平滑方法

在第1.3节中条件概率的计算,其中#统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_12和#统计语言模型的应用贝叶斯公式 统计语言模型的核心_机器智能_15由对语料库的统计中得到,但语料库未必存在词统计语言模型的应用贝叶斯公式 统计语言模型的核心_条件概率_12,或只出现一两次,此时计算的概率近乎等于零。这就是零概率问题。即使增加数据量,仍会遇到统计不足的问题。
这种用直接比值计算概率,大部分条件概率依然是零,这种模型我们称之为“不平滑”。
古德-图灵估计解决了这个问题,基本思想:
对于没有看见的事件,我们不能认为它发生的概率是零,因此从概率的总量中分配一个很小的比例给这些没看见的事件。此时已将所有看见的事件概率将小于1,至于小多少,要根据“越是不可信的统计折扣越多”的方法进行。