추천 시스템에서는 유저가 아이템에 대한 관심이 있다는 것을 증명하기 위한 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