Graph는 기본적으로 node(V)와 edge(E)로 이루어져 있다.
보통 node는 동그라미로, edge는 화살표나 라인으로 그려지며, 화살표/라인에 따라 directed/undirected graph로 나뉜다.
Example
- Social Networks : 각 개인이 node, 그들의 relationship은 edge가 되겠다.
- Communication networks : 전자 기기들이 node, 각종 통신망이 link들이 될 것이다.
이러한 graph로 부터 important하거나 interesting한 성질들이나 패턴을 mining해내는 것이다.
단순히 connected component의 개수나 그것을 구성하는 node의 개수들뿐만 아니라, Network의 Diameter 같이 쉽게 구하기 어려운 것들을 mining해보고자 한다.
Community Detection (Clustering)과 같은 것을 하기도 하며 in-degree나 out-degree를 이용하기도 한다.
요즘 나오는 network들은 node의 개수가 고정되어있지 않은데, 실시간으로 계속해서 늘어나며, uniform하게 연결되는 것이 아니라, 이미 많은 link(edge)를 가진 node들에 더 연결될 가능성이 높은 - 어찌보면 당연한 - 성질을 보이고 있다.
Object Ranking에서의 질문은 어떤 Node가 important 그리고 높은 authority를 가졌는지를 묻는 것이다.
따라서 HITS와 PageRank를 공부해보도록 하자.
각 Page(Node)는 2개의 score을 갖고있는데
1. Hub score : 해당 Node가 point하고 있는 Node들의 authority score의 합
2. Authority score : 해당 Node를 point하고 있는 Node(Hub)들의 Hub score의 합
둘을 계산하는 방법은 "Hub score를 계산하고 Authority score을 계산한 뒤에 제곱합을 1로 맞추는 Normalization을 진행하는 과정"을 반복하는 것이다. 언제까지? 수렴할 때까지
Point는 방금 계산한 Hub score을 바로 다음 A score 계산에 사용하는 것
위 방식을 단순히 기존 PageRank Matrix(R)에 Transition Matrix(S)를 곱하는 것으로 봐도 무방하다. 이때 Transition Matrix는 adjacency matrix에서 각 row의 합을 1로 바꿔준 것일 뿐이다.
말그대로 랜덤한 인터넷 surfer의 행동을 따온 모델이다.
여기서 는 dangling node 여부를 나타내는 벡터 는 uniform한 확률을 가진 벡터이다.
따라서 앞쪽 소괄호 2개는 Random Walk를, 뒤쪽 는 Restart를 의미하는 것이다.
그런데, 실제 인터넷 surfer들이 완전히 uniform하게 random한 사이트에서 restart하지 않는다는 사실은 우리 모두가 알고 있다. 따라서, 벡터 가 uniform하지 않고 하나의 값만 1이고 나머지는 0으로 두어 오직 특정 Node에서만 Restart하게 설정한다면, 해당 사용자들을 위한 PageRank가 만들어질 것이다.
어? 이게 바로 개인화 personalizaed Ranking이라고 볼 수 있겠다.
따라서 이전의 uniform한 restart가 적용된 것이 "Gloabl" Rank, 방금 소개한 것이 "Local" Rank라고도 할 수 있다.