1강
Handcraft feature
1. 개별 노드를 설명하는 feature
2. 노드 쌍을 설명하는 feature
3. 전체 그래프의 topolopy structure을 설명하는 feature
목표 : How do we make predictions for a set of objects of interest : 어떻게 관심 있는 요소들의 집합으로 예측결과를 만들 것인가
전제 : Feature design의 기준 - d차원 벡터
관심 있는 object는 node, edge, full graph이고, 목표 함수로 예측하려는 것은 lable.
attribute : 이산형 혹은 범주형
feature : 연속형 숫자
[GNN의 전통적인 머신러닝 파이프라인]
1. 데이터 포인트, 노드, 링크, 전체 그래프를 feature vector로 표현
2. 랜덤 포레스트, SVM, MLP같은 고전적인 머신러닝 분류기/모델 학습
3. 새로운 노드, 링크, 그래프가 나타나면 이 모델을 사용해 특성을 얻거나 예측 수행
[Feature Design]
topology 패턴 학습 (노드 주변 네트워크 구조 특성화, 노드 위치를 feature화)
수행하는 방법들
1. node degree : 연결된 엣지 개수. 그러나 노드의 개별 정체성을 인식하지 못하고, 숫자에 따라 동일한 중요도로 취급한다.
2. node centrality : eigen vector centrality(고유 벡터 중심성)을 통해, 한 노드가 네트워크의 중심에 얼마나 가까운지를 파악한다. 단순한 연결 이상으로, 노드의 중요도를 측정한다.
ㄴ eigen vector centrality?
고유벡터(eigenvector)를 사용해 node centrality를 계산. 노드v의 중요도는 1/고유값(람다)로 정규화된 노드이웃들의 importance sum으로 정의한다. 다시 말해, 한 노드는 주변 노드들의 중요도 합계에 비례한다.
2-1. betweenness centrality : 노드 v가 다른 노드 쌍 간의 최단 경로에 많이 위치하면 중요성이 높다. (허브성) 산식: 노드 v를 지나는 경로의 수/최단 경로의 총 개수
2-2. closeness centrality : 다른 노드와의 최단 경로 길이가 짧은 노드일수록 중요성이 높다.(최단루트 다수 확보) 산식: 1/노드v와 네트워크 내의 다른 모든 노드 사이의 최단 경로 길이 합
3. clustering coefficient : 노드의 이웃들이 서로 얼마나 밀접하게 연결되어 있는지 나타내는 지표. 노드 주변의 삼각형 개수를 세는 것. / 산식: 노드v의 이웃 노드간 edge수 총합/노드v의 degree x 2 (노드 간 가능한 모든 쌍의 수). 노드 v의 이웃들이 모두 연결되어 있을수록 1에 가까운 숫자.
4. graphlets : 노드의 ego-network에서 삼각형의 개수를 계산. 노드의 개수가 주어졌을 때, 가능한 모든 그래프의 모양을 파악해 둘 수 있다. 네트워크 분석에서 많이 사용된다.
4-1. Graphlet Degree Vector, GDV : 노드v가 참여하는 graplet의 개수를 계산한다. [2, 1, 0, 2]과 같은 모양의 벡터가 된다. 이를 통해 노드의 이웃구조에 기반한 특성을 파악할 수 있다.
이 개념 단어들이 추천시스템에서는 어떻게 적용될 수 있을까?
Node Centrality: 이는 노드가 그래프 내에서 얼마나 중심적인 역할을 하는지를 측정하는 지표입니다. 사용자나 아이템의 중요성을 결정하는 데 도움이 될 수 있습니다. 예를 들어, 높은 centrality 값을 가진 사용자는 다른 사용자에게 영향력이 큰 '선구자'일 수 있고, 이러한 사용자들이 선호하는 아이템을 추천하는 것은 다른 사용자들에게도 유용한 추천을 제공할 수 있습니다.
Betweenness Centrality: 이는 노드가 그래프 내의 다른 노드들 간의 정보 전달에 얼마나 중요한 역할을 하는지를 측정합니다. 높은 betweenness centrality를 가진 사용자나 아이템은 '브릿지' 역할을 할 수 있으며, 이를 통해 서로 관련성이 낮은 클러스터나 사용자 그룹 간의 추천을 제공하는데 도움이 될 수 있습니다.
Closeness Centrality: 이는 그래프의 모든 다른 노드에 대한 최단 경로 길이의 평균을 측정합니다. 이는 특정 사용자가 다른 사용자들이나 아이템들에 얼마나 '가까운'지를 나타냅니다. 이 지표는 사용자들의 관심사가 얼마나 넓은지, 또는 아이템이 얼마나 다양한 사용자에게 적합한지를 파악하는 데 도움이 될 수 있습니다.
Clustering Coefficient: 이는 그래프 내의 클러스터링 경향성을 측정합니다. 이는 사용자의 관심사가 얼마나 군집화되어 있는지, 또는 아이템이 어떤 사용자 그룹에게 특히 인기가 있는지를 파악하는 데 도움이 될 수 있습니다.
Graphlets and Graphlet Degree Vector: Graphlet은 그래프의 작은 부분 그래프를 의미하며, Graphlet Degree Vector는 노드가 어떤 유형의 graphlets에 연결되어 있는지를 나타내는 벡터입니다. 이는 복잡한 그래프 구조를 분석하여 사용자나 아이템의 연결 패턴을 파악하는데 도움이 될 수 있습니다. 이 정보를 활용하여 사용자의 행동 패턴을 더 잘 이해하고, 이에 맞는 아이템을 추천하는데 활용할 수 있습니다.
2강
그래프 수준 예측에 대한 전통적인 머신러닝 접근법
link prediction은 주어진 그래프에서 아직 연결되지 않은 node pair의 상호작용(link)을 예측하는 작업.
이 작업에서 중요한 부분은, 노드 쌍 간의 관계를 잘 파악하고 표현하는 것. ※ 단순히 두 노드의 특성만을 연결하면, 그들만의 본질적인 관계를 잘 파악하지 못할 수 있다.
접근법 1 : 누락된 링크 예측
그래프에서 랜덤으로 일부 링크 제거 > 머신러닝 알고리즘을 통해 예측(정적 네트워크)
접근법 2 : 과거의 네트워크 구조와 링크를 분석해서 미래에 어떤 링크가 형성될 것인지 예측.
알고리즘에 의해 예측된 링크 순위와 실제로 발생한 링크 비교 (시간에 따른 링크 예측)
접근법 2에 대한 심화
ㄴ 노드 간의 관계를 측정하고, 미래의 링크를 측정하는 법
1. feature 기술자 생성? : 노드 사이의 특정 feature(eg. 공통 이웃 수)를 기반으로 한다.
2. link prediction : 점수에 따라 모든 노드 쌍을 정렬하고, 상위 n개 쌍을 미래에 나타날 새로운 링크로 예측.
3. 성능 평가 : 실제로 어떤 링크가 나타났는지 관찰하고, 정답과 비교해 알고리즘이 얼마나 잘 작동하는지 평가.
노드 간 관계를 설명하는 3가지 특징
1. 거리 기반 : 노드 간의 최단 경로 거리를 계산하여 feature화.
2. 지역 이웃 중첩 : 노드 쌍이 공유하는 이웃 수를 계산해 연결 강도 평가. 간접적 연결도 고려한다. 자카드 계수를 사용한다. 공통 이웃의 수(교집합)을 모든 이웃의 수(합집합)으로 나눈 값을 사용한다.
3. 전역 이웃 중첩 : 공통 이웃의 차수를 고려해 이웃 중첩을 측정하고 feature화. Adamic-Ader 인덱스를 사용하고, 노드 차수를 정규화해 고차수 노드가 과도하게 고려되는 걸 방지한다.