在看到项亮的《推荐系统实战》一书中,接触到了基于图的模型的推荐算法中涉及到的pagerank算法,索性就整理了一下关于这个算法的一些资料。
一、原理
Pagerank可以简单的说就是模拟一个悠闲的上网者,以不同的概率打开不同的网页的问题,当然这里会涉及到打开的是同一个网页以及不能打开所有网页的问题,这个问题会在后面具体介绍。
二、pagerank模型计算过程
上图是一个强连通图,每一个点都以一定的概率到另一个点,比如A有3个出处,分别到C、B、D,则A以三分之一的概率到达B、C、D,若用n表示点的数目,则转移矩阵可以表示为一个n*n的方阵,如果一个点有k个出处,对于每一个指向的点i,则有M[i][j]=1/k,则其他的为0。
则上图的转移矩阵为:
初始时,A点到任意一个点的概率都是一样的为1/n,那么用1/n作为列向量V0右乘M,得到V1:
再用M左乘V1,得到V2一直迭代下去……
最后得到的V最终为[3/9,2/9,2/9,2/9].
一、终点和陷进问题
在上图中,拿掉C到A的有向线,则上图不是一个强连通图,当线指向C的时候会终止,则
陷进问题只是C指向自己,就像跳进了陷进,永远也出不来