오늘 공부한 내용은 Sequential RecSys 모델!
위의 방식들이 timestamp를 사용한 방식이라면, sequential은 timestamp를 직접 사용하기보다는 순서에 초점을 맞춘 방식
바로 직전
상태에만 영향을 받는다. 나머지 시점과는 독립적.Factorizing Personalized Markov Chains
for Next-Basket Recommendation
MF로 유저의 일반적인 선호도(general preference)를 모델링하고, 마르코프 체인으로 순차적 패턴(sequential pattern)을 모델링
유저 정보와 바로 직전의 아이템을 이용해서 다음 아이템을 예측한다.
특히 온라인 쇼핑몰에서 다음 구매 예측에 효과적이다
상세 내용은 TIL #539 참고
Personalized Ranking Metric Embedding
상세 내용은 TIL #539 참고
FPMC와 유사하지만 compatibility function으로 내적(inner product)을 사용하지 않고 distance metric(유클리디안 거리)을 사용한다. 따라서 locality가 중요한 음악이나 장소추천에 적합하다.
FPMC는 이전 아이템과 다음 아이템의 latent 공간이 다르지만, PRME는 하나의 latent space만 사용하기 때문에 파라미터 수가 적어 효율적이다.
음악 플레이리스트를 위한 모델로 이전 노래의 끝부분과 다음 노래의 시작 부분의 거리를 고려한다.
item간에는 distance metric을 사용하고, 유저와 아이템 간에는 내적을 사용한다.
Translation-based Recommendation
사용자, 이전 아이템, 다음 아이템 간의 3차 관계(third-order relationships)를 모델링하는 통합된 방법. 아이템들을 embedding space의 point로 표현하고, 사용자를 해당 공간의 변환 벡터로 봐서 item의 sequence를 예측한다.
user-translation vector를 통해서 유저와 아이템간의 관계를 함께 표현한다.
앞선 마르코프 체인 기반의 모델들은 직전의 아이템만 참고한다. 여러 아이템의 장기적인 반영을 위해 RNN을 적용한다.
RNN의 hidden state(h)를 통해 long-term semantics를 모델링한다.
SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS
세션 기반 추천 시스템으로, 사용자의 순차적 행동
을 GRU(Gated Recurrent Unit) 레이어를 통해 모델링하여 다음에 선택할 가능성이 높은 아이템을 추천한다.
유저의 action sequence를 session으로 나눈다. session은 유저의 클릭, 본 상품, 방문한 사이트 등으로 이루어진다.
GRU4Rec은 user term 대신 user의 interaction을 session으로 나눠서 자연어 처리의 문장 같이 다룬다.
item을 원핫 인코딩으로 input에 넣어 embedding layer를 거친 뒤 여러겹의 GRU 레이어를 거치고 마지막 feedforward layer를 거쳐 item의 score가 반환된다.
아이템이 너무 많아지면 연산량이 많으므로 학습 시 mini-batch 내의 일부 아이템을 negative item으로 사용해서 loss를 계산한다.
Neural Attentive Recommendation Machine
NARM은 GRU4Rec을 기반으로 하되, 어텐션 메커니즘을 추가하여 사용자의 장기 의존성(long-term dependency)을 고려하는 세션 기반 추천 모델
유저의 행동 전체 sequence를 보는 global recommender와 최근 행동에 집중하는 local recommender로 나눈다.
글로벌 인코더: 전체 세션의 일반적인 관심사 캡처
로컬 인코더: 현재 관심사에 집중, 최근 행동의 결과를 반영한 attention으로 모델링
long과 short term dynamics 둘 다 잘 반영하기 위해 Transformer의 구조 사용
초기 트랜스포머는 번역을 위해 인코더, 디코더 둘 다 사용했지만, 최근에는 번역 외의 task는 디코더만 사용하는 추세
Self-Attentive Sequential Recommendation
Transformer의 인코더 구조를 활용한 Sequential 추천 모델
RNN 베이스 모델과 다르게 병렬처리가 가능해 효율적이며, long-term dependency 문제가 없다.
트랜스포머와 다르게 item embedding layer에 dropout을 적용해 오버피팅을 방지한다. 그리고 input에 사용하는 아이템의 임베딩을 최종 output 임베딩에도 사용해 학습해야하는 파라미터 수를 줄인다.
BERT : 양방향으로 self-attention을 적용하는 방법으로 language 모델의 pre-training 단계에서 많이 활용된다.
양방향 모델링을 통해 과거와 미래정보를 모두 학습에서 사용한다. 사용자의 행동 시퀀스를 양방향으로 학습하여 더 정확한 추천을 제공한다.
예측할때는 mask를 사용해 미래의 정보는 사용하지 않는다.
Self-Supervised learning for Sequential Recommendation
Sequential 추천 시스템을 위한 자기지도학습(self-supervised) 기반 모델
CV같은 경우 이미지를 자르고, 변형시키고, 돌리는 등의 여러 패턴으로 학습을 넓히고, nlp는 마스킹을 사용해 과거-현재-미래를 스스로 나눠가며 sequence를 학습한다.
임베딩 레이어, 셀프 어텐션 블록, 예측 레이어로 구성. BERT4Rec과 유사한 구조를 가지며, 4개의 보조 손실 함수를 활용한다. item-attribute, sequence-item, sequence-attribute, seq-seq 관계를 모델링한다.
Associated Attribute Prediction (AAP): 아이템-속성 상관관계 학습
Masked Item Prediction (MIP): 특정 아이템을 마스킹해서 주변 context로 부터 마스킹된 아이템 정보 복원
Masked Attribute Prediction (MAP): sequence-attribute간의 corr을 학습
Segment Prediction (SP): 아이템 부분 시퀀스 예측. NLP랑 다르게 RecSys는 단일 아이템이 주변아이템과 크게 연관성이 없을 수도 있다. 안정적이고 명확한 사용자 선호도를 학습하기 위해 단일 아이템이 아니라 아이템의 subsequence를 마스킹한다.
Contrastive Learning for Sequential Recommendation
Contrastive Learning : 데이터의 유사성과 비유사성을 학습하는 기계학습 기법.
Anchor 를 기준 샘플로 삼아서 positive sample / negative sample로 나눠 p는 앵커와 가까워지도록, n은 멀어지도록 학습한다.
Sequence를 augmentation한 뒤 Contrastive Learning으로 item의 representations를 학습한다.
augmentation 방법
Item Crop - 시퀀스에서 일부 아이템 선택
Item Mask - 특정 아이템을 마스킹
Item Reorder - 아이템 순서 재배치