- 논문 링크(1425회 인용)
Summary
- weighted matrix factorization을 이용해 음악의 latent factor vector을 추출하고 이를 target y로 삼는다.
- audio signal에서 time-frequency representation을 추출하고 neural network의 입력값으로 넣는다. 이때 cnn을 사용한다.
- WMF로부터 추출한 latent factor vector와 audio signal로부터 추출한 time-frequency representation가 유사해지도록 학습을 진행하고 학습한 latent vector 기반으로 유저에게 음악을 추천한다.
- 음악의 audio signal을 기반으로 생성한 latent vector을 사용하여 추천을 하기 때문에 content-based recommendation으로 볼 수 있다.
Motivation
- 음악 추천 분야에서는 음악의 종류가 매우 많기 때문에 새로운 음악이 아닌 인기있는 음악이 대체로 추천되는 cold-start 문제를 해결해야 좋은 품질의 추천을 유저에게 할 수 있다.
- CF는 유저들이 소비한 아이템을 기반으로 추천을 진행하기 때문에 새로운 아이템에 대한 추천 빈도는 낮을 수밖에 없다.
- content-based 추천은 이런 cold-start 문제에서 CF보다는 상대적으로 자유롭다. 본 논문에서는 음악추천 시에 cnn을 활용하여 음악의 audio signal로부터 latent vector을 생성하고 이를 추천에 활용하는 content-based 추천을 제안한다.
Approach
Weighted matrix factorization
WMF는 implicit feedback을 이용해서 confidence 계수를 정의하고 유저와 아이템에 대한 latent factor를 학습한다. 학습시 사용하는 변수와 objective function은 아래와 같다.
- $p_{ui} = I(r_{ui} > 0)$: 유저 u가 음악 i을 들었는지 여부를 나타낸다.
- $c_{ui} = 1 + \alpha \log (1 + \epsilon^{-1}r_{ui})$: 유저 u의 음악 i에 대한 선호정도를 나타낸다. 많이 들으면 들을수록 값이 커진다.
- $\min_{x_{*}, y_{*}} \sum_{u,i} c_{ui} (p_{ui} - x^T_u y_i)^2 + \lambda (\sum_u ||x_u||^2 + \sum_i ||y_i||^2)$
- $x_u, y_i$: 유저 u에 대한 벡터, 아이템 i에 대한 벡터
- L2 정규화를 통해 overfitting을 방지한다.
- 관측된 데이터에 대해서만 최적화하는게 아니라 모든 데이터에 대해서 최적화를 진행한다.
- 이때, 연산시간을 줄이기 위해서 최적화 기법으로 ALS을 사용한다.
Predicting latent factors from music audio
- 본 논문에서 음악으로부터 latent factor을 추출하는 과정은 regression 문제로 인식한다.
- 유저x음악 행렬에서 WMF을 통해 얻은 음악의 latent vector을 ground truth로 보고 이를 예측하는 방향으로 모델을 훈련시키는 것이다.
- 이때 MIR(Music Information Retrieval)에서 쓰이는 고전적인 방법과 cnn을 이용한 방법을 사용하여 실험을 진행한다.
Bag of words representation
- MIR에서 audio signal을 벡터로 변환하는 작업 중 많이 쓰이는 방법으로 벡터를 추출한다.
- 이 벡터를 PCA를 통해 차원 축소를 하고 1000개의 hidden units을 layer로 가지는 MLP을 학습한다.
- 이때 사용되는 ground truth는 WMF로부터 생성된 음악의 latent vector이다.
Convolutional neural networks
- neural networks의 입력값으로 넣기 위해 autio signal로부터 time-frequency representation을 추출한다.
- log-compressed mel-spectrograms을 사용한다. (자세한 과정은 논문 참조. audio processing이라서 생략)
- cnn을 활용해서 latent factors을 예측한다.
- why cnn?
- 서로 intermediate feature을 다른 factors 간에 공유할 수 있다.
- alternating feature extraction layer와 pooling layer을 구성하는 계층적 구조가 다수의 timescale에서 동작하게끔 해준다.
- objective function
- $y_i$: WMF로부터 얻은 latent vector
- $y^{'}_i$: 모델에 의해 얻은 prediction vector
- MSE: $\min_{\theta} \sum_i ||y_i - y_i^{'} ||^2$
- weighted prediction error: $\min_{\theta} \sum_{u,i}c_{ui}(p_{ui} - x^T_u y^{'}_i)^2$
Results
가장 인기있는 9330개의 음악에 대한 데이터의 학습 결과
- CNN 방법이 mAP와 AUC 방법에서 더 나은 성능을 보인다.
- WPE로 학습한다고 해서 더 나은 결과를 얻는 것이 아니다.
모든 음악에 대한 데이터의 학습 결과
- CNN 방법이 월등히 좋다.
추천 결과
- 음악에 대한 벡터들간에 코사인 유사도를 통해 일부 음악과 가장 유사한 음악들을 리스트업했다.
- WMF로 학습한 벡터에 비해 cnn을 통해 생성된 벡터를 사용했을 때 더 다양한 음악이 추천되는 것을 확인할 수 있다.
Conclusion
- audio signal을 neural network의 input으로 변환하는 과정이 정확히 이해가 가질 않아서 아쉽다.
- cnn을 사용한다고 했는데 layer는 얼마나 쌓았는지 등 모델 아키텍쳐가 상세하게 나오지 않아서 이해가 부족하다.
- 이해가 안 가는게.. WMF를 ground truth로 하고 cnn을 통해 벡터를 학습했으면, 그 벡터고 WMF와 비슷한 벡터가 나오는 것이 아닌가? 근데 결과가 다르게 나오는 것이 정확히 이해가 가지를 않는다.
- 100% 이해를 하지 못한 논문..
댓글