배너

토스 Next ML Challenge - 광고 클릭 예측(PCTR) ML 경진대회 출제 후기

박재휘
2025년 12월 2일

안녕하세요. 토스 광고 플랫폼에서 ML Engineer로 일하고 있는 박재휘입니다.

지난 9월부터 10월까지 토스와 데이콘이 함께 'Toss Next ML Challenge'를 개최했습니다. 저는 이번 대회에 출제 위원으로 참여했는데요, 문제를 기획하고 준비하면서 느꼈던 경험과 참가자분들의 신선한 문제 해결 방식을 공유하고 싶어 이렇게 글을 쓰게 되었습니다.

왜 Toss Next ML Challenge를 열었나요?

토스는 ML 기술을 통해 예측의 정확도와 의사결정의 수준을 높여가고 있습니다. 특히 광고 도메인에서는 머신러닝이 핵심 기술로 자리잡고 있죠. 이런 배경에서 토스는 ML 엔지니어들이 현업에서 풀고 있는 실제 기술 문제를 공개하고, 우수 인재를 발굴하기 위해 Toss Next ML Challenge를 개최했습니다.

이번 첫 챌린지의 주제는 '광고 클릭 예측(Click-Through Rate, CTR) 모델 개발'이었습니다. 실제 토스 앱 내 광고 데이터를 활용해 가상의 사용자가 어떤 광고를 클릭할 것인지에 대한 확률을 빠르고 정확하게 예상하는 ML 알고리즘을 만드는 것이 대회의 핵심이었어요.

대회는 예선과 본선 두 단계로 진행되었습니다. 9월 8일부터 10월 13일까지의 예선을 거쳐 상위 30팀이 본선에 진출했고, 최종적으로 총 1,000만 원의 상금과 함께 본선 진출 팀에게는 토스 채용 시 서류 전형 면제 혜택이 주어졌습니다. 처음 진행해보는 ML 경진대회라 참가자가 많지 않으면 어떡하지 걱정했었는데, 무려 2,600명이 넘는 분들이 참가해 주셔서 데이콘에서 진행한 대회 중 역대급 참가자가 몰린 대회가 되었어요.

Toss Next ML Challenge 문제

이번 Toss Next ML Challenge의 문제는 실제 토스 앱 내에서 노출된 디스플레이 광고의 노출과 클릭 로그를 바탕으로 주어진 조건의 광고 클릭 확률을 예측하는 머신러닝 모델을 설계하는 것이었어요.

제공된 데이터셋에는 약 1,070만 건의 트레이닝 샘플이 포함되어 있고, 성별, 연령대, 광고 지면 ID, 시간, 과거 인기 정보(History) 등 다양한 피처가 있었습니다. 다만, 피처는 익명화되어 있어 ‘무엇을 의미하는지’ 공개되지 않기 때문에 직접적인 의미 해석이 어렵고, 이는 Feature Engineering 및 해석 가능한 모델 설계에 제약이 될 수도 있었어요.

추가로 실제 서비스 환경에서 ‘실시간 서빙 가능’해야한다는 가점 사항도 있었습니다. 즉, 학습된 모델은 빠르고 가볍게 추론(Inference)되어야 하며, 여러 광고 지면(다양한 Inventory)과 사용자 특성을 포괄해야하므로 피처 상호작용, 희소성(Sparsity), 과적합 방지, 그리고 효율적인 Serving 구조 설계 등 문제를 풀이하며 현실적인 ML 시스템 설계를 직접 풀어볼 수 있었어요.

문제 설계 과정: 실무를 문제로 만들기

토스 내부에는 분석할 수 있는 데이터가 정말 많아서, 다양한 원천의 대규모 데이터를 피처로 만드는 Feature Engineering도 필수적인 역량입니다. 그래서 Data Engineering 역량까지도 해커톤에서 살펴볼 수 있도록 가급적 많은 데이터를 준비하고 싶었습니다.

처음 기획했던 데이터 구성은 아래와 같았습니다:

예상치 못한 난관: 데이터 익명화

그런데 해커톤을 실제 준비하는 과정에서 다수의 테이블을 외부에 반출할 수 있는 방법을 찾지 못했어요.

해커톤의 데이터는 누구나 자유롭게 다운받을 수 있기 때문에 데이터 익명처리가 필요합니다. 다수의 테이블을 각각 익명처리하는 경우, 메인 데이터에 다른 데이터를 Join하며 피처를 생성하는 작업이 불가능해진다는 문제가 있습니다.

그래서 결국 해커톤 참여자분들께 제공하려던 Feature Engineering의 재미는 포기할 수밖에 없었고, 기본적인 Feature Engineering을 저희가 직접 수행하여 한 개의 정형 테이블로 문제용 데이터를 구성했습니다.

최종 데이터셋: 익명화와 난이도 사이에서

최종 문제용 데이터셋은 이렇게 구성했습니다:

다만 이렇게만 준비할 경우 문제가 너무 평이할 것으로 우려하여 Sequence 피처 한 개는 최대한 처리하지 않고 데이터셋에 포함시켰습니다. 해커톤이라면 마땅히 챌린징한 요소가 있어야 하는데, 마지막에 추가한 Sequence 피처가 그 역할을 해주지 않을까 기대했어요.

실제로 해커톤 게시판에 해당 피처 가공에 대한 어려움을 말씀하시는 글들이 보이거나, 그 피처를 잘 가공한 팀들이 리더보드 우수 팀으로 등장하는 모습을 보며 다행히 기획 의도가 잘 반영됐다는 점을 확인할 수 있었습니다.

출제자의 기대와 실제

문제를 출제할 때는 데이터 내 각 피처의 의미를 공개할 수 없어서 참가자분들이 피처 엔지니어링보다는 모델 설계에 집중할 것으로 예상했습니다. 다만 시계열 피처가 있기 때문에 시계열 데이터를 처리할 수 있는 모듈을 쓰시지 않을까 정도를 기대했어요. 그리고 혹시나 경진대회에서의 좋은 아이디어를 실제 적용할 수도 있기에 실무 적용 가능성을 고려하는 접근법이 있었으면 하는 기대도 있었습니다.

예상과 가장 유사한 아키텍처, 출처: aimi 팀 모델개발보고서

참가자들의 열정: 숫자로 보는 대회

해커톤 제출 기한이 지나고 리더보드 상위 30팀은 보고서를 제출해 주셨습니다. 보고서에는 리더보드 상위 팀들 답게 참여자분들의 열의와 창의성이 가득했어요.

간단한 통계

보고서 제출 30팀의 경우:

  • 모든 팀이 Boosting Tree 계열의 모델을 활용했습니다.
  • Deep Learning의 경우 미사용한 팀도 존재했습니다.

인상 깊었던 세 가지 숫자

전체 보고서를 심사하며 인상 깊었던 숫자 세 개를 선정했습니다.

1️⃣ 30페이지

가장 먼저 30페이지의 보고서였습니다! 대부분이 문자로 꽉 채워진 30페이지의 보고서는 심사위원들을 당황시키기 충분했고, 다른 팀들도 사실 적지 않은 분량으로 한 달간의 여정을 요약하여 정리해 주셨어요.

2️⃣ 260개

두 번째로는 260개의 모델을 한 번에 활용하는 솔루션이었습니다. PCTR 추론은 실시간 서빙이 필요하기에 적당한 앙상블을 해야 한다고 생각하고 있었는데, 적당함에 대한 새로운 시각을 제안해 주신 것 같아서 흥미로웠습니다 😊

3️⃣ 37개

마지막으로는 37이라는 숫자를 선정했습니다. Sequence Feature 한 개로 얼마나 많은 파생 피처를 만들 수 있는지, 문제 해결에 대한 집요함을 느낄 수 있는 부분이었습니다.

예를 들면, 시퀀스의 총 길이, 고유 토큰 개수부터 시퀀스 내 전이 결속도까지 총 37가지의 파생 변수를 생성하는 집계 방식을 고안하셨고, 한 가지 집계 방법에서 1~N개의 피처가 만들어지기에 꽤나 많은 파생변수가 최종적으로 탄생했습니다. 실무에서도 피처 한 개에 대해 이 정도까지 딥다이브하지 않는 경우가 많기에 정말 흥미로운 부분이었습니다.

성과 요약: 무엇이 리더보드 상위를 만들었나

전체 보고서를 성과 측면에서 요약하면 다음과 같습니다.

리더보드 상위팀을 위한 오프라인 시상식

지난 11월 6일 저녁, Next ML Challenge의 리더보드 상위 30팀을 토스 오피스로 모시고 오프라인 시상식을 진행했습니다. 토스 ML Chapter Lead이신 찬주님이 토스 ML Chapter의 비전에 대해 설명해 주시는 시간을 마련했고, 뒤이어 제가 출제위원 대표로 출제 비하인드에 대해 말씀 드렸어요.

1위. Merlin XGBoost 팀
2위. 상승장 팀
3위. 개인출전 김정무님

이어진 시상식에서는 토스 Head of Data 홍수님이 오셔서 직접 상금 수상자 분들을 축하해주셨어요. 수상소감을 여쭤보았을 때 모든 분이 ‘재밌고 뜻깊은 대회를 열어줘서 감사하다’는 말씀을 해주셔서, 출제위원으로서 매우 뿌듯했답니다.

토스 현업 ML Engineer 분들과 함께 네트워킹도 진행했습니다. 참석하신 모든 분들이 토스 ML Chapter가 실제로 어떻게 일하는지 많이들 궁금해 하셔서, 정말 열띤 분위기 속에 많은 대화가 오갔어요. 온라인 경진대회에서 참가자 아이디로만 봤던 분들과 실제로 만나서 대화해보니 무척 감회가 새로웠습니다.

마치며

대회를 준비하고 또 평가하며 참여하신 분들의 뜨거운 열정, 간절함, 순수한 즐거움 등의 감정을 저도 함께 느꼈던 것 같아요.

실무에서는 데이터의 의미를 알고 있기에 도메인 지식을 활용한 피처 엔지니어링이 가능하지만, 이번 대회에서는 그런 정보 없이도 참가자분들이 데이터 분석과 실험을 통해 놀라운 성과를 만들어 내셨습니다. 특히 Sequence 피처 하나에서 37개의 파생 변수를 만들어내신 집요함과, 260개의 모델을 앙상블하는 창의성은 출제자로서도 많은 영감을 받았어요.

개인적으로는 참여하신 모든 분들께서 이번 대회를 계기로 원하시는 바를 이루는 것에 도움이 되셨길 바랍니다. 토스는 앞으로도 ML 엔지니어들과 함께 성장하고, 실제 비즈니스 문제를 함께 풀어나갈 수 있는 기회를 지속적으로 만들어 나갈 예정입니다.

댓글 0댓글 관련 문의: toss-tech@toss.im
㈜비바리퍼블리카 Copyright © Viva Republica, Inc. All Rights Reserved.