이종 데이터 결합을 통한
GNN 기반 콘텐츠 추천 시스템
"파편화된 게임·영화 데이터를 하나의 그래프로 연결하다."
Steam과 IMDb의 상이한 메타데이터를 이분 그래프(Bipartite Graph)로 구조화하고,
LightGCN, GraphSAGE, RandomWalk 등 다양한 모델을 적용해 정교한 임베딩 학습과 추천을 구현했습니다.

Overview: 데이터 파편화 문제 해결
게임(Steam)과 영화(IMDb) 등 서로 다른 플랫폼의 콘텐츠를 통합 추천하고자 할 때, 가장 큰 장벽은 '상이한 분류 체계'였습니다. 같은 장르라도 플랫폼마다 부르는 명칭(Tag/Genre)이 달랐습니다. 이를 억지로 매핑하는 대신, 이분 그래프(Bipartite Graph)를 구성하여 각 태그를 고유한 노드로 살리고, 연관성을 학습하도록 설계하여 콘텐츠 통합 맵을 구축했습니다.
▲ 운영중에 있는 A.O.D(all of dopamine) 서비스
Modeling Strategy
그래프 내의 잠재적 관계를 포착하고 최적의 임베딩을 추출하기 위해 총 3가지 접근 방식을 시도 및 적용했습니다.
-
1. Random Walk (Structural Similarity)
그래프 상에서 임의의 경로를 탐색하며 노드 간의 구조적 유사성을 학습했습니다. 직접적인 연결이 없더라도, 소비 패턴이 유사한 콘텐츠끼리 군집화되는 효과를 얻었습니다.
-
2. LightGCN (State-of-the-art Recommendation)
추천 시스템에서 불필요한 비선형 활성화 함수를 제거하고, 이웃 노드 간의 정보 전파(Propagation)에 집중한 LightGCN을 적용했습니다. 이를 통해 사용자와 아이템(콘텐츠) 간의 고차원적인 상호작용을 효율적으로 학습했습니다.
-
3. GraphSAGE (Inductive Learning)
새로운 노드가 추가되었을 때 전체를 재학습하지 않고도 임베딩을 생성할 수 있도록 GraphSAGE를 활용했습니다. 콘텐츠의 메타데이터(Feature)를 이웃 노드의 정보와 집계(Aggregation)하여 학습 효율을 높였습니다.
Key Problem Solving: Cold Start 완화
초기 사용자나 신규 콘텐츠에 대한 정보가 부족한 콜드 스타트(Cold Start) 문제를 해결하기 위해, 단순한 'User-Item' 상호작용 외에 추가적인 연결 고리를 그래프에 주입했습니다.
🔧 구조적 해결책:
1. 장르 간 연관성 클러스터링: 유사 장르 노드끼리 엣지(Edge)를 연결하여 정보 전파 경로를 단축
2. 플랫폼 추천 데이터 활용: Steam/IMDb 자체 추천 리스트(‘이 게임을 좋아하면 저 게임도 좋아함’)를 크롤링하여 초기 그래프의 밀도(Density)를 보강
최종적으로 추출된 각 모델의 임베딩 벡터 간 코사인 유사도(Cosine Similarity)를 계산하여, 도메인을 넘나드는(Cross-Domain) 최적의 콘텐츠 매칭을 구현했습니다.