PageRank and personalized PageRank algorithms
PageRank is the first algorithm Google has proposed to measure the importance of Web pages.
Her ideas are based on links between pages as weighted votes. If page a points to B,
So the importance of page B is affected by page A, and the more important it is, the more important B is. If page C also points to B,
But C versus a, C points to the number of other pages (out of the degree) less, then C to B contribution to the degree greater than a to B.
Here is a formula for the importance of page I, where D is a probability that in (i) represents all pages that point to page I.
The idea of this formula is to simulate the behavior of a random surfer browsing the Web page, the left part of the formula indicates that the Surfer (1-d)/n is the probability of entering a URL from the browser to access the page I, the formula to the right part of the page from other points to page I to jump over. After multiple iterations, the importance values of all pages converge.
Expressed in the form of probability transfer, the formula is as follows
An example of the calculation of a single iteration is as follows:
where the probability transfer matrix M,
Each column represents the page J's out-of-line, and each column adds up to 1.
Each row represents the entry of page I.
Personalised PageRank
The goal of a personalized PageRank is to calculate the correlation of all nodes relative to the user U. Starting from the user U node, each node stops at the probability of 1-d and starts again from U, or continues with the probability of D, and randomly selects a node downstream from the node pointed to by the current node in accordance with the uniform distribution. So after a lot of rounds, each vertex is accessed to the probability of convergence tends to stabilize, this time we can use probability to rank.
As can be seen from the formula, the personalized PageRank is different from the traditional PageRank, and every time we re-walk, we always start with the user U node. In addition, each node weight initialization, personalized PageRank is such, if the user U recommended, the user U node is initialized to 1, the other nodes are initialized to 0.
Here is the source code of the personalized PageRank algorithm that I implemented separately in C + + and Java
Https://github.com/linger2012/personal-rank-implemented-by-CPP
Https://github.com/linger2012/recommendation-algorithm-implemented-by-java/tree/master/src/personalrank
On how to accelerate the personalized PageRank, Xiangliang "recommended system Combat" has been mentioned, using matrix operations to do.
I am still learning the research stage, welcome to explore.
Resources:
http://blog.csdn.net/harryhuang1990/article/details/10048383
Http://www.cnblogs.com/fengfenggirl/p/pagerank-introduction.html
"Topic-sensitive PageRank"
This article linger
This article link: http://blog.csdn.net/lingerlanlan/article/details/46991167
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
PageRank and personalized PageRank algorithms