Session 이란
https://88240.tistory.com/190
https://cheershennah.tistory.com/135
https://crossjin.tistory.com/entry/%EC%84%B8%EC%85%98Session%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
https://chrisjune-13837.medium.com/web-%EC%BF%A0%ED%82%A4-%EC%84%B8%EC%85%98%EC%9D%B4%EB%9E%80-aa6bcb327582
1. Session-Based Recommendation
- 세션 데이터를 기반으로 유저가 다음에 클릭 또는 구매할 아이템을 예측하는 추천
-
session이란?
- 유저가 서비스를 이용하면서 발생하는 중요한 정보를 담은 데이터
- 서버에 저장됨
- 브라우저가 종료되기 전까지 유저의 행동을 담은 시퀀스 데이터
-
Sequential Recommendation
- 유저 정보를 전혀 알 수 없음 (성별, 나이, 장소, 마지막 접속 날짜, 이전 구매 내역 등등)
- 아이템 정보도 전혀 알 수 없음 (실제로 어떤 물건인지, 사진이나 설명, 가격)
- 추천시스템은 지금 잘 예측이 중요하여 기간에 따라 Train/ Valid/ Test 셋을 나눔
-
Context-Aware
- sequential recommendation 모델에 추가 정보를 적용하는 분야
-
E-Commerce 데이터의 특징
- 비로그인 상태로 탐색하는 유저 多
- 로그인 상태로 탐색시, 접속할 때 마다 탐색하는 의도가 뚜렷하게 다름
2. Data Preprocess
-
pathlib 모듈
- 파일시스템 경로를 하나의 객체로 다룸 ⇨ 하나의 연산자를 정의 가능
- 파일위치 찾기, 파일 입출력과 같은 동작 (cf, os모듈)
import pathlib
path1 = pathlib.Path.cwd()
path2 = pathlib.Path('.')
files2 = path.glob('*')
path3 = pathlib.Path('.')
files3 = path.glob('**/*')
file3 =
(참고자료 : pathlib 활용하기)
3. GRU4REC 논문
- Session Data에 처음으로 RNN 계열 모델을 적용하여 발표
- 구조 : RNN계열 모델(ex. LSTM) 보다 GRU, Embedding Layer사용하지 않을 때 성능 Up👍
- 모델링
- Session-Parallel Mini-Batches :
Mini-batch 구성 | ??? |
---|
| |
- SAMPLING ON THE OUTPUT
- Negative Sampling와 같은 개념
- Item의 수가 많아 Loss를 계산할 때 인기도를 고려하여 Sampling(ALL ❌)
- Ranking Loss Session-Based Recommendation