一 序
本文属于贪心NLP学习笔记系列。
二 Noise Channel Model(噪声信道模型)
老师在接下来将语言模型之前,先介绍了噪声信道模型。
噪声信道试图通过有噪声的输出信号恢复输入信号。对于某一输入信号,此信号通过会产生噪声的转换信道得到输出信号,
现在假设我们已知道输出信号,求解它的输入信号,那么就会用到此模型。
假设用户想传递的信息是m1 经过有噪声信道传递之后接受到的数据source .并且m1到mn是语料库。必有如下等式成立
也就是说,在不知道原有信息是内容的情况下,使得p(mi|source)取得最大值的mi,最有可能是原有信息,由上面的贝叶斯公式可得:
又由于P(source)是常量,不会影响概率值,所以原式可化简为:等比 Proportional(并非等价)
直接看公式可能不好理解,老师给讲了贝叶斯进行推导的过程。
为了更好地理解这个噪声信道模型,老师结合应用场景来解释。
其中:机器翻译 等比 翻译(之前讲到的词典)*语言模型。
三 语言模型
语言模型是NLP的非常重要的知识点。
- 标准定义:对于语言序列 w1,w2,...,wn,语言模型就是计算该序列的概率,即
。
- 从机器学习的角度来看:语言模型是对语句的概率分布的建模。
老师给出了通俗的解释:语言模型用来判断,是否一句话从语法上通顺。
数学基础
chain rule 链式法则
2个事件同时发生的概率:
P(a, b) = P(a | b) * P(b)
其中:P(a, b)表示 a和b事件同时发生的概率, P(a | b)是一个条件概率,表示在b事件发生的条件下,a发生的概率.推广为
P(X1, X2, ... Xn) = P(X1 | X2, X3 ... Xn) * P(X2 | X3, X4 ... Xn) ... P(Xn-1 | Xn) * P(Xn)
示例:今天是春节我们都休息
提前都计算好每个单词的概率,这样计算句子的概率就是把这些概率相乘。(就是语言模型训练好之后,遇到新的句子就可以计算)。
说明chain rule所得的条件概率项是通过统计所给文档中出现今天、是、春节、我们、都的次数(图中出现2次)和出现今天、是、春节、我们、都之后再出现休息的次数(图中出现一次)
所以概率是1/2,而红字的运动在(今天是春节)概率为0
问题是:句子很难完全一致,大部分句子再文章或者语料库很少出现,导致稀疏性。比如:10^5 出现几条。
马尔科夫假设(markov assumption)
即假设当前词出现的概率只依赖于前 n 个词,可以得到
非常重要的概念,后面的HMM,CRF都在使用了马尔科夫假设。
利用1st order markov assumption的例题: