十四个开关 · 第 14 份 · Page & Brin 1998

PageRank 开关

网页排序最直白的做法是数入链——谁被指得多谁排前面。可链接是免费的:造一批互相指来指去的垃圾页,把它们全指向你要推的那一页,就能把它顶上去。PageRank 换了一行:一票的分量取决于投票人自己的分数,而且每个页面的票要平摊给它指出去的每一条链接。下面这个开关在两者之间切。

总闸

前 20 名

正常页面 农场页 / 被推的那一页

农场造得越多,被推的那页爬得多快

纵轴是排名,越靠上越前

阻尼系数 d · 攻击一次要多少成本

关掉的是哪一行

只换打分那一行:分数 = 幂迭代算出的特征向量分数 = 入链数。网页图、链接农场、农场规模全不动。

⇒ 造 50 个农场页:数入链时被推的那页排第 7(已经进了前十),PageRank 下是第 39同一张图、同一个农场,只因为票怎么算。

啊哈瞬间:票要平摊

PageRank 真正挡住农场的不是「递归加权」这四个字,是平摊:一个页面的票要除以它指出去的链接数。农场页自己没分(没人从外面指它们),摊完更没分

⇒ 把成本量出来:把目标页推进前十,数入链只要 36 个垃圾页,PageRank 要 340 个——9 倍。要推到第 1 名差得更远:数入链 519 个就够,PageRank 造到 8192 个都没成。

⚠ 我预期错了:它不免疫

我写下「PageRank 让链接农场失效」。实测它只是变贵了。农场规模拉到 500,被推的那页在 PageRank 下也进了前十(第 10 名),而且前十里已经有 1 个是农场页本身。

为什么挡不住:每个页面都有 (1−d)/N基础分(随机冲浪者会凭空跳过来)。农场页再没用也有这一份,造得够多就能凑出来。⇒ 抗操纵不是「能不能」,是「多贵」——而「多贵」是可以量的,上面那两个数就是。

它什么时候不赢

① 量出来一件和直觉相反的事:阻尼系数 d 越大越抗操纵,不是越小。d = 0.5 时只要 60 个农场页,d = 0.95 时要 1919 个。因为 d 越大,真实链接结构被放大得越厉害,农场那点平摊来的基础分就越显得微不足道。⚠ 但 d 太大幂迭代收敛得慢(d = 0.85 时是 32 轮),而且 d = 1 时根本不收敛——0.85 是个折中,不是什么神圣数字。

② 它只看链接,不看内容:一个和你的查询毫无关系但很红的页面,PageRank 给它高分。真实的搜索是「相关性 × 权威度」,PageRank 只是后半截。③ 农场只要买通一条来自高权重页的链接,成本立刻塌下来——这就是付费链接生意存在的原因。