自然语言处理学习笔记-lecture5-语言模型01

基本概念

大规模语料库的出现为自然语言统计处理方法的实现提供了可能,一个句子s=w1w2wm的先验概率如下:

p(s)=p(w1)×p(w2|w1)×p(w3|w1w2)××p(wm|w1wm1)=i=1mp(wi|w1wi1)

上面的式子就是语言模型,wi可以是字、词、短语或词类等,称为统计基元,通常以词代之,wi的概率由w1,,wi1决定,这个称为wi的历史,随着历史基元数量的增加,不同的历史基元数量按照指数级增长,如果共有L个不同的基元,例如词汇表,那么对于第i个统计基元有Li1种不同的历史情况,为了解决这个问题,将w1w2wi1映射到等价类S(w1w2wi1),使等价类的数目远远小于原来不同历史基元的数目,有:

p(wi|w1,,wi1)=p(wi|S(w1,,wi1))

将两个历史映射到同一个等价类的条件是当且仅当这两个历史中的最近的n1个基元相同,即对于H1:w1w2win+1win+2wi1wi,H2:v1v2vkn+1vkn+2vk1vk,要使得S(w1,w2,,wi)=S(v1,v2,,vk),需要满足:

H1:(win+1,,wi)=H2:(vkn+1,,vk)

上述的这种情况称为n元文法/语法模型(n-gram model):

  • n = 1:处于第i位上的基元wi独立于历史,一元文法也被写为uni-gram,monogram
  • n = 2:2-gram,bi-gram一阶马尔可夫链
  • n = 3:3-gram,tri-gram二阶马尔科夫链

为了保证条件概率再i=1的时候有意义,同时为了保证句子内所有字符串的概率和为1,即sp(s)=1,可以在句子首尾增加两个标志:<BOS>w1w2wm<EOS>,不失一般性,对于n>2的n-gram,p(s)可以分解为:

p(s)=i=1m+1p(wi|win+1i1)

其中wij表示词序列wiwjwin+1w0开始,w0表示<BOS>wm+1表示<EOS>,例如基于2元文法,<BOS>John read a book <EOS>的概率表示:

p(John read a book)=p(John|<BOS>)×p(read|John)×p(a|read)×p(book|a)×p(<EOS>|book)

应用1:音字转换问题

给定拼音串得到汉字串,根据下列推理

C^String=arg maxCStringp(CString|Pinyin)=arg maxCStringp(Pinyin|CString)×p(CString)p(Pinyin)=arg maxCStringp(Pinyin|CString)×p(CString)=arg maxCStringp(CString)

也就是求所有可能的句子对应的概率

汉字分词问题

给定汉字串得到得到分词后的汉字串,例如(他|是|研究|生物|的)

S^eg=arg maxSegp(Seg|Text)=arg maxSegp(Text|Seg)×p(Seg)p(Text)=arg maxSegp(Text|Seg)×p(Seg)=arg maxSegp(Seg)

也就是求解不同分词情况下的概率,此时统计基元为词

参数估计

对于n-gram,参数p(wi|win+1i1)可由最大似然估计得到:

p(wi|win+1i1)=f(wi|win+1i1)=c(win+1i)wic(win+1i)

但是会出现由于数据匮乏(稀疏)(sparse data)引起零概率问题,需要数据平滑(data smoothing)

数据平滑

调整最大似然估计的概率值,使零概率增值,使非零概率下调,消除零概率,目的是使测试样本的语言模型困惑度越小越好,困惑度的定义如下:对于一个平滑的n-gram,其概率为p(wi|win+1i1),可以计算句子的概率p(s)=i=1m+1p(wi|win+1i1),假设测试语料TlT个句子构成(t1,,tlT),则整个测试集的概率为p(T)=i=1lTp(ti),模型p(wi|win+1i1)对于测试语料的交叉熵:

Hp(T)=1WTlog2p(T)

其中WT是测试样本T的词数,模型p的困惑度PPp(T)定义为:

PPp(T)=2Hp(T)

加1法additive smoothing

每种情况出现的次数加1,以2-gram为例:

p(wi|wi1)=1+c(wi1wi)wi[1+c(wi1wi)]=1+c(wi1wi)|V|+wic(wi1wi)

V为词汇量,即全部可能的基元数

减值法/折扣法discounting

修改训练样本中事件的实际计数,使样本中实际出现的不同事件的概率之和小于1,剩余的概率量分配给未见概率

Good-Turing估计

假设 N 是原来训练样本数据的大小, nr 是在样本 中正好出现 r 次的事件的数目(此处事件为 n-gram), 即出现 1 次的n-gram有 n1个,出现 2 次的 n-gram 有 n2个, ......,出现 r 次的有 nr 个,那么N=r=1nrr,由于N=r=0nrr=r=0(r+1)nr+1,所以r=(r+1)nr+1nr,那么Good-Turing估计在样本中出现r次的时间的概率为:

pr=rN

实际应用中,一般直接用nr+1代替E(nr+1)nr代替E(nr),这样原训练样本中所有时间的概率之和为:

r>0nr×pr=1n1N<1

因此,有n1N的剩余的概率量可以均分给所有未见事件r=0,Good-Turing估计适用于大词汇集产生的符合多项式分布的大量的观察数据,计算步骤如下:

  • 统计nr,计算r
  • 计算概率pr
  • 得到p0=n1N
  • 计算没有出现的情况的次数n0=|VT|r>0nr
  • 得到那些零概率的概率p0n0,例如在2-gram中就是那些在历史基元确定的情况下当前基元没有发生的那些情况
  • 此时那些概率和不为0,最后一步为归一化

p^r=prrpr

Back-off后备/后退方法

当某一事件在样本中出现的频率大于阈值K(通常取K为0或1)时,运用最大似然估计的减值法来估计其概率,否则使用低阶的,即(n-1)gram的概率替代n-gram概率,这种代替需要受归一化因子α的作用,也就是对于每个计数r>0的n元文法的出现次数减值,把因减值而节省下来的剩余概率根据低阶的(n-1)gram分配给未见事件,下面以二元文法为例,对于一个出现次数为r=c(wi1i)的2元语法wi1i,使用如下公式计算修正的概率:

pkatz(wi|wi1)={drC(wi1wi)C(wi1)C(wi1wi)=r>0α(wi1)pML(wi)C(wi1wi)=0

其中pML(wi)表示wi的最大似然估计概率,这个公式的意思是所有具有非零计数r的2元语法都根据折扣率dr(0<dr<1)被减值,折扣率近似等于rr,减值由Good-Turing估计方法预测,下面是α(wi1)的求法:

wi:r=0α(wi1)pML(wi)+wi:r>0pkatz(wi|wi1)=1α(wi1)=1wi:r>0pkatz(wi|wi1)wi:r=0pML(wi)

绝对减值法Absolute discounting

从每个计数r中减去同样的量,剩余的概率量由未见事件平分,设R为所有可能事件的数目(当事件为n-gram时,如果统计基元为词,且词汇集的大小为L,则R=Ln),那么,样本出现了r次的事件的概率可以由如下公式估计:

pr={rbNr>0b(Rn0)Nn0r=0

其中n0为样本中未出现的事件的数目,b为减去的常量,b1,b(Rn0)/N是由于减值而产生的概率量,N为样本中出现了r次的事件总次数:nr×r,其中b为自由参数,可以通过留存数据的方法求得b的上限为:

bn1n1+2n2<1

线性减值法

从每个计数r中减去与该计数成正比的量,剩余概率量αn0个未见事件均分

pr={(1α)rNr>0αn0r=0

自由参数α的优化值为n1N

四种减值法的比较

  • Good-Turing 法:对非0事件按公式削减出现的次
    数,节留出来的概率均分给0概率事件。
  • Katz 后退法:对非0事件按Good-Turing法计算减
    值,节留出来的概率按低阶分布分给0概率事件。
  • 绝对减值法:对非0事件无条件削减某一固定的出
    现次数值,节留出来的概率均分给0概率事件。
  • 线性减值法:对非0事件根据出现次数按比例削减
    次数值,节留出来的概率均分给0概率事件。

删除插值法Deleted interpolation

从低阶语法估计高阶语法,即当3-gram的值不能从训练数据中准确估计时,用2-gram来替代,同样,当2-gram的值不能从训练语料中准确估计时,可以用1-gram的值来代替,插值公式:

p(w3|w1w2)=λ3p(w3|w1w2)+λ2p(w3|w2)+λ1p(w3)

其中λ1+λ2+λ3=1λ1,λ2,λ3的确定:将训练语料分为两部分,即从原始语料中删除一部分作为留存数据,第一部分用于估计p(w3|w1w2)+p(w3|w2)+p(w3),第二部分用于计算λ1,λ2,λ3,使得语言模型对留存数据的困惑度最小

posted @   eryo  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示