网页的 质量排序 PageRank & 相关度排序 TF-IDF

对于大部分用户的查询,今天的搜索引擎,都会返回成千上万条结果,那么应该如何排序,把用户最想看到的结果排在前面呢?这个问题很大程度上决定了搜索引擎的质量。总的来讲,对于一个特定的查询,搜索结果的排名取决于两组信息,关于网页的质量信息(Quality ), 和这个查询与每个网页的相关性(Relevance)。

网页的质量——PageRank算法

真正找到计算网页自身质量的完美的数学模型的是Google的创始人拉里●佩奇和谢尔盖●布林。Google的“PageRank”(网页排名)是怎么回事呢? 其实简单地说就是民主表决。打个比方,假如我们要找李开复博士,有100个人举手说自己是李开复。那么谁是真的呢?也许有好几个真的,但即使如此谁又是大家真正想找的呢?如果大家都说在创新工场的那个是真的,那么他就是真的。

在互联网上,如果一个网页被很多其他网页所链接,说明它受到普遍的承认和信赖,那么它的排名就高。这就是PageRank的核心思想。当然Google的PageRank算法实际上要复杂得多。比如说,对来自不同网页的链接区别对待,因为网页排名高的那些网页的链接更可靠,于是要给这些链接以较大的权重。这就好比在现实生活中股东大会里的表决,是要考虑每个股东的表决权(Voting Power)的,拥有20%表决权的股东和拥有1%表决权的股东,对最后的表决结果的影响力明显不同。PageRank 算法考虑了这个因素,即网页排名高的网站贡献的链接权重大。

现在举一个例子,我们知道一个网页Y的排名应该来自于所有指向这个网页的其他网页X_1, X_2, ..., X_k的权重之和,如下图中,Y的网页排名pagerank = 0.001 + 0.01 + 0.02 + 0.05 = 0.081。

接下来的问题是X_1,X_2, X_3, X_4的权重分别是多少,如何度量。佩奇认为,应该是这些网页本身的网页排名。现在麻烦来了,计算搜索结果的网页排名过程中需要用到网页本身的排名,这不成了“先有鸡还是先有蛋”的问题了吗?

破解这个怪圈的应该是布林。他把这个问题变成了一个二维矩阵相乘的问题,并且用迭代的方法解决了这个问题。他们先假定所有网页的排名是相同的,并且根据这个初始值,算出各个网页的第一次迭代排名, 然后再根据第一次迭代排名算出第二次的排名。他们两人从理论上证明了不论初始值如何选取,这种算法都保证了网页排名的估计值能收敛到排名的真实值。值得一提的事,这种算法是完全没有任何人工干预的。理论问题解决了, 又遇到实际问题。因为互联网上网页的数量是巨大的,上面提到的二维矩阵从理论上讲有网页数量的二次方这么多个元素。如果假定有十亿个网页,那么这个矩阵就有一百亿亿个元素。这么大的矩阵相乘,计算量是非常大的。佩奇和布林两人利用稀疏矩阵计算的技巧,大大简化了计算量,并实现了这个网页排名算法。

互联网网页数量的增长使得PageRank的计算量越来越大,必须利用多台服务器才能完成。Google 早期时,PageRank 计算的并行化是半手工、半自动的,这样更新一遍所有网页的PageRank的周期很长。2003年,Google的工程师发明了MapReduce 这个并行计算的工具,PageRank 的并行计算完全自动化了,这就大大缩短了计算时间,使网页排名的更新周期比以前短了许多。

网页的相关性——TF-IDF算法

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

因此,度量网页和查询的相关性,有一个简单的方法,就是直接使用各个关键词在网页中出现的总词频。具体地讲,如果一个查询包含N个关键词W_1, W_2, ... W_N,它们在一个特定网页中的词频分别是: TF_1, ..., TF_N。(TF: Term Frequency,是词频一词的英文缩写)。那么,这个查询和该网页的相关性(即相似度)就是:

TF_1 + TF_2+ ... + TF_N

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

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

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

  2. 停止词的权重为零。

很容易发现,如果一个关键词只在很少的网页中出现,通过它就容易锁定搜索目标,它的权重也就应该大。反之,如果一个词在大量网页中出现,看到它仍然不很清楚要找什么内容,因此它的权重就应该小。概括地讲,假定一个关键词w在D_w个网页中出现过,那么D_w越大, w的权重越小,反之亦然。在信息检索中,使用最多的权重是“逆文本频率指数”(Inverse Document Frequency, 缩写为IDF ),它的公式为\log \left(\frac{D}{D_w}\right).

其中D是全部网页数。比如,假定中文网页数是D= 10亿,停止词“的”在所有的网页中都出现,即D_w= 10亿,那么它的IDF =log(10亿 / 10 亿)= log(1)=0。假如专用词“原子能”在200万个网页中出现,即D_w= 200万, 则它的权重IDF = log(500) = 8.96。又假定通用词“应用”出现在五亿个网页中,它的权重IDF = log(2), 则只有1。也就是说,在网页中找到一个“原子能”的命中率(Hits)相当于找到九个“应用”的命中率。利用IDF, 上述相关性计算的公式就由词频的简单求和变成了加权求和,即

T F_1 \cdot I D F_1+T F_2 \cdot I D F_2+\cdots+T F_N \cdot I D F_N

在上面的例子中,该网页和“原子能的应用”的相关性为0.0161, 其中“原子能”贡献了0.0126,而“应用”只贡献了0.0035。这个比例和我们的 直觉比较一致了。

来源

[1]吴军. 数学之美 : Beauty of mathematics[M]. 人民邮电出版社, 2014.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容