STAMP 논문 리뷰

STAMP 논문 리뷰

STAMP : Short-Term Attention/Memory Priority Model for Session-based Recommendation

이 논문이 왜 필요한가

기존의 LSTM (Long short-term memory)모델은 유저의 제네럴한 취향을 파악할 수는 있지만 웹상에서 몇 번의 클릭질로도 취향이 확확 바뀌는 현상을 설명하는데는 어려움이 있다. 그래서 가장 최근의 선택에 대해 가중치를 주는 모델이 필요하고, 이 모델은 2015 RecSys Challenge에서 모든 테스트에 대해 SOTA를 찍었다.

논문 기호 설명

  • S=[s1,s2,...,sN]S = [s_1, s_2, ..., s_N] 유저의 과거 세션 S를 데이터화하면 클릭의 연속으로 생각할 수 있다. sis_i는 time i에서 클릭이라고 정의.
  • StS_t = {s1,s2,...,sts_1, s_2, ..., s_t} time t에서 세션을 StS_t라고 정의한다.
  • VV ={v1,v2,...,vVv_1, v_2, ..., v_{|V|}} 시스템내의 유니크한 아이템의 집합
  • XX = {x1,x2,..,xVx_1, x_2, .., x_{|V|}} i번째 아이템 viv_i를 임베딩한 벡터 xix_i
  • y^\hat y = {y^1,y^2,...,y^V\hat y_1, \hat y_2, ..., \hat y_{|V|}} 모델이 예측한 각 아이템의 점수값
  • trilinear product : 세 백터의 내적. 즉, 세 벡터의 모든 원소의 곱의 합 - 식(1)

STMP Model : Attention 없는 모델

  • 수식은 설명할 게 별로 없을 정도로 간결하고 잘 정리되어 있다. 이 때 f는 activation function이며, σ\sigma는 시그모이드 함수, z^\hat z는 세 벡터의 unNormalized 코사인 유사도이다. y^\hat y값은 각 V에 속하는 xix_i 아이템의 예상 점수가 된다.
  • Loss function은 다음과 같이 cross entropy를 적용하였다.

  • 문제점
    • 유저의 general한 취향을 분석할 때 우리는 지금까지 클릭한 아이템들을 모두 동일하게 평균내서 사용하는데 이는 long-term에서 볼 때 좀 이상할 수 있다. 시간이 흐를수록 취향이 변할 수 있는 것처럼 과거의 아이템들은 영향력을 줄여야 할 수도 있고, 잘못 클릭한 아이템일경우 영향력을 줄이는 조정장치가 필요한데, 이를 어텐션 레이어를 둠으로써 해결한다.

Attention Model : STAMP

  • 어텐션 레이어는 각 입력들에 가중치를 곱하는 역할을 하는데, 학습이 이루어지면서 각 입력에 곱해질 가중치를 학습한다.

  • msm_s대신 어텐션이 들어간 mam_a를 사용한다.

평가

  • 비교적 단순하면서 취향의 변화에 예민하게 대처할 수 있는 모델
  • 성능 평가 지표로는 비교대상이 알고있는 모델이 없어서 성능이 얼마나 뛰어난 것인지는 아직 잘 모르겠다.

Q

  1. x를 임베딩하는 과정을 해당 모델의 gradient decent로 학습하는가 아니면 이미 학습시켜놓은 벡터 임베딩을 사용하는가. -> gradient decent로 학습

댓글

이 블로그의 인기 게시물

[Linux, Unix] export, echo 명령어 알아보기

뼈속 깊이 이해하기 :: 1. 허프만 코딩

IEEE 754 부동 소수점 반올림과 근사