数学之美(吴军)
1 文字和语言 vs 数字和信息
1.1 文字和数字
- 在古埃及的象形文字中,发音相同的单词可以用来记录相同的符号——反映的思想。
- 聚类最终会带来,古代和现代解决歧义的方法基本相同,即通过
- 但总有失败的时候,这就是语言从一开始就固有的特征
- 翻译之所以能够实现,只是因为。此外,文本只是信息的载体,而不是信息本身。
- 埃及人用文字记录生活中最重要的信息。这给了我们以下启示:
- 。罗塞塔石碑上的内容是重复三次相同的信息(埃及象形文本、埃及拼音文本、古希腊文本),所以只要保留完好,原始信息就不会丢失。意义重大。
- 语言数据,称为,特别是多语对照语料对翻译至关重要,是机器翻译研究的基础。
- 进位制:几乎所有文明都采用十进制,但玛雅文明采用二十进制(手指和脚趾)(太阳纪400年)。2012年是太阳纪的最后一年,最终被传播到世界末日hhhh。
- 玛雅文明发展缓慢,可能是因为它的文字极其复杂,部落里很少有人能理解。
- 载体不应过于复杂 (总结by me)
- 古印度人发明了十个阿拉伯数字,包括0。阿拉伯数字或印度数字的革命性不仅在于其简洁有效,而且标志着。将数学与自然语言的研究分开。
1.2 数学背后的文本和语言
- 古巴比伦的楔子(xie)形文字-最古老的拼音文字
- 腓尼基人将楔形文字简化为22个字母
- 在古代文字系统中,通常使用短而罕见的单词长度。大多数使用罕见的单词。符合信息理论中最短的编码原理。由于写作文本比较麻烦,这种文本设计的优点是写作节省时间和材料。但古人的英语口语类似于今天的白话文。
- 通信时,如果信道较宽,信息可以在不压缩的情况下传输
- 通信时,如果信道较窄,则信息传递前应该尽可能的压缩
- 古犹太人抄写圣经,检查每一行、每一列的验证是否正确
- 从字母到单词的构词法是由单词决定的编码规则;语法是语言的编码和解码规则。
- 自然语言处理的成就宣布语言>语法
2 自然语言处理-从规则到统计
语言的数学本质是编码和解码
2.1 机器智能
- 图灵测试(Turing Test):人和机器进行交流,人无法判断自己交流的对象是人还是机器,说明机器拥有智能了。
- 早期学术界认为,计算机必须首先理解自然语言,才能完成翻译或语音识别。
- 事实上,这些功能都是通过数学实现的,更准确地说是通过统计
2.2 从规则到统计
- 基于统计的方法的核心模型是。
- 随着计算能力的提高和数据量的增加,过去似乎不可能通过统计模型完成的任务逐渐变得可能,包括复杂的句法分析
3 统计语言建模
让计算机处理自然语言的一个基本问题是建立与自然语言相关的数学模型。即统计语言模型(Statistical Language Model)
3.1 用数学方法描述语言规律
- 贾里尼克解决文本序列是否合理的方法:
- 假定S是某一个有意义的句子,由一连串特定顺序排列的词 w 1 , w 2 , … , w n w_1,w_2,…,w_n w1,w2,…,wn组成,n是句子的长度。S在文本中出现的可能性 P ( S ) = P ( w 1 , w 2 , … , w n ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) … … P ( w n ∣ w 1 , w 2 , … , w n − 1 ) P(S)=P(w_1,w_2,…,w_n)=P(w1_)\cdot P(w_2|w_1)……P(w_n|w_1,w_2,…,w_{n-1)} P(S)=P(w1,w2,…,wn)=P(w1)⋅P(w2∣w1)……P(wn∣w1,w2,…,wn−1)
- 俄国数学家马尔可夫(Andrey Markov)提出:假设任意一个词出现的概率只与他前面的词有关。(马尔科夫假设)
- P ( S ) = P ( w 1 , w 2 , … , w n ) = P ( w 1 ) P ( w 2 ∣ w 1 ) … … P ( w n ∣ w n − 1 ) P(S)=P(w_1,w_2,…,w_n)=P(w_1)P(w_2|w_1)……P(w_n|w_{n-1)} P(S)=P(w1,w2,…,wn)=P(w1)P(w2∣w1)……P(wn∣wn−1),记为(Bigram Model)
- 假定S是某一个有意义的句子,由一连串特定顺序排列的词 w 1 , w 2 , … , w n w_1,w_2,…,w_n w1,w2,…,wn组成,n是句子的长度。S在文本中出现的可能性 P ( S ) = P ( w 1 , w 2 , … , w n ) = P ( w 1 ) ⋅ P ( w 2 ∣ w 1 ) … … P ( w n ∣ w 1 , w 2 , … , w n − 1 ) P(S)=P(w_1,w_2,…,w_n)=P(w1_)\cdot P(w_2|w_1)……P(w_n|w_1,w_2,…,w_{n-1)} P(S)=P(w1,w2,…,wn)=P(w1)⋅P(w2∣w1)……P(wn∣w1,w2,…,wn−1)
3.2 统计语言模型的工程诀窍
3.2.1 高阶语言模型:
- N-1阶马尔科夫模型:文本中每个词wi和前面N-1个词有关,而与前面的词无关。N=2即为二元模型;N=1的一元模型实际上是一个上下文无关的模型。实际中最多的是N=3的三元模型,更高阶的就很少用了。
- 马尔科夫假设的局限性在于自然语言中,上下文之间的相关性可能跨度非常大,甚至可以从一个段落跨到另一个段落,因此再怎么提高模型的阶数,对这种情况也无可奈何。这是要采用其他一些**长程的依赖性(Long Distance Dependency)**来解决这个问题。
模型的训练、零概率问题和平滑方法:
- 统计 ( w i − 1 , w i ) (w_{i-1},w_i) (wi−1,wi)的词频和wi的词频,计算条件概率。由于统计量小,涉及到。实际应用中,统计语言模型的零概率问题是无法回避的,必须解决。
- 古德-图灵估计:。因此我们从概率的总量(probability mass)中,分配一个很小的比例给这些没有看见的事件。这样,看见的事件的概率总和就小于1了,,根据“越是不可信的统计折扣越多”的方法进行。
- Nr为出现r次的词语的数量。用dr代替r,其中 d r = ( r + 1 ) ⋅ N r + 1 N r d_r = \frac{(r+1)\cdot N_{r+1}}{N_r} dr=Nr(r+1)⋅Nr+1
- :出现1次的词比出现两次的多,出现两次的词比出现三次的词要多。
- :词频大于阈值T的,按照原频率;小于T的,按照古德-图灵估计后的相对频度;剩下的概率为未出现的词的概率
3.2.3 语料的选取问题
-
训练数据和应用数据应该保持一致,才会有较好地训练效果。
- 反例:腾讯搜索最开始使用《人民日报》的语料训练模型,因为开发者认为这些预料干净、无噪声;但实际训练的效果比较差,后面采用网页的数据,尽管有很多的噪音,但和用户输入的搜索串更加一致,搜索质量反而比较好。
-
数据预处理很重要
4 谈谈分词
4.1 中文分词方法的演变
- 查字典:最早的方法。由北航的梁南元教授提出。将橘子从左向右扫描一遍,遇到字典中有的词的标识出来,遇到复合词就找最长的词匹配,遇到不认识的词就分割成单字词。
- 哈尔滨工业大学的王晓龙博士将查字典的方法理论化,发展成最少词数的,即一句话应该分成数量最少的词传。
- 但对于有二义性的分割就无能为力了
- 例如:“北京大学生”,正确分割方法是“北京-大学生”,但是按此方法分类是“北京大学-生”
- 1990年,清华大学的郭进博士用成功解决了分词二义性的问题
4.2 如何衡量分词的结果
4.2.1 分词的一致性
简单依靠机器分词与人工分词的结果比较来衡量分词器的准确性就很难,甚至是毫无意义的。
不同的人对同一个句子可能有不同的分词方法,但在不同的应用中,往往是一种词的切分比另一种更有效
4.2.2 词的颗粒度和层次
人工分词不一致性的主要原因是。
不同应用中,不同颗粒度的效果不同
- 机器翻译中,颗粒度大的翻译效果好
- 网页搜索中,颗粒度小的搜索效果好
,再由不同应用自行决定切分的颗粒度。
- 建立一个基本词表和一个复合词表。
分词的不一致性可以分为错误和颗粒度不一致两种:
- 错误:
- 越界性错误:把“北京大学生“分为”北京大学-生“
- 覆盖性错误:把”贾里尼克“分为四个字
- 颗粒度不一致:人工分词的不一致性。要做数据挖掘,不断完善复合词的词典,这也是近年来中文分词的工作重点
5 隐马尔可夫模型
5.1 通信模型
通信模型的主要核心:编码、解码、信道传输。自然语言处理早期的工作都集中在语法、语义和知识表述上,离通信的原理越走越远。当自然语言处理问题回归到通信系统的解码问题时,很多难题都迎刃而解了。
从所有的源信息中找到最肯能产生出观测信号的信息:在已知 o 1 , o 2 , o 3 … o_1,o_2,o_3… o1,o2,o3…的情况下,求得令条件概率 P ( s 1 , s 2 , … ∣ o 1 , o 2 , … ) P(s_1,s_2,…|o_1,o_2,…) P(s1,s2,…∣o1,o2,…)达到最大的那个信息串 s 1 , s 2 , … s_1,s_2,… s1,s2,…,即:
s 1 , s 2 , … = A r g M a x P a l l s 1 , s 2 , … ( s 1 , s 2 , … ∣ o 1 , o 2 , … ) s_1,s_2,… = ArgMax P_{all s_1,s_2,… }(s_1,s_2,…|o_1,o_2,…) s1,s2,…=ArgMaxPalls1,s2,…(s1,s2,…∣o1,o2,…)
用贝叶斯公式可以将上述公式变换成:
P ( o 1 , o 2 , … ∣ s 1 , s 2 , … ) ⋅ P ( s 1 , s 2 , … ) P ( o 1 , o 2 , … ) \frac{P(o_1,o_2,…|s_1,s_2,…)\cdot P(s_1,s_2,…)}{P(o_1,o_2,…)} P(o1,o2,…)P(o1,o2,…∣s1,s2,…)⋅P(s1,s2,…)
5.2 隐马尔可夫模型
马尔可夫假设:随机过程中各个状态 s t s_t st的概率分布只与他前一个状态 s t − 1 s_{t-1} st−1有关,即 P ( s t ∣ s 1 , s 2 , … , s t − 1 ) = P ( s t ∣ s t − 1 ) P(s_t|s_1,s_2,…,s_{t-1})=P(s_t|s_{t-1}) P(st∣s1,s2,…,st−1)=P(st∣st−1),符合该假设的过程称为马尔可夫过程。
隐马尔可夫模型: