
I. 구조 및 용어 정의
이 다이어그램은 앵커 노드 A의 2-Hop 임베딩 hA(2)를 생성하는 과정을 보여줍니다.
| 이미지 요소 | GraphSAGE 용어 | 이커머스 예시 |
|---|
| A (주황색) | 앵커 노드 v | MSI 노트북 |
| B, C, D | 1-Hop 이웃 u | 마우스, 가방, 쿨링 패드 |
| E, F | 2-Hop 이웃 | 마우스 패드, 키보드 |
| CONVOLVE(1) | 레이어 1 (1-Hop) | 1-Hop 임베딩 생성 함수 |
| CONVOLVE(2) | 레이어 2 (2-Hop) | 2-Hop 임베딩 생성 함수 |
| hA(1) | 노드 A의 1차 임베딩 | 노트북의 1-Hop 협업 특징 |
| hN(A)(1) | 이웃 집계 벡터 | 1-Hop 이웃들의 1차 임베딩 평균 |
| γ | 결합 함수 (Combination) | CONCAT, 선형 변환, ReLU |
II. CONVOLVE(1): 1-Hop 임베딩 생성 (레이어 1)
레이어 1은 앵커 노드 A의 1-Hop 이웃들(B, C, D) 각각의 임베딩 h(1)을 생성하는 과정입니다.
1. 초기 입력 (Layer 0)
- 입력: 모든 노드(A, B, C, D, E, F)는 SBERT를 통해 얻은 초기 임베딩 h(0)을 가집니다.
- 예: hB(0)는 "무선 마우스"의 텍스트 특징입니다.
2. B 노드의 CONVOLVE(1) 과정
노드 B의 임베딩 hB(1)을 생성하는 과정을 살펴봅시다.
- 이웃 샘플링: B는 자신의 이웃들(A, C)을 샘플링합니다.
- 집계 (Aggregation): B는 이웃들(A, C)의 초기 임베딩 hA(0),hC(0)를 모아 평균합니다 (Mean Aggregator 기준).
hN(B)(1)=∣N(B)∣1∑u∈N(B)hu(0)
- 결합 (Combination): 집계된 벡터 hN(B)(1)와 B 자신의 초기 임베딩 hB(0)를 결합합니다.
hB(1)=ReLU(W1⋅CONCAT(hB(0),hN(B)(1)))
3. 결과
- hB(1): 마우스(B)의 텍스트 특징과 함께, 노트북(A) 및 가방(C)과 함께 사용된다는 협업적 맥락이 반영된 임베딩이 됩니다.
- hC(1) 및 hD(1): C와 D도 동일한 CONVOLVE(1) 함수(동일한 W1 가중치)를 사용하여 각자의 1-Hop 임베딩을 생성합니다.
III. CONVOLVE(2): 2-Hop 임베딩 생성 (레이어 2)
이제 앵커 노드 A가 최종 임베딩 hA(2)를 생성하기 위해 1-Hop 이웃들의 정보를 모읍니다.
1. 2-Hop 이웃 정보 집계 (hN(A)(1))
노드 A는 자신의 1-Hop 이웃들 {B,C,D}의 1차 임베딩 {hB(1),hC(1),hD(1)}을 모아 집계합니다.
-
수식 (Aggregation):
hN(A)(2)=∣N(A)∣1∑u∈N(A)hu(1)
(이미지에서 hN(A)(1)로 표기된 것은, 레이어 1의 결과물을 집계한다는 의미입니다.)
-
의미: 이 집계 벡터는 마우스, 가방, 쿨링 패드의 1-Hop 협업 특징을 평균한 것입니다. 즉, 2-Hop 이웃(E, F, G)의 정보가 간접적으로 A에게 전달됩니다.
2. 2-Hop 결합 (Combination)
집계된 이웃 벡터 hN(A)(2)와 노드 A 자신의 1차 임베딩 hA(1)을 결합합니다.
-
수식 (Combination):
hA(2)=ReLU(W2⋅CONCAT(hA(1),hN(A)(2)))
-
이미지 요소:
- hA(1): 노드 A의 1차 임베딩 (레이어 1의 결과)
- hN(A)(1): 1-Hop 이웃들의 1차 임베딩을 집계한 벡터
- γ: CONCAT 및 선형 변환 (W2)을 포함하는 결합 함수
- 검은색 막대: 최종 활성화 함수 및 정규화 (ReLU, L2 Norm)
3. 최종 결과
- hA(2) (주황색 A): MSI 노트북의 최종 임베딩. 이 임베딩은 텍스트 정보, 직접적인 보조 상품 정보, 그리고 간접적인 보조 상품 정보(2-Hop)까지 모두 포함합니다.
IV. 핵심 원리: 귀납적 학습 (Inductive Learning)
이 다이어그램이 보여주는 가장 중요한 특징은 귀납적이라는 점입니다.
1. 고정된 임베딩이 아니다
전통적인 GCN이나 DeepWalk는 모든 노드에 대해 고정된 임베딩 벡터를 학습합니다. 새로운 상품이 추가되면 전체 모델을 재학습해야 합니다.
2. 함수를 학습한다
GraphSAGE는 W1과 W2라는 가중치 행렬(함수)만 학습합니다.
- CONVOLVE(1) 함수: 모든 노드(A, B, C, D...)가 1-Hop 임베딩을 생성할 때 이 함수를 공유합니다.
- CONVOLVE(2) 함수: 모든 노드가 2-Hop 임베딩을 생성할 때 이 함수를 공유합니다.
3. 새로운 상품에 대한 적용
만약 오늘 새로운 상품 X (게이밍 헤드셋)가 추가되고, 이 상품이 기존 상품 B(마우스)와 C(가방)와 연결되었다고 가정해 봅시다.
- hX(0) 생성: 헤드셋의 상품명을 SBERT에 넣어 초기 임베딩을 생성합니다.
- hX(1) 생성: CONVOLVE(1) 함수를 사용하여 이웃(B, C)의 h(0) 정보를 집계하고 hX(0)와 결합하여 hX(1)를 즉시 생성합니다.
- hX(2) 생성: CONVOLVE(2) 함수를 사용하여 최종 임베딩 hX(2)를 즉시 생성합니다.
결론: GraphSAGE는 그래프 구조가 변하거나 새로운 노드가 추가되어도 학습된 함수를 통해 즉시 임베딩을 생성할 수 있으므로, 끊임없이 변화하는 이커머스 환경에 매우 적합합니다.