토스 NEXT ML CHALLENGE : 광고 클릭 예측(CTR) 모델 개발

[ Private 6th ] XGBoost + CatBoost + FiBiNet Ensemble

2025.10.17 17:40 488 조회

이번 대회 많은 분들이 참여하셨는데, 수고 많으셨습니다!

보고서는 따로 작성해서 냈지만 솔루션 올리신 분들이 많아 저희팀도 가볍게 공유해볼까 합니다.


우선 저희는 UnderSampling 전략을 사용해서

  • CatBoost 1:1 (3 seed ensemble)
  • XGBoost 10:1 (3 seed ensemble)
  • FiBiNet 10:1 (5 split ensemble)

전략을 사용해 각각 40:35:25로 앙상블을 했습니다.

각 모델은 단일로 사용시 public score 0.3498 정도 나오고, 딥러닝 모델은 0.3478정도 나왔던 것 같습니다.


CatBoost와 XGBoost가 비율차이가 있다보니 각각 평가지표에서의 강점이 달랐고, 이를 앙상블 했을 때 많은 성능 상승이 있었습니다. (0.3510)

또한 딥러닝 모델 중 FiBiNet을 보조적으로 활용하여 성능 변동을 최소화 시켰습니다. (0.3513)


파생변수 최대한 전 CTR 대회를 참고하여 제작하였고, 피쳐 임포턴스와 통계적 수치들을 고려해

  • 상호작용 변수: 범주형 기반 10개
  • seq 기반 파생변수: seq_pos, seq_neg, seq_prob, seq_len
  • count_encoding: 카디널리티가 많이 존재하는 변수에 적용
  • mean,std 통계량 기반 파생변수: 모델별 피쳐 인포턴스 기반 적용

다음과 같은 변수를 사용해 분석을 진행했습니다.


다들 대규모 데이터이기에 분석이 힘들다는 의견이 많았고, 저도 전에 진행했던 카드 세그먼트 대회에서 대규모 데이터로 인한 자원 문제가 계속 발생해서,

이번에는 고사양 GPU가 아니여도 분석 가능한 코드를 만드려고 노력을 많이 했습니다. (XGB + CBT model CPU 사용시 옵튜나 포함 8시간 미만 추론)


최대한 식별되지 않는 데이터들을 활용하기 위해 노력했고, 다양한 파생변수를 바탕으로 시도를 해본게 많은 도움이 되었던 것 같습니다.

코드는 대회가 끝난 이후 정리해서 올리도록 하겠습니다. 오랜만에 또 다양한 시도를 해볼 수 있어 좋았던 대회였네요 수고하셨습니다!

로그인이 필요합니다
0 / 1000
Mather
2025.10.17 22:44

수고하셨습니다.

해가울면해운대
2025.10.18 15:43

고생 많으셨습니다. 샘플링 비율이 역시 중요하군요..!