General Predictor에 Latent Factor Model을 추가한 모델.
$$ \hat{y}(\mathrm{x})=w_0+\sum_{i=1}^n w_i x_i\blue{+\sum_{i=1}^n \sum_{j=i+1}^n\left\langle\mathrm{v}_i, \mathrm{v}_j\right\rangle x_i x_j} \\
w_0 \in \mathbb{R}, \quad w_i \in \mathbb{R}, \quad \mathrm{v}_i \in \mathbb{R}^k $$
$\langle \cdot,\cdot \rangle:$ 두 벡터의 스칼라 곱(dot product)
$$ \left\langle\mathrm{v}i, \mathrm{v}j\right\rangle:=\sum{f=1}^k \mathrm{v}{i, f} \cdot \mathrm{v}_{j, f} $$
Sparse한 데이터 셋에서 예측하기
유저의 영화에 대한 평점 데이터는 대표적인 High Sparsity 데이터
유저 - 아이템 매트릭스에서 다루던 Sparse Matrix와는 다른 의미
평점 데이터 = { (유저1, 영화2, 5), (유저3, 영화1, 4), (유저2, 영화3, 1), … }
일반적인 CF 문제의 입력 데이터와 같음
위의 평점 데이터를 일반적인 입력 데이터로 바꾸면, 입력 값의 차원이 전체 유저와 아이템 수만큼 증가
ex) 유저 수가 $U$명, 영화의 수가 $M$개일 때
FM의 장점
vs. SVM
매우 sparse한 데이터에 대해서 높은 예측 성능을 보인다.
선형 복잡도$(O(kn))$를 가지므로 수십 억 개의 학습 데이터에 대해서도 빠르게 학습한다.
모델의 학습에 필요한 파라미터의 개수도 선형적으로 비례한다.
vs. Matrix Factorization
여러 예측 문제(회귀/분류/랭킹)에 모두 활용 가능한 범용적인 지도 학습 모델
일반적인 실수 변수(real-value feature)를 모델의 입력(input)으로 사용한다.
MF와 비교했을 때 유저, 아이템 ID 외에 다른 부가 정보들을 모델의 피쳐로 사용할 수 있다.