欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/RecSys | Recommendation System

[RecSys] 한 눈에 보기 정리 - 6 : Context-Aware Recommender System

_껀이_ 2022. 10. 27. 12:51
728x90
반응형

Context Aware

: 유저와 아이템 간 상호작용 정보 뿐만 아니라, 유저 feature와 아이템의 feature 간의 맥락(context) 정보를 반영하는 것

 

 

CTR : Click-Through Rate Prediction

CTR 예측 : 유저가 주어진 아이템을 클릭할 확률 예측하는 문제

  • 예측해야하는 값 y = 클릭여부 (0,1) -> binary classification 문제
  • 모델에서 출력한 실수 값을 sigmoid 함수에 통과시키면 (0,1) 사이의 예측 CTR(확률값)이 계산됨

주로, 광고 추천에서 사용

  • 광고노출 시에 다양한 유저, 광고, 맥락정보 등을 입력변수로 사용
  • 유저 ID가 존재하지 않는 데이터도 다른 유저의 featur나 맥락정보를 사용하여 예측
    • 현업에서는 유저 ID를 사용하지 않는 경우도 많음

 

 

::: sparse한 binary classification 문제를 다루기 위해 FM, FFM으로 발전하게 됨

 

 

*** Logistic Regression ~ FFM까지 General Predictor가 푸는 문제의 본질

: Binary Classifacation 

 

1) Logistic Regression : LR term

2) Polynomial Regression : SVD, MF

- interaction 추가

3) FM

- Latent Factor 사용해서 interaction 계산

4) FFM

- Latent Factor 구성시,

  • 대응되는 field를 미리 고려
  • 대응되는 field와만 interaction 계산

 

 

1. Factorization Machines

등장배경

  • SVD : CF 환경에서는 MF보다 높은 성능 / but sparse 데이터에 대해서는 성능 bad
  • MF : sparse 데이터 처리 가능 / but 특정 데이터 포맷에서만 사용가능

 

::: SVD 장점 + MF 장점 = FM

--> General Predictor

 

General Predictor로 변경했을 때의 문제점

: ML 모델에 사용되는 데이터 형태를 만들면 high sparsity 문제 발생

-->> 원활한 파라미터 학습 어려움 / feature 간의 상호작용 반영 어려움

 

::: General predictor + Latent Factor Model

-> latent factor model을 사용해 feature 축약 (Auxiliary Feature : 보조변수 -> feature들이 latent factor에 매핑 되면서 실수로 표시됨)

Factorization Machines

one-hot으로 표현된 feature들이 연속형 수치로 embedding

== sparsity 해소 + Feature interaction 고려가능해짐

::: user-item만을 이용한 단순한 데이터셋에서 여러 feature를 반영할 수 있는 데이터셋으로 확장 == context-aware

- 왼쪽의 w가 있는 부분을 bias score, 오른쪽을 latent score라고 한다.

- <vi, vj> : latent factor matrix의 서로 다른 item에 대한 내적값

 

- 변형 FM 공식

: 변수가 4개 (vi, vj, xi, xj)에서 2개 (vi, xi)로 줄어들었다. == 계산복잡도 O(kn^2) -> O(kn)

 

 

2. Field-aware Factorization Machined

등장배경

  • FM은 예측 문제에 두루 적용 가능한 모델, 특히 sparse 데이터로 구성된 CRT 예측에서 좋은 성능
  • FFM은 FM을 발전시킨 모델 -> PITF 모델에서 아이디어 얻음
    • PITF : Pairwise Interaction Tensor Factorization
    • PITF에서는 (user, item, tag) 3개의 field에 대한 클릭률을 예측하기 위해서
    • (user, item), (item, tag), (user, tag) 각각에 대해서 서로 다른 latent factor을 정의하여 구함
    • ::: 일반화 -->> n개의 field에 대해서 latent factor를 정의한 것이 FFM

field == feature의 개수

 

장점

  • FM은 하나의 latent factor에 대해서 모든 latent vector와의 interaction을 고려 -> 하나의 latent factor 만으로 모든 interaction을 반영하기는 어려움
    • ex) MF : A라는 latent factor로 B와 C와의 관계를 반영 X
  • 각각의 field마다 latent vector가 생성 -->> 대응되는 field와의 관계를 적절히 반영하게 됨

 

FM vs FFM

 

- field 구성시 테크닉

  • Categorical Feature
    • 보통 같은 feature 그룹을 같은 field로 묶어서 정의
    • label, field1 : feat1 : val1, field2 : feat2 : val2,...

 

  • Numerical Feature
    • dummy field : numeric feature 한 개당 하나의 fied에 할당하고 실수 값을 사용
      • Yes, AR:AR:45.73, Hidx:Hidx:2, Cite:Cite:3
    • discretize : numeric feature를 n개의 구간으로 나누어 binary 값을 사용 -> n개의 변수를 하나의 field에 할당
      • Yes, AR:45:1, Hidx:2:1, Cite:3:1

 

 

 

 

 

 

참고자료 : 네이버커넥트 부스트캠프 AI Tech 강의 자료, 구글링

728x90
반응형