你本可以发明 PageRank
You could have invented PageRank
想象一下,回到1996年,面对 AltaVista 这种仅靠关键词匹配的搜索引擎,你是否也会感到沮丧?其实,Sergey Brin 和 Larry Page 发明的 PageRank 算法核心逻辑并不复杂:每个网页都有“声望”,通过链接将声望传递给其他页面,最终汇聚成重要性排序。文章用简单的 Python 代码演示了这一过程,揭示了谷歌崛起背后的数学本质。只要理解“声望传递”和“随机跳转”这两个基本假设,你完全有可能在当年独立构思出这个改变世界的算法。
恭喜,如果你发现自己身处1996年,现在你就知道该怎么做才能成为亿万富翁了!
HN 评论区
93- inigyou
重要的是,PageRank 如今已经行不通了——你需要别的东西。它只是众多可能的排名技巧之一,之所以有效,是因为当时互联网处于一种特殊状态:没人去操纵链接,因为 PageRank 还不存在。也许你能为现代互联网发明一个不错的排名算法,比如用页面广告数量的倒数减去其 AI 检测得分,但大概率不是那样。
无关紧要的是,它是以 Larry Page 的名字命名的,而不是因为它对页面进行排名。
- jefflinwood
我确实在 1996 年构建并上线了这样一个系统,当时我完全不知道 PageRank、引文分析或文献计量学。这是为 Envirolink 网站开发的一个内部/外部搜索引擎。Envirolink 是一个环保类网站目录,所以他们手头已经有一份待爬取的 URL 列表。之所以能实现,是因为 URL 列表相对受限,并非整个互联网。
我当时其实并不清楚自己在做什么(那时我才 17 岁),但那是一段超棒的无偿暑期实习经历。搜索引擎由两部分组成:爬虫和搜索引擎本身。两者都是用 Perl 编写的。
- ianbooker
PageRank 非常迷人,因为它太容易解释了。
但这甚至只完成了一半的工作。充其量也只是完成了三分之一。
在你发明 PageRank 之前,你必须具备图思维。这在 1996 年是可能的,但远不如今天普及。
就算你发明了 PageRank,还得把它部署起来。这同样可行,但也充满挑战。1996 年的 Python 性能够用吗?你负担得起超过 4MB 的内存吗?
至少,1996 年你用乐高积木搭建服务器机柜,乐高公司不会起诉你。
- nayuki
这里有两个讲解和可视化 PageRank 算法的优秀视频:
* [2020-06-17] Spanning Tree - "How Google's PageRank Algorithm Works" (5m16s): https://www.youtube.com/watch?v=meonLcN7LD4
* [2022-05-23] Reducible - "PageRank: A Trillion Dollar Algorithm" (25m25s): https://www.youtube.com/watch?v=JGQe4kiPnrU
- smcg
嗯,1996 年我还是个孩子,所以大概率不行。
将相关性链接到链接频率,在当时绝对是一个新颖的想法,尽管事后看来它显得“显而易见”或简单。