学好线性代数,成为亿万富翁不是梦

作者: Cloud

来源: 果壳

发布日期: 2018-11-01

本文通过介绍谷歌PageRank网页排名算法,展示了线性代数在实际应用中的重要性,特别是如何通过线性代数解决复杂的网页排名问题,从而帮助谷歌搜索引擎脱颖而出,并使创始人成为亿万富翁。

线性代数课听得晕晕乎乎,你是不是也在想:这线代到底能干啥使啊?今天,AI就给你们讲一个特别激动人心的例子——线性代数有可能让你成为亿万富翁!当人们在使用搜索引擎时,总会对搜索结果排名靠前的网页更信任。在大多数人的直觉里,最重要的、可信度高的网页应该排在前面。可是,怎样判断一个网页的重要性?一个很自然的想法是:一个网页获得链接越多,可信度就越高,那么它的排名就越高。

这个看似简单的想法,正是谷歌PageRank网页排名算法的核心思想。

光看网页链接数,靠谱吗?不过,算法实际上要复杂的多。比如,你想呀,把每个网页获得的链接从多到少排名一下可以吗?好像也不行,光是想想庞大的网络水军就知道,这样排名的注水量一定能淹了龙王庙。这很容易作弊不说,也不能反映不同网页内容和领域的差异。假如,你是学校的招生老师,看推荐信,是看谁的信多谁厉害吗?当然不是,还要看写信的人是谁。

同样的道理,我们应该看一下链过去的网页到底有多厉害。如果一个网页被很多其他网页所链接,由于有的网页重要,而有的网页很水,我们当然要对来自不同网页的链接区别对待。因而,在判断一个网页的重要性时,对那些重要网页的链接应该给予大的权重,而权重又取决于它们的重要程度——被链接的次数……

这样,问题就来了。和单向的推荐信不同,所有的网页都是连在一起的,你链我、我链她、她链他,他链我,构成了一个死循环。而你评估必须要有一个起点,但是,用任何网页作为起点都不公平,怎么办?PageRank的解决办法是:先同时把所有网站作为起点,也就是先假定所有的网页一样重要、排名相同。然后,进行迭代。

看线代怎么解决算法难题同时起点又该怎么做?这时候,就是线性代数非出场不可的时候了。

1996年,谷歌的创始人拉里·佩奇(Larry Page)和谢尔盖·布林(Sergey Brin)在斯坦福大学开发出PageRank。“Page”一语双关,既有网页的意思,也是佩奇的名字。当时,佩奇和布林把整个互联网当做一个整体来看待,他们认为“整个互联网就像一张大的图,每个网站就像一个节点,而每个网页的链接就像一个弧”[1]。于是,佩奇就想用一个图或者线性代数的矩阵来描述互联网。

而布林把无从下手的网页相连问题变成了一个二维矩阵相乘的问题,并通过迭代,算出了网页排名。

算出来的网页排名是真实的吗?迭代计算的结果会收敛到网页排名的真实值吗?打比方的话,网页之间的链接关系,有点类似动物之间的食物链关系。而网页排名结果通过多次迭代、最终收敛,就有些类似于常见的兔子数量问题,在一个自然的生态环境里,不管兔子最开始的数量是多少,最终它们的数量都会达到一个稳定的值。

关于网页排名计算的迭代收敛,佩奇和布林从理论上证明了不论初始值如何选取,这种算法都能保证网页排名的估计值能收敛到排名的真实值[1]。

简言之,网页排名的的计算主要是矩阵相乘。但是,在实际运用中,这些运算其实非常复杂。另外,实际的网页数量多得惊人,巨大的矩阵相乘需要的计算量也就无法估计,而这也难不过科技大牛们,佩奇和布林又利用稀疏矩阵计算的技巧解决了庞大计算量这一问题。

但是现在,对一个网页重要性的衡量是全方位的,除了要看PageRank,还要看别的数据,比如网页的内容权威性……谷歌PageRank网页排名算法,让谷歌搜索引擎从同时代的搜索引擎中脱颖而出,也让两位创始人成为了亿万富翁。现在,妈妈再也不用担心我不知道线性代数能干啥使了……

UUID: 94021647-580a-4ff4-a653-e00a1fe87c3f

原始文件名: /home/andie/dev/tudou/annot/AI语料库-20240917-V2/AI语料库/果壳公众号-pdf2txt/2018/2018-11-01_学好线性代数,成为亿万富翁不是梦.txt

是否为广告: 否

处理费用: 0.0042 元