✅ 인덕티브 (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
✔️ 기본 개념
- 그래프 기반 임베딩 모델
- 그래프 위에서 랜덤 워크를 통해 노드의 이웃 관계를 학습
✔️ 작동 방식
- 유저-아이템 그래프 구성 (노드 = 유저/아이템, 엣지 = 상호작용)
- 유저 노드에서 랜덤 워크 → 경로 생성
- 생성된 경로를 문장처럼 간주하고, Word2Vec 방식으로 임베딩 학습 → 비슷한 위치에 자주 나오는 노드들은 비슷한 벡터로 매핑됨
- Word2Vec 학습
- Skip-gram 방식 사용
- 예: 문장 [A, B, D, F, G]
→ 중심 단어 D, context window 2일 때:
D 주변 단어 = [B, F]
→ D 벡터로 B, F를 예측하는 방향으로 학습
- Word2Vec 학습
✔️ 수식
✔️ 주요 파라미터
- walk length, window size
- p/q: DFS/BFS 성향 조정하는 bias 파라미터
✔️ 특징
- Transductive 모델
- 노드 속성 사용 X (그래프 구조만 사용)
- 사용자 정의 그래프 구조 반영 가능
'AI > DeepLearning' 카테고리의 다른 글
Shapley Value 실습 1 (에러 원인과 해결 방안) (0) | 2025.05.03 |
---|---|
[핵심 머신러닝] Shapley Value (Explainable AI) (0) | 2025.04.13 |
Clustering 평가 방법 (0) | 2024.07.09 |
[Pytorch] Seq2Seq Transformer 실습 (2) | 2024.02.04 |
[Pytorch] Transformer (2) | 2024.01.28 |