광고 전환율 예측 모델링

안녕하세요. NAVER BIZ CIC 의 AI Dev 입니다. 저희는 네이버 광고 서비스를 담당하고 있는 조직입니다.

네이버 안에는 정말 다양한 광고 서비스가 존재 하는데요. 오늘은 그 중 디스플레이 광고 일부에 심어져있는 전환 예측 모델의 개발 과정을 소개 하려고 합니다.

아래 그림은 여러분들이 매일 네이버 화면에서 보시는 네이버 디스플레이 광고입니다.

여러 지면에 다양한 타겟팅 광고들이 나가고 있습니다. 한 유저가 이 광고를 클릭했을 때, 전환을 발생시킬지 아닐지를 확률적으로 예측하는 것이 전환 예측 모델링입니다.

하지만, 같은 광고를 보고도 사용자들의 행동 패턴은 매우 다양하게 나타납니다. 그리고 다양한 행동 패턴은 예측 모델의정확도를 낮추게 됩니다. 이외에도, 전환 예측은 클릭 예측과 다르게 중요한 특징들을 갖기 때문에 모델링시 고려해야 할 사항들이 있습니다. 아래 예시를 살펴보겠습니다.

고ㅇㅇ (30세, 여)
요가복 브랜드 광고를 보고 장바구니에 담아놨다가 3일 후에 구매했어요.”

김ㅇㅇ(30세, 남)
헤어샵 광고를 보고 맘에 들어 바로 예약했어요.”

유ㅇㅇ (32세, 남)
옷에 관심이 없는 저는 남성복 브랜드 광고를 보고 클릭했다가 결국 구매하지 않았습니다.”

위 예시에서 볼 수 있듯이, 전환에는 클릭 후 전환까지 지연 시간이 존재하고 (delayed feedback), 전환 유형도 다양합니다. (장바구니, 회원가입, 예약, 구매 등) 또한, 사용자별로 광고 카테고리에 대한 관심도가 다르기 때문에 타겟팅도 중요합니다.

이런 다양한 데이터 특성을 어떻게 모델에 활용하여 문제를 풀었는지 소개해드리겠습니다.

Data Engineering: 데이터 살펴보기

2021/10/18 ~ 2021/10/31

Highly Imbalanced Data

2주간 전환 vs. 비전환 비율

2주간의 통계치를 보면, 평균 CVR이 1.79% 로 나타납니다. 전환율이 아주 낮은, 즉, negative class가 훨씬 많은 highly imbalanced data 입니다. 이 데이터를 그대로 사용한다면 모델의 학습이 불안정하고, 정확도가 떨어지는 요인이 될 수 있습니다. 예를 들어 전부 0으로만 맞춰도 정확도는 98% 가 될 수도 있죠. 따라서, 학습이 제대로 이루어지도록 하기 위해 negative class 에 대해서 8% 만을 사용하는 sampling 기법을 사용하였습니다.

Delayed Feedback

Delayed feedback의 문제점

위 그림은 Delayed feedback을 나타낸 그림입니다. 학습 시점을 기준으로 보면, 전환 A는 이미 발생했기 때문에 y=1 로 labeling이 되어 있을 것이고, 전환 B는 아직 전환이 발생하지 않았기 때문에 y=0으로 labeling이 되어있을 것입니다. 하지만, 실제로는 충분한 시간이 지나고 나면 B의 label이 1로 변하게 됩니다. 예측 모델은 학습 시점에 이런 delay까지 고려한 전환을 예측해야 하기 때문에 delayed feedback model을 도입하게 되었습니다.

다음은 실제 네이버 광고 로그에서 추출한 클릭 후 전환까지 걸리는 시간의 분포를 나타낸 그래프입니다.

지연 시간에 따른 실제 전환 누적 비율

2주 동안 발생한 전환의 73% 는 1시간 내에, 87%는 1일 내에, 98%는 일주일 내에 발생합니다. 만약, 데이터를 1시간 단위로만 보고 학습한다면, 학습 시점에는 73%의 전환만 제대로 labeling이 되어있고, 나머지 27%의 데이터는 실제로 전환이 발생할 샘플이지만 전환이 발생하지 않은 걸로 mis-labeling 되어있을 것입니다. 이런 오류를 막기 위해 설계한 delayed feedback model을 살펴보겠습니다.

Modeling: 모델 설계 및 학습하기

문제 정의

f(user, ad)=CVR (Conversion Rate)
: user(사용자 피쳐)와 ad(광고 피쳐)가 주어졌을 때 전환이 발생할 확률을 예측하는 모델 f를 설계한다.

학습 데이터

  • 사용자 피쳐: 성별, 나이, 구매의도 카테고리, 광고주와 광고에 대한 사용자의 반응 히스토리
  • 광고 피쳐: 카테고리, 누적/최근 통계값
  • 학습 조건
    1) 최근 2주간 일정 클릭수/전환수를 얻어 안정적인 CVR을 갖는 광고를 학습 대상으로 함.
    2) negative class 8% sampling
  • 학습 샘플 수: 약 160만개

모델 설계

참고 논문: Modeling Delayed Feedback in Display Advertising

delay가 고려된 전환율을 예측하기 위해서는 1) CVR을 예측하는 pCVR Model 과 2) 전환 발생시 delay 시간을 예측하는 Time Delay Model 두가지 모델이 필요합니다. Delay Model 은 delay 분포를 exponential 분포로 가정합니다.

  1. Input Layer
    numeric / categorical feature를 모델의 인풋으로 넣어줍니다. user_cvr_id는 사용자의 전환율이 높은순으로 sorting 된 광고 카테고리 id로, max length 기준으로 zero padding 처리를 합니다.
  2. Embedding Layer
    Input feature에 대해 embedding을 얻는 과정입니다. pCVR model 과 Time delay model은 같은 input을 사용하므로 embedding layer는 두 모델간에 공유됩니다.
  3. Prediction Layer
    각 모델이 예측값을 내놓는 최종 layer 입니다. MLP (Multi-Layer Perceptron)로 구성되어 있습니다. CVR 예측값인 p와 delay 예측값인 d를 사용해 delay가 고려된 최종 pCVR이 나오게 됩니다. 학습은 joint training으로 이루어지고, inference 시에는 pCVR model만 떼어내서 사용합니다.

모델 평가

전환 데이터에는 delayed feedback 이 존재하기 때문에, test set도 delay를 포함한 데이터로 구성을 해야합니다.

Train/Test data split

train set은 2주간의 클릭, 전환 데이터를 사용했고, test set은 그 이후로 5일간의 클릭, 14일간의 전환 데이터를 사용했습니다.

Metric

보편적으로 모델 정확도를 검증하기 위해 사용하는 지표인 AUC, LogLoss 외에도 추가 지표를 설정했습니다.

  • Ratio: pCVR이 실제 CVR과 얼마나 비슷한지를 비율로 나타낸 값으로, 1에 가까울수록 정확도가 높음.
  • DiffpCVR=(avg.pCVR of positive class ) — (avg. pCVR of negative class): 얼마나 두 그룹이 잘 분리되었는가를 판단하는 지표. 값이 클수록 좋음.
baseline 모델과 Delayed Feedback Model(DFM) 성능 비교

결과는 예상대로 delay가 포함된 모델이 모든 지표에서 개선된 성능을 보였습니다.

Ratio가 baseline 모델에 비해 더 크면서 1에 가깝다는 것은, delay가 고려된 만큼 예측 전환율이 높아진 것이고, 실제 CVR과 가깝에 예측한다는 것을 뜻하게 됩니다.

DiffpCVR의 상승은 전환이 된 것은 더 높게, 안된것은 더 낮게 예측하면서 두 그룹의 예측치가 더 잘 분리되었다는 것을 의미합니다.

실제 광고 전환 delay와 지표의 추이 변화

아래 그림은 시간이 지남에 따른 광고의 ratio 지표 추이를 보여주는 그래프입니다. x축은 delay time을, y축은 예측 전환율(pCVR)과 실제 전환율(hCVR)간의 비율을 나타냅니다. pCVR은 클릭 시점에 예측된 고정값이고, hCVR은 시간이 지나면서 전환수가 쌓이기 때문에 점점 커지게 됩니다. 따라서, 1일차에는 1보다 약간 큰 값을 갖지만, 점차 1에 가까워지는 것을 볼 수 있습니다. 이는 delayed feedback model이 잘 학습 되었다는 것을 보여줍니다.

최초 예측 전환율과 시간에 따라 변하는 실제 전환율의 비율 비교

Future works: 다음 방향은?

delayed feedback model 도입 이후 많은 부분이 개선되었지만, 완벽한 모델은 있을 수 없죠. 저희도 계속해서 모델을 고도화시키기 위해 노력하고 있습니다.

  • 모델 내에서 피쳐 간의 연관성 구현
  • Multi-conversion에 대한 효과적 학습
  • 피쳐 개선 (추가로 사용가능한 피쳐를 다양한 네이버 서비스로부터 탐색)

저희 팀에서는 전환 예측, 클릭 예측, 랭킹, 추천, 유저 모델링 등 ML/AI 업무 뿐만 아니라 데이터 엔지니어링, 서빙 및 운영 등 네이버 광고에 필수적인 많은 업무를 담당하고 있습니다.

여러분의 많은 관심 부탁드립니다! :)

참고

[1] Modeling delayed feedback in Display Advertising https://dl.acm.org/doi/abs/10.1145/2623330.2623634?casa_token=oms12DQk86sAAAAA:Xz734naOB4Le4E4z-B-mK_5Ei4MuRdFlEkAVLZOXtsFEhbpC7xv9nLmm04Slzq2os4ebWxiRlj2qsw

--

--