笔记(总结)-统计语言模型

本文深入探讨了统计语言模型的概念及其实现方式,介绍了基于概率论的句子合理性评估方法,并详细解释了n元文法简化过程及其背后的马尔可夫假设。此外,还讨论了参数估计与平滑技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在自然语言处理的相关问题中,如何表示句子是建模分析的关键。与传统的图像、音频等天然可转化为计算机编码的元素不同,自然语言需要经过复杂编码才能被计算机识别。并且,这种编码是机械式的简单排列,设计初衷是为了解决自然语言的存储问题,编码本身不带有任何语言层面的信息。因此,直接使用自然语言的编码对文字进行转换而后建模是不可靠的,过程中丢失了太多的信息。语言模型正是解决了这样的问题。


语言模型有很多种,计算机领域常用的有统计语言模型和神经语言模型,本篇先只描述统计语言模型。

统计语言模型定义

假设句子可以表示为:

S=w1w2...wnS=w1w2...wn

其中wii=1,2,...,nwi,i=1,2,...,n为组成句子的基本单位(可以为字、词等划分单位,下文统称为词)。那么以该句子的出现的概率P(S)P(S)来描述该句子的合理性。

可以看到,该定义用概率对语言建模,而不需要进行语言层面的分析。这其实是机器学习解决问题的典型思路,自然界的事物规律可以由概率表达,概率大的事件更加可能出现、更合理,反之亦然。概率本身就可以描述语言现象的合理性。


P(S)P(S)的具体定义

在自然语言中,上下文是相关的。如果以句子为单位,很容易发现,下文是依赖于上文的。比如在对话过程中,人们往往能根据对方已说出的话,来推测接下来对方要说什么。使用条件概率来刻画这种依赖是十分合适的,于是可以定义概率如下:

P(S)=p(w1)p(w2|w1)p(w3|w1w2)...p(wn|w1w2...wn1)P(S)=p(w1)p(w2|w1)p(w3|w1w2)...p(wn|w1w2...wn−1)

wiwi的概率由w1w2...wi1w1w2...wi−1决定,后者也叫做wiwi的历史。


问题简化——n元文法

可以看到,原始定义的概率论意义是十分完备的,每个词都基于历史。但这样是有问题的。建模过程中,需要具体计算形如p(wi|w1w2...wi1)p(wi|w1w2...wi−1)的参数。假设词汇表的大小为LL,那么w1w2...wi1的不同排列组合有Li1Li−1种,而这只是计算wiwi所需要的参数。

因此,我们采取简化的方法,只考虑与该词最近的一段历史(马尔可夫的思路),比如最近的一个词,此时称作二元文法(2-gram):

P(S)=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn1)P(S)=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn−1)

这样的概率处理在语言学上也是说得通的,距离当前词越近的词,造成的影响越大,而距离较远的词,往往产生的影响较小。当然,这不是绝对的,语言现象中有许多反例。但是,借由这种处理,我们达到了“合理建模”与“模型可计算”的巧妙折中。

当认为一个词由前面的n1n−1个词决定时,称作n元文法。显而易见,随着n的增大,参数量呈指数增加。现实中往往取n=2,3n=2,3,工业界一般会取n=4n=4

针对某一个句子,通常增加开始符<BOS><BOS>和结束符<EOS><EOS>使得概率定义更加完备,举例改写二元文法为:

P(S)=p(<BOS>|w1)p(w2|w1)...p(wn|wn1)p(<EOS>|wn)P(S)=p(<BOS>|w1)p(w2|w1)...p(wn|wn−1)p(<EOS>|wn)


参数计算与平滑

一般使用极大似然估计来进行参数估计,即使用已有的采样数据(训练集)来估计模型参数,使得训练集的语言现象得到最大可能性的复现。显然,极大似然在n元文法的场景下就是通过频数来得到概率参数。此时有(以二元文法举例):

P(wi|wi1)=Count(wi1wi)Count(wi)P(wi|wi−1)=∑Count(wi−1wi)∑Count(wi)

其中,Count(wi1wi)Count(wi−1wi)表示子串wi1wiwi−1wi的出现次数,同理Count(wi)Count(wi)

语言现象是丰富的,即使训练集再庞大,也不可能包括所有子串。当测试集中出现了训练集中没有的词或子串时,句子概率会等于0,但这显然是不科学的。因此我们需要对概率进行平滑,使得即使是没有出现的句子,在模型中计算得到的概率不为0,转而设置为一微小量。

参数平滑方法有很多:加一法(additive smoothing)、折扣法(discounting)、删除减值法等。在各个领域都是适用,这里就暂不详述了。


缺陷

上一部分已经看到,即使是很大的训练集也无法覆盖全部的语言现象,从而导致0概率问题的出现。使用概率进行建模的弊端也在此:依赖语言现象出现的频数。而频数是语料敏感的,不同的语料集之间差异巨大,比如新闻语料和微博语料对于语言的使用风格差异巨大,由此统计而来的频数规律肯定大不相同。在某些场景下,频数甚至无法反映语言现象,如情感分析中,表达情感的词通常是低频出现的,这时统计语言模型无法很好建模。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值