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
- dummy field : numeric feature 한 개당 하나의 fied에 할당하고 실수 값을 사용
참고자료 : 네이버커넥트 부스트캠프 AI Tech 강의 자료, 구글링
'DS | Data Science > RecSys | Recommendation System' 카테고리의 다른 글
[RecSys] 한 눈에 보기 정리 - 7 : Deep Learning (0) | 2022.10.27 |
---|---|
[RecSys] 한 눈에 보기 정리 - 5 : Model-based Collaborative Filtering (0) | 2022.10.26 |
[RecSys] 한 눈에 보기 정리 - 4 : Memory-based Collaborative Filtering (0) | 2022.10.26 |
[RecSys] 한 눈에 보기 정리 - 3 : Content Based Recommendation System (0) | 2022.10.26 |
[RecSys] 한 눈에 보기 정리 - 2 (0) | 2022.10.26 |