DeepFM

문주은·2022년 4월 14일
0

1. 논문 요약

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

  • X는 user와 item의 쌍을 포함하는 데이터로 범주형 field와 연속형 field로 나눠집니다.
  • 범주형 field는 one-hot vector로 표현
  • 연속형 field는 값 자체를 사용하거나, 이산화한후 one-hot encoding으로 표현
  • y는 클릭 여부에 따라 0,1로 라벨링

CTR 예측은 highly sparse & high dimension을 low dimension으로 만들기 위해 embedding layer로 차원을 축소시킨 후 hidden layer로 넘겨줍니다.

DeepFM의 장점
추천 시스템에서는 유저 행동에 숨겨진 유저와 아이템 간의 복잡한 상호 관계에 대한 이해가 중요합니다.
DeepFM은 wide&deep 파트가 공통된 입력을 받고, Feature Engineering이 필요 없다는 장점이 있습니다.

  • pre-training 요구 X
  • feature engineering 요구 X

2. 기술 단어

2-1. implicit feature

  • 유저가 간접적으로 선호하는 데이터로 유저가 개인정보제공에 동의한다면 implicit 데이터를 자동으로 수집 가능
  • 수집의 난이도가 낮고, 활용 가능한 데이터는 많음

2-2. latent vector

  • 'V'로 표현
  • 잠재변수로서 직접적으로 관찰할 수 없는 변수

    만약 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)는 높은 유사도를 가지고 있습니다.

2-3. pairwise feature

  • 최소한 한 번씩 조합하는 방식으로 만들어진 feature

2-4. Order

  • Order 1 : feature 하나에 대한 스칼라 값, 중요도, 가중치(bias)
  • Order 2 : latent vector(V_i)로 다른 feature 간 상호작용 정도를 측정

→ low order(order 0,1), high order(order 2,3) 사이의 상호작용을 하는 것이 DeepFM

2-5. pre-training

  • 주어진 데이터에 모델을 바로 학습시키기 이전에 다른 데이터에 먼저 학습하는 방식
  • 모델을 처음부터 학습시키는 것보다 임의로 initialize된 파라미터를 가진 모델을 학습시키면 더 좋은 성능을 가짐

    pre-training 과정
    1) 다른 데이터에 우선적으로 먼저 학습 : pre-trained model
    2) pre-trained model의 파라미터를 이용해 모델 초기화
    3) 실제 데이터에 fine-tuning

2-6. feature engineering

  • 어떤 feature가 모델의 예측 결과에 중요도가 높고 낮은지를 결정하는 과정
profile
Data Engineer

0개의 댓글