架构师 01 期,第十三周课后作业
你所在的行业,常用的数据分析指标有哪些?请简述。
Google 搜索引擎是如何对搜索结果进行排序的?(请用自己的语言描述 PageRank 算法。)
我所在的行业为保险行业,常用的数据分析指标为保单保费、保单理赔金、客户等
保单保费分为新保保费,续保保费,不同产品所售保费,新保保费为年度、季度、月度、天等新投保的保费收入;续保保费也是和新保差不多区别为续保时所收保费;不同产品的保费统计的为单一产品在售卖期间所收保费;保单理赔金额分为年度、季度、月度、天等不同时间段理赔的金额,还有不同产品维度的理赔金额
PageRank 算法
PageRank 算法的基本原理:一个网页的权重,是由其他链接到它的网页的权重之和决定的。说白了这就是一个民主投票策略,简单来说,一个网页获得的来自其他网页的链接越多,那么说明它越重要,越受到大家的认可;另一方面,高权重的网页可以提升其链接到的网页的权重。
PageRank 算法将整个互联网视为一个整体进行计算,由于网页之间是相互链接的,一个网页的排名由其他指向它的网页决定,而那些指向它的网页的排名又需要使用同样的算法得出,因此最终整个运算变成了一个递归运算。为了避免出现死循环,实际操作上先为所有网页取一个相同的初始权重值,然后逐步迭代计算每个页面的权重,并在两次迭代计算差别足够小时停止迭代,这时候运算结果就已经收敛到基本准确。
在实际实现上,还需要考虑两种特殊的情况,一是页面只有入链没有出链,二是单个或多个页面之间的链接形成闭环,这两种情况都会导致这些页面不断吸收其他页面的 PR 值,使得其他页面的 PR 值最终趋于 0,这显然是不合理的。既然理论上无法解决这个问题,则从实际出发,无论是没有出链的情况还是闭环链接的情况,对于真实的访问者来说,他都有一定的概率通过直接输入网址来跳转到其他页面,而不会因为这两种特殊情况而陷入僵局。因此,最终的改进算法对网页权重的考量结合了来自其他页面的入链,以及用户直接通过输入网址进入该页面的概率。对于整个搜索引擎收录的海量网页进行整体计算显然是计算量非常大的,为了便于拆分成 MapReduce 之类的分布式并行计算,PageRank 算法实际上使用了矩阵运算作为每次迭代的计算方式。
评论