본문 바로가기
ML&DL/Recommender System

[Recommender System / Paper review] #10 Collaborative Filtering with Temporal Dynamics

by 거북이주인장 2023. 4. 7.

Summary

  • 본 논문은 factor 기반 모형과 neighborhood 기반 모형에 temporal 가정을 추가하여 모델을 구성한다.
  • 추가하는 temporal 가정은 아래와 같다.
    • user biases ($b_u$)는 시간에 따라 변한다.
    • item biases ($b_i$)는 시간에 따라 변한다.
    • user preferences ($p_u$)는 시간에 따라 변한다.
    • iterm characteristics ($q_i$)는 시간에 따라 변하지 않는다.
  • latent factor model 중에는 SVD++ 모형에 temporal 가정을 추가한다.
  • neighborhood model 중에는 item-item model based on global optimization 모형에 temporal 가정을 추가한다.

Motivation

  • 아이템에 대한 유저의 선호도는 변하기 마련이다. 과거에는 a 아이템을 좋아했지만 많이 소비하다보면 질리기 마련이다.
  • 기존의 모형은 temporal 가정을 하지 않았기 때문에 이런 상황을 모델링하지 못했다.
  • 본 논문에서는 시간에 따라 변화하는 취향을 모델링 하기 위해 cf 모델에 temporal 가정을 추가할 것을 제안한다.

Approach

Concept drift이란?

  • 말 그대로 concept이 변화하는 것을 의미한다.
  • 과거에도 concept drift을 모델링하는 방법이 있었으나, 최근에는 좀 더 복잡한 모델링 방법을 요구한다.
    • localized factor에 의해 concept drift가 발생하는 경우가 많기 때문이다.
    •  예를 들어서, 가족 구성원의 변화로 쇼핑 패턴이 바뀌는 concept drift는 어떤 전체적인 영향력이 아닌, 개인적인 일 때문에 발생한다. 따라서 global concept drift로 모델링할 수 없다.
  • 개인적인 레벨에서 concept drift을 모델링하는 것은 더 복잡한 테크닉을 요구해서 어려운 문제이기도 하다.

Tracking drifting customer preferences

본 논문에서는 아래의 방향으로 temporal effect을 모형에 포함한다.

  • 현재의 행동이 아니라 모든 시간에 걸친 유저의 행동을 설명하는 모델을 만드는 것이 목표이다.
  • 여러 종류의 변화를 가정한다. 예를 들어, 유저 또는 아이템에 의한 변화나 점진적이거나 갑작스러운 변화를 가정한다.
  • 여러 변화를 가정하지만 이 개념을 하나의 프레임워크로 묶어야 한다. 즉, 하나의 optimization 식에 여러 종류의 temporal effect 가정이 녹아있어야 한다.
  • 미래에 유저의 선호가 어떻게 변할지 예측하지 않는다. 예측할 수 있다면 매우 유용하지만 어려운 문제이기 때문에.. 본 논문에서는 과거 데이터를 기반으로 지속적인 선호와 일시적인 선호를 구분하는 것을 목표로 한다.

cf 알고리즘에는 latent factor 기반 모델과 neighborhood 기반 모델이 있다. 본 논문에서는 두 모델에 temporal dynamics을 적용하여 새로운 모델을 제시한다. 먼저 latent factor 기반 모델에 temporal dynamics을 적용하는 과정을 살펴보자.

The anatomy of a factor model

temporal 가정을 하지 않는 latent factor 기반 모델인 SVD++은 아래의 prediction rule을 사용한다.

  • 아이템 벡터 $q_i$와 유저 벡터 $p_u + |R(u)|^{-1/2} \sum_{j \in R(u)} y_j$의 내적으로 prediction을 계산한다.
  • implicit data ($R(u)$)을 활용한다.
  • 유저 벡터를 설명하는 항에 아이템 벡터를 추가하여 그 유저가 선호하는 아이템을 반영하는 벡터를 생성한다.
  • 이제 여기에 아래의 temporal 가정을 추가한다.
    • user biases ($b_u$)는 시간에 따라 변한다.
    • item biases ($b_i$)는 시간에 따라 변한다.
    • user preferences ($p_u$)는 시간에 따라 변한다.
    • iterm characteristics ($q_i$)는 시간에 따라 변하지 않는다.

Time changing baseline predictors

\[ b_{ui}(t) = \mu + b_u(t) + b_i(t) \]

  • $b_i(t)$: 아이템의 인기도가 시간에 따라 변화하는 것을 반영한다. 예를 들어, 영화는 새로 출시됐을 때 인기가 가장 많고 시간이 지날수록 인기가 줄어든다.
  • $b_u(t)$: 유저의 baseline ratings은 시간에 따라 변한다는 것을 반영한다. 예를 들어, 초반에는 점수를 후하게 4점 주던 유저가 영화를 많이 볼 수록 영화에 대한 식견이 넓어져서 점수를 더 짜게 3점정도 줄 수 있다.

아이템의 인기도가 변화하는 모습과 유저의 선호도가 변화하는 모습은 다르다. 아이템의 인기도는 일별로 변화하지 않고 좀 더 긴 시간을 두고 변화한다. 반면에 유저의 선호도는 일별로 변화할 수 있다. 따라서 temporal effect을 아이템이나 유저 효과에 포함하고자 할 때, 조금은 다르게 접근해야 한다.

item biases에 temporal 가정 추가하기

시간에 따라 변화하는 item biases ($b_i(t)$)는 time-based bins으로 쪼개는 방법으로 접근한다.

  • $b_i(t) = b_i + b_{i, Bin(t)}$
  • 각각의 time period에는 하나의 distinct item bias가 매칭된다.
  • 더 작은 bins으로 쪼갤지, 더 큰 bins으로 쪼갤지 결정해야한다.

user biases에 temporal 가정 추가하기

user biases($b_u(t)$)는 선호도 변화가 짧은 시간 내로 발생하기 때문에 조금 다른 접근법이 필요하다.

Linear function to captuer possible gradual drift of user bias

\[ b_u^{(1)}(t) = b_u + \alpha_u \cdot \text{dev}_u(t) \]

  • $t_u$: mean date of rating
  • $\text{dev}_u(t) = \text{sign}(t-t_u) \cdot |t-t_u|^{\beta}$: 유저 u가 day t에 평점을 배겼다면, 이 평점에 관련된 time deviation을 의미한다.
  • $|t-t_u|$: $t, t_u$와의 time distance (number of days)을 의미한다.
  • 최종적으로 user biases에 drifting behavior을 linear model로 모델링한다.

Approximation by splines

  • $b^u_{tl}$: 데이터로부터 학습되는 control points 파라미터이다.
  • 위 식은 이 파라미터의 time-weighted combination으로 볼 수 있다.

Incorporating sudden drifts

  • 어떤 유저가 다수의 평점을 하루에 몰아서 매기는 경우에 해당한다.
  • 이러한 short-lived effects을 해결하기 위해, day-specific variability을 포함하여 유저별, 하루별 파라미터인 $b_{u,t}$을 정의한다.
  • 이를 linear function과 spline function에 포함하면 아래와 같다.

이제 item biases에 temporal effect을 추가한 항과 user biases에 temporal effect을 추가한 항을 합쳐서 하나의 baseline predictor로 표현하면 아래와 같다.

각 효과를 넣고, 빼는 것에 따라서 다양한 종류의 모형이 나오는데 이를 아래와 같이 지정한다.

  • temporal effect을 포함한 모형이 그렇지 않은 모형보다 더 나은 RMSE을 보여준다.
  • single day effect을 포함한 모형인 linear+, spline+가 더 나은 RMSE을 보여준다.

Time chaning factor model

여태까지는 baseline predictor에서 temporal effect을 포함했다. 서두에서 말했듯이, 아이템의 특성은 시간에 따라 변하지 않는다고 가정하고 유저의 선호도는 변한다고 가정했다. 따라서 마지막으로 latent factor model에 유저의 temporal effect을 반영해본다.

중요한 것은, 유저의 선호도가 daily basis로 변할 수 있다고 가정하는 것이다. 이를 반영하여 temporal effect을 포함하는 유저 벡터를 아래와 같이 가정한다.

temporal effect을 반영한 최종 latent factor 모델은 아래와 같다.

Temporal dynamics at neighborhood models

temporal 가정이 없는 static model을 아래와 같이 가정한다.

  • baseline prediction에 temporal effect을 추가하는 것은 latent factor model과 동일하게 진행하면 된다.
  • user-item iteraction을 의미하는 항에 temporal effect을 추가하는 과정은 약간 다르다.
  • 유저 $u$에 의한 두 아이템의 관계가 decay하도록 파라미터를 설정한다: $e^{-\beta_u \cdot \delta t}$

neighborhood model에 temporal effect을 포함한 최종 모형은 아래와 같다.

Results

위 그림은 2004년 쯤에 유저들의 평균 점수가 상승한 것과 오래된 영화일수록 높은 점수를 받는다는 것을 보여준다.

먼저 첫번째 그림에서 나타난 효과에 대해 살펴보자. 갑자기 이렇게 평점이 상승한 이유가 무엇일까? 논문에서는 세 가지 가설을 제시한다.

  • 넷플릭스의 추천 시스템 성능 향상으로 인해 사람들의 만족도가 올라갔을 수 있다.
  • 2004년 이후에 점수를 주는 사람들이 점수를 더 후하게 주는 것일 수도 있다.
  • 대부분의 넷플릭스 유저들이 2004년 이전에 점수를 주지 않아서 2004년 쯤에 들어온 뉴비들이 점수를 후하게 준 것일 수도 있다.

현실적이지 않은 세번째 가정을 제외하면, 첫번째 가정은 interaction term($q_i^T (p_u(t) + |R(u)|^{-1/2} \sum_{j \in R(u)} u_j)$)와, 두번째 가정은 baseline predictor ($\mu + b_i(t) + b_u(t)$)와 연관된다.

위 그림을 통해 interaction term이 시간이 지남에 따라 증가하고 있음을 알 수 있다. 즉, 입맛에 맞는 영화에 대해 더 좋은 점수를 주고 있다는 것이다. 이는 넷플릭스가 2004년 쯤부터 유저들의 취향을 잘 맞추고 있다고 해석할 수 있다.

이제 오래된 영화일수록 좋은 점수를 받는 현상에 대해 살펴보자. 이에 대한 가정을 아래와 같이 생각해볼 수 있다.

  • 오래된 영화일수록 적절한 유저와 매칭이 잘 되어서 평점이 증가하는 것일 수도 있다. 이는 interaction term으로 확인해볼 수 있다.
  • 오래된 영화가 그냥 새로운 영화보다 나을 수도 있다. 이는 baseline prediction 값을 통해 확인해볼 수 있다.

위 그림을 통해 interation term은 꾸준하게 상승하고 있으나 baseline prediction 값은 어느 순간부터 정체됨을 알 수 있다. 즉, 오래된 영화 자체가 새로운 영화보다 좋은게 아니라, 오래된 영화일수록 유저와 매칭이 잘 된다고 해석할 수 있다.

Conclusion

  • cf 모델에 temporal effect까지 포함시키는 과정이 인상적이었다. 특히나, 아이템에 대한 시간적 변화와 유저 취향에 대한 시간적 변화가 다름을 인지하고 모델을 다르게 가정하는게 현실의 상황을 잘 반영한다고 생각했다.
  • 다만 아쉬운 것은, 그래서 데이터가 어떻게 들어가지? 라는 의문점이 여전히 남아있다는 것이다. 이는 구현된 코드를 보면서 풀어나가면 좋을 것 같다.

 

댓글