추천 시스템에서는 유저가 아이템에 대한 관심이 있다는 것을 증명하기 위한 CTR, 즉 클릭율을 정확히 예측하는 것이 핵심입니다. CTR을 예측하는 것이 중요한 이유는 유저가 클릭을 하는 행동뒤에 있는 'implicit feature' 상호작용을 알 수 있기 때문입니다.
implicit feature 간의 상호작용을 학습한다면 CTR을 정확히 예측할 수 있습니다. 또한 저차원(low-order)과 고차원(high-order)의 상호작용을 동시에 고려한다면 더 좋은 성능을 가지는 추천 시스템을 만들 수 있습니다.
feature들 간의 상호작용을 모델링하는 것이 가장 어려운데 DeepFM은 아래의 방법으로 상호작용을 모델링 했습니다. 우선 Linear 모델은 feature 벡터 간의 pairwise interaction을 직접 feature로 넣어주었습니다.
다음 Factorization Machine 모델은 상호작용을 latent vector끼리 내적을 통해 모델링합니다.
DeepFM의 특징은 낮은 차원(wide-part)과 높은 차원(deep-part)의 상호작용을 모델링하기 위해 inputs에 각기 다른 wide part와 deep part를 가집니다.
또한 DeepFM은 모든 차원의 feature들 간의 상호작용을 feature engineering 없이 학습할 수 있습니다.
input vector를 wide part와 deep part로 나누었는데 Wide&Deep 구조는 wide part를 linear 모델로, deep part를 deep model로 만들어 합친 것입니다. wide part는 feature간 최소 1번씩을 조합하는 pairwise interaction을 사용하기 때문에 더 많은 상호작용을 통해 숨겨진 latent vector를 찾을 수 있습니다.
여기에서의 접근은 train dataset이 n개의(X, y) 쌍이 있을 때,
CTR 예측은 highly sparse & high dimension을 low dimension으로 만들기 위해 embedding layer로 차원을 축소시킨 후 hidden layer로 넘겨줍니다.
DeepFM의 장점
추천 시스템에서는 유저 행동에 숨겨진 유저와 아이템 간의 복잡한 상호 관계에 대한 이해가 중요합니다.
DeepFM은 wide&deep 파트가 공통된 입력을 받고, Feature Engineering이 필요 없다는 장점이 있습니다.
pre-training 요구 Xfeature engineering 요구 X만약 X를 feature vector라고 가정했을 때,
<X_b, X_c> = 0은 interaction=0이라는 것을 의미 (User b,c가 겹치는 것이 없다)
✔️ b,c 두 변수의 latent vector를 이용하면 숨겨진 interaction을 찾을 수 있습니다.
Q. 그렇다면<V_b, V_sw>와<V_c, V_sw>가 유사할 때,<V_b, V_c>(잠재변수 b,c)는 높은 유사도를 가지고 있습니다.
→ low order(order 0,1), high order(order 2,3) 사이의 상호작용을 하는 것이 DeepFM
pre-training 과정
1) 다른 데이터에 우선적으로 먼저 학습 : pre-trained model
2) pre-trained model의 파라미터를 이용해 모델 초기화
3) 실제 데이터에 fine-tuning