Lecture 4.2 - PageRank, How to Solve?
CS224W Lecture 4. Graph as Matrix
- Power Iteration Method
- Three Questions
- Problems
- Solutions
- The Google Matrix
- Random Teleports ($\beta=0.8$)
- Solving PageRank 정리
Lecture 4. Graph as Matrix
이전의 강의에서 Powe iteration 방법으로 반복적인 매트릭스 곱 연산으로 $\mathbf{r}$을 구할 수 있음을 확인했습니다. 이 방법에 대해 조금 더 구체적으로 살펴보겠습니다.
Power Iteration Method
power iteration은 2가지 표현식이 있는데 하나는 벡터의 요소 관점에서의 업데이트 식(왼쪽)과 다른 하나는 매트릭스 관점의 업데이트 식(오른쪽)으로 나타낼 수 있습니다.
과정을 살펴보면 다음과 같습니다.
- 처음 초기화로 모든 노드의 importance score를 똑같은 값으로 만들어 줍니다.(반복적인 연산으로 수렴을 보장하므로 사실 어떤 값으로 초기화하든 상관없습니다.) $\boldsymbol{r}^{(0)}=[1 / N, \ldots ., 1 / N]^{T}$
- 반복적인 연산을 하면서 $\mathbf{r}$ 값을 업데이트합니다. $\boldsymbol{r}^{(t+1)}=\boldsymbol{M} \cdot \boldsymbol{r}^{(t)}$
- 수렴조건 $\left|\boldsymbol{r}^{(\boldsymbol{t}+\mathbf{1})}-\boldsymbol{r}^{(t)}\right|_{1}<\varepsilon$ 을 만족할 때까지 2번 과정의 연산을 진행합니다.
예시 그래프에서의 power iteration 과정은 다음과 같습니다.
Three Questions
- Does this converge? 반복적인 연산과정을 통해 값이 수렴하는가?
- Does it converge to what we want? 수렴한 값이 우리가 원하는 값인가?
- Are results reasonable? 연산 결과가 합당한가?(말이 되는가?)
(어색한 한국어 번역보다 영어로된 질문에서 얻어가는 insight가 좋을 것 같습니다.)
Problems
PageRank에는 2가지의 문제가 있습니다.
- Dead Ends
out-link를 가지지 않는 일부 페이지(노드)들에서 생기는 문제로 이런 페이지들에서 importance가 leak out
됩니다. leak out의 세어나가다
라는 뜻 그대로 importance flow의 흐름에서 값이 세어나가는 문제를 말합니다.
아래의 예시에서 페이지 b에서 나가는 out-link가 없다보니 importance update를 한 결과가 $r_a = 0, r_b=0$이 됨을 확인할 수 있습니다. 이는 앞서 page rank $\mathbf{r}$ vector의 정의에서 약속한 모든 노드의 importance의 합이 1이 된다는 column stochastic
수학적 전제에서 벗어난 결과 입니다.
- Spider traps
특정 페이지의 모든 out-link들이 다른페이지로 나가지 않아 결국 spider trap 페이지가 모든 importance 값을 독차지하게 됩니다.
아래의 예시에서 a에서 walk를 시작하더라고 b로 이동한 후 b에서 빠져나올 수 없습니다. 이런 경우 importance update 결과 모든 importance를 페이지 b가 가지게 되어 $r_a = 0, r_b=1$이 됩니다. 이런 경우 페이지 a에 아무리 큰 웹 그래프가 연결되어 있다고 하더라도 이동할 수 없습니다. 사실 spider trap은 column stochastic
을 만족하기 때문에 수학적으로 문제되진 않습니다. 하지만 우리가 원하지 않는 값에 수렴하는 문제
로 볼 수 있습니다.
Solutions
위의 2가지 문제들 모두 Teleports로 해결할 수 있습니다.
- Dead Ends를 Teleports로 해결하기
Dead Ends인 m 페이지에서 column stochastic을 만족하지 않고 모든 값이 0이 되지 않도록 자신을 포함한 그래프의 모든 노드들로 uniform random 하게 teleport 이동을 하도록 합니다. 이때 그래프의 노드가 총 3개이므로 m열의 행렬값을 $1/3$으로 채워 $\mathbf{M}$을 완성합니다.
- Spider Traps를 Teleports로 해결하기
Spier Trap인 m 페이지에서 다른 노드로 빠져나갈 수 있도록 일정 확률 $1-\beta$만큼 random 페이지로 점핑(teleport)할 수 있도록 합니다. 즉, 확률 $\beta$만큼은 원래 그래프의 out-links 중에 골라서(random) 이동하고 나머지 확률($1-\beta$)로는 out-link와 상관없이 그래프의 모든 페이지들 중에 골라서 이동하여 거미줄, Spider trap에서 벗어나게 되는 것 입니다. 보통 $\beta$값으로는 0.8~0.9값을 사용하는 것이 일반적입니다.
The Google Matrix
PageRank에서 생길 수 있는 2가지 문제를 Teleport로 해결한다면 PageRank Equation은 다음과 같이 바꿀 수 있습니다. 첫번째 항은 기존의 수식에 있던 부분으로 페이지 $i$의 out-link를 random하게 골라서 이동하는 것에다 확률 $\beta$값을 곱해 보통 0.8~0.9의 확률로 out-link를 통해 이동하게 합니다.
두번째 항은 Teleport를로 out-link와 상관없이 그래프의 모든 페이지들중 하나로 랜덤하게 순간이동하는 것을 수식적으로 표현한 부분입니다. 그래프에 존재하는 모든 페이지의 수를 $N$이라고 할 때, 추가적으로 $1/N$의 확률로 페이지 $j$로 갈 수 있고 이는 앞서 확률 $\beta$를 제외한 나머지 확률, 약 0.2~0.1의 확률로 이동하는 것이므로 $1-\beta$를 곱해줍니다.
(단, 위의 수식은 $\mathbf{M}$에 dead ends가 없다고 가정하며, 실제로 모든 dead ends를 없애거나 dead ends인 부분들에는 random teleport를 확률1로 따르게 하여 계속 다른 노드로 이동하게 할 수 있습니다.)
구글 매트릭스는 이와 크게 다르지 않습니다. 단지 위의 PageRank equation을 행렬식으로 바꿔쓰면 구글 매트릭스가 됩니다. 각각의 항들이 의미하는 바는 위에서 설명된 것과 동일하며, 두번째 항의 $\left[\frac{1}{N}\right]_{N \times N}$는 행렬의 모든 원소가 $\frac{1}{N}$으로 채워진 $N \times N$차원의 행렬을 말합니다.
Random Teleports ($\beta=0.8$)
아래의 $\beta=0.8$일 때 Random Teleports 예시에서 검은색 선들은 teleports를 적용하지 않았을 때의 그래프의 directed links를 표현하며 초록색 선들은 0.2확률의 teleports가 추가된 부분을 나타냅니다. Power iteration을 통해 계산되면 페이지 $y, a, m$이 각각 $7/33, 5/33, 21/33$으로 수렴하는 것을 알 수 있고 spider trap인 페이지 m이 모든 importance를 흡수하지 않는 것을 확인할 수 있습니다.
Solving PageRank 정리
- PageRank $\mathbf{r} = \mathbf{G} \mathbf{r}$을 power iteration method로 풀 수 있다.
- PageRank에서 생길 수 있는 문제들인 Dead Ends와 Spider Traps를 Random Uniform Teleportation으로 해결할 수 있다.
Original Lecture Video : CS224W: Machine Learning with Graphs 2021 Lecture 4.2 - PageRank: How to Solve?