Flow Moods: Recommending Music by Moods on Deezer (2022)

- Flow Moods
- 재생 context를 반영한 추천을 하기 위해
 
- 사용자가 여섯 가지 미리 정의된 mood(“Chill”, “Focus”, “Melancholy”, “Motivation”, “Party”, “You & Me”) 중에서 현재 mood를 선택하도록 안내
 
- 목표: 사용자가 선택한 mood에 맞는 개인화된 재생 목록을 추천
 
 
- 곡 - mood 맵핑
- Deezer의 전문 music curator들 전문성을 바탕으로 수천 곡의 노래에 대해 각 여섯 가지 mood에 해당하는지 또는 해당하지 않는지 mood annotation을 수동으로 부여 → ground truth로 사용
 
- 각 노래의 audio signal로부터 VGG-like convolutional neural network를 사용하여 256-dimensional embedding vector를 계산 (musicnn 라이브러리)
 
- 이 벡터들을 input으로 사용하여 여섯 개의 random forest binary classifiers를 학습 → 곡별로 각 여섯 개의 mood에 대한 score를 얻음
 
 
- 이 score를 기존 추천 시스템과 결합해 개인화된 mood-specific playlist를 생성
- user-song embedding space에서 각 사용자에게 가까운 노래를 추천하는 기존 방식 + 선택된 mood에 대해 고정된 threshold보다 큰 score를 가진 노래만 filtering
 
- 요청된 mood와 관련된 충분한 neighbor를 가지고 있지 않은 사용자를 위해 미리 선정된 노래를 추천하는 fallback system도 포함
 
 
- deployment
- mood score, embedding vector, metadata를 포함한 노래 관련 데이터는 매일 Cassandra cluster에 export
 
- mood classification model의 변경 사항 등을 반영하기 위해 매주 업데이트
 
- 노래 filtering, 재정렬, 사용자 피드백에 대한 적응을 포함한 playlist generation 작업은 Scala server에서 계산
 
- Faiss library를 포함하는 Golang application을 통해 ANN