카카오 아레나 데이터 경진대회 1등 노하우

상품 카테고리 분류와 브런치 글 개인화 추천으로 배우는 데이터 분석 실무

카카오 아레나 데이터 경진대회 1등 노하우를 공개합니다!

카카오 아레나 데이터 경진 대회 1회, 2회 대회의 문제와 데이터, 우승 솔루션을 상세히 설명하고 있습니다. 단순한 머신러닝과 데이터 분석에 대한 설명을 넘어, 실무에서 풀고자 하는 문제를 이해하고, 서비스로부터 수집된 공개 데이터셋과 실제 대회 우승 솔루션을 통해 실질적인 머신러닝 문제를 푸는 과정을 이해하고 경험할 수 있습니다.

 

★ 이 책에서 배우는 내용 ★

  • 카카오의 브런치와 쇼핑하우 서비스에서 데이터를 활용하는 방법
  • 데이터 분석 경진대회에 참가하는 방법부터 우승자의 필승 비법까지
  • 자연어 처리를 위한 LSTM 및 최신 트랜스포머 인코더, 이미지 인코더, 카테고리 분류의 원리와 활용법
  • 카카오는 당신이 무슨 글을 읽을지 이미 알고 있다! 콘텐츠 기반 필터링과 협업 필터링의 원리와 실전 코드
  • 여러 모델의 예측 결과를 결합하는 앙상블 기법

 

도서 상세 이미지

최규민

카카오 추천팀에서 픽코마/카카오커머스/멜론 등 추천 솔루션을 도입하는 PM 업무와 데이터 분석가로서 사용자 반응과 변화를 관찰하는 정량적 분석(Quantitative Analysis)을 통해 추천 솔루션을 개선하는 업무를 하고 있다. 그리고 카카오 아레나 2회/3회 대회 문제 설계 및 운영에 참여했다.

김상훈

전자공학부를 전공하고, 15년 전 대학원 시절부터 중점적으로 머신러닝을 접하여 연구하기 시작했다. 컴퓨터 비전 분야의 얼굴인식이 연구 주제였지만, 회사 생활을 하면서 자연어 처리와 같은 다른 분야에도 관심을 가지게 되었다. 딥러닝 기술로 (구글 번역기 같은) 기계 번역기를 만드는 일, 어울리는 옷을 찾아주는 패션 아이템 추천 기술, 고객의 이탈을 미리 예측하여 프로모션을 진행하는 등의 다양한 머신러닝 과제를 경험한 데이터 과학자다.

194개국 580만 명의 회원을 보유한 세계에서 가장 유명한 경진대회 플랫폼인 캐글에서 1년 만에 그랜드마스터(최상위 연구자)가 된 한국인이다. 현재 캐글 그랜드마스터는 국내에 단 4명만 있다. 수천 개의 팀이 참여하는 캐글의 경진대회에 지금까지 11번 참여하여 7개의 금메달과 3개의 은메달을 획득했다. 캐글 통합 랭킹에서 15만 명 중 12등(최고 순위)을 달성했으며 현재 세계 1등을 목표로 정진하고 있다https://www.kaggle.com/limerobot.

구경훈

서울대학교에서 컴퓨터 아키텍처를 전공하고 삼성전자에서 알파 CPU 설계에 참여했다. 버츄얼웨어와 리얼네트웍스에서 모바일 SNS, 메시징 서비스를 개발했다. SK플래닛에서 이미지 클라우드 솔루션, T커머스 추천 솔루션 개발을 주도하고 신경망 기계 번역기 개발에 참여했다. 현재는 기업용 소프트웨어 개발 플랫폼을 제공하는 미국 기업 Appian에서 문서 정보 추출 및 변환 목적의 인공 지능 개발 업무를 맡아서 컴퓨터 비전과 자연어 처리 기술을 혼용한 머신러닝 솔루션 개발에 매진하고 있다.

김정오

정보컴퓨터공학을 전공하고 웹 엔진(Webkit, Chromium) 오픈 소스 개발자로 수년간 활동했다. 웹 엔진에서 사용자 행위를 기록하고 분석하는 User analytics 시스템 개발을 통해 데이터 분야에 관심을 가지게 되었다. 카카오 아레나 2회 대회 우승을 기점으로 본격적인 데이터 사이언티스트의 길을 걷고 있으며 현재 SK 플래닛에서 머신러닝을 활용한 개인화 광고 상품 추천 업무를 하고 있다.

  • ▣ 01장: 1회 대회 살펴보기
    • 1.1 대회 설명
      • 1.1.1 왜 상품 카테고리를 분류하는가?
      • 1.1.2 대회 내용 설명
      • 1.1.3 대회 참여 현황
    • 1.2 대회 평가 척도
    • 1.3 데이터셋 훑어보기
      • 1.3.1 데이터셋 설명
      • 카테고리 매핑 정보
      • train 데이터셋
      • dev 데이터셋
      • test 데이터셋
      • 1.3.2 대회 데이터 탐색
      • train 데이터(train.chunk.01~09) 상품 수
      • 상품 카테고리 분류 분포
      • 상품명에 담긴 정보
      • 사용 빈도가 높은 단어
      • 이미지 피처 시각화
      • 데이터 탐색 요약
    • 1.4 베이스라인 모델 실행
      • 1.4.1 실행 코드 가져오기
      • 1.4.2 필요 패키지 설치하기
      • 1.4.3 대회 데이터 저장
      • 1.4.4 학습 데이터와 평가 데이터 나누기
      • 1.4.5 베이스라인 모델 학습하기
      • 1.4.6 베이스라인 모델로 결과 생성하기
      • 1.4.7 결과 데이터 채점하기
      • 1.4.8 결과 제출하기
    •  
  • ▣ 02장: 쇼핑몰 상품 카테고리 분류 1등 솔루션
    • 2.1 접근 방법
      • 2.1.1 문제 파악
      • 상세 설명 탭 읽기
      • 채점 탭 읽기
      • 2.1.2 데이터 구성 확인
      • 2.1.3 머신러닝 파이프라인 구현
      • 데이터 전처리(Data Preprocessing)
      • 학습(Training)
      • 추론(Inference)
      • 리더보드 제출
      • 성능 개선 방법
    • 2.2 실행 환경 구축
      • 2.2.1 아나콘다 설치하기
      • 아나콘다 실행하기
      • 작업 디렉터리 생성하기
      • 2.2.2 파이토치 설치하기
      • 2.2.3 git 설치하기
      • 2.2.4 주피터 노트북 실행하기
    • 2.3 솔루션 코드 실행
      • 2.3.1 실행 준비
      • 솔루션 코드 다운로드
      • 대회 데이터 다운로드
      • 필요한 패키지 설치
      • 2.3.2 데이터 전처리
      • 2.3.3 학습
      • 배치 사이즈(batch size), 워커(worker) 개수 등의 변경
      • 기본 검증 방법
      • k-폴드 교차검증
      • 5-폴드의 각 데이터 그룹 학습시키기
      • 2.3.4 추론
      • k-폴드 평균 앙상블(k-fold average ensemble)
      • 2.3.5 리더보드에 제출
    • 2.4 솔루션 코드 분석
      • 2.4.1 데이터 전처리
      • 데이터프레임으로 변환
      • 피처 엔지니어링
      • 전처리된 데이터를 저장
      • img_feat 데이터 전처리 및 저장
      • 2.4.2 학습
      • 모델 아키텍처 선정 및 구현
      • 모델 학습 진행
      • 2.4.3 추론
      • inference.py
    •  
  • ▣ 03장: 2회 대회 살펴보기
    • 3.1 대회 설명
      • 3.1.1 브런치의 글 추천은 어떻게 이루어지는가?
      • 유사글 추천 모델
      • 개인화 맞춤 추천 모델
      • 추천할 만한 글을 찾는 타깃팅 조건
      • 내가 좋아할 만한 글을 찾는 랭킹 과정
      • 3.1.2 대회 내용 설명
      • 3.1.3 대회 참여 현황
    • 3.2 대회 평가 척도
    • 3.3 데이터셋 훑어보기
      • 3.3.1 데이터셋 설명
      • 사용자가 본 글 정보
      • 글의 메타데이터
      • 글 본문 정보
      • 사용자 정보
      • 매거진 정보
      • 예측할 사용자 정보
      • 3.3.2 대회 데이터 탐색
      • 브런치에 등록된 글 현황
      • 브런치 글의 소비 데이터 현황
      • 브런치 글의 등록일 이후 경과일에 따른 소비 현황
      • 위클리 매거진의 주기성
      • 신규 사용자 vs. 단골 사용자
      • 사용자 구독 데이터 현황
      • 데이터 탐색 요약
    • 3.4 베이스라인 추천 모델 실행
      • 3.4.1 실행 코드 가져오기
      • 3.4.2 필요 패키지 설치하기
      • 3.4.3 학습 데이터와 평가 데이터 나누기
      • 3.4.4 베이스라인 추천 모델로 결과 생성하기
      • 3.4.5 추천 결과 채점하기
      • 3.4.6 dev.users 사용자 결과 생성하기
      • 3.4.7 결과 제출하기
    •  
  • ▣ 04장: 글 추천 1등 솔루션 따라하기
    • 4.1 2회 대회의 문제 이해
      • 4.1.1 문제 개요
      • 과거 기록의 기간과 예측할 소비의 기간
      • 예측 대상 사용자와 글
      • 성능 평가와 공개 리더보드
      • 4.1.2 성능 평가 지표 및 수상 기준
      • 4.1.3 브런치 서비스 이해
      • 방문 이유와 유입 경로
      • 세션 특성
      • 서비스 이용 패턴
      • 4.1.4 프로그래밍 언어 및 외부 라이브러리
      • 4.1.5 예제 코드 확인하기
    • 4.2 2회 대회의 데이터 이해
      • 4.2.1 글 조회 데이터
      • 데이터 전처리
      • 데이터 분석
      • 4.2.2 글의 메타데이터
      • 4.2.3 사용자 정보
      • 4.2.4 매거진 정보
      • 4.2.5 예측 대상 사용자 정보
    • 4.3 추천 시스템의 기술 이해 및 적용 검토
      • 4.3.1 협업 필터링의 이해
      • 이웃 기반 협업 필터링
      • 세션 기반 협업 필터링
      • 4.3.2 협업 필터링 적용 검토
      • Word2Vec 기반 추천
      • 연속 조회 통계 기반 추천
      • 세션 기반 협업 필터링 적용 기간
      • 4.3.3 콘텐츠 기반 필터링의 이해
      • 4.3.4 콘텐츠 기반 필터링 적용 검토
      • 4.3.5 예외 상황 대응하기
    • 4.4 협업 필터링 구현
      • 4.4.1 모델 생성 코드 살펴보기
      • 4.4.2 예측 코드 살펴보기
      • 4.4.3 성능 평가
      • 협업 필터링 예측 결과 생성
      • 협업 필터링 성능 평가
      • 협업 필터링 튜닝
    • 4.5 콘텐츠 기반 필터링 구현
      • 4.5.1 예측 코드 살펴보기
      • 4.5.2 Doc2Vec 데이터 전처리 살펴보기
      • 4.5.3 Doc2Vec 모델 생성 코드 살펴보기
      • 4.5.4 성능 평가
      • 콘텐츠 기반 필터링 예측 결과 생성
      • 콘텐츠 기반 필터링 성능 평가
    • 4.6 앙상블 구현
      • 4.6.1 예측 보조 함수 살펴보기
      • 4.6.2 예측 추가 함수 살펴보기
      • 4.6.3 메인 코드 예측 준비 부분 살펴보기
      • 4.6.4 메인 코드 앙상블 부분 살펴보기
      • 4.6.5 성능 평가
    • 4.7 최종 결과 제출하기
      • 4.7.1 깃허브 저장소 만들기
      • 4.7.2 깃허브 저장소에 코드 및 설명 올리기

아레나 1등 노하우 깃허브 주소