Spotifyの機械学習な話
みなさん、Spotifyって知ってますか?
超有名な音楽配信サービスです.
Spotifyも機械学習を応用しているんだよ,って話を見つけたので勢いで書いています.
目次はこんな感じです.
最近のストリーミング配信な話
最近,私たちの生活の中で,「ストリーミング配信」が占める割合ってどんどん大きくなってきてると思うんです.
映像の配信で言えば,Netflix,Hulu,Amazon Prime とかが有名だと思います.日本の各テレビ局とかも,見逃し配信とかをWeb上でやってたりしますよね.
音楽のストリーミング配信で考えてみても,Apple Music,Spotify,LINE MUSICとか,色々あります.
そんな私も常日頃からNetflixもSpotifyを愛用しているわけですが,NetflixとかSpotifyとかのコンテンツを提供している会社にとって,「レコメンド」ってすごく重要な機能だと思うんです.
映像とか音楽とか,いってしまえば芸術に含まれるものって,なんで自分がそれが好きなのか,言葉に表すのが難しかったりするじゃないですか.なんかわからないけど,直感的にそれが好きってこともあると思うんです.
例えば,「こういう感じの曲好き!同じような雰囲気の曲ないかな?」って思うことありませんか?
でも,検索するのって難しい.だから,レコメンドって重要ですよね.
Spotifyの機械学習な話
Spotifyは,毎週決まった曜日に,Discovery Weeklyっていう自分だけのプレイリストを作ってくれるんだけど,これがまた秀逸で. 普段自分が聴いている音楽を基にして,オススメの曲を30曲,選んでプレイリストにしてくれるんです.
まぁ,それは置いといて,その選曲アルゴリズムってどうなってんだろう,って機械学習を学んでいる僕にとっては,すごく気になるところではありました.こういう記事 もみたことがあったりして,レコメンド界隈の話も面白そうだな,と思ってました. かといって能動的に調べるとかはなかったんですけど...
そんな中,最近こんな記事を見つけました.
Spotify’s Discover Weekly: How machine learning finds your new music
最近なにかときている(らしい) Mediumの記事で,Spotifyがどうやってレコメンドを行なっているのかについて詳しく書かれているんです.
簡単にまとめると,こんな感じです.
- レコメンドのアルゴリズムは今まで単発で用いられることが多かったが,Spotifyは3つのアルゴリズムを組み合わせて利用している.
- その3つとは,協調フィルタリング(Collaborative Filtering),自然言語処理(NLP),音素解析(Raw Audio Model)である
協調フィルタリングとか,音素解析とかはまだ想像できていたからいいんですが,自然言語処理には驚きました.
The exact mechanisms behind NLP are beyond the scope of this article, but here’s what happens on a very high level: Spotify crawls the web constantly looking for blog posts and other written texts about music, and figures out what people are saying about specific artists and songs — what adjectives and language is frequently used about those songs, and which other artists and songs are also discussed alongside them.
Spotifyはその曲やアーティストがどういう風に評価されているかっていう情報も集めてきているらしい.そのクローリングだけでも結構途方なのに,それでいて,協調フィルタリングとか音素解析とか違う処理もして,全世界からの通信をさばいて,大量の音楽をストレージしておけるSpotifyの懐のでかさを垣間見ました.
Spotifyで働いたりするのも楽しいんだろうなぁ...