티스토리 뷰
- 기존 추천 시스템 Model
- Sequential Recommendation
- GRU4Rec
- SASRec
- BERT4Rec
기존 추천시스템 Model ( Contents- Based, Collaborative Filtering....)
사용자의 과거 item 선택 정보가 동일하게 중요하다는 기본 가정에서 출발
→ 주로 선택하던 아이템과 다른 아이템이 등장할 경우, 이에 대한 설명이 부족하고, 사용자가 주로 선택하던 item만을 추천한다는 단점이 있음
→ 시간의 정보를 반영해주지 않음, 구매의 순서, 시기를 무시한다는 단점
그러나, 일반적으로 상품 구매 패턴에는 구매 순서, 시기가 반영됨!
또한, 유저의 선호도는 끊임없이 변화할 수 있으며, 과거 구매 정보가 '동일하게' 중요하다기 보다는 최근 정보가 더 중요할 수도 있음.
예를 들어, 아이패드를 새로 산 유저는 아이패드를 산 후에, 기존에 많이 구매하던 생활용품들보다는 아이패드 관련 용품을 많이 구입하게 되는 것처럼!
그래서 등장한 것이 Sequential Recommendation 방법이다.
Sequential Recommendation
시간의 흐름에 따라 동적으로 변화하는 User의 Preference를 포착해준다!
Sequential Recommendation 모델 흐름
- 기존 NLP 분야에서 사용되던 모델들을 추천시스템에 적용하는 것이 대세
- NLP에서 text data가 sequential 이었던 것처럼, User의 item 선호도를 sequential 데이터로 파악
-Markov Chains(MCs) → (RNN 기반 모델) GRU4Rec → CASER(CNN) → SASRec(Self-Attention) → SSE-PT → BERT4Rec(BERT) → Transformer4Rec
대략 이러한 흐름으로 나타났다고 볼 수 있다.
그 중 GRU4Rec, SASRec, BERT4Rec에 대해서 살펴보도록 하겠다
GRU4Rec
- NLP에서 주로 사용되던 RNN 기반 모델을 추천시스템에 활용했다는 점에서 중요한 의의!
- 일반적인 GRU Architecture를 커스터마이징하여 활용! 다중의 GRU layer를 쌓고 입력값을 중간마다 연결해주는 형태
- 과거의 Session Sequence 데이터를 GRU 레이어에 입력하여, 바로 다음에 올 확률이 가장 높은 item을 예측하는 추천해주는 task
- 다중의 GRU 레이어를 쌓고 입력값을 중간마다 연결해준다!
Point 1. 1 - of - N 인코딩을 사용해 아이템을 input 레이어에 입력
Point 2. 세션 병렬 미니 배치
- 자연어 처리에서 사용한 미니배치 구성 방식을 그대로 적용할 수 없음!
- 이유1 ) session 길이의 분산이 크다 :
NLP의 경우, input으로 들어가는 각 문장의 길이가 비슷비슷했다고 할 수 있음.
But, 구매 내역 데이터의 경우 사람마다 많은 차이가 있을 수 있기에 Session 길이의 분산이 크다고 할 수 있음.
- 이유2 ) 시간의 흐름에 따라 일반적인 세션의 양상을 잡고자 함 :
NLP에서는 한 문장이 완성된 의미 단위를 가지고 이 문장에서 함축된 의미를 파악하는 것이 중요하다고 볼 수 있음.
But, 구매 내역 세션은 하나의 함축된 의미를 갖는다고 보기 어려우며, Sequential Recommendation에서는 이러한 세션의 함축적 의미를 파악하는 것이 주목적이 아님!
이 안에서 다음 토큰이 어떻게 움직이는지 포착하는 것이 주목적이기 때문에 NLP와는 다른 미니 배치 처리를 진행해줌
- HOW?
SASRec
BERT4Rec
[ 참고 자료 ]
- SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS 논문
- Self-Attentive Sequential Recommendation 논문
- BERT4Rec : Sequential Recommendation with Bidirectional Encoder Representations from Transfoermer 논문
- Transformers4Rec: A flexible library for Sequential and Session-based recommendation | by Gabriel Moreira | NVIDIA Merlin | Medium
- [DMQA Open Seminar] Introduction to Sequential Recommender Systems 유튜브 영상: (10) [DMQA Open Seminar] Introduction to Sequential Recommender Systems - YouTube
- 패스트 캠퍼스 강의 : 30개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지 | 패스트캠퍼스 (fastcampus.co.kr)
'RecSys' 카테고리의 다른 글
[RecSys] 3. Matrix Factorization (0) | 2023.09.17 |
---|---|
[RecSys] 2. 컨텐츠 기반 필터링과 협업 필터링 (1) | 2023.08.29 |
[RecSys] 1. 추천시스템 개념 및 고전 추천 알고리즘 (0) | 2023.08.29 |
[RecSys] SASRec Position Embedding Experiments (0) | 2023.07.12 |
[RecSys] SASRec 코드 리뷰 (0) | 2023.07.12 |
- Total
- Today
- Yesterday
- pointwise reranker
- WHERE문 집계함수
- cold-start
- NULL인 열 만들어주기
- WHERE절서브쿼리
- treer구조
- SET문
- 이코테
- Lagrange Multipler
- groupby 다중
- 알고리즘
- SASRec
- rag 다중문서 활용
- 추천시스템
- ORDER BY LIMIT
- SQL
- 하나의 테이블에 대한 조작
- 여러개 값에 대한 조작
- 다중 GROUP BY
- SELECT문 안 서브쿼리
- reranker
- 숨겨진조건
- NULL AS
- reranker 속도 개선
- 연관규칙분석
- SQL레시피
- llm reranker
- 고전적 추천 알고리즘
- 서브쿼리
- 하이브리드 필터링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |