[boostcamp-ai-tech][RecSys] Markov Chains for Seq Rec, RNN for Seq Rec, Transformer-based Seq Rec, Rec with self-supervised learning

whatSup CheatSheet·2022년 4월 13일
0

RecSys

목록 보기
11/13
post-thumbnail

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을 jj라 하면, FPMC는 다음 함수를 fitting하는 문제로 표현됨

PRME

: Personalized Ranking Metric Embedding, 2015

  • sequential compatibility를 Euclidean distance를 사용하여 표현

  • FPMC vs PRME

    • Latent Space
      • FPMC에서는 inner product 사용
      • PRME에서는 Euclidean distance를 사용
    • Num of param
      • FPMC는 이전 item과 다음 item에 대해 각각 개별 latent space를 사용 (yI,Jy^{I, J}yJ,Iy^{J, I}).
      • PRME는 하나의 latent space만 사용(param 수 감소)
    • Domain: PRME는 locality가 중요한 도메인에 적합(음악 플레이리스트 추천 등)

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 jj에서 다음 item ii로의 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 ct9c^9_t를 모델링.

Local encoder

  • 최근 행동 xtx_t의 결과를 반영한 hth_t 기반의 attention을 통해 user purpose feature ctlc^l_t를 모델링

Global + Local

  • Global encoder로부터 없은 session behavior feature와 Local encoder로부터 얻은 user purpose feature를 종합
    • ct=[ct9;ctl]=[ht9;j=1tatjhti]c_t = [c^9_t;c^l_t] = [h^9_t;\sum_{j=1}^ta_{tj}h^i_t]
  • Bi-linear similarity func을 사용하여 최종 item 추천을 위한 similarity score 계산
    • Si=embiTBctS_i = emb^T_iBc_t

Transformer-based Sequential Recommendation

  • transformer
    • self-attention 기반으로 global dependency를 학습하고, recurrence 구조를 없앰으로써 병렬적 계산이 가능
    • 초기 제안된 모델은 번역을 위해 encoder/decoder 구조로 나누어져 있었지만, 최근 번역 외의 task에서는 decoder 구조만을 사용하는 경우도 많음.

BST

👉 Link

SASRec

특징

  • RNN과 달리 병렬 처리가 된다는 점에서 학습 속도의 이점도 있으며, long-term dependency 관련 문제가 없음.
  • 기본적인 구조는 다음 단어를 에측하는 language modeling과 유사.

Transformer와의 차이점

  • 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

  • self-supervised learning이란

    • Self-supervised learning은 raw data로부터 representation을 학습하는 방법론임.
    • 데이터가 풍부한 NLP, CV 분야에서 좋은 성능을 보임
    • Raw data를 다양한 관점으로 바라봄으로써, 더욱 풍부한 데이터 상의 패턴을 찾아낼 수 있음
    • masking, dropout 등도 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하여 예측
profile
AI Engineer : Lv 0

0개의 댓글