Lecture 5


5.2 - Relational and Iterative Classification

Relational Classification

Probabilistic Relational Classifier

  • Idea: Propagate node labels across the network
    • Class probability $Y_v$ of node $v$ is a weighted average of class probabilities of its neighbors.
  • For labeled nodes $v$, initialize label $Y_v$ with ground-truth label $Y^*_v$.
  • For unlabeled nodes, initialize $Y_v$ = 0.5.
  • Update all nodes in a random order until convergence or until maximum number of iterations is reached.
  • Update for each node $v$ and label $c$ (e.g. 0 or 1 )

    P(Yv=c)=1(v,u)EAv,u(v,u)EAv,uP(Yu=c)P\left(Y_{v}=c\right)=\frac{1}{\sum_{(v, u) \in E} A_{v, u}} \sum_{(v, u) \in E} A_{v, u} P\left(Y_{u}=c\right)
    • If edges have strength/weight information, $A_{v, u}$ can be the edge weight between $v$ and $u$
    • $P\left(Y_{v}=c\right)$ is the probability of node $v$ having label $c$
  • Challenges:
    • Convergence is not guaranteed
    • Model cannot use node feature information

  • 아이디어: 노드 레이블을 네트워크에 전파
    • 노드 $v$의 클래스 확률 $Y_v$는 이웃의 클래스 확률에 대한 가중 평균이다.
  • 레이블링된 노드 $v$의 경우 지상 실측 레이블 $Y^*_v$로 레이블 $Y_v$를 초기화한다.
  • 레이블이 없는 노드의 경우 $Y_v$ = 0.5를 초기화합니다.
  • 수렴할 때까지 또는 최대 반복 횟수에 도달할 때까지 모든 노드를 임의의 순서로 업데이트합니다.
  • 각 노드 $v$ 및 레이블 $c$에 대한 업데이트(예: 0 또는 1)

    P(Yv=c)=1(v,u)EAv,u(v,u)EAv,uP(Yu=c)P\left(Y_{v}=c\right)=\frac{1}{\sum_{(v, u) \in E} A_{v, u}} \sum_{(v, u) \in E} A_{v, u} P\left(Y_{u}=c\right)
    • 가장자리의 강도/무게 정보가 있는 경우 $A_{v,u}$는 $v$와 $u$ 사이의 에지 가중치일 수 있습니다.
    • $P\left(Y_{v}=c\right)$는 노드 $v$가 $c$ 레이블을 가질 확률이다.
  • 과제:
    • 수렴이 보장되지 않음
    • 모델은 노드 피쳐 정보를 사용할 수 없습니다.

Example: Initialization

Initialization:

  • All labeled nodes with their labels
  • All unlabeled nodes 0.5 (belonging to class 1 with probability 0.5)

초기화:

  • 라벨이 표시된 모든 노드
  • 표시되지 않은 모든 노드 0.5 (확률 0.5의 클래스 1에 속함)

Example: $1^{st}$ Iteration, Update Node 3

  • Update for the $1^{st}$ Iteration:
    • For node 3, $N_3=[1,2,4]$

  • $1^{st}$ 반복에 대한 업데이트:
    • 노드 3의 경우 $N_3=[1,2,4]$

Example: $1^{st}$ Iteration, Update Node 4

  • Update for the $1^{st}$ Iteration:
    • For node 4, $N_4=[1,3,5,6]$

  • $1^{st}$ 반복에 대한 업데이트:
    • 노드 4의 경우 $N_4=[1,3,5,6]$

Example: $1^{st}$ Iteration, Update Node 5

  • Update for the $1^{st}$ Iteration:
    • For node 5, $N_5=[4,6,7,8]$

  • $1^{st}$ 반복에 대한 업데이트:
    • 노드 5의 경우 $N_5=[4,6,7,8]$

Example: After $1^{st}$ Iteration

After Iteration 1 (a round of updates for all unlabeled nodes) 반복 후 1 (라벨이 지정되지 않은 모든 노드에 대한 업데이트 라운딩)

Example: After $2^{nd}$ Iteration

After Iteration 2 (반복 후 2)

Example: After $3^{rd}$ Iteration

After Iteration 3 (반복 후 3)

Example: After $4^{th}$ Iteration

After Iteration 4 (반복 후 4)

Example: Convergence

  • All scores stabilize after 4 iterations.

    We therefore predict:

    • Nodes 4,5,8,9 belong to class 1 ($𝑃_{Y_v}$ > 0.5)
    • Nodes 3 belong to class 0 ($𝑃_{Y_v}$ < 0.5)

  • 4회 반복 후 모든 점수가 안정됩니다.

    따라서 다음과 같이 예측한다.

    • 노드 4,5,8,9가 클래스 1($𝑃_{Y_v}$ > 0.5)에 속함
    • 노드 3은 클래스 0($𝑃_{Y_v}$ < 0.5)에 속합니다.

Iterative Classification

Iterative Classification

  • Relational classifier does not use node attributes.
  • How can one leverage them?
  • Main idea of iterative classification:

    Classify node $v$ based on its attributes $f_v$ as well as labels $z_v$ of neighbor set $N_v$.

  • Input: Graph
    • $f_{v}$ : feature vector for node $v$
    • Some nodes $v$ are labeled with $Y_{v}$
  • Task: Predict label of unlabeled nodes
  • Approach: Train two classifiers: $\phi_{1}\left(f_{v}\right)=$ Predict node label based on node feature vector $f_{v}$. This is called base classifier.
  • $\phi_{2}\left(f_{v}, z_{v}\right)=$ Predict label based on node feature vector $f_{v}$ and summary $z_{v}$ of labels of $v’{\text {s }}$ neighbors.

    This is called relational classifier.


  • 관계 분류자가 노드 특성을 사용하지 않습니다.
  • 어떻게 그들을 활용할 수 있을까?
  • 반복 분류의 주요 개념:

    노드 $v$는 속성 $f_v$와 인접 세트 $N_v$의 레이블 $z_v$를 기준으로 분류한다.

  • 입력: 그래프
    • $f_{v}$ : 노드 $v$의 피쳐 벡터
    • 일부 노드 $v$는 $Y_{v}$로 레이블 지정됨
  • 작업: 레이블이 없는 노드의 레이블 예측
  • 접근법: 두 가지 분류기 훈련: $\phi_{1}\left(f_{v}\right)=$ 노드 특징 벡터 $f_{v}$를 기반으로 노드 레이블을 예측한다. 이를 기본 분류기라고 합니다.
  • $\phi_{2}\left(f_{v}, z_{v}\right)=$ 노드 특징 벡터 $f_{v}$와 $v’{\text {s}}$ 이웃 레이블의 요약 $z_{v}$를 기반으로 레이블을 예측한다.

    이를 관계 분류기라고 합니다.


Computing the Summary $z_v$

How do we compute the summary $z_v$ of labels of $v’s$ neighbors $N_v$?

  • $z_v$ = vector that captures labels around node $v$
    • Histogram of the number (or fraction) of each label in $N_v$
    • Most common label in $N_v$
    • Number of different labels in $N_v$

$v$의 인접 $N_v$ 레이블의 요약 $z_v$는 어떻게 계산합니까?

  • $z_v$ = 노드 $v$ 주변의 레이블을 캡처하는 벡터
    • $N_v$ 단위의 각 레이블의 숫자(또는 부분) 히스토그램
    • $N_v$의 가장 일반적인 레이블
    • $N_v$의 서로 다른 레이블 수

Architecture of Iterative Classifiers

  • Phase 1: Classify based on node attributes alone
    • On the labeled training set, train two classifiers:
      • Base classifier: $\phi_{1}\left(f_{v}\right)$ to predict $Y_{v}$ based on $f_{v}$
      • Relational classifier: $\phi_{2}\left(f_{v}, z_{v}\right)$ to predict $Y_{v}$ based on $f_{v}$ and summary $z_{v}$ of labels of $v^{\prime}$s neighbors
  • Phase 2: Iterate till convergence
    • On test set, set labels $Y_{v}$ based on the classifier $\phi_{1}$, compute $z_{v}$ and predict the labels with $\phi_{2}$
    • Repeat for each node $v$ :
      • Update $z_{v}$ based on $Y_{u}$ for all $u \in N_{v}$
      • Update $Y_{v}$ based on the new $z_{v}\left(\phi_{2}\right)$
    • Iterate until class labels stabilize or max number of iterations is reached
    • Note: Convergence is not guaranteed

  • 1단계: 노드 속성만을 기준으로 분류
    • 라벨이 부착된 교육 세트에서 두 가지 분류기를 교육합니다.
      • 기본 분류자: $f_{v}$를 기반으로 $Y_{v}$를 예측하기 위한 $\phi_{1}\left(f_{v}\right)$
      • 관계 분류자: $f_{v}$와 $v^{\prime}$s 인접 레이블의 요약 $z_{v}$를 기반으로 $Y_{v}$를 예측하기 위한 $\phi_{2}\left(f_{v}, z_{v}\right)$
  • 2단계: 수렴될 때까지 반복
    • 테스트 세트에서 $\phi_{1}$ 분류기를 기반으로 레이블 $Y_{v}$을 설정하고 $z_{v}$를 계산하고 $\phi_{2}$로 레이블을 예측한다.
    • 각 노드 $v$에 대해 반복:
      • 모든 $u \in N_{v}$에 대해 $Y_{u}$를 기준으로 $z_{v}$ 업데이트
      • 새 $z_{v}\left(\phi_{2}\right)$를 기준으로 $Y_{v}$ 업데이트
    • 클래스 레이블이 안정되거나 최대 반복 횟수에 도달할 때까지 반복
    • 참고: 수렴이 보장되지 않음

Example: Web Page Classification

  • Input: Graph of web pages
  • Node: Web page
  • Edge: Hyper-link between web pages
    • Directed edge: a page points to another page
  • Node features: Webpage description
    • For simplicity, we only consider two binary features
  • Task: Predict the topic of the webpage
  • Baseline: Train a classifier (e.g., linear classifier) to classify pages based on node attributes.

  • 입력: 웹페이지 그래프
  • 노드: 웹 페이지
  • 가장자리: 웹 페이지 간의 하이퍼링크 (Directed Edge)
    • 방향 가장자리: 한 페이지가 다른 페이지를 가리키다
  • 노드 기능: 웹 페이지 설명 (TF-IDF 등의 토큰 정보, 여기선 2차원 벡터로 표현)
    • 단순성을 위해 두 개의 이진 기능만 고려한다.
  • 작업: 웹 페이지의 주제 예측
  • 기준: 노드 속성을 기준으로 페이지를 분류하도록 분류기(예: 선형 분류기)를 훈련합니다.



  • Each node maintains vectors $z_v$ of neighborhood labels:
    • $I$ = Incoming neighbor label information vector.
    • $O$ = Outgoing neighbor label information vector.
      • $I_0$ = 1 if at least one of the incoming pages is labelled 0.

        Similar definitions for $I_0$, $O_0$, and $O_1$


  • 각 노드는 이웃 레이블의 벡터 $z_v$를 유지한다.
    • $I$ = 들어오는 인접 레이블 정보 벡터.
    • $O$ = 나가는 인접 레이블 정보 벡터.
      • $I_0$ = 1 (수신 페이지 중 하나 이상이 0으로 표시된 경우)

        $I_0$, $O_0$ 및 $O_1$에 대한 유사한 정의


Iterative Classifier - Step 1

  • On training labels, train two classifiers:
    • Node attribute vector only: $\phi_1(f_v)$
    • Node attribute and link vectors $z_v$: $\phi_2(f_v,z_v)$
  1. Train classifiers
  2. Apply classifier to unlab. set
  3. Iterate
  4. Update relational features $z_v$
  5. Update label $Y_v$

  • 교육 라벨에서 두 가지 분류기를 교육합니다.
    • 노드 속성 벡터만: $\phi_1(f_v)$
    • 노드 속성 및 링크 벡터 $z_v$: $\phi_2(f_v,z_v)$
  1. 분류기 학습
  2. 레이블 해제 세트에 분류자 적용
  3. 반복
  4. 관계 기능 업데이트 $z_v$
  5. 레이블 업데이트 $Y_v$


Iterative Classifier - Step 2

  • On the unlabeled set:
    • Use trained node feature **vector classifier $\phi_1$ to set $Y_v**$
  1. Train classifiers
  2. Apply classifier to unlab. set
  3. Iterate
  4. Update relational features $z_v$
  5. Update label $Y_v$

  • 라벨이 없는 세트에서:
    • 훈련된 노드 특징 벡터 분류기 $\phi_1$를 사용하여 $Y_v$ 설정
  1. 분류기 학습
  2. 레이블 해제 세트에 분류자 적용
  3. 반복
  4. 관계 기능 업데이트 $z_v$
  5. 레이블 업데이트 $Y_v$

Iterative Classifier - Step 3.1

  • Update $z_v$ for all nodes:
  1. Train classifiers
  2. Apply classifier to unlab. set
  3. Iterate
  4. Update relational features $z_v$
  5. Update label $Y_v$

  • 모든 노드에 대해 $z_v$ 업데이트:
  1. 분류기 학습
  2. 레이블 해제 세트에 분류자 적용
  3. 반복
  4. 관계 기능 업데이트 $z_v$
  5. 레이블 업데이트 $Y_v$


Iterative Classifier - Step 3.2

  • **Re-classify all nodes with $\phi_2$:
  1. Train classifiers
  2. Apply classifier to unlab. set
  3. Iterate
  4. Update relational features $z_v$
  5. Update label $Y_v$

  • $\phi_2$로 모든 노드를 다시 분류합니다.
  1. 분류기 학습
  2. 레이블 해제 세트에 분류자 적용
  3. 반복
  4. 관계 기능 업데이트 $z_v$
  5. 레이블 업데이트 $Y_v$

Iterative Classifier - Iterate

  • Continue until convergence
    • Update $z_v$ based on $Y_v$
    • Update $Y_v$ = $\phi_2(f_v,z_v)$
  1. Train classifiers
  2. Apply classifier to unlab. set
  3. Iterate
  4. Update relational features $z_v$
  5. Update label $Y_v$

  • 정합될 때까지 계속합니다
    • $Y_v$를 기준으로 $z_v$ 업데이트
    • 업데이트 $Y_v$= $\phi_2(f_v,z_v)$
  1. 분류기 학습
  2. 레이블 해제 세트에 분류자 적용
  3. 반복
  4. 관계 기능 업데이트 $z_v$
  5. 레이블 업데이트 $Y_v$

Iterative Classifier - Final Prediction

  • Stop iteration
    • After convergence or when maximum iterations are reached

  • 반복 중지
    • 수렴 후 또는 최대 반복 횟수에 도달한 경우


Summary

  • We talked about 2 approaches to collective classification
  • Relational classification
    • Iteratively update probabilities of node belonging to a label class based on its neighbors
  • Iterative classification
    • Improve over collective classification to handle attribute/feature information
    • Classify node 𝑣 based on its features as well as labels of neighbors

  • 집단 분류에 대한 2가지 접근법에 대해 이야기했습니다
  • 관계구분
    • 인접 관계에 따라 레이블 클래스에 속하는 노드의 확률을 반복적으로 업데이트합니다.
  • 반복구분
    • 특성/특징 정보를 처리하기 위해 집합 분류보다 개선
    • 특징과 이웃의 label을 기준으로 노드 based 분류

CS224W: Machine Learning with Graphs 2021 Lecture 5.2 - Relational and Iterative Classification