《数学之美》阅读笔记

本文介绍了数学在搜索引擎和自然语言处理中的应用,包括如何建立搜索引擎索引、PageRank网页排名算法、TF-IDF关键词相关性计算、动态规划在导航系统中的应用以及搜索引擎的反作弊策略。同时,探讨了语言的数字化表示,如文字与数字的发展,以及信息熵在消除不确定性中的作用,还涉及拼音输入法的数学原理。
摘要由CSDN通过智能技术生成

《数学之美》阅读笔记

前言

数学与搜索、信息与信息处理之间有着密不可分的联系。下面将用相对简洁通俗的语言介绍《数学之美》一书中的相关内容。
让数学,改变世界!

一、数学与搜索

1.如何建立搜索引擎的索引?

通过图论理论可以实现网络爬虫,从而自动下载互联网所有的网页,建立搜索引擎。
图遍历算法的分类——“广度优先搜索”(BFS)尽可能广地访问每个节点直接连接的其他节点;“深度优先搜索”(DFS)“一条路走到黑”。

互联网虽然复杂,但可抽象为一张大图。在这里插入图片描述在这里插入图片描述

图——可以把每一个网页当做一个节点,把那些超链接当作连接网页的弧。
网络爬虫从一家门户网站的首页出发,先下载这个网页,然后通过分析这个网页,找到页面里所有的超链接,也就等于知道了这个网页所链接的其他全部网页,接下来访问、下载并分析所链接的网页,又能找到其他相连的网页,不停地做下去,便可以下载整互联网。
在网络爬虫中,人们使用一种“哈希表”(散列表)而不是记事记录网页是否下载过信息。

2.如何衡量一个网页的质量?

Google的革命性发明是它名为“PageRank”的网页排名算法,由Google的创始人拉里佩奇和谢尔盖布林发明。
网页排名其实就是民主表决,在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的信赖,那么它的排名就高。
一个网页Y的排名来自于所有指向这个网页的其他网页X1、X2、…、Xn的权重之和,权重用X1、X2、…、Xn网页的排名表征。
权重的算法:假定所有网页排名相同,根据此初始值,算出各网页的第一次、第二次、第n次迭代排名,当n很大时,排名估计值会收敛到排名真实值上。
数学解释(矩阵相乘):
在这里插入图片描述
在这里插入图片描述

3.如何衡量网页与查询的相关程度?

为此,剑桥大学的斯巴克琼斯引入了一个概念——TF-IDF(Term Frequency/Inverse Document Frequency),中文为“单文本词频-逆文本频率指数”,此概念被公认为信息检索中最重要的发明。
TF和IDF需要分开理解。
TF(单文本词频)也称为“关键词的频率”。用关键词的次数除以网页的总字数。(关键词——这里特指所搜索内容的关键词,比如“原子能的应用”可以分成3个关键词“原子能”“的”“应用”。)
这样,便可用各关键词在网页中出现的总词频来度量网页与查询的相关程度。
但是,有的关键词对网页主题几乎无用,如“的”;此外,不同的关键词对网页的预测程度不同,如“原子能”和“应用”相比,“原子能”更能代表一个网页的主题,因其更专业。
为解决这一问题,为每个关键词引入权重。一个词预测主题的能力越强,权重越大,反之越小,例如“的”“是”“得”等词权重为0,被称为“停止词”。
IDF(逆文本频率指数)即为权重的计算方法之一。计算公式为log(D/D_w),其中D为全部页数,D_w为一个关键词w在D_w个网页中出现过。
例如:总中文网页数为10亿,“原子能”在200万个网页中出现,“应用”在5亿个网页出现,IDF_原子能=log(10亿/200万)=8.96。IDF_应用=log(10亿/5亿)=1。
+综上:相关性计算公式为——TF_1IDF_1+TF_2IDF_2+…+TF_N*IDF_N
其中N为关键词的个数。

4.如何实现本地搜索?

可以采用“有限状态机”的方法来实现本地搜索必须的技术——地址的识别与分析。
有限状态机是一个特殊的有向图,包括一些状态节点和链接这些状态的有向弧。
在这里插入图片描述
使用这个方法,主要解决了两个问题——通过一些有效地址来建立状态机,以及给定一个有限状态机之后地址自串的匹配算法。
上述方法有些问题——当输入地址不太标准或有错别字时,有限状态机无效。基于此,科学家提出了一种基于概率的有限状态机,它和离散马尔可夫链基本等效。

解决了本地搜索问题后,我们将构造导航系统。

补充:加权图——考虑图中每一条弧的长度,或者说权重。
比如中国公路网就是很好的“加权图”的例子,弧的权重对应地图上的距离/行车时间/过路费金额等等。
所有的导航系统都采用了动态规划的办法。
动态规划的在导航系统的应用原理是,通过先找到所有可能的局部最短路径,最后得到的全程最短路线一定包括这些局部最短路线的一条。这样,将一个“寻找全程最短路线” 的问题,分解成一个个寻找局部最短路线的小问题。
在这里插入图片描述
动态规划的数学模型可以大大降低计算复杂度。
例如:从北京到广州,由南至北会经过很多城市,但是东西方向上有许多选择,每加入一条横切线,线上平均有10个城市,从广州到北京最多经过15个城市,那么采用动态规划的计算量是101015,而采用穷举路径的办法是10^15,前后相差万亿倍。

5.搜索引擎如何反作弊?

针对搜索引擎的作弊是指用户在搜索引擎中发现排名靠前的网页不一定是高质量的相关的网页,而是商业味儿浓厚的作弊网页。
作弊的目的只有一个,采用不正当手段提高自己网页的排名。方法有很多:
重复关键词,一个卖数码相机的网站,重复罗列各种数码相机品牌,如尼康、佳能等等。这种做法很容易被发现并纠正。
专门买卖链接,比如有人自己创建成百上千个网站(上面没有实质性内容),只有链接到其客户网站的链接。这种方法更为隐蔽,但是也可能会被发现(类比制作假钞,如果某一种假钞流通量相当大后便容易找到源头)
作弊的JavaScript跳转页面,很多作弊网站的落地页内容质量非常高,但是里面暗藏一个JavaScript用以跳转到另外一个商业网站。因此用户进入后,落地页只是一闪而过,就进入到作弊网页。搜索引擎爬虫会因为落地页较好而将其排在前面。
反作弊的方法,分为“道”的层面和“术”的层面。
“道”的层面,搜索引擎作弊本质上就是如同对排序的信息加入噪声,因此反作弊做的就是增强排序算法的抗噪声能力,以及像信号处理中去噪声一样,还原真实的排名。即类比通信中解决噪声干扰问题的思路:
1、从信息源出发,加强通信编码的自身的抗干扰能力。
2、从传输来看,过滤掉噪声,还原信息。
比如:在发动机很吵的汽车里用手机打电话,对方可能听不清,但是如果知道了汽车发动机的频率,加上一个与发动机频率相同、振幅相反的信号,就很容易消除发动机噪声。
在这里插入图片描述
在这里插入图片描述
搜索引擎作弊者所做的事,如同在手机信号中加入噪声,使得搜索结果的排名完全混乱了,但由于1、作弊方法不可能随机(否则无法提高排名)2、作弊方法时间相关(作弊者不可能一天换一种方法),因此搞排名算法的人,可以在搜集一段时间作弊信息后将作弊者抓出来,还原真实排名。
“术”的层面,涉及到余弦距离和图论的内容。
针对买链接的网站,都有大量的出链,这些出链的特点与不作弊的网站相比大不相同,每一个网站到其他网站的出链数目可以作为一个向量,是这个网站固有的特征,然后便可以计算余弦距离(计算两个向量夹角的余弦),发现有些网站的出链向量之间的余弦距离几乎为1,一般来讲,这些网站通常是一个人建的,目的只有一个:卖链接。
在图论中,如果有几个节点两两相互都链接在一起,它们被称为一个Clique。作弊的网站一般都需要相互连接以提高自己的排名,这样便在互联网这张大图中形成了一些Clique。图论中有专门发现Clique的方法,可以直接用到反作弊中。

二、数学与语言

1、文字与数字

文字与数字都是信息的载体,其意义在于记录和传播信息。

(1)文字

最早的象形文字是古埃及的《亚尼的死者之书》,收藏于大英博物馆,距今3300-3400年。中国也有着原始的象形文字——甲骨文。随着历史发展,象形文字个数越来越多,当增加到5000个左右时,埃及的象形文字数量便不再随着文明的发展而增加了,因为难以记忆。
于是,概念的第一次概括和归类就开始了,在古埃及的象形文字中,读音相同的词可能用同一个符号记录。这种概念的聚类,在原理上和今天的自然语言处理或者机器学习中的聚类有着很大的相似性。在远古,这个过程可能需要上千年;今天可能只需几个小时,视计算机的速度和数量确定。
1822年,法国语言学家商博良破解了罗塞塔石碑上的古埃及象形文字(这个石碑上面有三种语言——埃及象形文字,埃及拼音文字和古希腊文),从而获得了文字中包含的信息。对于从事自然语言处理的学者,有两点意义:
1、信息的冗余是信息安全的保障。
2、语言的数据(语料)是从事机器翻译研究的基础。

(2)数字

具有书写形式的数字和象形文字应该诞生于同一时期,距今有几千年的历史。
几乎所有早期的文明对于数字1、2、3的记录方式都是几横(中国)、几竖(罗马),这是象形文字的典型特征。逐渐的,祖先发现十个指头不够用了,于是发明了进位制,它代表着祖先开始懂得对数量进行编码,不同的数字代表不同的量。
对于不同位数数字的表示,中国人和罗马人都用明确的单位来表示数字的不同量级。中国人用个十百千万亿兆,罗马人用罗马字符,这两种表示法都用了朴素的编码的概念——首先,它们都用不同的符号代表不同的数字概念;第二,它们分别制定了解码的规则。描述数字最有效的是古印度人,他们发明了包括0在内的10个阿拉伯数字,表示方式比中国和罗马的都抽象,但是使用方便。

(3)文字数字与信息学

自然语言的发展,在冥冥之中都受着信息科学规律的引导。
今天我们把所有西方的拼音文字称为罗马式的语言。
从象形文字到拼音文字是一个飞跃,因为人类在描述物体的方式上,从物体的外表进化到了抽象的概念,同时还不自觉地对信息进行了编码。不仅如此,我们祖先对文字的编码还非常合理。在罗马体系的文字中,总体来讲,常用字短,生僻字长;意型文字中也是类似,常用字笔画少,生僻字笔画多。这完全符合信息论中的最短编码原理。这种文字设计(实际上是一种编码方法)带来的好处是书写起来省时间省材料。

白话与文言文也体现了通信过程中的一些基本原理——在通信时,如果信道较宽,信息不必压缩就可以直接传递;而如果信道很窄,信息在传递前需要尽可能地压缩,然后在接收端进行解压缩。在古代,两个人讲话说得快是一个宽信道,无需压缩;书写来得慢是一个窄信道,需要压缩。将日常的白话口语写成精简的文言文本身是信道压缩的过程,而将文言文解释清楚是解压缩的过程。这个现象与我们今天宽带互联网和移动互联网上的视频播放设定完全一致,前者是经过宽带传输,因此分辨率可以做得高得多;而后者由于空中频道带宽的限制,传输速度要慢一到两个数量级,因此分辨率要低得多。由此可见,在信息论尚未被发明的几千年前,中国人已经无意识地遵照它的规律行事了。

古犹太人在抄写《圣经》时,发明了一种类似于我们今天计算机与通信中校验码的方法,它们把每一个希伯来字母对应一个数字,这样每行加起来就有一个特殊的数字,成为这一行的校验码,每一列也是这样处理。当抄写完一页时,将每一行的文字加起来,看看新的校验码是否与原文相同。如果每一页和每一行的校验码和原文完全相同,则说明抄写无误。若出错,可通过行和列锁定错误之处。

2、语言处理

计算机科学之父图灵在《思想》杂志上发表了一篇题为“计算的机器和智能”的论文。在论文中提出了一种验证机器是否有智能的方法:让人和机器交流,如果人无法判断自己交流的对象是人还是机器,那么这个机器有智能。这就是图灵测试。自然语言处理的研究一般认为在这时候就开始了。
20世纪七十年代之前,科学家们试图用电脑模拟人脑进行分析思考,但大多以失败告终,这类派别被称为“鸟飞派”——看看鸟怎样飞的,就能模仿鸟造出飞机,而不需要了解空气动力学。事实上,怀特兄弟发明飞机是依靠空气动力学而非仿生学。同理,对于人类而讲,一个能把英语翻译成汉语的人,必定能很好地理解这两种语言,在人工智能领域,机器并不需要理解自然语言,而是依靠统计完成自然语言处理这项任务。

(1)统计与语言

一句正常的话的构成由自然语言和语法规则组成。因此计算机在开始时采用基于规则的算法来分析句子,但是由于基于规则的描述严重依赖上下文,导致出现了很多问题。比如,“The pen is in the box.”和"The box is in the pen."前一句话的意思是“钢笔在盒子里。”很好理解,而后一句则不好理解,实际上后一句中的“pen”是围栏的意思,意为“盒子在围栏里。”
1970年以后的统计语言学的出现使自然语言处理获得新生,其中的关键人物是贾里尼克和他领导的IBM华生实验室。基于统计的研究方法的核心模型是通信系统加隐马尔可夫模型。
贾里尼克认为:一个句子是否合理,就看它的可能性大小如何。可能性就用概率来衡量。
假定S为一个有意义的句子,由特定顺序的词w1、w2、w3、w4、w5……wn组成,设这个句子出现的概率为P(S),则P(S)=P(w1,w2,…,wn),利用条件概率的公式
P(w1,w2,…,wn)=P(w1)P(w2|w1)P(w3|w1,w2)……P(wn|w1,w2,…,w_n-1)
马尔可夫提出了一种方法:每当遇到这种情况时,就假设任意一个词w_i出现的概率只同它前面的词w_i-1有关,于是问题就变得简单:
P(S)=P(w1)P(w2|w1)P(w3|w2)……P(w_n|w_n-1)
这便是统计语言模型,是一种二元模型。
如果一个词由其前面的N-1个词确定,则被称为N元模型。
P(w_i|w_i-1)=P(w_i-1,w_i)/P(w_i-1)
联合概率P(w_i-1,w_i)和边缘概率P(w_i-1)的算法:
数一数w_i-1,w_i这对词在统计的文本中前后相邻出现了多少次#(w_i-1,w_i)以及w_i-1本身在同样的文本中出现了多少次#(w_i-1),然后用两个数分别除以语料库的大小#,就可得到相对频度f(w_i-1,w_i)=#(w_i-1,w_i)/#,f(w_i-1)=#(w_i-1)/#。
由大数定律,只要统计量足够,相对频度就等于概率,而P(w_i|w_i-1)就是这两个数的比值。因此,P(w_i,-1w_i)=#(w_i-1,w_i)/#(w_i-1)
这便是自然语言处理背后的基本的数学原理。

(2)分词

分词是指将一句话分割成多个词的过程。
分词在自然语言处理中有重要的意义,其表现便在于(1)中的w1、w2、w3、w4、w5……wn中。
不同于英文自然的空格分词,中文分词是需要将一句话分成多个词的。北京航空航天大学的梁南元教授提出“查字典”的方法来进行分词——把一个句子从左到右扫一遍,遇到字典里的词就标识出来,遇到复合词(上海大学)就找最长的词匹配,遇到不认识的字串就分割成单词,于是分词便完成了。
但是查字典的方法存在“二义性”问题,比如:“上海大学城书店”正确的分词应该是“上海-大学城-书店”,而不是“上海大学-城-书店”。1990年,清华大学的郭进博士用统计语言模型成功解决了分词二义性问题,将汉语的分词错误率降低了一个量级。
大体思路如下:
假定一个句子有几种分词方法,A1、A2、A3……Ak;B1、B2、B3……Bm;C1、C2、C3……Cn。那么最好的分词方法应该保证分完词后这个句子出现的概率最大。也就是说,如果A1、A2、A3……Ak是最好的分词方法,那么其中概率满足
P(A1、A2、A3……Ak)>P(B1、B2、B3……Bm)
P(A1、A2、A3……Ak)>P(C1、C2、C3……Cn)
P的计算方法在(1)中有所说明。

(3)隐马尔可夫模型

自然语言处理可以用通信模型来辅助理解。
通信模型是指信息源、编码、信道、解码接收者几部分组成的一个框图模型。
从汉语到英语的翻译过程中,讲话者说的是汉语,编码方式是英语,如果利用计算机,根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译。因此,几乎所有的自然语言处理问题都可以等价成通信的解码问题。
根据接收端的观测信号o1、o2、o3,…来推测信号源发送的信息s1、s2、s3,…的方法是,从所有源信息中找到最可能产生出观测信号的那一个信息。用概率论的语言来描述,就是已知o1、o2、o3,……的情况下,求得条件概率
P(s1、s2、s3,…|o1、o2、o3,…)达到最大值的那个信息串s1、s2、s3,…
由贝叶斯公式得
P(o1、o2、o3、…|s1、s2、s3、…)*P(s1、s2、s3、…)/P(o1、o2、o3、…)
由于当o1、o2、o3,…产生后P(o1、o2、o3、…)一定,故只需研究
P(o1、o2、o3、…|s1、s2、s3、…)*P(s1、s2、s3、…)
记此式为5.3式。
接下来便会用到“隐马尔可夫模型”了。
马尔可夫链是指,随机过程中的s1、s2、s3、……中s_t只与s_t-1有关而与s_t-2、s_t-3、……s1无关。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将5.5代入5.3,得到5.4式,所以通信的解码问题便可以用隐马尔可夫模型来解决。从而自然语言处理的解码问题便可以用隐马尔可夫模型来解决了。

(4)信息的度量

信息是用来消除不确定性的东西。——香农
几乎所有自然语言处理、信息与信号处理的应用都是一个消除不确定性的过程。
信息可以用“信息熵”这个量来度量,符号为“H”,单位为比特。
H(X)=-(P(x1)logP(x1)+P(x2)logP(x2)+…+P(x_n)logP(x_n))
在这里插入图片描述
香农在信息论中提出一个“互信息”的概念作为两个随机事件“相关性”的量化度量。
在这里插入图片描述
机器翻译中,最难的两个问题之一就是二义性。比如Bush既是一位美国总统的名字,又是灌木丛的意思。在这里便可以用信息熵来解决这个问题:
首先从大量文本中找出和总统布什一起出现的互信息最大的一些词,比如总统、美国、国会、华盛顿等等。再用同样的方法找出和灌木丛一起出现的互信息最大的词,比如土壤、植物、野生等等。有了这两组词,在翻译Bush时快快快上下文中哪类相关的词多就可以了。

(4)拼音输入法的数学原理

后记

会持续更新~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗然而日章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值