#GraphNeuralNetwork #LightGCN #GraphSAGE #Python #DataEngineering

이종 데이터 결합을 통한
GNN 기반 콘텐츠 추천 시스템

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

Type

Academic Project (교내 프로젝트)

Role

AI Modeling & Data Engineering

Tech Stack

Python, PyTorch, NetworkX, Selenium

Overview: 데이터 파편화 문제 해결

게임(Steam)과 영화(IMDb) 등 서로 다른 플랫폼의 콘텐츠를 통합 추천하고자 할 때, 가장 큰 장벽은 '상이한 분류 체계'였습니다. 같은 장르라도 플랫폼마다 부르는 명칭(Tag/Genre)이 달랐습니다. 이를 억지로 매핑하는 대신, 이분 그래프(Bipartite Graph)를 구성하여 각 태그를 고유한 노드로 살리고, 연관성을 학습하도록 설계하여 콘텐츠 통합 맵을 구축했습니다.

A.O.D(all of dopamine)

▲ 운영중에 있는 A.O.D(all of dopamine) 서비스



Modeling Strategy

그래프 내의 잠재적 관계를 포착하고 최적의 임베딩을 추출하기 위해 총 3가지 접근 방식을 시도 및 적용했습니다.

Key Problem Solving: Cold Start 완화

초기 사용자나 신규 콘텐츠에 대한 정보가 부족한 콜드 스타트(Cold Start) 문제를 해결하기 위해, 단순한 'User-Item' 상호작용 외에 추가적인 연결 고리를 그래프에 주입했습니다.

🔧 구조적 해결책:
1. 장르 간 연관성 클러스터링: 유사 장르 노드끼리 엣지(Edge)를 연결하여 정보 전파 경로를 단축
2. 플랫폼 추천 데이터 활용: Steam/IMDb 자체 추천 리스트(‘이 게임을 좋아하면 저 게임도 좋아함’)를 크롤링하여 초기 그래프의 밀도(Density)를 보강

최종적으로 추출된 각 모델의 임베딩 벡터 간 코사인 유사도(Cosine Similarity)를 계산하여, 도메인을 넘나드는(Cross-Domain) 최적의 콘텐츠 매칭을 구현했습니다.

Back to Portfolio