[ Recommender System ]
26. Deep Content-based music recommendation
( 참고 : Fastcampus 추천시스템 강의 )
Abstract
- music recommendation에 대한 수요 증가 ( ex. Spotify… )
- Latent Factor Model을 사용한 recommendation
- Latent Factor
- 사용자가 이 음악을 좋아할까? (X)-
- 음악 자체의 data만을 사용 (O)
-
Bag-of-words & Deep CNN
-
Semantic gap이 존재
-
Semantic gap ?
음악의 ‘오디오’만을 사용하여 추출하기 때문에, 메타 정보 (가수, 출시 년도) 등에 대해서는 파악 불가하다
여기서 발생하게 되는 gap을 의미!
-
1. Introduction
Music Recommendation은 매우 복잡 ( 너무 다양한 장르! )
대부분의 추천은 패턴에 의존
Content-based music recommendation
- item과 item 사이의 similarity
- meta data 사용 ( 가수, 앨범, 발매 년도)
- BUT 단순한 추천 ( ex. 가수 기준으로만 추천 )
Collaborative Filtering
- 사용자/아이템 기반의 neighborhood-based 방법
- 사용자/아이템의 latent를 modeling하는 model-based 방법
Semantic gap in music
-
사용자의 이용 정보(=sparse data) 등과 다르게, 음성 신호는 노래만 있으면 얻어낼 수 있음
( 보다 풍부한 정보 )
-
사용자 선호도에 영향을 끼치는 음악의 특징 & 신호에는 Gap이 존재
( High level properties (ex. 장르, 분위기, 가수의 유명도 등)은 음성신호에서 알아내기 어려움 )
-
음성신호를 가공한 MFCC를 사용
DeepCNN을 학습 & latent factor를 예측 \(\rightarrow\) 이를 통해 semantic gap을 줄이고자!
2. Dataset
1,000,000개의 노래
- meta data
- audio features
3. Weighted Matrix Factorization
재생 횟수 \(r_{ui}\)
- \(r_{ui}\) 가 높다 = 좋아하는 노래다\
두 가지의 variable
- 1) Preference variable : \(p_{u i}=I\left(r_{u i}>0\right)\)
- 유저 \(u\)가 음악 \(i\)를 들었는지 여부
- 2) Confidence variable : \(c_{u i}=1+\alpha \log \left(1+\epsilon^{-1} r_{u i}\right)\)
- preference에 대해 확신을 하는 정도
- 재생 횟수 \(r_{ui}\)에 대한 함수 & 높을 수록 더 선호
최종적인 objective function
- \(\min _{x_{*}, y_{*}} \sum_{u, i} c_{u i}\left(p_{u i}-x_{u}^{T} y_{i}\right)^{2}+\lambda(\sum_{u} \mid \mid x_{u}\mid \mid^{2}+\sum_{i} \mid \mid y_{i}\mid \mid^{2})\).
4. Predicting latent factors from music audio
Predicting latent factors = Regression with audio!
2가지 방법
- 1) Bag-of-words
- 2) Deep CNN
vs
- WMF에서 얻은 latent factor vectors를 baseline으로
5. Bag-of-words Representation
step 1) Audio에서 MFCC를 추출
- ( = 중요한 정보만 keep )
step 2) MFCC를 vector quantize ( with K-means clustering )
- \(N\)개의 feature vector \(x\)를 \(k\)개의 \(y\) 로
step 3) Bag-of-words representations
- 모든 노래의 count 횟수를 사용
step 4) Dimension reduction with PCA
6. Deep CNN
[ 학습 & 예측 과정 ]
step 1) Intermediate time-frequency representation을 모델의 input올
- 3초 단위로 sampling
step 2) consecutive window averaging으로 전체 Audio의 latent factor를 예측
Extraction & Pooling layer로 time-scale에서 작동…따라서 CNN도 음성에사용 OK
Loss Function
-
방법 1) MSE
-
방법 2) WPE ( Weighted Prediction Error…WMF의 최적화 함수 )
\(\min _{\theta} \sum_{u, i} c_{u i}\left(p_{u i}-x_{u}^{T} y_{u}^{\prime}\right)^{2}\).
7. Latent Factor Prediction : Quantitative Evaluation
특이점 : (성능) CNN with MSE> CNN with MSE
-
WPE에는 가중치 O
-
따라서, 노래의 중요성/인기도가 비례하여 loss 에 반영됨
이로 인해, 결국 인기 있는 노래에 대해서만 latent feature를 잘 학습하게 되는 문제가!
8. Latent Factor Prediction : Qualitative Evaluation
WMF의 추천
- 특정 가수에 집중해서 추천
DeepCNN
- 다양하게 추천!
9. Conclusion
- Deep CNN을 사용하여 latent factor 예측
- 유명하지 않은 (새로운) 노래 추천에 Good
- 기존의 모델들보다 성능 Good
- Music Information Retrieval 분야에서의 효과 기대