Upgrade to Pro — share decks privately, control downloads, hide ads and more …

price-optimization-in-data-team

Avatar for Jireh Jireh
November 06, 2021

 price-optimization-in-data-team

Avatar for Jireh

Jireh

November 06, 2021

Other Decks in Technology

Transcript

  1. 발표자 소개 (현) ML 엔지니어 @야놀자 DI팀 (2020.03~) (전) 부동산

    시세 개발 @빅밸류 (2018.12~2020.03) 물리학 학사 -> 도시계획 석사 -> 부동산 데이터 with python
  2. Data Infrastructure 팀 소개 • 야놀자 내에 흩어져있는 데이터를 한곳에

    모아, 사내 구성원들이 자유롭게 분석할 수 있는 데이터 분석/탐색 시스템 제공 • 추천, 가격 최적화 등 다양한 데이터 프로덕트 개발/서빙 • 데이터 엔지니어, 데이터 분석가, 머신러닝 엔지니어, 프론트엔드 개발
  3. Data Infra 팀에서 하는일 • B2B 사이드 데이터 프로덕트 개발

    • 주요 미션: 가격 최적화 모델 개발 • 모델 + 파이프라인/서비스 개발
  4. ݾ ର • ঠ֥੗ীࢲ ৵ оѺ୭੸ചܳ ׮ܖחо • ର ѐߊ

    ೐۽షఋੑ ѐߊҗ ઁউ • ର ѐߊ दझమ ѐߊҗ ഛ࢑ • ର ѐߊ ݽ؛җ दझమ Ҋبച • ݛ਺݈
  5. 가격 최적화란? • 가격 최적화: Price Optimization • “시장에서 상품이

    판매될 만한 적정 가격을 찾는 것” • 비슷한 용어: dynamic pricing(동적 가격결정), revenue management(매출 관리) 등..
  6. 가격 최적화의 목적 • 도메인: 교통, 항공, 물류, 숙박 등

    수요와 공급의 변동이 잦은 분야 • 수요/공급의 불균형 문제를 가격을 조정함으로써 해결 • 궁극적으로 매출 극대화를 지향
  7. 수요가 시시각각 변하는 숙박시장 • 공급은 일정하나, 수요는 날짜별로 변동성이

    큼 • 수요가 많으면 가격 상승, 수요가 적으면 가격 하락 • 판매자의 고민: “객실을 얼마에 팔아야 하지?”
  8. 설명력 중심의 모델로 시작 • 초기 확산단계: 사용자가 믿고 쓸

    수 있는 데이터 제공 • 설명력 중심 모델 -> 성능 중심 모델
  9. 객실가격의 결정요인 시간적 요인 • 계절성: 요일, 성수기 시즌 등

    • 이벤트: 공휴일, 축제, 코로나 등 공간적 요인 • 숙박카테고리: 모텔, 호텔, 펜션, 게스트하우스 • 지역: 도심, 비즈니스, 관광지 등 • 객실특성: 룸사이즈, 침대수, 전망, 내부 컨디션, 리모델링 등
  10. 초기 모델: 경쟁객실 기반 • 실제 주변 업체의 판매가격을 참고하여

    가격 설정하는 패턴 • 도메인 기반 모델: 경쟁객실들의 판매가격 분포를 활용 • 경쟁객실: 주변 객실 중 유사한 가격대에 판매된 객실
  11. 1차 제안과 피드백 “아직 서비스에 녹이기에는… ” “좀더 개발되면 다시

    얘기해봅시다” “신기하긴 한데.. 이걸로 뭘 할 수 있나요?”
  12. 데이터 검증을 위한 온라인 테스트 • 운영팀의 도움을 받아 다수의

    테스트 진행 • 가격 조정 전/후의 판매효과 비교 • 전체적으로 판매량과 거래액 상승효과 • 모델 개선을 위한 인사이트 학습
  13. 2차 제안과 피드백 “모델이 좀더 고도화되어야 실제 적용할 수 있을

    것 같아요” “이런 이런 피쳐들도 함께 고려되면 좋겠어요” “제안가격이 너무 비싸요”
  14. 모델 개선: 예약확률 기반 • 경쟁객실 모델의 한계: 설명력은 좋지만,

    성능과 안정성이 떨어짐 • Airbnb의 Dynamic Pricing 논문 을 참고하여, 예약확률 기반의 가격제안 모델 개발 • Concept: 잘 팔리는 객실은 가격 인상, 안팔리는 객실은 가격 인하 • 예약확률 예측(앙상블 모델)과 가격 제안(휴리스틱 모델)의 조합
  15. Feature Engineering • 시간요인: 요일, 휴일여부, 휴일전날여부, 리드타임1) 등 •

    예약: 재고량, 판매량, OCC2), 판매가격, 할인율 등 • 클라이언트 로그: 업체/객실의 Impession, Click, View, CTR 등 1) 리드타임: 체크인 날짜와 예약한 날짜 사이의 간격 2) OCC: Occupancy 의 약자로 판매된 객실 수를 예약가능한 객실 수로 나눈 비율
  16. 모델 성능 개선 1) PDR(Price Decrease Recall): 경쟁력있는 가격을 제안한

    비율로서 높을수록 좋음 2) BR(Booking Regret): 잘못된 가격을 제안한 경우의 오차율로서 낮을 수록 좋음 3) MdAPE(Median Absolute Percentage Error): 오차율의 중위값으로 낮을수록 좋음
  17. ML 파이프라인 개선 • 배치 관리: Airflow + kubernetes +

    Jupyter Notebook • ML/분산처리 프레임워크: Pyspark, Dask, Scikit-learn, XGBoost … • Hyperparameter, Selected Feature 등 ML Meta 관리: AWS S3 • 모델 관리: Mlflow • API 서빙: BentoML
  18. 3차 피드백 “자체 가격 셋팅 로직이 있는데, 이것도 반영될수 있나요?”

    “가격조정이 자동화 되면 좋겠어요” “가격변동폭이 너무 작아요” “잘 안팔리는 객실인데, 왜 가격을 올리라고 하나요?” “천원단위로 판매하는데, 데이터는 1원 단위까지 나와요” “가격에 대한 설명요인이 추가되면 좋겠어요”
  19. N차 개발 개발 “이런걸 만들어 봤습니다.” 테스트 “신기한데, 한번 써

    볼게요” 피드백 “근데, A가 이상해요. B도 만들어 줄 수 있나요? ” 고도화 “가능할 것 같은데, 한번 만들어 볼게요”
  20. 향후 계획 • 실시간 제안 및 적정가격 자동 산정(sync) •

    적정가격 조회/가격세팅을 위한 서비스 개발 • Revenue Management를 위한 다양한 분석 및 데이터 개발 • 숙박 운영/영업 지원을 위한 분석 및 지원 도구 개발
  21. Data Infra 팀 내 머신러닝 엔지니어 • 탄탄한 인프라 환경과

    지원을 받을 수 있음 • 데이터 프로덕트/서비스를 직접 개발할 수 있음