Sequential Recommendations
Markov Chains for Recommendation
Markov property
: 다음 상태는 그 직전의 상태에만 영향을 받음
- Markov property를 만족하는 Markov Chain은 다양한 시계열 분석에 사용되며, 추천 분야에서도 User를 반영하여 사용될 수 있음: Personalized Markob Chains
- User * item * (previous) item
FPMC
: Factorized Personalized Markov Chains, 2010
- MF를 사용하여 general preference를 모델링하고, Markov chain을 사용하여 item의 sequential pattern을 모델링
- 유저의 정보와 직전에 소비한 item을 통해 다음에 사용할 item을 예측
- previous item을 j라 하면, FPMC는 다음 함수를 fitting하는 문제로 표현됨
PRME
: Personalized Ranking Metric Embedding, 2015
FME
: Factorized Markov Embedding, 2012
- 음악 추천을 위해 고안된 모델로, 플레이리스트 추천을 위해 직전 노래의 끝점과 다음 노래의 시작점 사이의 거리를 고려함
- 이전 곡과 다음 곡에 대해 개별적인 임베딩을 사용
- 플레이리스트 내의 곡들끼리는 서로 유사해야할 뿐 아니라, 급격한 장르 변화가 있어선 안 됨
- Compatibility function
- item 간에는 distance metric을 사용하고, user와 item 간에는 inner product를 사용
(compatibility function은 목적 및 반영하고자 하는 특성에 따라 다르게 설정할 수 있음)
Translation-based Recommendation, 2017
: item을 embedding space 상의 point로 표현하고 user의 translation vector에 의해서 item sequence를 예측함.
- 기존의 sequential recommendation들은 user와 item, item과 item 간의 관계를 따로 모델링한 반면, TransRec은 user-translation vector를 통해 user와 item 간의 관계를 함께 표현함.
(Low dimensional space에서 entity 간의 관계를 모델링하는 것과 유사)
- 이전 item j에서 다음 item i로의 translation을 user translation vector를 통해 표현.
(user translation vector를 통해 item의 소비 sequence를 모델링할 수 있음)
- Compativility function의 학습
요약
RNN for Sequential Recommendation
- Markov chain 기반의 모델은 Markov property 가정으로 인해 user의 사용 기록을 모두 반영할 수 있다는 한계점이 있음 -> RNN !
- NLP에서 사용하는 방법론은 sequential recommendation에도 사용할 수 있음
- NLP에서 discrete token(word, character)을 word가 아닌 user가 클릭한 item으로 보고, sentence를 interaction sequence로 본다면, 그 과정이 유사함.
GRU4Rec
👉 Link
Neural Attentive Recommendation Machine
- User의 행동의 주 목적을 살펴보기 위해,
user의 취향을 global과 local level로 나눠서 보자 !
- NARM은 user의 행동을 전체 sequence로 보는 global recommender와, 최근 행동에 집중하는 local recommender로 나눔.
Global encoder
- session에 걸친 전반적인 user 행동을 분석
- session 전체 정보를 모델링하는 session behavior feature ct9를 모델링.
Local encoder
- 최근 행동 xt의 결과를 반영한 ht 기반의 attention을 통해 user purpose feature ctl를 모델링
Global + Local
- Global encoder로부터 없은 session behavior feature와 Local encoder로부터 얻은 user purpose feature를 종합
- ct=[ct9;ctl]=[ht9;∑j=1tatjhti]
- Bi-linear similarity func을 사용하여 최종 item 추천을 위한 similarity score 계산
- Si=embiTBct
- transformer
- self-attention 기반으로 global dependency를 학습하고, recurrence 구조를 없앰으로써 병렬적 계산이 가능
- 초기 제안된 모델은 번역을 위해 encoder/decoder 구조로 나누어져 있었지만, 최근 번역 외의 task에서는 decoder 구조만을 사용하는 경우도 많음.
BST
👉 Link
SASRec
특징
- RNN과 달리 병렬 처리가 된다는 점에서 학습 속도의 이점도 있으며, long-term dependency 관련 문제가 없음.
- 기본적인 구조는 다음 단어를 에측하는 language modeling과 유사.
- Dropout: item embedding layer에 dropout을 해주어 overfitting을 방지
- Shared item embedding: 자연어 처리에도 많이 사용하는 방법으로 input embedding과 output예측을 위한 parameter를 동기화
- Training Loss: negative sample을 이용한 binary cross entropy를 사용
BERT4Rec
- Bidirectional Encoder Representation (BERT)는 양방향으로 self-attention을 적용하는 방법론으로, NLP에서 Language model의 pre-training 단계에 많이 활용됨.
SASRec vs BERT4Rec
- BERT4Rec에서는 양방향 모델링을 통해 과거와 미래 정보를 모두 학습에서 사용
- Masked language model과 같은 cloze tack를 수행
- cloze taask: 일부 token을 가린 후 복원
Recommendation with self-supervised learning
S3-Rec
: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization, Zhou et al., 2020
Self-Supervised Learning
- S3Rec은 기본적으로 BERT4Rec의 구조와 유사하나, 총 4개의 auxiliary loss들을 활용하여 item-attribute, sequence-item, sequence-sequence 관계를 모델링 함.
- Associated Attribute Prediction Loss
: item-Attribute correlation을 학습
- attribute ex) 영화-장르, 옷-카테고리, 음악-분위기
- 예측한 속성 <--비교--> 실제 속성
- Masked Item Prediction Loss
: Sequence-Item correlation을 학습
- BERT와 유사하게 cloze task 수행
- 주변의 양방향 context로부터 maskin호딘 아이템을 예측
- Masked Attribute Prediction Loss
: Sequence-Attribute correlation을 학습
- 주변 context로부터 masking된 아이템의 'attribute'를 예측
- Segment Prediction Loss
: 주변 context로부터 masking된 segment를 예측
- NLP와 달리, RecSys에서 단일 아이템은 주변 컨텍스트와 크게 연관성이 없을 수도 있음.
- 따라서 보다 안정적이고 명확한 사용자 선호도를 학습하기 위해, 단일 item이 아닌 item의 subsequence(segment)를 masking하여 예측