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) 추가 원인 분석
- 웹 서비스에 대하여 사용자들이 어떠한 불만을 가지고 있는지를 파악하고, 이를 기반으로 모델의 성능 및 서비스의 품질을 개선해나감