数学之美
吴军在谷歌做过搜索质量与广告排名,这本书是他写给中文读者的随笔:每章先摆一个工程麻烦——拼音怎么变成汉字、两篇文档怎么算像、上千亿条链接怎么排序、一句含糊的话怎么被听清——再退回背后的数学:香农的信息熵、统计语言模型、维特比算法、矩阵特征值上的网页排名、最大熵与核方法。他少推公式、多讲思路,反复说明一件事:工业界真正救场的模型,往往简单到能写在一张纸上。这些文章原是他在谷歌任职期间写的系列博客随笔。
吴军在谷歌做过搜索质量与广告排名,这本书是他写给中文读者的随笔:每章先摆一个工程麻烦——拼音怎么变成汉字、两篇文档怎么算像、上千亿条链接怎么排序、一句含糊的话怎么被听清——再退回背后的数学:香农的信息熵、统计语言模型、维特比算法、矩阵特征值上的网页排名、最大熵与核方法。他少推公式、多讲思路,反复说明一件事:工业界真正救场的模型,往往简单到能写在一张纸上。这些文章原是他在谷歌任职期间写的系列博客随笔。
搜索引擎用到的定理,每一条都短得能写在一张纸上。
这本书的写法是从工程问题倒回数学。要把拼音串变成汉字,就得假设一个词只由前面几个词决定,语言于是成了概率序列;判断两篇文章像不像,只量词频向量的夹角;要挑出重要页面,就把每条入链当作一张选票,让分值沿链接分摊到收敛,一个特征向量便排出名次。香农的信息论在更底下撑着:信息量等于消掉的不确定性;语言天生啰嗦,正是这份冗余让人听清含糊的句子,也给了纠错码用武之地。他反复强调一场范式转变:与其请专家写一万条规则,不如让模型从十亿词的语料里自己学;模型能小,是因为只保留必须知道的那一点。读完会发现,数学在这里不是难题集,而是工业界最省钱的工具。
统计语言模型不判断语法,只计算一串词出现的可能性,靠海量语料把概率估出来。拼写校正、机器翻译和语音识别于是共用一套底座,规则派与数据派的胜负就分在这里。
汉字之间没有空格,断词、标注词性、识别人名,都是在一张层层展开的格子图上寻找最优路径。动态规划配合维特比算法,一次遍历就能把所有局部选择合成全局最好的那一条。
布尔代数解释关键词的与或非,词频与逆文档频率的乘积让常见词靠边、专有词浮起,向量空间里的夹角则回答"这两篇有多像"。哈希表和索引把这些算法压成毫秒级的响应。
一个网页的重要程度,由指向它的那些页面按自己的分量分摊而来;随机漫步者顺着链接走足够久,分布稳定下来,特征向量的分量就是排名。人的投票与机器的算法在这里合流。
听到的声音背后是说不出口的词,看到的词背后是没写出来的句法。隐含马尔可夫链、贝叶斯公式、最大熵模型与期望最大化算法轮流上场,在信息不完整时仍然给出可用的判断。
变长编码与纠错码划出可靠传输的极限;两个大素数相乘容易、分解难,公钥密码与数字签名由此立住;拍卖一个广告位则要问:怎样的规则让人愿意报出自己心里的真价。
他欣赏的模型都很短:一两个假设、一个能算的目标函数,剩下交给数据。写得太复杂,常常说明还没找对那个该被挑出来的变量。
语言的啰嗦、编码的校验位、系统的备份看着浪费,却是信道有噪声时唯一能把信息原样送出去的办法;信息与不确定性是一枚硬币的两面。
规则越多,越说明没摸到规律。统计方法在语音和翻译上的胜利不靠聪明,而靠能吞下整个语料库,把专家说不清的那些边缘情况一并学会。
图、矩阵、概率分布在不同章节里换了名字出现。真正理解了一个"有限记忆"的假设,就能同时看懂断词、语音识别和网页排名。
工程上可用的解必须在有限的时间内跑得动,还要能在数据不足时给出近似。动态规划、贪心和近似算法因此比存在性定理更有名。
信息是用来消除不确定性的东西。
每当我解雇一位语言学家,我们的语音识别系统就更进步一点。——书中引述的贾里尼克
冗余不是浪费,而是在有噪声的世界里把信息送出去的代价与保险。
真正管用的模型往往简单得惊人,复杂常常意味着还没找到正确的变量。