[Boostcamp AI Tech] Machine Learning Project Life Cycle

이성범·2022년 2월 14일
0

Boostcamp AI Tech

목록 보기
30/49

Machine Learning Project Life Cycle

이번 강에서는 Machine Learning Project Life Cycle에 대하여 학습을 진행했다. 본 강의는 과거에 내가 진행했던 OkMugle 프로젝트 내용을 기반으로 정리를 해보았다.

1. Machine Learning Project Flow

Machine Learning Project의 Life Cycle은 기본적으로 다음과 같은 Process의 반복으로 이루어진다.

  • 현상 파악
  • 구체적인 문제 정의
  • 머신러닝 프로젝트 설계
    • 비즈니스 가치 파악
    • 머신러닝을 활용한 문제 접근법의 타당성 확인
    • 목표 설정, 지표 결정
    • 제약 조건 확인
    • 베이스라인 및 프로토타입 제작
    • Metric Evaluation
  • 모델 개발 후 배포 및 모니터링
  • 추가 원인 분석

본 프로세스를 한번 과거에 진행했던 content 기반의 음악 추천 프로젝트인 OkMugle을 토대로 정리해보았다.

1) 현상 파악

  • 사람들은 주로 자신이 선호하는 노래로 구성된 플레이리스트를 직접 생성하여 노래를 듣는다는 것을 발견했다.

2) 구체적인 문제 정의

  • 사람들이 플레이리스트를 보면 자신이 들었던 노래와 비슷한 노래로 구성되어 있다는 것을 발견했다.
  • 그래서 플레이리스트를 직접 생성하는 것이 아닌 자신이 들었던 노래를 바탕으로 플레이리스트를 생성해주는 서비스를 만들기로 했다.
  • 비슷한 노래를 추천해주기 위해 비슷한 노래에 대한 정의를 내려보았다.
    • 멜로디가 비슷한 노래가 존재
    • 분위기가 비슷한 노래가 존재
    • 유사한 상황에서 듣는 노래가 존재 (이별, 여행 등)
    • 장르가 비슷한 노래가 존재
  • 따라서 나는 비슷한 노래에 대한 정의가 다양하기 때문에 이에 맞는 다양한 Embedding을 생성하고, Embedding을 기반으로 비슷한 노래를 추출하여 플레이리스트를 생성하기로 했다.

3) 머신러닝 프로젝트 설계

(1) 비즈니스 가치 파악

  • 대부분의 DJ가 생성해주는 플레이리스트는 사람이 직접 만들어서 제공하기 때문에 비용이 든다.
  • 인터넷 환경에서는 롱테일 법칙에 기반하여 소수의 노래보다 많은 노래가 소비될수록 비즈니스적 가치가 더욱더 증가할 수 있다.
  • 그런데 사람이 아는 노래는 한정적이기 때문에 만들 수 있는 노래의 수가 제한적이다.
  • ML을 활용한다면 모든 노래에 기반한 노래가 추천될 수 있을 것이다.
  • 따라서 본 프로젝트는 회사에게 이윤을 가져다 줄 수 있을 것이다.

(2) 머신러닝을 활용한 문제 접근법의 타당성 확인

  • DJ가 생성했던 플레이리스트 데이터가 존재한다.
  • 플레이리스트 데이터에는 상황에 대한 태그가 존재하여, 상황에 대한 정보를 반영할 수 있는 노래의 임베딩을 생성할 수 있다.
  • 노래의 경우 멜 스펙트로그램 데이터가 존재하여, 멜로디와 분위기에 대한 정보를 반영할 수 있는 노래의 임베딩을 생성할 수 았다.
  • 플레이리스트 데이터는 비슷한 장르의 노래로 구성되어 있어, 장르에 대한 정보를 반영할 수 있는 노래의 임베딩을 생성할 수 있다.
  • ML 기반의 접근법으로 데이터의 패턴을 파악한다면 좋은 노래 임베딩을 생성할 수 있을 것이다.

(3) 목표 설정, 지표 결정

  • 본 프로젝트의 큰 목표는 사용자가 들었던 노래와 유사한 노래를 추천해주는 것
  • 유사한 노래를 생성할 수 있는 다양한 임베딩 모델이 필요함
  • 따라서 Word2Vec, AE, Multimodal 등의 모델을 생성하고 각각의 모델 성능 평가 지표로 CE, MSE, CosineEmbeddingLoss를 사용

(4) 베이스라인 및 프로토타입 제작

  • DJ 생성 플레이리스트의 좋아요를 기반으로 한 간단한 규칙 기반의 모델 생성
  • 상황과 장르에 대한 임베딩을 생성할 수 있는 Music2Vec 모델 생성
  • 분위기와 멜로디에 대한 임베딩을 생성할 수 있는 Time Convolutional Autoencoder 모델 생성
  • 각 임베딩에 대한 정보를 모두 반영할 수 있는 CosineEmbeddingLoss Multimodal 모델 생성
  • 각 임베딩의 코사인 유사도를 기반으로 추천 노래를 구성함
  • 각 임베딩에 대한 추천 결과를 앙상블하기 위하여 Each Embedding Top 3, Socre Total Top 10 등의 Ranking Method 사용
  • 팀내에서 노래 추천 결과에 대한 피드백을 받으며 최적의 성능이 나올때 까지 모델을 반복 학습함

(5) Metric Evaluation

  • 사용자들에게 각 방법에 대한 노래 추천 결과에 대한 투표를 받음
  • 투표 결과에 따라 최적의 모델을 선택함

4) 모델 개발 후 배포 및 모니터링

  • 최적의 모델을 기반으로 배포를 진행
  • 웹서비스 이용에 대한 사용자들의 로그를 기록함
  • 웹서비스에 대한 사용자들의 선호도를 모니터링함

5) 추가 원인 분석

  • 웹 서비스에 대하여 사용자들이 어떠한 불만을 가지고 있는지를 파악하고, 이를 기반으로 모델의 성능 및 서비스의 품질을 개선해나감
profile
Machine Learning Engineer at Konan Technology

0개의 댓글