MMCF: Multimodal Collaborative Filtering for Automatic Playlist Conitnuation
Oct. 12, 2018•0 likes
1 likes
Be the first to like this
Show More
•1,453 views
views
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download to read offline
Report
Data & Analytics
The slides used for presentation in the 'ecSys challenge workshop 2018'. The challenge is co-organized by Spotify. Our team('hello world!') won the 2nd place.
MMCF: Multimodal Collaborative Filtering for Automatic Playlist Conitnuation
MMCF: Multimodal Collaborative Filtering
for Automatic Playlist Continuation
Team ‘hello world!’ (2nd place), main track
Hojin Yang*, Yoonki Jeong, Minjin Choi, and Jongwuk Lee
Sungkyunkwan University, Republic of Korea
Challenge Set
4
1 2 3 4 5 6 7 8 9 10
# of tracks 0 1 5 10 5 10 25 100 25 100
Title
available
Yes Yes Yes Yes No No Yes Yes Yes Yes
Track order Seq Seq Seq Seq Seq Seq Seq Seq Shuffled Shuffled
# of playlists 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Few tracks in the
first part
Many tracks in the
first part
Many tracks in the
random position
Challenge Set
5
1 2 3 4 5 6 7 8 9 10
# of tracks 0 1 5 10 5 10 25 100 25 100
Title
available
Yes Yes Yes Yes No No Yes Yes Yes Yes
Track order Seq Seq Seq Seq Seq Seq Seq Seq Shuffled Shuffled
# of playlists 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
No tracks in the playlist
How to deal with an edge case?
Challenge Set
6
1 2 3 4 5 6 7 8 9 10
# of tracks 0 1 5 10 5 10 25 100 25 100
Title
available
Yes Yes Yes Yes No No Yes Yes Yes Yes
Track order Seq Seq Seq Seq Seq Seq Seq Seq Shuffled Shuffled
# of playlists 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Scarce information
How to treat playlists with scarce
information?
Challenge Set
7
1 2 3 4 5 6 7 8 9 10
# of tracks 0 1 5 10 5 10 25 100 25 100
Title
available
Yes Yes Yes Yes No No Yes Yes Yes Yes
Track order Seq Seq Seq Seq Seq Seq Seq Seq Shuffled Shuffled
# of playlists 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Various types of Input
How to deal with various types of
input?
Overview of the Proposed Model
➢An ensemble method with two components.
◆ Autoencoder for tracks and metadata for tracks.
◆ CharCNN for playlist titles.
9
Overview of the Proposed Model
➢An ensemble method with two components
◆ Autoencoder for tracks and metadata for tracks
◆ CharCNN for playlist titles
10
Collaborative Autoencoder
14
➢Training with dropout
◆ Some positive input values are corrupted (set to zero).
How to utilize the metadata such
as artists and albums?
1
0
1
1
0
1
1
0
1
0
0
0
0.9
0.01
0.78
0.9
0. 6
0.8Hey Jude
Rehab
Yesterday
Dancing Queen
Mamma Mia
Viva la Vida
dropout
encoder decoder
1
0
1
1
0
1
Training Strategy: Dropout Scheme
➢Dropout ratios vary in the input size.
21
1 2 3 4 5 6 7 8 9 10
# of tracks 0 1 5 10 5 10 25 100 25 100
Title
available
Yes Yes Yes Yes No No Yes Yes Yes Yes
Track order Seq Seq Seq Seq Seq Seq Seq Seq Shuffled Shuffled
# of playlists 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Dropout a lot
Dropout a little
➢Dropout can be sequential or random.
22
1 2 3 4 5 6 7 8 9 10
# of tracks 0 1 5 10 5 10 25 100 25 100
Title
available
Yes Yes Yes Yes No No Yes Yes Yes Yes
Track order Seq Seq Seq Seq Seq Seq Seq Seq Shuffled Shuffled
# of playlists 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000 1,000
Dropout
the back part
Dropout
randomly
Training Strategy: Dropout Scheme
CharCNN for Playlist Titles
➢An ensemble method with two components
◆ Autoencoder for tracks and metadata for tracks
◆ CharCNN for playlist titles
23
Character-level CNN for NLP
➢Effective for capturing spatial locality of a
sequence of texts
24
I like this
song
very
much
0.1 0.3 0.2 0.6
0.2 0.6 -1.2 -0.2
-2.1 0.2 0.1 0.4
-2.1 0.9 -3.1 1.4
0.1 0.3 -0.2 0.1
0.4 0.1 0.7 0.1
I
like
this
song
very
Filter (3 by k )
2.2
2.3
-1.3
0.9
max
pooling
Conv layer
2.3
Feature
much
k-dimension embedding
convolutional
Character-level CNN for NLP
➢Effective for capturing spatial locality of a
sequence of texts
25
I like this
song
very
much
0.1 0.3 0.2 0.6
0.2 0.6 -1.2 -0.2
-2.1 0.2 0.1 0.4
-2.1 0.9 -3.1 1.4
0.1 0.3 -0.2 0.1
0.4 0.1 0.7 0.1
I
like
this
song
very
Filters (3 by k )
convolutional
2.2
2.3
-1.3
0.9
max
pooling
2.3
Feature
much
k-dimension embedding
Conv layer
2.2
2.3
-1.3
0.9
Conv layers
2.2
2.3
-1.3
0.9
1.2
2.4
-1.1
0.4
max
pooling
2.3
1.2
2.4
Feature vector
convolutional
CharCNN for Playlist Titles
➢The playlist title is represented by a short text, implying
the abstract description of a playlist.
➢Leverage character-level embedding instead of
word-level embedding.
26
Conv layers
Feature vector
Combining Two Models
➢The accuracy of the AE relies on the number of
tracks in a playlist.
◆ Dynamic: Set weights according to the number of items.
28
Items
Playlist Title
Chill songs
0.7
0.4
0.9
0.1
0.2
0.1
0.2
0.3
0.7
0.1
0.6
0.4
0.7
0.2
0.2
AE
CNN
𝑤_𝑖𝑡𝑒𝑚 = 5
𝑤_𝑡𝑖𝑡𝑙𝑒 = 1
Combining Two Models
➢The weight of two models is combined
dynamically depending on the size of input.
➢The playlist title is primarily useful for playlists with
very few tracks.
29
sequential shuffled
Title leverage 0 1 5 10 25 100 25 100
Item only - 0.121 0.156 0.184 0.216 0.172 0.317 0.303
Title only 0.078 - - - - - - -
Constant(0.5) 0.078 0.131 0.158 0.181 0.211 0.161 0.310 0.292
Dynamic 0.078 0.131 0.158 0.184 0.216 0.172 0.317 0.303
Gain(%) - - - +1.6 +2.3 +6.8 +2.2 +3.7
* R-precision