S[u,v]=∣N(u)∩N(v)∣로, N(v)는 node v의 이웃노드이다. 즉, 두 노드가 공유하는 이웃노드의 개수로 두 노드간의 유사도를 계산할 수 있다.
S∈R∣V∣×∣V∣ → similarity matrix
2.2.1 Local Overlap Measures
Sorensen Index
Ssorensen[u,v]=du+dv2∣N(u)∩N(v)∣
2.2에서 소개한 가장 간단한 형태의 measure는 edge의 개수가 많을 수록 similarity가 높아지는 되는 경향이 있었다. 그래서 Sorensen Index에서는 node u, v의 degree의 개수를 합한 값을 나누어 주어 Normalize 하여 similarity의 edge가 많은 노드에서 커지는 경향을 줄였다.
Salton Index
Ssalton[u,v]=dvdu2∣N(u)∩N(v)∣
Jaccard Overlap
Sjaccard[u,v]=∣N(u)∪N(v)∣∣N(u)∩N(v)∣
Resource Allocation(RA) index
SRA[v1,v2]=u∈N(v1)∩N(v2)∑du1
Adamic Adar(AA) index
SAA[v1,v2]=u∈N(v1)∩N(v2)∑log(du)1
2.2.2 Global Overlap Measures
Local overlap measures 의 단점은 1 hop neighbor 만 고려하여 global한 overlap을 잡아내지 못한다는 것이다. 예를 들면 두 노드간에 전혀 overlap이 존재하지 않지만 같은 커뮤니티에 존재하는 경우에 Local overlap measure로는 두 노드간의 similarity를 계산 할 수 없다.
Katz Index
단순하게 node u에서 v로 모든 length의 path의 개수가 몇개가 존재하는지를 샌 것이다.
Skatz[u,v]=i=1∑∞βiAi[u,v]
여기서 β∈R+는 사용자 정의의 paramemter로 β<1 이면 hop이 증가할 때, 패널티가 붙게 되는 구조이다.
∞ 하게 Skatz를 구하는 방법은 아래의 Theorem을 참조해야 한다.
Theroem
Let X be a real-valued square matrix and let λ1 denote the largest eigenvalue of X, then, (I−X)−1=i=0∑∞Xi
if and only if λi<1 and (I−X) is non-singular
proof
Let sn=i=0∑nXi then we have that
Xsn=X∑i=1nXi=∑i=0n+1Xi
and
sn−Xsn=i=0∑nXi−i=1∑n+1Xi
sn(I−X)=I−Xn+1
sn=(I−Xn+1)(I−X)−1
and if λ1<1 we have that limn→∞Xn=0 so
limn→∞=limn→∞(I−Xn)
이에 따라 i=1∑∞βiAi[u,v]=(I−βA)−1−I 이다.
잘은 모르겠지만 일단 i=1∑∞Xi=(I−X)−1이라는 것을 알고 있으면 유용할 듯 하다.
Leicht, Holme, and Newman (LHN) Similarity
Katz index의 단점은 node degree에 편중될 수 밖에 없다는 점이 없다. 이 문제를 해결하기 위해 Leicht et al.[2016]이 제안한 metric이 있다. 이 metric은 실제 두 노드간의 path의 수와 path수의 기대값의 비율을 고려하였다.
E[Ai]Ai
E[Ai]를 계산하기 위해서는 configuration model이라는 random graph을 가정한 모델을 사용해야 한다.
E[A[u,v]]=2mdudv
위의 공식이 의미하는 바는 m=∣E∣일 때, 노드 u에서 노드 u가가진 edge들로 출발 했을 때, 노드 v에 도착할 확률은 2mdv이라는 것이다. 위의 식은 두 노드간에 1홉으로 연결될 확률을 의미하지만 2홉 일 경우에는 어떻게 표현될까?
E[A2[v1,v2]]=(2m)2dv1dv2u∈V∑(du−1)du
복잡해 보이지만 이 식을 쪼개보면 v1 에서 어떤 다른 노드 u를 경유해서 노드 v2에 도달하는 확률을 의미한다. 먼저 v1에서 u로 가는 것은 맨 처음 1홉에 으로 두 노드로 도달하는 것과 같다. 즉, 2mdv1du이다. 그리고 노드 u에서 노드 v2 로 가는 것은 이미 u는 사용 되었으니 하나를 빼어 2m(du−1)dv2이다.
그러나 홉 수가 늘어나면 쫓아갈 수가 없게 된다. 그래서 긴 홉의 path의 수의 기대값을 얻기 위해서 가장 큰 고유백터가 늘어나는 path의 숫자를 추정할 수 있다는 것을 활용한다.
pi∈R∣V∣ 벡터가 있고, 이 벡터가 어떤 노드 u와 다른 노드간의 length-i에서 path의 개수를 의미한다고 하자. 그러면 우리는 i가 커지는 것을 생각할 수 있고, Api=λ1pi−1를 얻는다. 이 pi는 결과적으로 어떤 고유벡터로 수렴할 것이다.(pagerank를 생각하자) 한마디로 두 노드간의 path의 숫자는 λ1에 매 iteration마다 의존적이다. 이를 수식으로 표현하면
E[Ai[u,v]]=2mdudvλi−1
위의 수식에서 i=1로 놓으면 1홉의 path수의 기대값이 된다. path의 수는 λ에 의존적임으로 λi−1을 곱해주게 되는 것이다. 이제 이 수식을 Katz index에 넣어주면 LHN similarity가 완성이 된다.
SLNH[u,v]=I[u,v]+dudv2mi=1∑∞βiλ11−iAi[u,v]
가 된다. (Katz index구하는 방법을 다시 떠올려 보자.) 이 수식에 따르면 기대되는 path의 수보다 더 더 많은 path가 있을 경우에 더 높은 similarity를 주게 된다. 수식을 위에서 언급했던 ∑i∞Ai=(I−A)−1 을 적용하면 아래와 같은 수식이 마지막으로 구할 수 있다.