본문 바로가기

부스트캠프 AI Tech 3기/이론 : U-stage

[Day37] Context-aware Recommendation 8-1 What is Context-aware Recommendation

유저와 아이템 사이의 상호작용말고 다양한 context 정보를 사용하는 모델들을 알아보자

추천 시스템에서 사용하는 정보

  • 유저 관련 정보
    유저 ID는 제외한다
    ex) 성별, 연령
  • 아이템 관련 정보
    아이템 ID는 제외한다
    ex) category, 출시년도
  • 유저-아이템 상호작용 정보
    ex)유저가 소비한 아이템, 유저가 아이템에 매긴 rating
    • 한계
      MF같은 모델은아이템의 특성을 추천 시스템에 반영할 수 없다. 또한, 상호작용 정보가 부족할 경우 cold start문제에 대한 대처가 어렵다.

Context-aware Recommendation : CAR : 컨텍스트 기반 추천 시스템

유저와 아이템 상호적용 정보와 맥락적 정보도 같이 사용한다. 맥락(context)적 정보는 유저와 부가정보, 아이템의 부가정도, 소비 당시의 시간,장소 같은 것들을 포함한다. 그래서 맥락적 정보는 서비스와 데이터마다 다르기 때문에 그런 feature들을 모두 담을 수 있는 general한 모델이 필요한다.

 

 

데이터를 구성하는 방법이 그 전처럼 유저-아이템 행렬에서 비어있는 공간을 채우는 방식이 아니라 주어진 x에 대해서 y값을 추론하게끔 구성된다. 일반적인 예측문제에 접근할 때처럼 데이터가 구성되어서 General Predictor(regression, binary classification 등)으로 문제를 풀 수 있다. 그래서 원하는 만큼 context를 추가하고, rating을 예측한다.

 

CTR 예측

CAR task의 대표적 분야이다.

CTR : 유저가 해당 아이템이 주어졌을 때 그 아이템을 클릭할 확률

추천 시스템에서 온라인 AB테스트를 할 때 많이 사용하는 지표가 CTR과 매출이다. 매출은 다른 요인에 의해서 바뀌기 쉽기 때문에 CTR을 많이 사용한다. 

 

CTR 예측에서의 예측 y값은 클릭여부 0 혹은 1 이기 때문에 binary classification이다. 하지만 우리는 확률을 예측하기 때문에 sigmoid함수를 써서 0이나 1 값으로 변환한다. 

 

주로 광고 추천에서 많이 사용한다. 광고가 노출된 상황에서 context feature을 사용해서 CTR예측의 정확도를 높힌다. collaborative 문제가 아니기 때문데 유저 ID가 존재하지 않아도 예측할 수 있다.

 

CTR 예측 모델

로지스틱 회귀

기본적인 선형 모델에 sigmoid를 씌운 모델이다. 

 

$$logit(P(y=1\mid x)) = \left( w_0 + \sum_{i=1}^{n}w_ix_i \right), \quad w_i\in\mathbb{R}$$

 

  • $x_i$
    입력변수
    유저, 아이템 context feature

 

앞으로 나올 CTR예측 모델(FM, FFM, Deep CTR)등이 이 모델을 기반으로 발전한 모델들이다.

 

로지스틱 회귀는 변수간의 상호적용을 모델링할 수 없다. 유저 정보와 아이템 정보 간의 다양한 상호작용이 모델에 반영되지 않는다. 추천 모델에서는 그 상호작용이 중요하기 때문에 단순한 선형모델은 예측성능이 떨어진다.

 

Polynomial Model

2차 이상의 항이 존재한다. 그 2차 항이 강제로 두 개의 변수의 상호작용을 cartesian product로 만든 것이다. 그 두 변수의 상호작용을 $w_{ij}$로 학습한다.

 

$$logit(P(y=1\mid x))=\left(w_0+\sum_{i=1}^{n}w_ix_i+\sum_{i=1}^{n}\sum_{j=i+1}^{n}w_{ij}x_ix_j \right), \quad w_i, w_{ij}\in \mathbb{R}$$

 

2차 polynomial model을 보아도, 파라미터 수가 $n^2$로 증가하게 된다. 그래서 파라미터 수가 굉장히 많이 필요하다. 이 한계를 극복한 모델이 FM,FFM이다.

 

사용 데이터

다양한 context feature들은 두 가지 분류의 데이터로 나눌 수 있다.

  • Dense feature
    벡터로 표현했을 시 비교적 작은 공간에 밀집되어 분포하는 수치형 변수
    ex) 유저가 아이템에 매긴 rating, 기온, 시간
  • Sparse feature
    벡터로 표현했을 시 비교적 넓은 공간에 분포하는 범주형 변수
    one-hot encoding한 것
    ex) 요일, 키워드, 유저ID, string, 
    요일 하나=문자열 하나=하나의 sparse한 벡터

CTR예측에서는 Sparse feature가 대부분이다.

 

Feature Embedding

Sparse feature를 다 one-hot encoding하면 학습 파라미터 수가 차원의 갯수만큼  생겨서 너무 많아지고, 카테고리의 빈도에 따라 카테고리가 overfitting이나 underfitting 될 수 있다.

 

그래서 one-hot encoding 한 vector를 Embedding한다. Item2Vec, LDA, BERT와 같이 임베딩하는 기법들이 있다.


  1. Embedding
  2. Interaction을 고려

이 두 가지를 Context-aware recommender 모델이 어떻게 표현할 것인지를 주목해서 모델들을 보도록 해보자.