본문 바로가기

02. 딥러닝

00016. [추천시스템 비교 시리즈 #1] 추천시스템, 뭐가 좋은 거지? RNN vs Transformer?

반응형

추천 시스템이란 무엇일까요? Netflix가 당신에게 영화를 추천하고, 쿠팡이 다음 상품을 보여주고, 유튜브가 계속 볼 영상을 연결해주는 그 기술. 그 중심엔 추천 알고리즘이 있습니다.

그런데 말이죠, 추천 알고리즘도 종류가 다양합니다. 그 중 요즘 연구에서 가장 많이 비교되는 건 바로 RNN 기반 모델과 Transformer 기반 모델이죠.

그렇다면 정말 궁금해집니다:

"RNN과 Transformer, 추천 시스템에선 뭐가 더 좋은 걸까?"

이 시리즈에서는 직접 실험을 통해 이 질문에 답해보려고 합니다. 이 글은 그 첫 번째 에피소드로, 배경과 구조, 그리고 왜 이 비교가 중요한가를 설명하는 데 집중합니다.


✅ RNN 기반 추천 시스템: 순서를 기억하는 모델

RNN(Recurrent Neural Network)은 시간의 흐름을 반영하는 대표적인 구조입니다. 사용자가 어떤 행동을 했는지를 순서대로 기억하면서 다음 행동을 예측하죠.

✍️ 예시:

  • A 사용자가 → [아이템1 → 아이템2 → 아이템3]을 봤다면?
  • 다음으로 아이템4를 볼 가능성을 예측합니다.

이 방식은 사용자의 행동 흐름을 잘 반영하지만, 다음과 같은 단점도 존재합니다:

  • 시퀀스가 길어질수록 이전 정보를 잊어버림 (장기 의존성 문제)
  • 순차적으로 학습하므로 병렬 처리가 어려움

✅ Transformer 기반 추천 시스템: 모든 위치를 한 번에 바라본다

Transformer는 NLP에서 혁신을 이끈 모델입니다. Self-Attention이라는 메커니즘을 통해, 입력 시퀀스 전체를 동시에 바라보며 중요도를 계산합니다.

추천 시스템에선 대표적으로 SASRec, BERT4Rec 등이 이 구조를 활용합니다.

✅ 장점:

  • 병렬 처리 가능 → 학습 속도 빠름
  • 긴 시퀀스에서도 정보 손실 적음
  • 다양한 시나리오에 유연하게 적용 가능

하지만 여전히 많은 사람이 이렇게 말합니다:

“RNN도 충분히 잘되는데, 굳이 Transformer까지 써야 해?”

그래서 직접 비교해보기로 했습니다.


🎯 실험 목적: 단순 정확도 비교가 아니다!

우리는 단순히 **“Precision이 더 높았다”**로 끝나는 비교가 아니라, 다음과 같은 관점에서 실험을 구성할 예정입니다:

  • 예측 성능 (정확도, NDCG, MRR)
  • 학습 속도와 추론 응답 시간
  • Cold-start 사용자 대응력
  • 실시간 추천 시스템에의 적합성

즉, “실제 서비스 환경에서 무엇이 더 실용적인가?”를 보는 것이죠.


📌 다음 편 예고: 실험 직접 해보기 (MovieLens + SASRec)

다음 에피소드에서는 RecBole 라이브러리를 사용해서 Transformer 기반 추천 모델(SASRec)을 직접 학습시켜보는 과정을 다룹니다.

  • 데이터셋은 MovieLens 100K 사용
  • 가상환경 없이 설치
  • CMD + Jupyter 기반 실험

📍 [추천시스템 비교 시리즈 #2] SASRec 실험 직접 해보기 (RecBole 튜토리얼)

기대해주세요! 😉

반응형