NLP-数学基础

自然语言处理(NLP

自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

本文主要回顾了NLP所需基本数学概念,大部分知识是作者在听宗成庆老师讲课时所做的笔记。阅读本文需要概率论基础。

概率论部分


最大似然估计:

样本空间是{s1,s2,s3…},在相同情况下重复N次,观察到样本的sk(1<=k<=n)的次数为nN(sk),sk的相对频率为:

1.png

且:3.png 

如下式把频率近似为概率:

2.png

这样一种概率估计的方法叫最大似然估计法

 

条件概率

如果AB是样本空间上的两个事件,P(B)>0,那么在给定B时,A的条件概率P(A|B)为:

4.png

  一般情况下P(A|B)!=P(A)

划分

5.png

 

全概率公式

6.png

贝叶斯公式

6_.png

先验概率

直观理解,所谓“先”,就是在事情之前,即在事情发生之前事情发生的概率。是根据以往经验和分析得到的概率。

例子:抛硬币,我们都认为正面朝上的概率是0.5,这就是一种先验概率,在抛硬币前,我们只有常识。这个时候事情还没发生,我们进行概率判断。所谓的先验概率是对事情发生可能性猜测的数学表示。

后验概率

事情已经发生了,事情发生可能有很多原因,判断事情发生时由哪个原因引起的概率。

例子:今天你没去学校,原因有两个,可能是生病了,也可能是自行车坏了。然后上课时老师发现你没来。(这里是一个结果,就就是你没来学校这件事情已经发生了)老师叫学霸计算一下概率,分别是因为生病了没来学校的概率和自行车坏了没来学校的概率。很显然,后验概率就是在事情发生后判断由哪一个原因引起的概率。这里的事情是你上学迟到,原因有生病了和自行车坏了。

贝叶斯决策理论

         假设研究的分类问题有c个类别,各类别的状态用wi表示,i=1,2,3…c;对应于各类别wi出现的先验概率为P(wi);在特征空间观察到某一向量x=[x1,x2,...,xd]是d维空间的某一点,且条件概率密度函数p(x|wi)是已知的。那么已用贝叶斯公式我们可得后验概率:

7.png

         选择条件概率最大的类别。即如果p(wi|x)则x属于wj。由于上式右侧项分母为常数,故当其分母最大时,x属于wj。

例子:

         给定语言信号A,找出对应的语句S,使得P(S|A)最大,那么s=argmax(S|A),公式如下:

8.png

公式的物理意义:

9.png

二项分布

10.png

数学期望

11.png

 

方差

12.png

    第二条公式的推导过程:

            E((X-E(X))^2)=E(X^2-2*X*E(X)+E^2(X))

            =E(X^2)-E(2*X*E(X))+E^2(X)

            =E(X^2)-2*E(X)*E(X)+E^2(X)

            =E(X^2)-E^2(X)

 


信息论


又称自信息,即自己和自己的互信息。如果X是一个离散型随机变量,其概率分布为p(x)=P(X=x), xXX的熵H(X)为:

13.png

1

         计算下列两种情况下英文信息源的熵

(1)    假设2726个字母加空格)个字符等概率出现;

(2)    假设字符概率分布如下:

14.png

 

解:(1) H(X)=-(27*(1/27)*log(1/27)/log(2))=4.75

         (2)

    14_1.png

这里的熵的意义是对每个字符进行编码时 每个字符所需的最少比特位。

 

2

法语、意大利语、西班牙语、英语、俄语字母的熵如下(由冯志伟教授整理):

15.png

这里熵的意义是对各种语言每个字符进行编码时所需的最小比特数。

联合熵

如果X,Y是一对离散型随机变量X,Y~         p(x,y), X,Y的联合熵H(X,Y)为:

16.png

联合熵实际上描述了一对随机变量平均所需要的信息量

条件熵

条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。条件熵 H(Y|X) 定义为 X 给定条件下 Y 的条件概率分布的熵对X的数学期望:

17.png

条件熵 H(Y|X) 相当于联合熵 H(X,Y) 减去单独的熵 H(X),即:H(Y|X)=H(X,Y)−H(X)

下面给出证明:

18.png

H(X,Y)=H(X)+H(Y|X) 称为连锁规则。

 

1

假设(X,Y)服从如下联合分布:

19.png

请计算H(X)H(Y)H(X|Y)H(Y|X)H(X,Y)

解:(1)H(X) H(Y)

P(X)=(1/2 1/4 1/8 1/8)

P(Y)=(1/4 1/4 1/4 1/4)

H(X) =7/4

H(Y)=2

(2)求条件熵

H(X|Y)=Σp(y=i)H(X|Y=i)

计算条件概率:
20.png

带入条件熵公式:

21.png

类似的得:H(Y|X)=13/8 H(X,Y)=27/8

 

2

简单的波利尼西亚语是一些随机的字符序列,其中部分字符出现的概率为:

P:1/8  t:1/4  k:1/8  a:1/4  i:1/8  u:1/8

解:

22.png

 

相对熵

相对熵用于衡量两个分布的差异,有两个概率分布p(x)q(x)的相对熵的定义:

23.png

性质:

1、如果 p(x)p(x)  q(x)q(x) 两个分布相同,那么相对熵等于0

2D(p||q)D(q||p) ,相对熵具有不对称性。

3D(p||q)≥0。证明如下(利用Jensen不等式

https://en.wikipedia.org/wiki/Jensen%27s_inequality):

24.png

 因为:∑p(x)=1,所以:D(p||q)≥0

 总结:相对熵可以用来衡量两个概率分布之间的差异,上面公式的意义就是求 p  q 之间的对数差在 p 上的期望值

 

交叉熵

25.png

衡量统计模型和真实值之间的差异。对于语言模型L=(Xi)~p(x)与其模型q的交叉熵为:

26.png

其中,xn=x1,...,xn为语言L的语句,p(xn)为L中语句xn的概率,q(xn)为模型q对xn的概率估计。

         由此,我们可以根据模型q和一个含有大量数据的L的样本来计算交叉熵。在设计模型q时,我们的目的是使交叉熵最小,从而使模型最接近真是的概率分布p(x)

 

困惑度

    作用和交叉熵差不多27.png

语言模型

    描述语言规律的数学模型

互信息

    如果(X,Y)~p(x,y), X,Y之间的互信息I(X;Y)定义为:I(X;Y)=H(X)-H(X|Y)

28.png

 互信息和条件熵的关系:

29.png

前面说过,信息熵被称为自信息,这是因为随机变量X的互信息等于X,所以被称为自信息,如下:

30.png

例子:

         利用互信息值估计两个汉字结合的强度:

31.png

当两个汉字xy关联度较强时,其互信息值I(x,y)>0; xy关系弱时,I(x,y)0 I(x,y)<0时,xy被称为互补分布。

耦合

用双字耦合度来替代互信息去衡量两个字的结合强度。

设Ci,Ci+1是两个连续出现的汉字,统计样本中Ci,Ci+1连续出现在一个词中的次数和连续出现的总词数,二者之比就是这两个字的耦合度:

32.png

例如:为人出现5次,“为人民”出现20次,那么Couple(为,人)=0.2

        

         有些汉字在实际应用中出现的次数虽然比较频繁,但是连续在一起出现的情况比较少,一旦连在一起出现,就很可能是一个词。但是这种情况下计算出来的互信息会比较小,而实际上两者的结合度应该比较高。

         而双字耦合度恰恰计算的是两个连续汉字出现在一个词中的概率,并不考虑两个汉字非连续出现的情况,因此耦合度实际上要更好用。

 

例:

教务以连续字符串形式在统计样本中共出现了16次,而字出现了14956次,字出现了6015次。

互信息计算:

p()=14956/(16+14956+6015)=14956/20987=0.7126

p()=6015/20987=0.2866

p(教,务)=16/20987=0.000762

I(X,Y)=log(教,务)/log(2)=log(0.0037)/log(2)=-8

(教,务)的互信息只有-0.5119

因此在判断两个连续汉字之间的结合强度方面,双字耦合度要比互信息更好一些。

 

噪声信道模型

保持足够冗余但是又要减少传输的数据量。一个二进制的对称信道的输入符号集X:{0,1},输出符号集Y:{0,1}。在传输过程中如果输入符号被误传的概率为p,那么,被正确传输的概率为1-p

33.png

要求互信息最大

34.png

35.png

例子:

法语翻译成英语:

36.png

根据贝叶斯公式:

37.png

上面我们也提到了,在上式右项中我们只需要关心分子:

38.png

算完所有的概率后,我们检索最大概率的那一句就行了。

由此我们可知,翻译系统要解决的问题有:

1.      估计语言模型概率p(e)

2.      估计翻译概率p(f|e)

3.      估计有效有效的搜索算法求解 e^2使得p(e)xp(f|e)最大。


综合例子:

词汇歧义消解:如何区分不同上下文中的词汇语义,就是词汇歧义消解问题,或称词义消岐(WSD)。词义消解是NLP的基本问题之一。

         每个词表达不同的含意时其上下文(语境)往往不同,也就是说,不同的词义对应不同的上下文,因此如果能够将多义词的上下文区别开,其词义自然就明确了。

         词汇歧义消解有两种方法:

1)基于上下文分类的消岐方法——基于贝叶斯分类器

         假设某个多义词w所处的上下文语境为C, 如果w的多个语义记作si(i>=2), 那么,可通过计算argmaxp(si|C)确定w的词义。

39.png

对P(C|si) ,假设这个语境里有多个词的时候,考虑分母的归一化,并运用如下独立性假设:

40.png

因此,

41.png

用最大似然估计:

42.png

 

计算步骤:

1.      对于多义词w的每个语义si执行如下循环:对于词典中所有的词vk计算:

43.png

2.      对于多义词w的每个语义si计算:

44.png

3.      对于多义词w的每个语义si计算p(si), 并根据上下文中的每个词vk计算p(w|si), 选择:

45.png

上式可用下面的公式替代:

46.png

 

2)基于最大熵的词汇消岐方法:

         待续

 

参考文献

[1] CSDN博客:余生最年轻.先验概率,后验概率.https://blog.csdn.net/qq_40597317/article/details/81002463. 2018-07-11

[2]宗成庆老师在超星上的讲课


上一篇: 没有了
下一篇:

首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于