본문 바로가기
AI/DeepLearning

Inductive vs Transductive

by 까다로운오리 2025. 4. 17.

 

 

✅ 인덕티브 (Inductive)

새로운 노드나 데이터가 들어와도 예측이 가능함!

  • 학습할 때 일반적인 패턴을 배움 (ex. 특정 유저/아이템이 아니라, 유저와 아이템의 특성이나 관계 패턴)
  • 그래서 학습에 없던 새로운 유저나 아이템에도 추천 가능함
  • 예: GraphSAGE, GAT, MLP, BERT 기반 모델 등

🧠 예시 상황
"처음 보는 유저가 앱에 가입했는데도, 프로필 기반으로 음식점 추천 가능!"


✅ 트랜스덕티브 (Transductive)

학습에 사용한 노드들만 예측 가능!
새로운 노드에는 예측 불가 ❌

  • 학습할 때 특정 노드들 간 관계만 깊게 학습함
  • 학습 시 사용된 노드에 대해서는 성능 좋지만, 새로운 노드 추가 시 다시 학습해야 함
  • 예: GCN, Matrix Factorization (ex. ALS), Node2Vec

🧠 예시 상황
"기존 사용자들에 대해서는 추천 잘 해주는데, 새 유저는 정보가 없어서 아무 것도 못 해주는 상황"

 

 

 

 

[ 인덕티브 모델 ]

✅ GraphSAGE

✔️ 기본 개념

샘플링 기반 GNN 모델
노드의 이웃 피처를 집계(Aggregation)해 새로운 노드도 임베딩 가능하도록 학습함

✔️ 작동 방식

  • 노드 간 연결(그래프) + 노드의 속성(피처) 활용
  • 각 노드는 이웃 노드 일부를 샘플링해서 피처들을 모은 뒤,
    자신의 피처와 함께 업데이트 → 새로운 임베딩 생성

✔️ 학습 구조

  • 각 레이어에서 이웃 노드를 샘플링
  • Aggregation (mean, pooling, LSTM 등)
  • 자신과 합쳐서 MLP 통과 후 업데이트
  • 레이어 반복으로 K-hop 이웃까지 정보 반영

✔️ 주요 파라미터

  • num_neighbors: 이웃 샘플 수
  • aggregator_type: mean / pooling / LSTM 등
  • num_layers: GNN 깊이 (hop 수)
  • hidden_dim: 각 레이어 임베딩 차원

✔️ 수식

✔️ 특징

  • Inductive 모델 (새 노드도 예측 가능)
  • 노드 피처 사용 가능
  • 이웃 샘플링으로 확장성 우수
  • 다양한 Aggregator로 유연하게 구조 설계 가능
  • 추천 시스템, 유저 행동 예측 등에서 활용도 높음

 

 

[ 트랜스덕티브 모델 ]

✅ ALS (Alternating Least Squares)

✔️ 기본 개념

  • 행렬 분해 기반 추천 모델
    → 사용자-아이템 상호작용 행렬을 두 개의 잠재 요인 행렬로 분해 (User Matrix × Item Matrix)

✔️ 작동 방식

  • 예: 유저-음식점 평점 행렬
    유저 i, 식당 j → 평점 r_(ij)
  • 유저와 식당 각각의 latent vector를 학습해서
  • 교호 방식으로 학습함
    • 유저 잠재벡터 고정 → 아이템 잠재벡터 학습
    • 아이템 고정 → 유저 학습
      (이걸 번갈아 하면서 최소제곱으로 오류 줄이는 방식!)
    • 반복 과정은 아래와 같음

1단계. 유저는 고정! → 아이템 벡터만 학습

  • 유저 A는 라멘집엔 5점, 피자집엔 3점, 파스타집엔 4점 줬음
  • 유저 A의 벡터는 고정된 상태라고 가정

모든 유저에 대해 계산하여 아이템 벡터 V를 업데이트

2단계. 아이템은 고정! → 유저 벡터만 학습

이번엔 아이템 벡터는 고정해두고,
"유저 벡터를 어떻게 바꿔야 평점을 잘 맞출까?" 계산!

 

모든 유저에 대해 유저 벡터 U를 업데이트!


✔️ 수식

✔️ 특징

  • Transductive 모델 (새 유저/아이템 못 다룸)
  • 빠르고 간단해서 베이스라인으로 좋음
  • 암묵적 피드백 (Implicit)도 지원 (ex. 클릭 여부 등)

✔️ 단점

  • Cold Start 문제 (새 유저/아이템 불가능)
  • 유저/아이템의 설명 가능한 피처 정보 못 씀

✅ Node2Vec

✔️ 기본 개념

  • 그래프 기반 임베딩 모델
  • 그래프 위에서 랜덤 워크를 통해 노드의 이웃 관계를 학습

✔️ 작동 방식

  1. 유저-아이템 그래프 구성 (노드 = 유저/아이템, 엣지 = 상호작용)
  2. 유저 노드에서 랜덤 워크 → 경로 생성
  3. 생성된 경로를 문장처럼 간주하고, Word2Vec 방식으로 임베딩 학습 → 비슷한 위치에 자주 나오는 노드들은 비슷한 벡터로 매핑됨
    • Word2Vec 학습
      • Skip-gram 방식 사용
      • 예: 문장 [A, B, D, F, G]
        → 중심 단어 D, context window 2일 때:
        D 주변 단어 = [B, F]
        → D 벡터로 B, F를 예측하는 방향으로 학습
      !! 이렇게 하면 비슷한 이웃 구조를 가진 노드들은 비슷한 벡터를 가짐

✔️ 수식

✔️ 주요 파라미터

  • walk length, window size
  • p/q: DFS/BFS 성향 조정하는 bias 파라미터

✔️ 특징

  • Transductive 모델
  • 노드 속성 사용 X (그래프 구조만 사용)
  • 사용자 정의 그래프 구조 반영 가능