SASRec은 Transformer의 self-attention 메커니즘을 추천 시스템에 도입한 순차적 추천 모델로, 사용자의 과거 행동 이력에서 각 시점마다 관련성 있는 아이템을 식별하여 다음 아이템을 예측합니다. 이 모델은 RNN처럼 장기 의존성을 포착하면서도, Markov Chain처럼 비교적 적은 수의 중요한 행동을 기반으로 예측합니다.
입력 데이터는 타임스탬프 기반으로 정렬된 사용자 시퀀스로, 모델은 원래 입력 시퀀스를 한 단계씩 오른쪽으로 이동시켜 사용자의 다음 행동을 예측하는 방식으로 학습합니다.
구조 구성:
1. Embedding Layer: 각 아이템을 밀집 벡터로 변환
2. Positional Embedding: 시퀀스의 순서 정보 보존
3. Self-Attention Blocks: 다중 헤드 어텐션과 피드포워드 네트워크로 구성
4. Prediction Layer: 학습 중에는 손실 함수를 계산하고, 테스트 시에는 아이템의 관련성 점수를 산출
온라인 쇼핑몰 시나리오:
사용자 A의 구매 이력이 다음과 같다고 가정:
[티셔츠] → [청바지] → [운동화] → [모자] → [?]
SASRec은 이 시퀀스를 처리할 때:
dense 데이터셋에서는 장기 의존성을 고려하는 경향이 있고, sparse 데이터셋에서는 최근 이벤트에 더 집중합니다.
ALS는 협업 필터링 기반 추천 시스템에서 사용되는 행렬 분해 기법으로, 사용자-아이템 상호작용 행렬을 두 개의 저차원 행렬로 분해하여 사용자와 아이템을 교대로 최적화합니다.
ALS는 두 단계를 반복하면서 교대로 수행됩니다: 하나의 행렬을 고정하고 다른 행렬을 최적화하는 과정을 반복합니다. 이러한 교대 최적화 절차는 각 단계가 최소제곱 문제를 해결하도록 보장하여, 인수 업데이트를 계산적으로 효율적으로 만듭니다.
수학적 표현:
사용자-아이템 평점 행렬 R(m×n)을 두 행렬로 분해:
목표: R ≈ U × V^T
1. 초기화: U와 V를 무작위로 초기화
2. 반복 (수렴할 때까지):
a) V를 고정하고 U를 최적화
- 각 사용자에 대해: U[u] 업데이트
b) U를 고정하고 V를 최적화
- 각 아이템에 대해: V[i] 업데이트
3. 예측: R̂[u,i] = U[u] · V[i]^T
영화 추천 시스템:
평점 행렬 R (5명 사용자 × 4개 영화):
액션1 로맨스1 SF1 드라마1
사용자1: 5 ? 4 ?
사용자2: ? 4 ? 5
사용자3: 3 ? 5 ?
사용자4: ? 5 ? 4
사용자5: 4 ? 3 ?
ALS 처리 과정:
초기화: U와 V를 k=2 차원으로 무작위 초기화
1차 반복:
결과 해석:
예측:
ALS는 확률적 경사하강법(SGD)과 달리 U와 V를 교대로 고정하여 볼록 선형 회귀 문제로 변환함으로써 상당한 병렬화와 속도 향상을 가능하게 합니다.
| 특성 | SASRec | ALS |
|---|---|---|
| 패러다임 | 딥러닝 기반 순차 모델 | 전통적 행렬 분해 |
| 시간 정보 | 시퀀스 순서를 명시적으로 모델링 | 시간 정보 암묵적 포함 가능 |
| 복잡도 | 높음 (Transformer 구조) | 중간 (반복적 최적화) |
SASRec:
ALS:
최근 연구에서 Transformer 기반 모델이 전통적인 머신러닝과 행렬 분해 모델(SVD 포함)을 포함한 기준선을 크게 능가하는 것으로 나타났습니다.
SASRec:
ALS:
SASRec 적합:
ALS 적합:
RecSys 2025에서 LLM과 추천 시스템의 융합이 주요 트렌드로 부상했으며, SASRec은 여전히 최첨단 딥러닝 모델로서 벤치마크 역할을 하고 있습니다.
현대적 접근법은 Transformer를 사용하여 사용자를 인코딩하는 것을 제안하며, 사용자의 익명화된 이력(이벤트 시퀀스)을 가져와 벡터로 인코딩합니다. 반면 행렬 분해 방법(ALS 같은)에서는 사용자 벡터가 모델 매개변수로 표현되고 최적화 절차 내에서 결정되었습니다.
SASRec:
ALS:
SASRec은 시퀀스 정보가 중요하고 충분한 계산 리소스가 있는 현대적 추천 시스템에 적합하며, ALS는 안정적이고 확장 가능한 전통적 협업 필터링이 필요한 경우에 여전히 강력한 선택입니다.
실무에서는 데이터의 특성, 시스템 요구사항, 그리고 비즈니스 목표에 따라 적절한 알고리즘을 선택하거나, 때로는 하이브리드 접근법을 사용하는 것이 최선의 결과를 가져올 수 있습니다.