豆瓣8.8分高分神作《数学之美 第三版》之第三章读书笔记,带你了解语言统计模型(持续更新中)

目录

1. 语言规律的数学表达

1.1 马尔可夫假设(二元模型)

1.2 高阶模型

2. 模型细节问题的优化

2.1 零概率问题

2.1.1 一元模型的情况

2.1.2 二元模型的情况

2.2 训练语料的选择


在前两章的读书笔记中,我们回顾了自然语言处理(NLP)的演进历程。这一领域经历了从早期的基于规则的方法到现代的基于统计和机器学习技术的转变。科学家们通过无数次的尝试和实验,最终确定了以统计方法为核心的NLP研究路线。从这一章开始,我们将进一步深入探索这些技术细节,揭示其背后的数学原理,并领略数学在自然语言处理中所展现的独特之美。

1. 语言规律的数学表达

1.1 马尔可夫假设(二元模型)

自然语言处理技术的发展初期,其核心目标之一是解决语音识别问题,即让机器能够自动地识别并理解一段连贯、有实际意义的自然语言。对于人类来说,我们通常采用语法是否正确和词义是否清晰作为衡量标准。然而,对于机器而言,单纯依赖基于文法的解析路径并不可行(正如前章读书笔记所述)。

正是在这样的背景下,“天降猛男”弗里德里克·贾里尼克提出了一种革新性的统计语言模型。他的这一贡献极大地简化了先前困扰学术界的语音识别难题。贾里尼克的核心思想是,通过计算句子在给定语言中的出现概率来评估其合理性。概率越高的句子,其合理性和准确性通常也越高。

基于这一思想,机器识别和生成有意义句子的任务就转化为了一个概率计算问题。这一转变不仅让自然语言处理技术的研究方向更加明确,也为后续的技术发展提供了有力的支撑。

具体而言,假设 S 代表包含 n 个一个句子,其中 w_i 代表一个单词,则 S 可以表示为:

S=\{w_1,w_2,...,w_n\}

接着,基于条件概率的公式,上面提到的句子 S 的概率则可细化成如下形式:

\displaystyle P(S)\\\\=P(w_1,w_2,...,w_n) \\ \\=P(w_1)\cdot P(w_2|w_1)\cdot P(w_3|w_1,w_2)\cdot...\cdot P(w_n|w_1,w_2,...,w_{n-1})

到此,问题就简化成了如何计算那些条件概率了:

 P(w_1)=?\\\\ P(w_2|w_1)=?\\\\ P(w_3|w_1,w_2)=?\\\\ ......

上面的概率从上到下依次表示:第一个单词 w_1 出现的概率;在 w_1 已出现的情况下,第二个单词 w_2 出现的概率;在 w_1 和第 w_2 个单词同时出现的情况下,第三个单词 w_3 出现的概率……有概率论基础的同学应该能体会到,从上往下,计算的复杂度呈现几何级增加。

为了降低计算的复杂度,俄国数学家马尔可夫提出了一种简化版的方法,该方法假设第 i 个单词出现的概率只跟前面一个单词(即第 i-1 个单词)相关,跟更往前的单词无关。用公式表示即:

这个假设称之为马尔可夫假设;在语言统计模型的领域,它也被叫做二元模型。

在二元模型中,问题就进一步简化为了计算下面的概率:

一般来说,分子和分母的计算逻辑如下:

1)分子:统计训练语料库中 w_{i-1} 和 w_i 相邻出现的次数,常用 \#w_i,w_{i-1} 表示。

2)分母:统计训练语料库中 w_{i-1} 出现的次数,常用 \#w_{i-1} 表示。

只要语料库足够的丰富,那么根据大数定律,\#w_i,w_{i-1} 和 \#w_{i-1} 相除得到的“比例”就能近似看做概率。

数学的精妙之处正是体现在此,通过一个简洁的二元统计语言模型,竟然能够成功解决自然语言处理领域长期困扰科学家们的难题。

1.2 高阶模型

在自然语言处理领域,N元模型(N-gram model)是一种基础且重要的工具。它通过分析文本中连续的N个词或符号,来捕捉语言的统计规律。尽管二元模型(bigram)和三元模型(trigram)在很多场景下已经能提供相当不错的性能,但当我们面对更复杂的语言理解任务时,可能需要更高阶的模型来捕捉更为细致的上下文信息。

理论上,随着N的增加,模型能够考虑的上下文信息越丰富,对自然语言的处理能力也就越强。然而,实际应用中,四元模型(4-gram)已经是相对较高的阶数了。谷歌的翻译系统和语音搜索系统使用四元模型,这在一定程度上反映了工业界对于模型性能和计算成本之间的权衡。

为什么更高阶的N元模型并不常用呢?原因主要在于性价比。实验表明,从一元模型(unigram)到二元模型,以及从二元模型到三元模型,性能提升是显著的。但是,当N超过3之后,性能的提升幅度开始变得不那么明显。与此同时,随着N的增加,模型的空间复杂度和计算复杂度呈指数级增长。这意味着,为了获得微小的性能提升,我们需要付出巨大的计算资源代价。

此外,即使使用了高阶的N元模型,仍然无法完全覆盖所有的语言场景。在现实的语言环境中,上下文的相关性可能不仅限于前后几个词,甚至可能跨越整个段落或文章。这种现象在语言学中被称为“长距离依赖”。如果我们为了捕捉这种长距离依赖而大幅提高N的值,计算成本将变得难以承受。这也暴露了马尔可夫假设的局限性,即假设当前状态只依赖于前N个状态。

2. 模型细节问题的优化

马尔可夫假设对应的语言统计模型,要想发挥真正的内在威力,还得处理一些细节问题。

2.1 零概率问题

以二元模型为例,我们常采用统计方法来估计特定词序列出现的概率。这通常涉及在训练语料库中统计两个连续单词共同出现的次数,并除以单个单词出现的总次数,以此得到的“频率”在大数定理的支撑下作为概率的近似值。然而,这种方法在实际应用中面临一个重大挑战,即所谓的“零概率问题”。

零概率问题指的是在训练语料库中,某些单词或单词组合的出现次数为零或极少,因此无法根据现有的统计数据来准确估计其概率。这种情况违反了大数定理的前提,导致基于频率计算的概率值变得不可信。

为了解决零概率问题,一种直观但不可行的方法是无限增加训练数据。然而,这种方法在实际操作中面临诸多困难。首先,收集和整理全世界范围内的所有文本数据是一个庞大且几乎不可能完成的任务。其次,即使我们获得了海量的文本数据,其中也必然包含大量的噪声数据,这会影响模型的准确性。此外,语言是一个不断发展的系统,新的词汇和表达方式不断涌现,这意味着无论我们拥有多少训练数据,都无法完全覆盖所有的语言场景。

科学家提出了一种称为古德-图灵估计(Good-Turing Estimation)的数学方法,该方法巧妙地解决了在样本不足时遇到的概率估计问题。古德-图灵估计的核心思想在于,当对通过训练语料库得到的频率“比例”产生质疑时,通过对这些比例进行折扣处理,并将多余的概率分配给训练语料库中未出现的词汇。这种方法有效地避免了零概率问题,确保了即使在训练语料库中未出现的词汇也能获得一定的概率值,从而提高了模型的鲁棒性和泛化能力。在自然语言处理中,古德-图灵估计是一种常用的平滑技术,用于改善基于频率的概率估计方法,并提升模型的性能。

2.1.1 一元模型的情况

针对如何应用折扣,前辈们已经提出了具体的实现公式。以下,我们将以统计训练语料库中每个单词出现的频率为例,来简要说明这一方法的应用。下面公式中,N 表示训练语料库的大小,r 表示单词出现的频率,N_r 表示出现 r 次的单词有 N_r 个,这个等式是一直成立的。

我们知道,出现 r 次的单词在整个语料库的“比例”为 \frac{r}{N} 。如果不做额外的优化处理,这个“比例”(也称为相对频率),就会统一作为出现 r 次单词的概率估计。

当 r 比较小时,我们认为上面计算的“比例”有些不可靠,于是我们就采用打折的方式,把原本的“比例值”调小。方式就是将 r 通过下面的公式进行调小,变成 d_r 。

满足:

这样一来,出现 r 次的单词在整个语料库的“比例”就变成了 \frac{d_r}{N} 。

通常情况下,出现 r 次的单词数比出现 r+1 的单词数要多(即 N_r> N_{r+1} ),这个规律有个名字,叫Zipf定律,如下图所示:

所以,一般情况下,d_r<r,并且 d_0>0 ,使得未出现的词也获得了一个非零的概率值(虽然很小),从统计领域的术语来讲,我们正在做概率估计的平滑,从根源是解决零概率的问题。

在实际应用中,通常会设定一个频率阈值。当某个单词在训练语料库中出现的次数高于这个阈值时,我们认为其频率所代表的概率估计是可靠的,因此不对其进行折扣处理;而当某个单词的出现次数低于这个阈值时,我们则认为其概率估计可能不够准确,因此会采用古德-图灵估计等方法对其进行折扣处理,以提高模型的鲁棒性和泛化能力。

2.1.2 二元模型的情况

二元模型也能很好地利用古德-图灵估计进行概率的平滑,消除零概率问题。

我们知道,通过第 w_{i-1} 个单词来预测第 w_i 个单词的所有概率值加起来等于1:

当用了古德-图灵估计后,会对在语料库中出现频率较小的二元组 (w_{i-1}, w_i) 的预估概率做打折处理,因此会导致:

我们发现,有一小部分的概率并没有分配出去,在这里,我们就把这部分未分配的概率给到那些完全没有出现在语料库里的二元组 (w_{i-1}, w_i) ,从而消除零概率问题。基于此,二元模型的概率公式可以表示成如下形式:

其中 T 表示是否进行打折处理阈值(一般在8-10),当二元组 (w_{i-1}, w_i) 出现的频率大于等于 T 时,就不进行额外处理;介于 0 到 T 之间的,就进行打折处理,其中 f_{gt} 表示打折函数;当二元组完全没出现时,就用 Q(w_{i-1})*f(w_i) 来计算,其中 f(w_i) 就代表 w_i 在语料库里出现的“比例”,而 Q(w_{i-1}) 则表示成如下形式:

2.2 训练语料的选择

腾讯的搜索部门在初期阶段选择了如《人民日报》等高质量、高度标准化的文本作为训练数据,期望借此提升搜索模型的性能。然而,他们很快发现,这一策略在实际应用中并未达到预期效果,模型的表现不尽如人意。这背后的原因在于,人们在日常生活中的语言交流往往呈现出高度的口语化和非标准化特性,这与新闻稿等正式文本在词汇选择、句子结构、语义表达等方面存在显著差异。

在构建和训练自然语言处理模型时,理解并明确目标业务场景是至关重要的。不同的业务场景,如社交媒体对话、电商评论分析、学术文献检索等,均具有其独特的语言特点和表达习惯。因此,针对特定业务场景的特性,选择与之匹配的训练语料,对于提升模型的准确性和实用性至关重要。

  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值