241105 TIL #533 AI Tech #66 CTR with Deep Learning

김춘복·2024년 11월 5일
0

TIL : Today I Learned

목록 보기
535/575

Today I Learned

오늘은 CTR 예측에 쓰인 딥러닝 방법론들에 대해 공부해보았다.


CTR with DeepLearning

  • CTR 예측에 딥러닝이 필요한 이유?
    CTR 데이터는 높은 비선형성을 가지고 있기때문에 선형모델로만 예측하기 어렵다.

Wide & Deep

  • Wide & Deep Learning for Recommender Systems 논문 링크

  • Memorization(암기)
    자주 발생하는 패턴이나 상관관계를 직접 학습하고 기억하는 능력
    데이터에서 명시적으로 관찰된 피처 조합을 활용
    로지스틱 회귀같은 선형모델이 유리

  • Generalization(일반화)
    이전에 보지 못한 피처 조합에 대해서도 추론하는 능력.
    잠재적 패턴을 학습해 새로운 상황에 적용하는 것
    FM, DNN같은 임베딩 기반 모델이 유리

  • Wide & Deep은 구글이 제안한 추천시스템으로 암기와 일반화 두가지를 동시에 달성한 모델.

이미지 출처 : 논문

  • 3 layers, ReLU 사용, 범주형변수는 피처임베딩 후 사용
    wide component에 Cross-Product Transformation같은 피처 엔지니어링이 필요하다.

  • 구조
    Wide Component : 선형모델. 기억을 맡음. 특징간 직접적 상호작용을 학습한다.
    Deep Component : 심층신경망. 일반화를 맡음. 특징들의 잠재적 패턴을 학습한다.

  • 손실함수 : wide와 deep의 출력물을 더한 뒤 글로벌 bias 더하고 최종적으로 sigmoid 적용

    P(Y=1x)=σ(WwideT[x,φ(x)]+WdeepTa(lf)+b)P(Y=1|x) = σ(W_{wide}^T[x, φ(x)] + W_{deep}^T a^{(lf)} + b)

DeepFM

이미지 출처 : 논문

  • Wide & Deep에서 wide쪽을 FM으로 바꿔, wide와 deep의 입력값을 공유하도록 했다.
    즉, FM과 Deep 부분이 같은 임베딩 레이어를 공유한다. 따라서 wide&deep 같은 번거로운 피처 엔지니어링이 필요없이 end-to-end로 진행된다.
    학습 효율성이 향상되고 특징 표현의 일관성이 유지된다.

  • FM이 저차원 특징 상호작용을, Deep이 고차원 특징 상호작용 학습을 해서 두 출력을 결합해 최종 예측을 한다.

  • FM에 비해 더 복잡한 피처 상호작용을 학습할 수 있고, wide&deep에 비해 피처 엔지니어링이 없어 쉬우며, DCN에 비해 더 명시적인 저차원 상호작용을 할 수 있다.

Output=sigmoid(FMout+Deepout)Output = sigmoid(FM_{out} + Deep_{out})
  • forward 함수
    def forward(self, x: torch.Tensor):
        # FM의 1차 상호작용 / sparse feature만 사용
        first_order = self.linear(x).squeeze(1)

        # sparse -> dense
        embedding = self.embedding(x)  # (batch_size, num_fields, embed_dim)

        # FM의 2차 상호작용 / dense 사용
        second_order = self.fm(embedding)

        # deep network를 통해 feature를 학습하는 부분
        deep_out = self.dnn(embedding.view(-1, embedding.size(1) * embedding.size(2))).squeeze(1)
		
        # FM(first_order + second_order)에 DNN 결과 결합
        return first_order + second_order + deep_out
  • 마지막 deep_out층 차원 변화

DIN

유저의 관심사, 행동정보를 동적으로 표현하는 추천 시스템 모델
대규모 전자상거래 플랫폼에서 효과적인 성능을 보이며, 사용자의 동적인 관심사를 정교하게 모델링할 수 있는 추천 시스템 모델

이미지 출처 : 논문

  • 유저의 과거 행동 시퀀스에서 현재 아이템과 관련된 행동에 더 높은 가중치 부여한다.
    유저가 기존에 소비한 아이템 리스트를 User Behavior Feture로 만들어 예측 대상 아이템과 이미 소비한 아이템 사이의 관련성을 학습한다.

  • 유저 프로필, 광고, context같은 나머지 피처는 one-hot이지만, 유저행동 피처는 multi-hot으로 인코딩된다.

  • 트랜스포머의 attention 메커니즘과 유사한 방식을 사용한다.

  • 구조

  1. 임베딩 레이어
  2. Local Activation Unit 레이어 : Local Activation Unit을 통해 예측 아이템과 기존에 본 아이템과의 연관성을 계산해 가중치로 표현한다.
  3. Fully-connected 레이어
  • 해석이 쉽고, 유저 관심사 변화를 반영할 수 있고, 후보 아이템에 따라 다른 관심사를 정확하게 표현할 수 있는 장점이 있다.

BST

Transformer를 사용한 CTR 예측 모델
사용자의 순차적인 행동을 고려하여 추천을 수행하는 딥러닝 기반 추천시스템 모델

  • CTR 예측 데이터도 시퀀스데이터처럼 순서가 중요하고, 대부분 sparse feature로 구성되어있으며, 비선형정긴 관계를 이루기 때문에 transformer 모델에 적합하다.

  • Transformer의 인코더 구조를 활용하여 사용자의 과거 행동 시퀀스를 학습한다.
    유저가 구매한 아이템 시퀀스, 각 아이템에 대한 유저의 평점 시퀀스, 사용자 프로파일, 아이템 특성 정보를 사용한다.

  • DIN이 단순히 과거 구매 목록을 활용한 것과 달리, BST는 구매의 시간적 순서까지 고려한다.
    구매 시점간의 시간 차이를 positional encoding으로 반영한다.

profile
Backend Dev / Data Engineer

0개의 댓글