zhang yu ming 的个人资料米敦儿照片日志列表更多 工具 帮助

日志


2006/8/5

如何确定网页和查询的相关性

查找关于“原子能的应用”的网页。我们第一步是在索引中找到包含这三个词的网页。现在任何一个搜索引擎都包含几十万甚至是上百万个多少有点关系的网页。那么哪个应该排在前面呢?显然我们应该根据网页和查询“原子能的应用”的相关性对这些网页进行排序。因此,这里的关键问题是如何度量网页和查询的相关性。

我们知道,短语“原子能的应用”可以分成三个关键词:原子能、的、应用。根据我们的直觉,我们知道,包含这三个词多的网页应该比包含它们少的网页相关。当然,这个办法有一个明显的漏洞,就是长的网页比短的网页占便宜,因为长的网页总的来讲包含的关键词要多些。因此我们需要根据网页的长度,对关键词的次数进行归一化,也就是用关键词的次数除以网页的总字数。我们把这个商称为“关键词的频率”,或者“单文本词汇频率”(Term Frequency),比如,在某个一共有一千词的网页中“原子能”、“的”和“应用”分别出现了 2 次、35 次 和 5 次,那么它们的词频就分别是 0.002、0.035 和 0.005。 我们将这三个数相加,其和 0.042 就是相应网页和查询“原子能的应用”
相关性的一个简单的度量。概括地讲,如果一个查询包含关键词 w1,w2,...,wN, 它们在一篇特定网页中的词频分别是: TF1, TF2, ..., TFN。 (TF: term frequency)。 那么,这个查询和该网页的相关性就是:
TF1 + TF2 + ... + TFN。

读者可能已经发现了又一个漏洞。在上面的例子中,词“的”站了总词频的 80% 以上,而它对确定网页的主题几乎没有用。我们称这种词叫“应删除词”(Stopwords),也就是说在度量相关性是不应考虑它们的频率。在汉语中,应删除词还有“是”、“和”、“中”、“地”、“得”等等几十个。忽略这些应删除词后,上述网页的相似度就变成了0.007,其中“原子能”贡献了0.002,“应用”贡献了 0.005。

细心的读者可能还会发现另一个小的漏洞。在汉语中,“应用”是个很通用的词,而“原子能”是个很专业的词,后者在相关性排名中比前者重要。因此我们需要给汉语中的每一个词给一个权重,这个权重的设定必须满足下面两个条件:

1. 一个词预测主题能力越强,权重就越大,反之,权重就越小。我们在网页中看到“原子能”这个词,或多或少地能了解网页的主题。我们看到“应用”一次,对主题基本上还是一无所知。因此,“原子能“的权重就应该比应用大。

2. 应删除词的权重应该是零。

我们很容易发现,如果一个关键词只在很少的网页中出现,我们通过它就容易锁定搜索目标,它的权重也就应该大。反之如果一个词在大量网页中出现,我们看到它仍然不很清楚要找什么内容,因此它应该小。概括地讲,假定一个关键词 w 在 Dw 个网页中出现过,那么 Dw 越大,w 的权重越小,反之亦然。在信息检索中,使用最多的权重是“逆文本频率指数” (Inverse document frequency 缩写为IDF),它的公式为log(D/Dw)其中D是全部网页数。比如,我们假定中文网页数是D=10亿,应删除词“的”在所有的网页中都出现,即Dw=10亿,那么它的IDF=log(10亿/10亿)= log (1) = 0。假如专用词“原子能”在两百万个网页中出现,即Dw=200万,则它的权重IDF=log(500) =6.2。又假定通用词“应用”,出现在五亿个网页中,它的权重IDF = log(2)
则只有 0.7。也就只说,在网页中找到一个“原子能”的比配相当于找到九个“应用”的匹配。利用 IDF,上述相关性计算个公式就由词频的简单求和变成了加权求和,即 TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN。在上面的例子中,该网页和“原子能的应用”的相关性为 0.0161,其中“原子能”贡献了 0.0126,而“应用”只贡献了0.0035。这个比例和我们的直觉比较一致了。

TF/IDF(term frequency/inverse document frequency) 的概念被公认为信息检索中最重要的发明。在搜索、文献分类和其他相关领域有广泛的应用。讲起 TF/IDF 的历史蛮有意思。IDF 的概念最早是剑桥大学的斯巴克-琼斯[注:她有两个姓] (Karen Sparck Jones)提出来的。斯巴克-琼斯 1972 年在一篇题为关键词特殊性的统计解释和她在文献检索中的应用的论文中提出IDF。遗憾的是,她既没有从理论上解释为什么权重IDF 应该是对数函数 log(D/Dw)(而不是其它的函数,比如平方根),也没有在这个题目上作进一步深入研究,以至于在以后的很多文献中人们提到 TF/IDF 时没有引用她的论文,绝大多数人甚至不知道斯巴克-琼斯的贡献。同年罗宾逊写了个两页纸的解释,解释得很不好。倒是后来康乃尔大学的萨尔顿(Salton)多次写文章、写书讨论 TF/IDF 在信息检索中的用途,加上萨尔顿本人的大名(信息检索的世界大奖就是以萨尔顿的名字命名的)。很多人都引用萨尔顿的书,甚至以为这个信息检索中最重要的概念是他提出的。当然,世界并没有忘记斯巴克-琼斯的贡献,2004年,在纪念文献学学报创刊 60 周年之际,该学报重印了斯巴克-琼斯的大作。罗宾逊在同期期刊上写了篇文章,用香农的信息论解释 IDF,这回的解释是对的,但文章写的并不好、非常冗长(足足十八页),把一个简单问题搞复杂了。其实,信息论的学者们已经发现并指出,其实 IDF 的概念就是一个特定条件下、关键词的概率分布的交叉熵(Kullback-Leibler Divergence)。这样,信息检索相关性的度量,又回到了信息论。

现在的搜索引擎对 TF/IDF 进行了不少细微的优化,使得相关性的度量更加准确了。当然,对有兴趣写一个搜索引擎的爱好者来讲,使用 TF/IDF 就足够了。 如果我们结合上网页排名(Page Rank),那么给定一个查询,有关网页综合排名大致由相关性和网页排名乘积决定。

余弦定理和新闻的分类

余弦定理和新闻的分类似乎是两件八杆子打不着的事,但是它们确有紧密的联系。具体说,新闻的分类很大程度上依靠余弦定理。

Google 的新闻是自动分类和整理的。所谓新闻的分类无非是要把相似的新闻放到一类中。计算机其实读不懂新闻,它只能快速计算。这就要求我们设计一个算法来算出任意两篇新闻的相似性。为了做到这一点,我们需要想办法用一组数字来描述一篇新闻。

我们来看看怎样找一组数字,或者说一个向量来描述一篇新闻。对于一篇新闻中的所有实词,我们可以计算出它们的单文本词汇频率/逆文本频率值(TF/IDF)。不难想象,和新闻主题有关的那些实词频率高,TF/IDF 值很大。我们按照这些实词在词汇表的位置对它们的 TF/IDF 值排序。比如,词汇表有六万四千个词,分别为

单词编号 汉字词
------------------
1 阿
2 啊
3 阿斗
4 阿姨
...
789 服装
....
64000 做作

在一篇新闻中,这 64,000 个词的 TF/IDF 值分别为

单词编号 TF/IDF 值
==============
1 0
2 0.0034
3 0
4 0.00052
5 0
...
789 0.034
...
64000 0.075


如果单词表中的某个次在新闻中没有出现,对应的值为零,那么这 64,000 个数,组成一个64,000维的向量。我们就用这个向量来代表这篇新闻,并成为新闻的特征向量。如果两篇新闻的特征向量相近,则对应的新闻内容相似,它们应当归在一类,反之亦然。

学过向量代数的人都知道,向量实际上是多维空间中有方向的线段。如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近。而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角了。

余弦定理对我们每个人都不陌生,它描述了三角形中任何一个夹角和三个边的关系,换句话说,给定三角形的三条边,我们可以用余弦定理求出三角形各个角的角度。假定三角形的三条边为 a, b 和 c,对应的三个角为 A, B 和 C,那么角 A 的余弦 --



如果我们将三角形的两边 b 和 c 看成是两个向量,那么上述公式等价于



其中分母表示两个向量 b 和 c 的长度,分子表示两个向量的内积。举一个具体的例子,假如新闻 X 和新闻 Y 对应向量分别是
x1,x2,...,x64000 和
y1,y2,...,y64000,
那么它们夹角的余弦等于,



当两条新闻向量夹角的余弦等于一时,这两条新闻完全重复(用这个办法可以删除重复的网页);当夹角的余弦接近于一时,两条新闻相似,从而可以归成一类;夹角的余弦越小,两条新闻越不相关。



我们在中学学习余弦定理时,恐怕很难想象它可以用来对新闻进行分类。在这里,我们再一次看到数学工具的用途。
2006/8/4

关东才子王尔烈

     一段时间以来,电视荧屏上经常能看到有关清代的两个名人刘墉和纪晓岚的电视剧,他们的聪明才智也给大家留下了深刻的印象。不知道这两位才子有没有唤起你对另外一位跟他们同时期的才子的兴趣。这个人物不仅是二十年前红遍全国的一部电视剧《木鱼石的传说》中的主人公,而且近三百年以来有关他的故事一直活跃于东北民间,他就是人称“老主同场少主师”、“文压三江”的关东才子王尔烈。每一座看似平常的老宅子里可能都深藏着一段并不寻常的故事,只要有耐心,任何一位来访者都能捕捉到关于它昔日主人的或多或少的、或明或暗的身影。

    在辽阳老城西门里路南有一座人称“翰林府”的老宅子,他的主人就是两百多年以来传说不断的关东才子王尔烈。翻开民国初年的《辽阳县志》,可以发现有关王尔烈家族的几段记载:王尔烈,字君武,号瑶峰,乾隆三十六年二甲一名进士,授翰林院编修。由于缺乏足够的史学资料,人们不得不在史实与传说之间做出折中的选择,试图破解诸如“老主同场少主师”、“文压三江王尔烈”等故事广泛流传的缘由。曾经目睹过明末清初硝烟战火的太子河又流淌了一百年,到了大清王朝的雍正五年,公元一七二七年,古城辽阳又出现了太平盛世的景象。刚过正月十五的第八天,时任直隶深州学正的王缙家中就传出了喜添贵子的佳讯。

    虽然王尔烈后来被过继给叔叔王组,但是他的生父王缙仍然十分重视对他的启蒙教育。有一年冬天,王尔烈戴着一顶草帽在院里玩耍。有一商人笑他“穿冬装戴夏帽胡度春秋”,王尔烈则回敬了一句“走南方窜北地混账东西”。

    李景福是正在筹建的王尔烈纪念馆的负责人,他认为王尔烈并不是什么天才。

    辽阳有一个传说,王尔烈的曾祖在修魁星楼时,特意把魁星的笔尖对准了家乡风水沟的方向,企图在族人中点出个状元来。乾隆十四年,公元一七四九年,已是二十二岁的王尔烈连一个拔贡生的资格都没有取得,不知道何种动机驱使他来到了生父王缙、从父王组曾经就读过的千山龙泉寺。据说,这里有位藏书丰厚、学富五车的元空大师,在雪后的一天,他给王尔烈出了一句上联:“雪积观音、日出化身归南海”。王尔烈沉思片刻,乃成下联:“云堆罗汉、风吹漫步到西天”。这里就是王尔烈在此断断续续地苦读了二十二个春秋的龙泉寺西阁。据说,王尔烈每次下山赶考之前,元空大师都要用钟鸣之声来测试他的学力。乾隆三十六年,王尔烈欲赴京师会试,忽觉钟鸣之际天下文章尽现眼前,元空说这次他能中个进士。

    龙泉寺也是王尔烈一生之中题字最多的地方,共有两副匾、六副联,今天赏读它们时,仍然可以感受到作者在功成名就之后,对寒窗苦读之所的浓郁的回报之情!他给琼岛虚舟题的是“室狭如舟 蓬窗四启 峰围岸;山深似岛 松生一派 海生潮。”乾隆四十二年,已是五十岁的王尔烈邀约家乡诗友十余人重游千山,他在《游千山约》中写到“盘餐唯资果腹,何事珍馐”。出于这样朴实的基调,千山诗会特别成功,王尔烈不仅本人得到了“高山天作帝王州,长白尊居望莫由”的诗句,他还把诗友们的六十几首诗汇成一册《同游千山诗录》,后经著名学者金毓黻苦心搜集,得以传世。《瑶峰集》就是金先生专门为王尔烈所编,并被列入《辽海丛书》之中。

    乾隆三十六年四月,王尔烈以会试第一百零二名的身份参加殿试,果然中了个二甲一名的进士,就是排在状元、榜眼和探花之后的传胪。辽阳博物馆收藏着王尔烈乡试和会试的朱卷梨木刻板,乡试和会试各三块,这块是他的履历表。乡试和会试不注重考生的书法水平,但是到了由皇帝亲自主持的殿试之时,书法则发挥着至关重要的作用。

    这是保存于辽阳市博物馆的《学道篇》,它不仅是王尔烈的书法真迹中的上乘之作,而且也是体现他为学和为官之道的座右铭。他把求学的过程比作游山,他认为只有登上顶峰,才能产生一览众山小的愉悦心境。在这里,王尔烈把获得知识的过程看作静处,把应用知识的过程看作动处。

    《四库全书》是我国古代的、保存至今的最为浩繁宏大的百科全书,在《钦定四库全书总目》中记载着编撰者的名单,王尔烈也以《永乐大典》撰修和分校官的职务参加了这次编撰工作。

    出于一统天下和空前绝后的宏伟心愿,乾隆皇帝钦点了一大批当时最有才华的官员来领导和参与《四库全书》的编写,一时间翰林院人才云集。刘统勋、刘墉父子、和珅还有纪昀都在编撰机构中担任要职,纪昀就是纪晓岚,当时是王尔烈的顶头上司。

    由于《永乐大典》只有两部,一部于明末全部丢失,另一部在清初因保管不善又不断减少,最严重的是英法联军和八国联军的两次入侵北京给它带来了几乎是毁灭性的打击。或许因为在编《四库全书》的过程中,王尔烈亲身感受了文字狱的残酷,他一生也没有为自己著书立说,但是他为了能把战死疆场的好友常纪的遗稿传世,他还是破例编了部《爱吟草集》。

    纵观王尔烈任翰林院编修以后的仕途,很难发现他有位高权重的经历,这大概就是史书中很少提及他的原因。当他终于有较高的资格到辽阳文庙朝圣时,不知道他是否想过如何智仁合一地实现他的报复;当他给辽阳关帝庙题写“浩然气”时,是否料到了那霸道的和珅会在乾隆驾甭的第六天就被嘉庆帝处死呢?

    长篇小说《王尔烈全传》是在长春诞生的,作家杨子忱说它的创作灵感可以追溯到他的少年时代叔叔给他讲的一个故事。

    据传江南才子一见面就告诉王尔烈,说江南可谓“千山千水千才子”,王尔烈则说北方堪称“一天一地一圣人”。经过几番较量,江南才子被王尔烈征服。杨子忱认为“文压三江”的故事也有一定的史实根据,乾隆四十年王尔烈当过京师会试的同考官,或许那一次他跟江南才子有过与故事中类似的交锋。最叫杨先生兴奋的事,他在苏州亲耳听到一些老人传讲这个故事。

    杨子忱的《王尔烈全传》一出版,令一位叫王志刚的青年如获至宝,因为他只是听父亲讲过王尔烈是他们的先祖,但是支系和辈分已经搞不清楚了。

    八十年代初,电视剧《木鱼石的传说》成功塑造了一位既与乾隆同场考过试,又给嘉庆当过老师的王尔烈形象,就像民间所说的“老主同场少主师”。

    当然美丽的传说越多越好,今天的辽阳人还在说王尔烈的翰林府是嘉庆赐资修建的,曾经高悬御笔题写的“传胪”和“太史第”两块匾,年逾古稀的王尔烈还在此兴办义学。嘉庆四年,公元一七九九年以大理寺少卿的官衔退休的王尔烈受聘掌教盛京翠升书院,此时他还帮助纪晓岚搜集过《阅微草堂笔记》的资料。

    这位纪大人也是给一切有关王尔烈的美丽传说锦上添花的关键人物,这块百寿屏就是纪晓岚会同刘墉、翁方纲、程伟元等一百二十五位乾嘉名流联手为王尔烈的七十寿辰创作的。纪晓岚的寿礼是诗配画,他赞誉王尔烈“鹤立霜林、神骨耸秀,性清故高、气清故寿”。试想,如果不是德高望重之人,在他即将告老还乡之时怎会得到如此厚重的礼物。然而,在总共一百二十六幅字画中却没有发现当时的权臣和珅的名字。据说这里面也有嘉庆的礼物,其中一幅没有署名的上顶天、下杵地的楷书寿字就极似嘉庆的御笔。

    嘉庆六年,公元一八零一年,有一天人们发现那些常来翰林府讨教的学子们个个心情沉重,原来他们的老学长永远地离开了这里。这两块立在辽阳博物馆碑林中的墓碑是从王尔烈的祖籍风水沟运来的,如今风水沟作为一个村庄已经不复存在了。无论多么茂盛的叶子总是要凋落的,但是这叶子曾经带给行人们的片片绿意和缕缕清香却永远地飘荡在人们记忆的常青树上。

没落的帝国(三)

开源——革的就是微软的命
    enemy [n.]a person who hates and opposes another person.
    “哪里有压迫,哪里就有反抗”。开源运动诞生之初无非是几个“臭味相投”的黑客们看不管收费软件的作法,非要弄出个石破天惊。你让我收费,我非不交这冤枉钱,我把项目源代码开放,看你赚谁的钱。可以说开源运动的前驱者们多少还是有点意气用事,他们无法预见这冲动日后会造就令微软巨头闻风丧胆的“魔鬼”。
    开源软件,尤其是Linux操作系统以及Apache Web服务器已经在企业大规模的使用。现在,开源软件正在向浏览器,架构软件,桌面软件,开发工具,甚至成套应用软件发展。可以说哪里有微软的视窗旗帜飘扬,哪里就有开源软件的身影。
    为什么企业用户对开源软件的兴趣越来越浓厚?原因很简单,首先是因为成本。几乎所有的开源软件都是免费下载,免费使用,无须支付购买费。微观经济学认为企业生存的本质就是利润最大化,当然利润最大化未必代表成本最小化。面对“开源”和“节流”,许多企业会选择后者,原因很简单风险最小、回报周期也最短。我们经常会看到今天通用裁员多少,明天沃尔玛裁员多少,足以证明至少60%的公司倾向于选择控制成本来实现企业利润的最大化。从这个角度说开源软件不知不觉中运用了心理学的理论牢牢控制了各种“胖”、“瘦”用户的选择力。
    其次,开源软件的灵活性和安全性都要更胜一筹。企业购买软件的费用与咨询费用之比是1:5。他们以前习惯于定制软件,有了开源软件,他们就有机会积极参与开发进程,使得开发出的软件完全适应于自己的需求,这样也可以省去原来软件定制过程中繁琐的需求调研。安全性也是众多企业甚至政府部门非常关心的问题。试想,你会放心将公司内部的CRM交给微软这样的垄断企业来做么?如果这样做了,那无异于“引狼入室”。
    2005年10月,新华Linux宣布,中国政府计划为江苏省的小学和中学中提供14万套使用Linux平台的个人电脑。这也是Linux平台在亚洲的最大规模的应用。中国政府的国家部委和地方行政机构已经开始安装开源软件了,目前使用Linux平台的国家部委有科技部、统计局和劳动部。国家政府之所以这么做,完全是处于战略考虑,或者从另一个角度说中国政府推动开源软件的政策仍带有明显的文化和政治因素。
    除此之外,著名开源基金会Apache占Web服务器市场的70%份额,遥遥领先微软、Sun和其他公司的产品。Apache之父布莱恩·贝伦多夫(Brian Behlendorf)是开源运动的领导人之一,目前任CollabNet公司的首席技术官。他曾经向媒体讲述一个非常有趣的故事:1987年的时候盖茨被问及他是否畏惧Netscape,他回答说,“不,Netscape我不怕,我怕的是Apache。”
    客观事实告诉我们,微软的阵地正逐渐被开源项目软件所蚕食,曾经无比荣耀的“日不落帝国”是否感觉到一点危机了呢?
2006/8/3

没落的帝国(二)

 我们都知道,微软帝国是盖茨精心蕴育的苗圃。里面凝结了他多少心血我们不从得知。但是假如换成你,一个如日中天的事业摆在你面前,你会如何选择。也许你会说,盖茨这么做是激流勇退。嗯,我想大多数人也是这么认为的。从正面说,“激流勇退”乃识时务者,“万物负阴而抱阳”、“否极而泰来”,想必盖茨也是深谙其道,与其独领风骚不如独善其身,不禁令后人瞻仰其丰功伟绩。从另一方面看,盖茨为何选择此刻下野,从理论上讲这下野时间表真是个值得研究的东西,太早不好,太晚也不好。(我个人认为历史上时间选择最合适的是南非前总统曼得拉,原因暂且不论。)微软经历了20多年的风风雨雨,从无名小卒到软件业霸主,可以说前无古人,独树一帜。黄老曾经给毛泽东提出过“王朝周期律”的问题,大到国家,小到企业,这个定律仍然适用(局部表现为摩尔定律、Amdahl定律)。特别是目前蓬勃发展的软件信息产业,周期特征更明显、周期长度更短、周期效果更残酷。施乐、DEC、compaq、曾经多么荣耀的名字啊,现在几人能详?这也验证了达尔文的进化论“优胜劣汰,适者生存”!盖茨在这个时刻经历了微软的过去,但也同样预见了微软的未来。展现在盖茨面前的“微软阵地防御图”也许远比我们常人所想像的还要残酷和血腥。
2006/8/2

[连载原创]没落的帝国(一)

前段时间在网上看到一张非常有趣的图片——微软阵地防御图。咋一看仿佛中世纪的作战图纸,上面标满了各种“作战”符号。嘿嘿,其实这些符号就是微软目前开发的所有产品。这些产品涉及各个领域,比如操作系统、编程语言,开发平台,聊天工具,搜索引擎等等。既然是张阵地防御图,防御方自然是微软了,那么攻击方是谁呢?呵呵,“树敌”在英语中翻译为“make enemies”。中学时刚接触这个词组就觉得挺有意思,这“enemy”为啥是“make”出来的。鲁迅有言“这世界上本没有路啊,走的人多了才有了路”。依次类推“这世界上本微软本没有敌人,可它越来越嚣张,这微软的敌人自然被它make出来了”。按照马哲的观点,正所谓有因必有果啊。
    有人说忽视困难、富有侵略性那是微软的企业文化,联想于此,那么微软树敌过多便在情理之中了。前段时间,微软最大的boss Bill Gates宣布下野,下野前给每位微软员工写了一封辞职信。信很简短,70%回忆微软曾经的辉煌和历史,20%展望未来微软的发展方向,10%说明辞职原因。本人最关心那10%的内容,大意是说我盖茨啊年事已高,已不适合担任技术岗位,且目前打算一心一意从事慈善和福利事业,微软未来的发展航向应由更年轻、更富活力的年轻人担当舵手。原因看似再普通不过,表面上盖茨胸襟广阔、任人为贤,可我们稍微仔细想想,这盖茨ms有“潜台词'啊!这潜台词到底是啥?下回分解。