语言模型.ppt

上传人:sccc 文档编号:5666358 上传时间:2023-08-07 格式:PPT 页数:50 大小:182.04KB
返回 下载 相关 举报
语言模型.ppt_第1页
第1页 / 共50页
语言模型.ppt_第2页
第2页 / 共50页
语言模型.ppt_第3页
第3页 / 共50页
语言模型.ppt_第4页
第4页 / 共50页
语言模型.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《语言模型.ppt》由会员分享,可在线阅读,更多相关《语言模型.ppt(50页珍藏版)》请在三一办公上搜索。

1、语言模型,大纲,概述参数估计基本平滑算法其它平滑算法,概述,噪声通道模型,原型模型:出错的概率举例:p(0|1)=0.3,p(1|1)=0.7,p(1|0)=0.4,p(0|0)=0.6任务是:已知带有噪声的输出想知道输入是什么(也称为:Decoding),通道(增加噪声),0,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,输入,输出,噪声通道的应用,OCR文本打印(引入噪声),扫描图像手写识别文本神经肌肉(引入噪声),扫描图像语音识别文本朗读(引入噪声)声学波形机器翻译目标语言翻译(引入噪声)源语言其它:词性标注词性序列选择词形文本,噪声通道:黄金规则,适用于OCR,手写识别,

2、语音识别,机器翻译,词性标注等各个问题贝叶斯公式:P(A|B)=P(B|A)P(A)/P(B)Abest=argmaxA P(B|A)P(A)P(B|A)是声学/图像/翻译等模型在不同领域用不同的术语来描述P(A)是语言模型,什么是语言模型(Language Model),语言模型是用来计算一个句子的概率的概率模型例如:P(w1,w2,wn)语言模型的用途决定哪一个词序列的可能性更大已知若干个词,预测下一个词应用语音识别机器翻译上下文敏感的拼写检查,应用于语音识别,有的词序列听起来很像,但并不都是正确的句子例子1:I went to a party.Eye went two a bar tea

3、.例子2:你现在在干什么?你西安载感什么?,应用于机器翻译,给定一个汉语句子例如:王刚出现在电视上。英文译文:Wang Gang appeared in TV.In Wang Gang appeared TV.Wang Gang appeared on TV.,应用于拼写检查,举例汉语我自己知道 我自已知道英语Wang Gang appeared on TV.Wang Gang appeared of TV.,参数估计,完美的语言模型,对于词序列W=w1,w2,wn如何计算p(W)?根据链式规则:p(W)=p(w1)p(w2|w1)p(wn|w1,wn-1)即使对于很小的n,上面的理想公式也很

4、难计算,因为参数太多,马尔科夫链,有限的记忆能力不考虑太“老”的历史只记住前k个词w1,wk称为k阶马尔科夫近似p(W)=i=1dp(wi|wi-k,wi-1),d=|W|,N元语言模型,n-1阶马尔科夫近似称为n元语言模型(LM,Language Model)p(W)=i=1dp(wi|wi-n+1,wi-1),d=|W|n越大,需要估计的参数越多,假设词汇量为20,000 模型 需要的参数数量0阶(一元Unigram)20,0001阶(二元bigram)20,000*19,999=400 million2阶(三元trigram)20,0002*19,999=8 trillion3阶(四元f

5、our-gram)20,0003*19,999=1.6*1017,语言模型的讨论,n多大?理论上讲,越大越好经验值:3,trigram用的最多four-gram需要太多的参数,很难估计了目前一般直接计算词形,不进行语言学处理,如形态还原等可靠性(Reliability)和可区别性(Discrimination)成反比,需要折中n越大,区别力越大;n越小,可靠性越高,可靠性和区别性,可靠性(Reliability)和可区别性(discrimination)为了有效地推导一个特征,我们希望通过模型的其它特征来预测它,把这些特征分成等价类便于我们预测新的数据。分类特征越多,对未知分布的目标特征的预测

6、就更精确,即有较好的可区别性,但是这样对每一个分类其实例就较少,统计的数据就不可靠,所以在划分等价类时要在可靠性和可区别性之间找一个折衷点。,长度问题,n;wn p(w)=1 n=1 wn p(w)1()我们试图对所有的词序列建立模型对于固定长度的任务,没有问题,n一旦固定,累计和为1比如Tagging等对于变长的任务,需要对比较短的句子进行折扣一般模型对于长度为n的词序列P(w)=np(w),n=1 n=1 n=1 wn p(w)=1从数据中估计n,参数估计,参数:用来计算p(w|h)的数值从数据中得到数据准备去掉格式符号定义词的边界定义句子边界(插入和等记号)字母的大小写(保留、忽略或者智

7、能识别)数字(保留、替换为等),最大似然估计,最大似然估计MLE是对训练数据的最佳估计从训练数据T中获得Trigrams统计T中三个词连续出现的次数C3(wi-2,wi-1,wi)统计T中两个词连续出现的次数C2(wi-2,wi-1)pMLE(wi|wi-2,wi-1)=C3(wi-2,wi-1,wi)/C2(wi-2,wi-1),MLE不适合用于NLP,MLE选择的参数使训练语料具有最高的概率,它没有浪费任何概率在于没有出现的现象中但是MLE通常是不适合NLP的统计语言推导的,因为数据稀疏,如果一个为0,会向下传播 一个例子说明数据稀疏:从IBM Laser Patent Text语料中1.

8、5 Million 的词进行训练,在同一语料中的测试文本中,新出现23%的trigram tokens.,举例1,p(z|xy)=?假设训练语料为:xya;xyd;xyd xyz没有出现过我们能够说:p(a|xy)=1/3,p(d|xy)=2/3,p(z|xy)=0/3吗?不能,因为xyz可能是一个常见的组合,但在现有的训练集中不应有的缺失了,分析,被除数越小,越不可靠1/3可能太高,100/300可能是对的除数越小,越不可靠1/300可能太高,100/30000可能是对的,字符语言模型,使用单独的字符而不是词使用相同的公式和方法可以考虑使用4-gram,5-gram,因为数据比较充足对交叉语

9、言的比较很有用基于字和基于词的交叉熵的换算关系HS(pc)=HS(pw)/句子S中的平均词长,举例2,训练数据:He can buy you the can of soda Unigram:(8 words in vocabulary)p1(He)=p1(buy)=p1(you)=p1(the)=p1(of)=p1(soda)=.125,p1(can)=.25 Bigram:p2(He|)=1,p2(can|He)=1,p2(buy|can)=.5,p2(of|can)=.5,p2(you|buy)=1,.Trigram:p3(He|,)=1,p3(can|,He)=1,p3(buy|He,c

10、an)=1,p3(of|the,can)=1,.,p3(|of,soda)=1.Entropy:H(p1)=2.75,H(p2)=1,H(p3)=0,交叉熵,交叉熵S=It was the greatest buy of all HS(p1)=HS(p2)=HS(p3)=,原因是:所有的unigrams除了p1(the),p1(buy),and p1(of)都是0所有bigram的概率都是 0.所有trigram的概率都是 0.我们希望使每个概率都是非零的,零概率问题,原始的Trigram模型估计一定会有很多概率为0的情况因为参数空间太大,trigram:8T,而数据只有1G哪些参数真的应该是

11、0呢?理想情况是:最低频的trigram也应该出现几次,以便把它的概率和其它trigram的概率区别开来但是理想情况不会发生,到底需要多少数据,我们不知道我们必须去除概率为0的情况包括:p(w|h)=0,或者p(h)=0,为什么我们需要非零的概率?,避免无穷大的交叉熵当测试数据中出现了一个在训练数据中没有出现过的事件,就会发生H(p)=的情况使系统更健壮低频的估计值更加细腻(detailed),但相对来说很少出现高频的估计值更可靠但是不够细腻,基本平滑算法,避免零概率:数据平滑,p(w)p(w),但p(w)0对一些p(w)0,生成p(w)p(w)=0可能对于概率值较低的词也作调整可能有些w:p

12、(w)=p(w)务必确保有许多数据平滑的方法,折扣discounting,回退Back-off如果n-gram的值为零,则用n-1 gram来计算平滑Smoothing将MLE方法与其它方向相混合,保证没有0概率的值,加1平滑,最简单,但不是真的能用T:训练数据,V:词表,w:词 预测 p(w|h)=(c(h,w)+1)/(c(h)+|V|)特别:非条件分布时p(w)=(c(w)+1)/(|T|+|V|)问题:经常会|V|c(h),甚至|V|c(h)举例:T:what is it what is small?|T|=8V=what,is,it,small,?,flying,birds,are,

13、a,bird,.,|V|=12p(it)=0.125,p(what)=0.25,p(.)=0,p(what is it?)=0.252*0.12520.001 p(it is flying.)=0.125*0.25*02=0p(it)=0.1,p(what)=0.15,p(.)=0.05,p(what is it?)=0.152*0.12 0.0002 p(it is flying.)=0.1*0.15*0.052 0.00004,Trigramthey,do,approach 1they,do,have 2they,do,Link 1they,do,not 7they,do,on 3they

14、,do,open 1they,do,so 1they,do,under 5,Bigramdo,anything 2do,approach 1do,no 1do,not 97do,Novell 1do,offer 1.they,do 22,Unigramdo 384.,C(they,do,not),C(do,not),=7,=97,PMLE(not|they,do),PMLE(not|do),=7/22=0.318,=97/384=0.253,PMLE(offer|they,do),=0/22=0,PMLE(have|they,do),=2/22=0.091,举例,Add one举例,P+1(n

15、ot|they,do),P+1(offer|they,do),P+1(have|they,do),Vocabulary Size(V)=10,543,小于1平滑,加入系数-T:训练数据,V:词表,w:词 预测 p(w|h)=(c(h,w)+)/(c(h)+|V|),what is it what is small?|T|=8V=what,is,it,small,?,flying,birds,are,a,bird,.,|V|=12p(it)=0.125,p(what)=0.25,p(.)=0,p(what is it?)=0.252*0.1252 0.001 p(it is flying.)=0

16、.125*0.25*02=0取=0.1p(it)=0.12,p(what)=0.23,p(.)=0.01,p(what is it?)=0.232*0.122 0.0007 p(it is flying.)=0.12*0.23*0.012 0.000003,Good-Turing,适用于评估大规模的数据相似点:pr(w)=(c(w)+1)*N(c(w)+1)/(|T|*N(c(w),其中:N(c)是数目为c的词的数量特别:对于训练集中没有出现的词,c(w)=0 pr(w)=N(1)/(|T|*N(0)有利于数量少的词语(5-10,但N(c)较大)“调富济贫”归一化(可以得到),Good-Tur

17、ing:举例,例如:记住:pr(w)=(c(w)+1)*N(c(w)+1)/(|T|*N(c(w)T:what is it what is small?|T|=8V=what,is,it,small,?,flying,birds,are,a,bird,.,|V|=12p(it)=0.125,p(what)=0.25,p(.)=0,p(what is it?)=0.252*0.12520.001 p(it is flying.)=0.125*0.25*02=0重新计算(N(0)=6,N(1)=4,N(2)=2,N(i)=0 当 i2):Pr(it)=(1+1)*N(1+1)/(8*N(1)=2*

18、2/(8*4)=0.125Pr(what)=(2+1)*N(2+1)/(8*N(2)=3*0/(8*2)=0:keep orig.p(what)Pr(.)=(0+1)*N(0+1)/(8*N(0)=1*4/(8*6)0.083归一化(除以 1.5=)并计算p(it)0.08,p(what)0.17,p(.)0.06 p(what is it?)=01752*0.0820.0002 p(it is flying.)0.08*0.17*0.062 0.00004,典型n-gram语言模型的平滑,采用=(0,1,2,3):归一化:i0,就可以了(0=1-)(n=3)极大似然估计固定p3,p2,p1和

19、|V|,根据训练数据确定参数再寻找一组i使得交叉熵达到最小(使数据的概率达到最大):,Held-out Data,使用什么数据?使用训练数据T:但是我们总会得到3=1为什么?在向量上最小化HT(p(),p()=3p3T+2p2T+1p1T+0/|V|记住HT(p)=H(p3T)+D(p3T|p);(p3T fixedH(p3T)fixed,best)满足D(p3T|p)=0的p 可以使得HT(p)达到最小解是p3T(因为D(p|p)=0)If 3=1,必有p=1*p3T+0*p2T+0*p1T+0/|V|=p3T所以:不要采用训练数据来估计!必须留出部分训练数据(Held out data,H

20、)剩下的数据为真实原始的训练数据(training data,T)测试数据 S(例如为了比较):仍然是不同的数据!,公式,重复:在上最小化的期望数值:j=0.3“Next”:j=0.3,EM平滑算法,1、从某些开始,如j0,所有j0.32、计算每个j的期望数值3、采用“Next”公式计算的j新集合4、返回2,除非遇到终止条件终止条件为:收敛 简单设定一个,当step3中对每个j都有|j-j,next|时终止,简单实例,原始分布(unigram,对均匀分布平滑)p(a)=0.25,p(b)=0.5,p()=1/64,c.r,剩下的s,t,u,v,w,x,y,z均为0Heldout数据:baby;

21、采用一个的集合(1:unigram,0:均匀分布)开始于1=0.5;p(b)=0.5*0.5+0.5/26=0.27 p(a)=0.5*0.25+0.5/26=0.14 p(y)=0.5*0+0.5/26=0.02 c(1)=0.5*0.5/0.27+0.5*0.25/0.14+0.5*0.5/0.27+0.5*0/0.2=2.72 c(0)=0.5*0.04/0.27+0.5*0.04/0.14+0.5*0.04/0.27+0.5*0.04/0.02=1.28 归一化:1,next=0.68,0,next=0.32返回step2(重新计算p,然后 c(1),)。结束结束条件为当前的与前一组相

22、差很小(比如,0.01),其它平滑算法,线性插值,在简单线性插值中,权值仅仅是一个数,我们可以定一个更通用的和powerful的模型,其系数值是历史的函数,通用线性插值的形式是:,and,线性插值,“桶”平滑根据历史频率信息,采用几个向量代替一个例如:h=(micrograms,per)我们可以得到(h)=(0.999,0.0009,0.00009,0.00001)(因为“cubic”是唯一可以紧随的词语)事实上:不存在一个单独集合对应每个历史数据,但是可以对应近似的历史数据:(b(h),其中b:V2N(对应三元模型)b 根据可靠性来区分历史数据(频率信息),“桶”平滑算法,利用held ou

23、t数据确定“桶”函数预先设定需要的数量,如1000个桶计算1个桶中的历史频率总数 fmax(b)根据最高频bigram逐渐填满所有桶,使得频率总和不超过fmax(b)(可能会略微超过1000个桶)根据桶数平分held out数据对各个桶及其数据应用以上算法,绝对折扣 Absolute discounting,对所有的非0 MLE频率减一个较小的常数,把获得的频率分不到不出现的事件上。,线性折扣 linear discounting,非0的乘一个系数,把获得的概率分不到不出现的事件上,Katzs 回退方法 Back-off,Katz的n-gram回退模型通过前面短一些的历史对当前n-gram进行估计。估计式如下:,划分等价类的其它方法,StemmingComputerComputingCompute语义类Class-based LM时间类人名类地点类机构名类,对语言模型进行评价,最佳方法:将语言模型用于某一个应用中,例如拼写检查、机器翻译等混乱度(Perplexity):给测试集赋予较高的概率值的语言模型较好,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号