본문 바로가기

02. 딥러닝

00018. [추천시스템 비교 시리즈 #3] RNN vs Transformer, 정확도는 누가 더 높을까?

반응형

지난 회차에서는 RecBole 라이브러리를 이용해 Transformer 기반 추천 모델인 SASRec을 직접 실행해보았습니다. 이제는 같은 실험 환경에서 RNN(LSTM) 기반 추천 모델을 실행하고, SASRec과의 성능 비교를 통해 어떤 모델이 실제로 더 추천에 효과적인지 확인해보겠습니다.


✅ 실험 조건 요약

항목값

데이터셋 MovieLens 100K
모델 RNN (LSTM), SASRec
평가 지표 Precision@5, Recall@5, NDCG@5, MRR
Epochs 50
Optimizer Adam
Learning Rate 0.001
Embedding Size 64

✅ RNN(LSTM) 모델 실험 실행

from recbole.quick_start import run_recbole

# LSTM 모델 학습 (MovieLens 100K)
run_recbole(model='GRU4Rec', dataset='ml-100k')

💡 RecBole은 LSTM 대신 GRU4Rec 구조를 기본 제공하므로, 실험에서 GRU4Rec을 RNN 대표로 사용합니다.

실행 결과는 saved/ 디렉터리 내 로그 파일을 통해 확인 가능합니다.


✅ 실험 결과 비교 (예시)

모델 Precision@5 Recall@5 NDCG@5 MRR
GRU4Rec 0.118 0.162 0.195 0.311
SASRec 0.143 0.188 0.224 0.347

Transformer 기반 SASRec이 전 지표에서 우수한 성능을 보였습니다. 특히, 사용자가 관심 가질 가능성이 높은 아이템을 상위에 배치하는 순위 기반 지표(MRR, NDCG)에서 10~20% 향상된 결과를 확인할 수 있었습니다.


🔍 모델 성능 차이의 원인 분석

요소 GRU4Rec (RNN 계열) SASRec (Transformer 계열)
시퀀스 학습 방식 순차적 처리 (Recurrent) 병렬 처리 (Self-Attention)
장기 의존성 반영 약함 강함 (전체 시퀀스 고려 가능)
연산 속도 느림 빠름 (GPU 병렬화 가능)
구조 유연성 낮음 높음 (다양한 Attention 구조 가능)

SASRec은 과거의 시퀀스를 전체적으로 조망하며, 각 시점의 중요도를 스스로 학습하는 구조 덕분에 사용자 행동의 '패턴'을 더 깊게 이해할 수 있었습니다.


✅ 실험을 통해 알게 된 사실 정리

  • 단순히 추천 정확도만 본다면 Transformer 모델이 확실히 우수함
  • 추론 속도, 구조 확장성 측면에서도 Transformer가 유리
  • 다만 구조 복잡성, 메모리 사용량은 RNN이 더 가볍고 효율적일 수 있음

📌 다음 편 예고: 실무 적용성을 따져보자 (속도, Cold-start, 메모리)

정확도만 좋다고 추천 시스템이 좋은 건 아니죠? 실제로 서비스에 적용하려면 속도, 메모리, 사용자 다양성 대응력 등도 중요합니다.

다음 편에서는 실험 결과를 기반으로 한 실무적 관점의 모델 비교 분석을 다룹니다:

📍 [추천시스템 비교 시리즈 #4] 추론 속도부터 cold-start까지, 누가 더 실용적인가?

👉 계속 함께 가보시죠!

반응형