[RecSys] Sequential & Session Recommendation model

지윤곽·2022년 3월 29일
0

RecSys

목록 보기
2/2

What is Sequential Recommendation?

  • 사용자가 상호작용하는 항목을 단순히 상품의 집합으로 보는 것이 아니라 상품을 구매한 순서 까지 고려해서 추천
  • 유저의 long-term에 대한 일반적인 선호short-term에 대한 현재의 선호를 반영해서 추천

Session Based VS Sequential Based

Session : 짧은 시간내에 User와 Item 간의 상호작용이 발생

Challenge : 세션의 경우 유저에 대한 데이터가 없는 경우가 많이 존재 (익명의 유저), 세션이 매우 짧음, 유저의 ID를 알아도 long-term과 short-term을 결합하기 어려움

Sequential & Session Recommendation 발전 과정

: 자연어 처리의 발전 경로와 매우 비슷

RNN

: 이전 은닉층의 노드를 다음 계산의 입력으로 활용함으로서 이전의 값을 기억하려고 하는 일종의 메모리 역할을 수행하는 네트워크

한계 : Layer가 깊어짐에 따라 Gradient가 Vanishing 되거나 Exploding되는 현상이 발생

LSTM

: Long Short Term Memory 는 은닉층의 메모리 셀에 입력 게이트, 망각 게이트, 출력 게이트를 추가하여 불필요한 정보를 지우고, 필요한 정보만 필터링해서 전달해주는 방법

한계 : 모델이 무거워지고 학습에 시간이 많이 든다.

GRU

: Forget과 Input Gate 를 하나의 Single Gate인 update Gate로 통합한 형태로 LSTM보다 훨씬 단순하며 경량화된 형태

GRU4Rec

: input과 output이 추천시스템에 맞게 변형되었을 뿐 내부 구조는 GRU를 쌓은것과 같다. (세션 기반 추천시스템)

input : 1. Current item ID (actual event) 2. events in the session (representation의 가중 합)

output : Next item ID

  • input과 output의 예시

만약 max_length가 200으로 지정된다면 200이 안되는 User의 경우 padding으로 앞으로 0으로 채운다. input은 가장 마지막 item을 제외한 0~n-1번째 아이템이 되고 결과로 n번째 아이템을 예측하게 된다.

NARM (GRU+Attention)

  • Seq2Seq : Sequence를 입력으로 받아서 Sequence를 출력으로 내뱉는 Machine Translation(기계번역) 모델
    • 한계
      • LSTM에서 Long Term Dependency를 해결했지만, 초기 time step의 정보가 손실, 변형되는 문제
      • Seq2Seq에서 Hidden state vector의 차원이 정해진 특징 때문에, 마지막 time step의 Hidden state vector에는 모든 이전 정보를 축적한 상태(우겨넣음) - 그렇기에, 길이가 길어지면 성능이 하락하는 문제 발생
  • Seq2Seq with Attention : 각 단어의 Encoder Hidden state vector에서 필요한 만큼만 가중치의 형태로 가져가는 방법 사용 (attention)
    • 각 시점의 디코더가 어떤 인코더의 Hidden state 와 가장 유사한지(내적)에 대한 정보를 반영(이전 Seq2Seq처럼 정보를 다 담는 구조가 아니라, 필요한 부분만 가중치를 줘서 가져옴)
    • 한계
      • Encoder와 Decoder 사이의 attention 만 줄 수 있는 반면, encoder 간의 혹은 decoder 간의 attention은 불가능
      • RNN의 특성상 순차적인 계산을 해야해서 병렬화가 어려운데, Transformer는 행렬곱을 통해서 속도의 향상을 얻음
  • NARM : 기존 RNN기반의 추천은 전체 Session을 기반으로 추천을 진행함. 하지만, Current Session의 예시처럼 셔츠에 관심이 있는 사용자가 바지를 보는 경우에 대한 정보까지 반영되는 한계가 존재. 이를 Attention기반으로 해결

SASRec

: GRU 기법의 한계를 Transformer를 이용해서 극복

  • 한계
    • Long Sequence 계산시에 학습 시간이 오래걸림
    • Long Term의 정보가 잘 반영되지 않음
profile
아는게 힘이다

0개의 댓글