AI VIDEO BRIEFING

카카오 광고 타게팅 모델 데이터 튜닝 사례: 인포메이션 밸류 피처 셀렉션으로 학습 시간 7배 단축한 방법

카카오 광고 추천팀이 전환 최적화 모델을 딥러닝으로 옮기며 겪은 데이터 병목과 해법을 정리했다. 인포메이션 밸류 기반 피처 셀렉션으로 학습 데이터를 10분의 1로 줄이고도 성능은 오히려 올린 과정과 수치를 짚는다.

300GB 학습 데이터를 10분의 1로, 카카오 광고 추천팀의 피처 다이어트 영상 대표 이미지

핵심 메시지

  • 정제된 유저 피처 데이터가 300GB, 유저 1억 명, 피처 500만 개, 유저·피처 조합 100억 건에 이르러 학습 파이프라인 전 구간이 병목이었다.
  • 피처를 줄이는 여러 기법 중 통계 기반 필터링에 속하는 인포메이션 밸류 방식을 택했고, 적용이 쉽고 계산이 빠르다는 점이 결정적이었다.
  • 시드 피처를 20만~50만 개에서 250~400개 수준으로 줄였는데 모델 성능은 떨어지지 않고 오히려 올랐다.
  • 전체 유저 피처 테이블에도 같은 기법을 적용해 데이터를 300GB에서 170GB로 줄였고, 피처 수는 500만 개에서 30만 개가 됐다.
  • 데이터가 줄어든 만큼 조인 시간이 줄지 않는 문제는 피처 그룹 분포 쏠림과 압축 파일 탓이었고, 버킷 테이블로 재구성해 해결했다.

쉽게 이해하기

카카오 광고 추천팀은 카카오모먼트를 통해 디스플레이 광고를 노출할 때, 그 광고를 보고 실제로 행동할 만한 이용자를 예측해 골라내는 모델을 만든다. 여기서 말하는 전환은 구매만이 아니라 앱 설치, 회원 가입, 참여, 장바구니 담기처럼 여러 형태를 포함한다. 광고주마다 전환 이벤트별로 모델을 따로 만들다 보니 하루에 수천 개 모델을 학습해야 하고, 그만큼 컴퓨팅 자원을 어떻게 아끼느냐가 늘 숙제였다.

발표에서 공개한 파이프라인 시간은 문제의 크기를 그대로 보여 준다. 학습의 정답 역할을 하는 시드에서 피처를 뽑는 데 30분, 이를 다시 전체 유저 피처 테이블과 조인해 학습 데이터를 만드는 데 약 한 시간이 걸렸다. 이렇게 만들어진 광고주별 학습 데이터는 100~150GB였고, GPU 클러스터로 내려받는 데 20분, 학습과 예측에 5시간 30분, 결과를 다시 올리는 데 10분이 소요됐다.

팀은 모델을 손대기 전에 데이터부터 줄이기로 하고, 피처를 줄이는 방법을 두 갈래로 놓고 비교했다. 하나는 원래 피처 중 쓸 것만 고르는 피처 셀렉션이고, 다른 하나는 차원 축소로 벡터를 압축하는 피처 익스트랙션이다. 차원 축소 계열은 축소된 피처를 해석하기 어렵고 고차원 데이터에서 처리 시간이 길며 메모리 부족이 발생할 수 있어 제외했고, 모델을 반복 학습하며 최적 조합을 찾는 방식은 광고주와 피처가 수시로 바뀌는 환경에 비용이 너무 컸다.

최종 선택은 통계 기반 필터링에 속하는 인포메이션 밸류였다. 시드 이용자 중 특정 피처를 가진 비율과 시드가 아닌 이용자 중 같은 피처를 가진 비율을 비교해 점수를 매기는 방식으로, 앞의 비율이 높고 뒤의 비율이 낮을수록 점수가 높다. 계산이 단순해 빠르고, 피처가 잘려 나가면서 남은 피처가 하나도 없는 이용자가 자연스럽게 걸러진다는 부수 효과도 있었다. 팀은 논문이 제시한 점수 구간표를 참고하되 성능이 떨어지지 않는 구간을 실험으로 직접 찾았다.

결과는 두 단계로 나뉜다. 시드 피처를 20만~50만 개에서 250~400개로 공격적으로 줄였더니 학습 데이터는 10~15GB로 기존의 10% 수준이 됐고, 대상 이용자도 1억 명에서 6천만 명으로 줄었는데 성능은 오히려 올랐다. 이어 전체 유저 피처 테이블에도 같은 기법을 적용해 데이터를 170GB로, 피처를 30만 개로 줄였다. 다만 데이터가 43% 줄었는데 조인 시간은 33%만 줄어 원인을 파고들었더니, 피처 그룹 파티션에 데이터가 쏠려 있고 파일이 압축돼 있어 작업이 고르게 나뉘지 않는 문제였다. 버킷 테이블로 다시 구성해 피처를 균등하게 저장하자 시간이 더 줄었고, 전체적으로 수행 시간이 약 일곱 배 개선됐다.

주요 인사이트

  • 모델 구조를 바꾸기 전에 입력 데이터를 줄이는 것만으로도 파이프라인 전체가 개선된다는 점을 수치로 보여 준다. 데이터가 줄자 조인, 전송, 학습, 예측이 동시에 빨라졌다.
  • 피처를 크게 쳐냈는데 성능이 오히려 올랐다는 결과는, 고차원 희소 데이터에서 상당수 피처가 신호보다 잡음에 가깝다는 사실을 시사한다.
  • 전체 테이블에 일괄 적용할 때는 논문의 점수 기준을 그대로 쓰지 않고 광고주별 피처 사용률을 고려한 분위수 기준으로 바꿨다. 특정 광고주에게만 중요한 피처가 통째로 잘려 나가는 것을 막기 위해서다.
  • 데이터 크기를 줄여도 저장 구조가 나쁘면 기대만큼 빨라지지 않는다. 분포 쏠림과 압축 포맷 때문에 작업이 고르게 분배되지 않은 사례는 알고리즘보다 데이터 레이아웃이 먼저인 상황을 보여 준다.
  • 적용 난이도와 계산 비용을 기준으로 기법을 고른 판단이 눈에 띈다. 이론적으로 더 정교한 방법이 있어도 하루 수천 개 모델을 돌려야 하는 운영 조건에서는 단순하고 빠른 쪽이 이긴다.

자주 묻는 질문

인포메이션 밸류 방식은 어떤 기준으로 피처를 고르나요?

전체 시드 이용자 중 해당 피처를 가진 비율과, 시드가 아닌 이용자 중 같은 피처를 가진 비율을 비교합니다. 시드 쪽 비율이 높고 비시드 쪽 비율이 낮을수록 점수가 높아지며, 이 점수를 기준으로 낮은 피처를 잘라 냅니다.

피처를 그렇게 많이 줄이면 모델 성능이 떨어지지 않나요?

발표에 따르면 시드 피처를 20만~50만 개에서 250~400개로 줄였는데도 성능은 떨어지지 않고 오히려 올랐습니다. 다만 성능이 유지되는 점수 구간은 여러 광고주를 대상으로 한 다양한 실험을 통해 직접 찾아야 했습니다.

데이터를 줄였는데도 처리 시간이 기대만큼 안 줄어든 이유는 무엇이었나요?

피처를 관리하는 그룹 파티션에 데이터가 한쪽으로 쏠려 있었고, 저장된 파일이 압축돼 있어 작업 단위가 고르게 나뉘지 않았기 때문입니다. 버킷 옵션으로 테이블을 다시 만들어 피처를 균등하게 저장한 뒤 시간이 추가로 단축됐습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식