MMCF : Multimodal Collaborative Filtering for Automatic Playlist Continuation[.,2018]

Sungchul Kim·2021년 12월 27일
0

Recommender-system

목록 보기
2/3
post-thumbnail

Introduction

온라인 음원 스트리밍 서비스에 대한 관심이 점점 증가함에 따라, automatic playlist continuation 연구가 진행중에 있습니다.

Automatic playlist continuation이란?

Automatic playlist continuation(APC)
music recommendation task로, 주어진 playlist에 대하여 관련된 track을 추천해주는 시스템이다. E.g, Spotify, Last.fm, Apple

본 연구에서는 기존에 존재하는 CF model의 여러가지 문제점을 언급합니다. 문제점은 아래와 같습니다.

  • popularity bias
  • cold start problem
  • context 정보들을 다루지 않는다.

이러한 문제점들을 해결하기 위해 저자는 multimodal collaborative filtering model(MMCF)을 제안하였습니다. MMCF는 autoencoder 그리고 character-level cnn model을 결합한 model입니다.

Autoencoder에선 playlist와 artist 정보를 사용하였고, character-level cnn인 경우 title 정보를 사용하였습니다.

Preliminaries

기존의 autoencoder는 playlist, contents(artist)를 concatenate시켜서 playlist를 복원하는데 초점을 두었습니다. 이 방법은 contents(artist)로부터 playlist의 latent pattern을 학습하기 어려워 popularity bias와 cold-start 문제를 해결하는 데 어려움이 있다고 지적합니다. 이러한 문제를 해결하기 위해서 본 연구에서는 content-aware autoencoder를 제안하였습니다.

Method

Multimodal collaborative filtering(MMCF)

위의 그림은 저자가 제안한 MMCF입니다. MMCF는 크게 autoencoder, char-CNN으로 구성되어 있습니다.

Autoencoder는 track(playlist) 와 artist 정보를 기반으로 학습을 진행하고, char-CNN은 album title 정보를 기반으로 학습을 진행합니다. (앞에서 언급한 2개의 model은 서로 독립적으로 학습을 진행)

이번 chapter에서는 각 model을 세부적으로 설명하도록 하겠습니다.

Content-aware autoencoder

pp : playlist
apa_{p} : playlist's content (artist)

  • dropout method → model을 좀 더 robust 하게 training 하는 과정입니다.
  • objective function : arg minΘpPL([p;ap],[p^;ap^])\argmin_\Theta\sum_{p\in P}L([p;a_{p}],[\hat{p};\hat{a_{p}}])

hide and seek?

  • playlist, artist를 서로 인접하지 않도록 배열하는 방법.

hide-and-seek 방법은 augmentation기법중 하나로, 학습할때마다 랜덤하게 다른 image patch를 masking하고 학습하는 방법입니다. → image patch들간의 relevance를 찾아가는 방법!

본 연구에서는 hide-and-seek idea를 적용하여 학습하는 과정을 설명합니다.

다시 본론으로 돌아와서, Content-aware autoencoder는 2가지 방식으로 학습을 진행합니다. 하나씩 살펴보도록 하겠습니다.

Setting the artist as 0

  • apa_{p}를 0으로 세팅하게 되면 오직 playlist만 학습에 관여합니다. [p;0][p;0]
  • ppp\overset{\sim}{p} : dropout을 적용했을 때의 corrupted vector를 의미한다.
  • objective function : aΘrgminpPL([p;0],[p^;ap^])\underset{\Theta}argmin\sum_{p\in P} \mathcal L([\overset{\sim}p;0],[\hat{p};\hat{a_{p}}])

Setting the playlist as 0

  • 마찬가지로 p를 0으로 세팅함으로써 오직 artist만 학습에 관여합니다. [0;ap][0;a_{p}]
  • objective function : aΘrgminpPL([0;ap],[p^;ap^])\underset{\Theta}argmin\sum_{p\in P} \mathcal L([0;\overset{\sim}a_{p}],[\hat{p};\hat{a_{p}}])

Setting the weight

  • ppapa_{p}는 학습할 때 관여하지만, playlist를 추천하는 데 초점을 맞추었기 때문에 pp, apa_{p}의 가중치를 서로 다르게 주었습니다. (pp:1.0 apa_{p}:0.5)
  • L(p,p^)=pPpilogp^i+a(1pi)log(1p^i)\mathcal L(p,\hat{p}) = \sum_{p\in P} p_{i}log\hat{p}_{i} +a(1-p_{i})log(1-\hat{p}_{i})

Char-CNN

CharCNN은 pptpt_{p} 간의 pattern을 학습합니다.

tpt_{p}pp의 title을 의미하고, word-level embedding이 아닌 character-level embedding방식을 진행합니다.

(word를 분해하여 단어 안의 character들을 각각 다룬다고 언급)

  • objective function : aΦrgminpPL([p;ap],charCNN(ϕ;tp))\underset{\Phi}argmin\sum_{p\in P} \mathcal L([p;a_{p}],charCNN(\phi;{t_{p}}))

Combining two models

각 모델에 대해 학습을 진행하면 2개의 output이 나오게 됩니다. 이 2개의 output vector를 결합합니다.

2개의 output vector에 대한 가중치를 witemw_{item} , wtitlew_{title} 이라 가정하겠습니다. 일반적으로, witemw_{item}, wtitlew_{title}의 가중치는 동일하게 두고 학습을 진행합니다.그러나, playlist가 많아질수록 autoencoder model이 playlist가 가지는 특성을 잘 학습할 수 있다고 주장합니다. 본 연구에서는 playlist수에 따라 witemw_{item}를 크게 두어 inference 하게 됩니다.

Notation은 아래와 같습니다.

N([p;ap])N([p;a_{p}]) : number of items

I(Tp)I(T_{p}) : importance of the playlist title

witemw_{item} = N([p;ap])N([p;ap])+I(Tp)\frac{N([p;a_{p}])}{N([p;a_p]) + I(T_{p})}

wtitlew_{title} = I(Tp)N([p;ap])+I(Tp)\frac{I(T_{p})}{N([p;a_p]) + I(T_{p})}

즉, N([p;ap])N([p;a_{p}])이 커질수록 witemw_{item}는 커지고 wtitlew_{title}은 작아집니다.

Experiments

Datasets

Spotify Million playlist dataset을 사용하였다.

Dataset은 playlist, playlist title, playlist에 대한 metadata로 이루어져 있다.

각각의 playlist는 5~250개의 track을 가지고 있으며, threshold를 정하여 cut off 하였습니다.

(여기서 threshold는 1,5,10,25,100을 기준으로 실험)

Dataset : Train-test random split

train : 997000 playlists

validation : 3000 playlists

Preprocessing

  • track이 5개 이상이 들어있는 playlist기준
  • 3번 이상 등장하는 artist기준
  • playlist title에서 사용되는 character의 개수는 41개 중 25개만 사용
  • frequency기준으로 truncated진행

Experiments results

위 테이블은 input data에 따른 autoencoder 성능을 나타냅니다.

  • data shuffle, threshold에 따라 실험
  • 그결과 data를 shuffle 했을 때, good
  • track data에 artist data, 성능 상승

위 테이블은 title정보도 포함하여 학습 시켰을 때의 성능을 나타냅니다.

I(TP)I(T_{P}) 가 1일 때 accuracy가 제일 높았고, I(Tp)I(T_{p})가 높아질수록 accuracy가 떨어짐을 알 수 있습니다.
또한 Title leverage(input tracks)가 1일 때 Gain이 약 8% 향상되었습니다. 이는 적은 track data를 이용해도 title도 같이 학습 시켰을 때, accuracy 방면에서 성능 향상에 유의하다고 판단할 수 있습니다.

Conclusions

결론적으로 MMCF model에서는 playlist와 다양한 content들도 같이 학습시킴으로써, 기존 연구가 가지는 문제점을 해결하였습니다.

Autoencoder에서는 hide-and-seek augmentation를 적용하였고, char-CNN model에선 word 대신 character를 적용하였습니다. 각 모델에 대해 독립적으로 학습 시켜 나온 2개의 output vector에 weight를 주어 ensemble함으로써 popularity-bias, cold-start problem을 해결하였습니다.

기존에 읽었던 논문들은 side-information에 대해 가중치를 동일하게 주고 inference를 진행하였습니다. 본 연구에서는 side-information에 각각에 대해 가중치를 달리 주어 inference 하는 점이 인상 깊었습니다. 또한 augmentation 기법 hide-and-seek을 적용했다는 점이 인상 깊었습니다.

profile
김성철

0개의 댓글