쿠팡이츠 데이터 플랫폼: 머신러닝 피처 생성 및 오디언스 세분화 서비스

이츠의 DaaS가 제공하는 효율적인 피처 엔지니어링 및 오디언스 세분화 서비스에 대하여 — Part 2

쿠팡 엔지니어링
Coupang Engineering Blog
9 min readOct 4, 2022

--

By Fred Fu

본 포스트는 영문으로도 제공됩니다.

이전 포스트에서 설명드렸듯이, 쿠팡이츠는 데이터 인텔리전스(Data Intelligence) 시스템 자동화로 비즈니스 성장을 가속화하고 있습니다. 저희는 머신러닝(ML) 모델을 활용해 이츠 배달 파트너(Eats Delivery Partners, 이하 EDP)들을 위한 최적의 주문 배정을 예측하고, 비즈니스 분석가(BA)들은 데이터를 바탕으로 고객들에게 개인화된 프로모션을 진행합니다.

아래 그림 1을 보면, 이츠 데이터 플랫폼은 네 개의 주요 단계와 세 개의 데이터 처리 파이프라인으로 구성되어 있음을 알 수 있습니다. 이런 구조로 만들어진 이유는 서로 다른 시간 민감성을 가진 다양한 비즈니스 시나리오들을 충족시키기 위해서입니다.

쿠팡 이츠 데이터 플랫폼의 전반적 구조
그림 1. 이츠 데이터 플랫폼의 전반적 구조

이번 포스트에서는 비즈니스에서 데이터가 어떻게 사용되고 있는지를 구체적으로 논의하고, 이런 니즈를 높은 비용 효율로 신속하게 지원하기 위해 저희가 개발한 DaaS(Data-as-a-service)에 대해 설명드리려고 합니다. 가장 대표적인 데이터 유스 케이스는 피처 엔지니어링, 고객 세분화, 사용자 태깅, 비즈니스 지표 계산 등이 있습니다. 본문에서는 피처 엔지니어링과 고객 세분화 이 두 케이스에 집중해 데이터 플랫폼의 데이터 서비스를 어떻게 효율화했는지 살펴보겠습니다.

목차

· 피처 서비스
느린 속도와 비용 비효율성
해결책
· 오디언스 세분화 서비스
오프라인과 비효율성
해결책
비즈니스 관점에서의 이익
· 결론

피처 서비스

피처 엔지니어링(feature engineering)은 ML 훈련을 위한 데이터셋에서 속성(attribute)을 추출하는 과정입니다. 피처로 ML 모델의 성능을 개선하거나 훈련 데이터 부족 시 기존의 훈련 데이터를 보강할 수도 있습니다. 하지만, 이츠에서는 데이터 부족 같은 문제가 일어나지 않습니다. 사실 저희는 엄청난 양의 데이터와 여기서 추출된 수많은 피처들을 갖고 있습니다. 저희의 문제는 이것들을 각기 다른 시간 민감성의 실시간, 근실시간, 그리고 오프라인 조건에서 계산해내면서 각 상황의어려운 태스크들을 해결해내야 한다는 점이었습니다.

느린 속도와 비용 비효율성

저희 데이터 플랫폼이 있기 전, 피처 엔지니어링은 시간이 많이 소요되는 어려운 작업이었습니다. 중앙 집중식 시스템이 없던 시절, 데이터 엔지니어, 데이터 사이언티스트, 그리고 비즈니스 분석가(BA)들은 피처 엔지니어링에 긴 시간을 투자할 수 밖에 없었습니다.

먼저, 데이터 사이언티스트가 만든 피처 요건을 데이터 엔지니어가 분석했습니다. 그리고 엔지니어가 수동으로 인제스천(ingestion) 파이프라인을 개발하고, 피처 추출을 위해 필요한 데이터 변환을 수행했습니다. 이 과정에서 엔지니어는 파편화된 데이터 시스템과 애플리케이션 여러 개를 동시에 다뤄야 했습니다. 피처 엔지니어링에 필요한 단일 파이프라인 개발을 하려면 여러 팀 간 협업과 처음부터 끝까지 임기응변식의 엔지니어링이 필요했습니다. 프로덕션을 위한 단일 신규 피처 준비에 1~2주의 시간이 걸렸습니다.

이런 느린 속도에 더해 여러 팀 또는 여러 도메인 담당자가 완전히 동일한 피처를위해 별도의 파이프라인을 만들어야 하는 문제도 있었습니다. 이는 엔지니어링 리소스에 막대한 비용 부담을 안겼을 뿐만 아니라 시스템 전체의 연산 수행 능력에 큰 부담이 되었습니다.

강력한 ML모델을 비즈니스 곳곳에 적용해 나갔지만, 피처 엔지니어링은 크나큰 병목지점이 되어버렸습니다.

해결책

엄청난 양의 피처들을 실시간, 근실시간, 그리고 오프라인 조건 하에 계산하고 피처들이 모델을 위해 사용될 수 있도록, 저희는 피처 서비스를 이츠 데이터 플랫폼의 주요 부분으로 설계했습니다. (사실 초기엔 데이터 처리 파이프라인을 피처 서비스용으로만 구축했습니다.)

이츠 피처 서비스는 원스탑 ML 피처 발견, 처리, 생성, 그리고 활용을 지원하는 플랫폼입니다. 여기에는 피처 메타데이터 관리와 데이터 거버넌스 관리가 포함됩니다. 이 시스템은 저희의 데이터 처리 파이프라인 위에 구축되어 있으며, 비실시간(Non-real-time), 근실시간(Near real-time, NRT), 완전 실시간(Pure real-time) 연산 엔진에 내장된 피처를 지원합니다.

쿠팡이츠 데이터 플랫폼의 ML 피처 서비스 구조
그림 2. 피처 서비스 구조

피처 서비스의 피처 그룹(features group)을 이용하면, 팀별로 특정 비즈니스 시나리오에 대해 정의한 피처 세트를 관리할 수 있습니다. 만일 하나의 피처 그룹에서 고객, EDP, 판매자에 대한 각기 다른 데이터를 비실시간, 근실시간, 완전 실시간 조건으로 요청하면, 피처 서비스가 각 요구를 처리해 사용자에게 결과를 취합해줍니다.

예를 들어, 저희 서비스에서 근실시간(NRT) 피처 그룹을 만드는 방법을 한번 살펴보겠습니다. 먼저, 사용자는 프로덕션에 쓰일 NRT 피처를 생성하기 위해 OLAP 엔진이 이해할 수 있는 SQL 명령어 형태로 피처의 세부사항을 작성해야 합니다. 그 다음엔, 사용자가 SQL 출력의 열(column) 값을 각 피처의 이름으로 매핑해 대응하는 그룹에 해당 값이 생성되게끔 합니다. 그리고 피처 서비스가 해당 작업을 수행해 피처 스토어로 피처를 출력하는 걸 기다리기만 하면 됩니다.

쿠팡이츠 데이터 플랫폼의 피처 서비스 인터페이스
그림 3. 피처 서비스 인터페이스. 먼저 피처를 SQL 명령어(좌측)로 그룹핑한 다음, 적정 열에 맵핑(우측)합니다.

이 외에도 피처 서비스는 모델 예측을 위한 온라인 서비스를 제공해, 저희의 백엔드 개발자, 데이터 엔지니어, 데이터 사이언티스트들이 복잡하고 비효율적인 피처 엔지니어링 과정에서 자유로울 수 있도록 지원합니다.

오디언스 세분화 서비스

타겟팅된 광고를 특정 고객 세그먼트(segment)에 노출하고 싶거나, 비즈니스에 주는 영향을 최소화하는 스마트한 방식으로 A/B 테스트를 실행하려고 할 때, 타겟 오디언스(target audience)를 제대로 세분화하는 일은 매우 중요합니다.

이츠는 예를 들어 다음과 같은 비즈니스 시나리오에 대해 고객 세분화를 활용합니다.

  • 서울 특정 지역의 비활성(inactive) 고객을 찾아내고 할인쿠폰을 제공해 이츠 사용 유도
  • 피크 시간대에 오프라인 상태인 EDP들을 접속하도록 독려해 EDP 공급 부족 완화
  • 비즈니스에 영향을 주지 않으면서 다양한 EDP 미션 보너스의 효율성을 측정하는 A/B 테스트 실행

오프라인과 비효율성

위의 모든 시나리오는 타겟층에 대한 고도화된 분석과 정해져 있는 기준을 바탕으로 세분화가 필요한 경우입니다.

저희 데이터 플랫폼이 만들어지기 전, 일반적인 세분화 과정은 다음과 같았습니다.

  1. 비즈니스 요건에 따라 비즈니스 분석가(BA)가 타겟 대상 세분화
  2. BA가 SQL 쿼리문을 작성해 타겟 사용자를 찾고, 관련 비즈니스 오퍼레이션 팀 및 팀원들(Ops)에게 SQL 결과값을 엑셀 스프레드시트로 다운로드 받도록 안내
  3. Ops에서 필요한 업무(고객 쿠폰, EDP 미션 등)를 생성하기 위해 이츠 내 별도의 비즈니스 운영 시스템에 해당 엑셀 스프레드시트를 다시 업로드
  4. 거기에 더해 Ops 측에서 해당 업무와 관련하여 A/B 실험을 수행하고 싶은 경우, 엑셀 시트를 이용해 위의 타겟 대상 세분화와 엑셀 시트 업로드를 반복

기존의 업무방식에는 오프라인에서 이뤄지는 작업들이 많았습니다. 엑셀 시트를 수기로 업로드하고, 다양한 팀 간의 업무 조정을 위해 회의를 하는 것과 같은 일련의 일들로 인해 업무 처리 속도가 느려지고 비즈니스 성장에도 영향이 갔습니다.

해결책

저희는 데이터 플랫폼의 오디언스 세분화(audience segmentation) 서비스를 원스탑 시스템으로 개발해, 비즈니스 운영자들이 비즈니스 관련 의사결정을 하거나 A/B 실험을 하기 위해 적정 타겟 대상을 찾는 작업을 모두 한 플랫폼에서 수행할 수 있도록 만들었습니다.

쿠팡이츠 데이터 플랫폼의 세분화 서비스 구조
그림 4. 세분화 서비스 구조

피처 서비스처럼 세분화 서비스는 일반적인 데이터 처리 파이프라인 위에 구축되어 있습니다. 비즈니스 Ops에서는 OLAP 엔진에 미리 계산된 프로필 태그에 따라 필터링 기준을 선택할 수 있고, 필요할 때마다 세그먼트를 자동으로 생성할 수 있습니다.

비즈니스 관점에서의 이익

세분화 서비스 덕분에 비즈니스 운영자들은 이제 모든 업무를 위한 타겟 대상 세분화를 스스로 할 수 있습니다. 예를 들어, BA가 EDP 미션을 새로 만들려고 한다면 세분화 포털에서 다양한 필터 조건을 유연하게 조합해 타겟 이용자를 세분화할 수 있습니다. 이건 새로운 세그먼트를 만듭니다.

만일 BA가 미션을 위한 A/B 테스트를 생성하고 싶다면, “Split Segment” 옵션을 활성화해 부모(parent) 세그먼트 아래 자식(child) 세그먼트를 만들 수도 있습니다. 그런 다음 미션 생성 페이지에서 세그먼트 ID를 참조로 넣기만 하면 됩니다.

쿠팡이츠 데이터 플랫폼의 세분화 서비스 인터페이스
그림 5. 세분화 서비스에서 고객 세그먼트 만드는 방법. A/B 테스트를 위해 고객군을 나눠야 하는 경우, 사용자가 “Split Segment”를 활성화하기만 하면 됩니다.

이 세분화 서비스 도입을 통해 Ops에서는 업무 설계 및 생성에 필요했던 인력 투입 규모를 엄청나게 줄일 수 있게 되었습니다. EDP 미션 생성에 드는 시간은 개인당 평균 510분에서 260분으로 줄었고, 팀당 평균 8,775분에서 4,550분으로 줄었습니다. 결과적으로 세분화 서비스를 통해 EDP 미션 생성에 투입되는 시간이 개인과 팀 수준에서 49% 절감되었습니다.

EDP 미션 외에도, 세분화 서비스는 고객관계관리(CRM) 부서와 프로모션 부서의 인텔리전트 프로모션 시스템에도 활용되고 있으며 해당 시스템의 목적인 고객 충성도와 고객 성장의 개선에도 기여하고 있습니다.

결론

쿠팡이츠의 최우선 순위는 언제나 고객입니다. 저희는 계속 기술을 발전시켜 무슨 일이 있든 고객들이 제시간에 음식 주문을 배달 받을 수 있도록 노력하겠습니다. 이 포스트에서 다룬 DaaS는 인텔리전트 시스템을 통해 엔지니어링 인력 비용을 절감하고자하는 저희 여정의 시작점일 뿐입니다.

혹시 데이터로 음식 배달 서비스에 혁신을 일으키고 있는 팀에서 일해보고 싶지 않으신가요? 저희의 채용공고를 한 번 확인해보세요!

쿠팡 엔지니어링의 최신 소식을 트위터로 업데이트 받으실 수 있습니다! 팔로우 부탁드려요!

--

--

쿠팡 엔지니어링
Coupang Engineering Blog

쿠팡의 엔지니어들은 매일 쿠팡 이커머스, 이츠, 플레이 서비스를 만들고 발전시켜 나갑니다. 그 과정과 결과를 이곳에 기록하고 공유합니다.