架构师入门感悟之十三
Questions
Google 搜索引擎是如何对搜索结果进行排序的?
Google 借助一种称为“PageRank”的算法对搜多结果进行排序。
“PageRank"的核心思想是“某个页面被其他页面引用的越多,说明这个页面排名越靠前”。
使用 PR(A)来表示“A 页面被其他页面引用的权重值”,L(A)表示“A 页面引用其他页面的总数(即出度)”,如下图,共有 4 个页面,初始每个页面的 PR 值为 1,按照上述思想,PR(A) = PR(B)/L(B)+PR(C)/L(C)+PR(D)/L(D);经过固定次数迭代,PR 值逐步减少,并趋于收敛。

按照上述思路,某个页面可以通过仅引用自己来提高 PR 权重值,或者几个页面之间引用形成了循环依赖,导致 PR 值无法收敛,如下图:

应对上述“漏洞”的思路是引入“随机点击页面的概率(业界经验值为 0.85)”,上图 PR(A)=(1-x)/4+x*PR(B)/2,其中,x 为 0.85。
总结

参考
https://www.link-assistant.com/news/google-page-rank-2019.html

版权声明: 本文为 InfoQ 作者【莫问】的原创文章。
原文链接:【http://xie.infoq.cn/article/2f33d1727e6292207de4001cd】。未经作者许可,禁止转载。
评论 (1 条评论)