原文地址:https://www.jianshu.com/p/e528a9c6a509
2.1 概率论基础
全概率公式
贝叶斯法则(Bayes' theorem)
贝叶斯决策理论(Bayesian decision theory)
2.2 信息论基础
熵(entropy)
熵又称为自信息(self-information),表示信源\(X\)每发一个符号(不论发什么符号)所提供的平均信息量。熵也可以被视为描述一个随机变量的不确定性的数量。一个随机变量的熵越大,它的不确定性越大。那么,正确估计其值的可能性就越小。越不确定的随机变量越需要大的信息量用以确定其值。可将其物理意义理解为:熵越大,进行编码时所需要的bit位数越多。
联合熵(joint entropy)
条件熵(conditional entropy)
互信息(mutual information)
相对熵(relative entropy or Kullback-Leibler divergence)
KL距离是不对称的,即\(D(p\ ||\ q) \neq D(q\ ||\ p)\)。
交叉熵(cross entropy)
其中,\(x_1^n\)表示\(n\)个句子。
由此,我们可以根据模型\(q\)和一个含有大量数据的\(L\)的样本来计算交叉熵。在设计模型\(q\)时,我们的目的是使交叉熵最小,从而使模型最接近真实的概率分布\(p(x)\)。
困惑度(perplexity)
双字耦合度
有研究表明汉语使用词有6000多个,常用一级词有2000多个,常用二级词有3000多个。
关于互信息的应用,例如在汉语断词问题中:“为人民服务”的“为人民”部分,是分成“为人”和“民”还是分成“为”和“人民”?可以利用互信息来估计两个汉字结合的强度。通常,互信息值越大,表示两个汉字之间的结合越紧密,越有可能成词;反之,断开的可能性越大。当两个汉字\(x\)和\(y\)关联度较强时,其互信息值\(I(x;y)>0\);\(x\)和\(y\)关系弱时,\(I(x;y)\approx0\);而当\(I(x;y)<0\)时,称\(x\)和\(y\)为“互补分布”。
在汉语分词研究中,也有学者使用双字耦合度的概念来代替互信息。设\(C_i\)、\(C_{i+1}\)是两个连续出现的汉字,统计样本中\(C_i\)、\(C_{i+1}\)连续出现在一个词中的次数和连续出现的总次数,二者之比就是\(C_i\)、\(C_{i+1}\)的双字耦合度值。即:
总结下两个汉字出现时的所有情况:
1.两个汉字连续出现,并且在一个词中;
2.两个汉字连续出现,但是分属两个不同的词;
3.两个汉字非连续出现。
在实际应用中,有些汉字虽然出现得比较频繁,但是连续一起出现的情况比较少。一旦连在一起出现,就很可能是一个词。这种情况下计算出来的互信息会比较小,而实际的结合度应该是比较高的。双字耦合度恰恰计算的是两个连续汉字出现在一个词中的概率,并不考虑两个汉字非连续出现的情况,即计算的是相对频次。
因此,在汉语分词任务中,耦合度相较于互信息效果常更好。例如,“教务”以连续字符串形式在统计样本中共出现了16次,而“教”字出现了14945次,“务”字出现了6015次。(“教”,“务”)的互信息只有-0.5119,属于较小的值,利用互信息进行断定时需要将它们切开。可通过实验得到的结果为:在判断两个连续汉字之间的结合强度方面,双字耦合度要比互信息更合适一些。
噪声信道模型(noisy channel model)
在信号传输的过程中都要进行双重性处理:一方面要通过压缩消除所有的冗余,使得传输的量越多越好,另一方面又要增加冗余控制,加上校验位,通过增加一定的可控冗余以保障输入信号经过噪声信道后可以很好地恢复原状。冗余位太多,影响传输容量;冗余位太少,不能校验传输的真实信号。这样的话,信息编码时要尽量占有少量的空间,但又必须保持足够的冗余以便能够检测和校验错误。而接收到的信号需要被解码使其尽量恢复到原始的输入信号。
噪声信道模型的目标就是优化噪声信道中信号传输的吞吐量和准确率,其基本假设是一个信道的输出以一定的概率依赖于输入。
2.3 应用举例:词汇歧义消解问题
如何区分不同上下文中的词汇语义,就是词汇歧义消解需要解决的问题,或称为词义消歧(word sense disambiguation, WSD)问题。词义消歧是自然语言处理中的基本问题之一。每个词表达不同的含义时,其上下文(语境)往往不同。也就是说,不同的词义对应不同的上下文。因此,如果能够将多义词的上下文区别开来,其词义自然也就明确了。例如,“他/P 很/D 会/V 与/C (-2)人/N(-1) 打/V(0) 交道/N(+1) 。/PU(+2)”首先使用了大小为2的上下文窗口。
基于上下文分类的消歧方法 ------ 基于贝叶斯分类器(Gale et al., 1992)
数学描述
假设某个多义词\(w\)所处的上下文语境为\(C\),如果\(w\)的多个语义记作\(s_i(i\ge2)\)。那么,可以通过计算\(arg\max_{s_i} \ p(s_i|C)\)来确定\(w\)的词义。
考虑分母的归一化,并运用如下独立性假设:
因此,
结合最大似然统计,得:
算法描述
- 对于多义词\(w\)的每个语义\(s_i\)执行如下循环:对于词典中所有的词\(v_k\)计算:
- 对于多义词\(w\)的每个语义\(s_i\)计算:
- 对于多义词\(w\)的每个语义\(s_i\)计算\(p(s_i)\),并根据上下文中的每个词\(v_k\)计算\(p(w|s_i)\),选择:
即,
取对数后将小数放大,避免下溢错误。
基于最大熵的消歧方法
熵是对一个信息变量不确定性的预测。熵值最大时反映该模型是最随机、最不受约束的时候。
在只掌握关于未知分布的部分知识的情况下,符合已知知识的概率分布可能有多个。但是,使得熵值最大的概率分布最真实地反映了事件的分布情况。因为熵定义了随机变量的不确定性,当熵最大时,随机变量最不确定,最难准确地预测其行为。也就是说,在已知部分知识的前提下,关于未知分布最合理的推断应该是符合已知知识下最不确定或最大随机的推断。
对于词义消歧问题来说,确定一个多义词的某个义项可以看成是一个事件\(a\),多义词周围(上下文)出现的词及其词性看成是这个事件发生的条件\(b\)。利用条件熵\(H(a|b)\)最大时的概率\(p(a|b)\)推断多义词使用某一义项的可能性。
用\(A\)表示某一个多义词所有义项的集合,\(B\)表示所有上下文的集合。定义\(\{ 0, 1 \}\)域上的二值函数\({f(a,b)}\)来表示上下文条件与义项之间的关系,\(f(a,b)\)表达式如下所示:
经验概率分布\(\tilde{p}(a,b)\)是通过对已知的样本空间进行统计获得的,算出的数学期望值记为\(E_{\tilde{p}}(f)=\sum_{a,b}\tilde{p}(a,b)f(a,b)\)。
假设所建立的模型的概率分布为\(p(a,b)\),则特征\(f\)关于\(p(a,b)\)的数学期望为\(E_{p}(f)=\sum_{a,b}p(a,b)f(a,b)\)。
使用\(\tilde{p}(b)\)表示\(b\)在已知样本中的概率分布,则\(E_{p}(f)=\sum_{a,b}\tilde{p}(b)p(a|b)f(a,b)\)。
如果特征\(f\)对模型是有效的,那么模型预测的数学期望和已知样本统计的结果数学期望应该是一样的。
假设我们存在\(k\)个特征,这些特征在建模时对输出有影响。建立的模型\(p\)应该属于\(C=\{p\in\Gamma|E_{p}(f_i)=E_{\tilde{p}}(f_i),i\in\{1,2,\cdots,k\}\}\)这个范围中。
条件熵为\(H(p)=-\sum_{a,b}\tilde{p}(b)p(a|b)log(a|b)\)。在满足\(k\)个约束的前提下,基于使得这个条件熵取最大值的概率模型来推断使用每一个义项的可能性。