본문 바로가기

02. 딥러닝

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

반응형

이전 글([#1] 추천시스템, 뭐가 좋은 거지? RNN vs Transformer?)에서는 추천 시스템 구조의 흐름과 RNN/Transformer 모델의 차이를 소개했어요.

이번 편에서는 정말 실험을 직접 해봅니다. Transformer 기반 추천 모델 중 하나인 **SASRec(Self-Attentive Sequential Recommendation)**을 RecBole 라이브러리를 통해 실행해보며 실험 환경을 구축하고 결과를 확인하는 과정을 안내할게요.

실험은 Windows + Jupyter Notebook + CMD 기반, 가상환경 없이 진행합니다.


✅ 실험 준비물 정리

항목설명

Python 3.9~3.10 (가상환경 X)
RecBole 추천 시스템 라이브러리
Jupyter Notebook 실험용 인터페이스
MovieLens 100K 실험용 공개 데이터셋

✅ 1단계: 설치 환경 준비

CMD(명령 프롬프트) 열기 → 실험용 폴더 만들기:

cd C:\Users\사용자이름\RecSys
mkdir sasrec_experiment
cd sasrec_experiment

필수 패키지 설치:

pip install --upgrade pip
pip install jupyter
pip install recbole
pip install pandas matplotlib

✅ 2단계: Jupyter Notebook 열기

jupyter notebook

브라우저에서 열리는 Jupyter 환경에서 새로운 .ipynb 노트북을 생성하세요. 파일 이름: run_sasrec.ipynb


✅ 3단계: SASRec 실행 코드 작성

다음 코드를 복사하여 셀에 붙여넣고 실행합니다:

from recbole.quick_start import run_recbole

# SASRec + MovieLens-100K 실험
run_recbole(model='SASRec', dataset='ml-100k')
  • 첫 실행 시 자동으로 데이터셋을 다운로드하고 학습을 시작합니다.
  • 약 3~5분 내 학습이 완료됩니다.

✅ 4단계: 결과 확인하기

실험이 완료되면 saved/ 폴더가 생성되고, 다음과 같은 파일이 저장됩니다:

  • saved/log/SASRec-YYYY-MM-DD.log: 학습 과정 로그
  • saved/SASRec-YYYY-MM-DD/config.yaml: 설정값 기록
  • saved/SASRec-YYYY-MM-DD/ 내부: 모델 파일 등 결과물

📄 예시 로그:

best result:
recall@10 : 0.3851
ndcg@10 : 0.2379

✅ 5단계: 시각화 (선택)

import matplotlib.pyplot as plt
import pandas as pd

# 예시 로그 읽기 (마지막 부분만 보기)
with open('saved/log/SASRec-YYYY-MM-DD.log', 'r') as file:
    lines = file.readlines()
    for line in lines[-15:]:
        print(line.strip())

🎯 마무리

여기까지 따라오셨다면, SASRec 실험 환경은 완성된 상태입니다! 👍

  • MovieLens-100K 기준 성능 기록 완료
  • RecBole 설치 및 실행 성공
  • 추천 정확도 확인 및 시각화 준비

다음 편에서는 이 결과를 RNN 기반 모델(LSTM 등)과 비교 분석하면서 정말 어떤 구조가 더 추천에 유리한지, 실효성까지 살펴볼 예정이에요.

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

👉 곧 공개됩니다!

반응형