Lecture 4. Graph as Matrix


이전의 강의에서 Powe iteration 방법으로 반복적인 매트릭스 곱 연산으로 $\mathbf{r}$을 구할 수 있음을 확인했습니다. 이 방법에 대해 조금 더 구체적으로 살펴보겠습니다.

Power Iteration Method

power iteration은 2가지 표현식이 있는데 하나는 벡터의 요소 관점에서의 업데이트 식(왼쪽)과 다른 하나는 매트릭스 관점의 업데이트 식(오른쪽)으로 나타낼 수 있습니다.

Imgur

과정을 살펴보면 다음과 같습니다.

  1. 처음 초기화로 모든 노드의 importance score를 똑같은 값으로 만들어 줍니다.(반복적인 연산으로 수렴을 보장하므로 사실 어떤 값으로 초기화하든 상관없습니다.) $\boldsymbol{r}^{(0)}=[1 / N, \ldots ., 1 / N]^{T}$
  2. 반복적인 연산을 하면서 $\mathbf{r}$ 값을 업데이트합니다. $\boldsymbol{r}^{(t+1)}=\boldsymbol{M} \cdot \boldsymbol{r}^{(t)}$
  3. 수렴조건 $\left|\boldsymbol{r}^{(\boldsymbol{t}+\mathbf{1})}-\boldsymbol{r}^{(t)}\right|_{1}<\varepsilon$ 을 만족할 때까지 2번 과정의 연산을 진행합니다.

예시 그래프에서의 power iteration 과정은 다음과 같습니다.

Imgur

Imgur

Three Questions

  1. Does this converge? 반복적인 연산과정을 통해 값이 수렴하는가?
  2. Does it converge to what we want? 수렴한 값이 우리가 원하는 값인가?
  3. Are results reasonable? 연산 결과가 합당한가?(말이 되는가?)

(어색한 한국어 번역보다 영어로된 질문에서 얻어가는 insight가 좋을 것 같습니다.)

Problems

PageRank에는 2가지의 문제가 있습니다.

  1. 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 수학적 전제에서 벗어난 결과 입니다.

Imgur

  1. 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을 만족하기 때문에 수학적으로 문제되진 않습니다. 하지만 우리가 원하지 않는 값에 수렴하는 문제로 볼 수 있습니다.

Imgur

Solutions

위의 2가지 문제들 모두 Teleports로 해결할 수 있습니다.

Imgur

  1. Dead Ends를 Teleports로 해결하기

Dead Ends인 m 페이지에서 column stochastic을 만족하지 않고 모든 값이 0이 되지 않도록 자신을 포함한 그래프의 모든 노드들로 uniform random 하게 teleport 이동을 하도록 합니다. 이때 그래프의 노드가 총 3개이므로 m열의 행렬값을 $1/3$으로 채워 $\mathbf{M}$을 완성합니다.

Imgur

  1. 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값을 사용하는 것이 일반적입니다.

Imgur

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$를 곱해줍니다.

rj=ijβridi+(1β)1Nr_{j}=\sum_{i \rightarrow j} \beta \frac{r_{i}}{d_{i}}+(1-\beta) \frac{1}{N}

(단, 위의 수식은 $\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$차원의 행렬을 말합니다.

G=βM+(1β)[1N]N×NG=\beta M+(1-\beta)\left[\frac{1}{N}\right]_{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를 흡수하지 않는 것을 확인할 수 있습니다.

Imgur

Solving PageRank 정리

  • PageRank $\mathbf{r} = \mathbf{G} \mathbf{r}$을 power iteration method로 풀 수 있다.
  • PageRank에서 생길 수 있는 문제들인 Dead Ends와 Spider TrapsRandom Uniform Teleportation으로 해결할 수 있다.

Original Lecture Video : CS224W: Machine Learning with Graphs 2021 Lecture 4.2 - PageRank: How to Solve?