贝叶斯公式在联邦党人文集作者公案和天蝎号核潜艇搜救中大显身手后(详见大数据背后的神秘公式(上):贝叶斯公式),开始引起学术界的注意和重视,而其上世纪八十年代在自然语言处理领域的成功,向我们展示了一条全新的问题解决路径。计算能力的不断提高和大数据的出现使它的威力日益显现,一场轰轰烈烈的“贝叶斯革命”正在发生。 真正的突破
自然语言处理就是让计算机代替人来翻译语言、识别语音、认识文字和进行海量文献的自动检索。但是人类的语言可以说是信息里最复杂最动态的一部分。人们最初想到的方法是语言学方法,让计算机学习人类的语法、分析语句等等。尤其是在乔姆斯基(有史以来最伟大的语言学家)提出 “形式语言” 以后,人们更坚定了利用语法规则的办法进行文字处理的信念。遗憾的是,几十年过去了,在计算机语言处理领域,基于这个语法规则的方法几乎毫无突破。
其实早在几十年前,数学家兼信息论的祖师爷香农 (Claude Shannon)就提出了用数学方法处理自然语言的想法。遗憾的是当时的计算机根本无法满足大量信息处理的需要,所以他的这一想法并没有引起重视。 率先成功利用数学方法解决自然语言处理问题的是语音和语言处理大师贾里尼克 (Fred Jelinek)。他引入一个全新的视角,认为语音识别就是根据接收到的一个信号序列推测说话人实际发出的信号序列(说的话)和要表达的意思。这就把语音识别问题转化为一个通信问题,而且进一步可以简化为用贝叶斯公式处理的数学问题。 一般情况下,一个句子中的每个字符都跟它前面的所有字符相关,这样公式中的条件概率计算就非常复杂,难以实现。为了简化问题,他做了两个假设: 1、 说话人说的句子是一个马尔科夫链,也就是说,句子中的每个字符都只由它前一个字符决定; 2、 独立输入假设,就是每个接受的字符信号只由对应的发送字符决定。 这样的简化看起来有点简单粗暴,每个字符在语义上都是和文章的其他部分相关的,怎么可能只跟它前一个字符相关呢?很多人不相信用这么简单的数学模型能解决复杂的语音识别、机器翻译等问题。其实不光是一般人,就连很多语言学家都曾质疑过这种方法的有效性。但事实证明,这个基于贝叶斯公式的统计语言模型比任何当时已知的借助某种规则的解决方法都有效。贾里尼克和贝克夫妇在七十年代分别独立提出用这个模型进行语音识别,八十年代微软公司用这个模型成功开发出第一个大词汇量连续语音识别系统。现在我们手机上的语音识别和语音输入功能都已经非常成熟而且好用了。 更加可贵的是,这种语音识别系统不但能够识别静态的词库,而且对词汇的动态变化具有很好的适应性,即使是新出现的词汇,只要这个词已经被大家高频使用,用于训练的数据量足够多,系统就能正确地识别。这反映出贝叶斯公式对现实变化的高度敏感,对增量信息有非常好的适应能力。 自然语言处理方面的成功开辟了一条全新的问题解决路径: 1、原来看起来非常复杂的问题可以用贝叶斯公式转化为简单的数学问题; 2、可以把贝叶斯公式和马尔科夫链结合以简化问题,使计算机能够方便求解;虽然我们不完全了解为什么这种看似粗暴的简化并不影响我们的研究过程,但从实践看来它非常有效; 3、将大量观测数据输入模型进行迭代——也就是对模型进行训练,我们就可以得到希望的结果。 随着计算能力的不断提高、大数据技术的发展,原来手工条件下看起来不可思议的进行模型训练的巨大工作量变得很容易实现,它们使贝叶斯公式巨大的实用价值体现出来。 经典统计学的困难和贝叶斯革命 1、经典统计学的困难 当贝叶斯方法在实际应用中不断证明自己的同时,经典统计学却遇到了困境。经典统计学比较适合于解决小型的问题,同时该方法要求我们获得足够多的样本数据,而且要求这些样本能够代表数据的整体特征。在处理涉及几个参数的问题时,它可以得心应手。但如果相对于问题的复杂程度,我们只掌握少量的信息时,经典统计学就显得力不从心了,原因就是数据的稀疏性问题。 都大数据时代了,还存在数据稀疏性问题吗?答案是肯定的。具体来说,一个取决于n个参数,并且每个参数只有两种表现(0或者1)的系统,共有2的n次方种现象。如果某类癌症的产生过程中有100个基因参与(这其实很保守了,人类总共有几万个基因),那么它有2的100次方种可能的基因图谱;根据采样定理进行估算,采用经典统计学方法至少需要获得1%-10%的样本才能确定其病因,也就是需要制作出数万亿亿亿个患有该疾病的病人的基因图谱!这不具备可操作性。所以用经典统计学方法无法解释由相互联系、错综复杂的原因(相关参数)所导致的现象。 2、贝叶斯网络带来工具革命 而目前的情况是,相对简单的问题已经解决得差不多了,剩下的都非常复杂。龙卷风的形成、星系的起源、致病基因、大脑的运作机制等,要揭示隐藏在这些问题背后的规律,就必须理解它们的成因网络,把错综复杂的事件梳理清楚。由于经典统计学失效,科学家别无选择,他们必须从众多可能奏效的法则中选择一些可以信任的,并以此为基础建立理论模型。为了能做出这样的选择,为了能在众多可能性中确定他们认为最为匹配的,过去,科学家多少是依靠直觉来弥补数据上的缺失和空白。而贝叶斯公式正好以严谨的数学形式帮他们实现了这一点。科学家把所有假设与已有知识、观测数据一起代入贝叶斯公式,就能得到明确的概率值。而要破译某种现象的成因网络,只需将公式本身也结成网络,即贝叶斯网络,它是贝叶斯公式和图论结合的产物。 网络化想法的提出也不是一帆风顺的。直到上世纪80年代,美国数学家朱迪亚·珀尔才证明,使用贝叶斯网络应该可以揭示复杂现象背后的成因。操作原理是这样的:如果我们不清楚一个现象的成因,首先根据我们认为最有可能的原因来建立一个模型;然后把每个可能的原因作为网络中的节点连接起来,根据已有的知识、我们的预判或者专家意见给每个连接分配一个概率值。接下来只需要向这个模型代入观测数据,通过网络节点间的贝叶斯公式重新计算出概率值。为每个新数据、每个连接重复这种计算,直到形成一个网络图,任意两个原因之间的连接都得到精确的概率值为止,就大功告成了。即使实验数据存在空白或者充斥噪声和干扰信息,不懈追寻各种现象发生原因的贝叶斯网络依然能够构建出各种复杂现象的模型。贝叶斯公式的价值在于,当观测数据不充分时,它可以将专家意见和原始数据进行综合,以弥补测量中的不足。我们的认知缺陷越大,贝叶斯公式的价值就越大。
|