Spotifyのレコメンデーションエンジンの機械学習アルゴリズムについて解説します

Spotifyが機械学習のエンジニアにスタート年俸10万ドル!というオファーで人材募集をしています。

その募集ページの中にありましたが(現在は表記がないかもしれませんが、、、)


Right ads to the right users to the right time

正しい広告を正しいユーザーに正しい時間に届ける


まさにそのために活用されるのが機械学習であり、力を入れていきたいとSpoifyは明言しています。
それゆえもっとも求められる人材が機械学習エンジニアという事なのでしょう。

機械学習活用の中心領域となるであろうレコメンデーションエンジン。
Spotifyのレコメンデーションエンジンの機械学習活用にについて調べていたところ、面白い記事を見つけたので日本語にして解説します。

Spotifyでは現在、レコメンデーションエンジンのために3つのアルゴリズムを組み合わせて使用している様です。


・協調フィルタリング
・自然言語処理
・オーディオモデル解析



協調フィルタリング

すでに多くのECサイトなどで活用されているのでお馴染みかもしれません。
同じ消費や嗜好の傾向を持つユーザーのデータをもとに他の同傾向のユーザーへのレコメンドを行うというアルゴリズムです。
非常に簡単に説明すると、
「同じ好みのAが所持している商品のうち、Bが所持していないものは、Bも欲しいと思うはずなのでレコメンドする」
と言う様な事が行われるのだと思っていただいて良いでしょう。

Spotifyでも同様で、相関性の高いリスナーが聞いている相関性の高い楽曲をレコメンデーションします。
実際は複雑なモデルとなっているはずですが、ここでは非常に簡単な図で基本的な概念を説明してみましょう。

○は聞いた楽曲
ーはレコメンドされたけれども聞かなかった楽曲
空欄はレコメンドもされていない未聴の楽曲

Aに楽曲のレコメンドをする場合、Aのリスニングデータを元に相関性のあるリスナーを探します。
聞いた楽曲と聴かなかった楽曲の共通割合から相関性を求めます。
図でいうと0.5以上の相関性、つまりCとDを相関性のあるリスナーとしましょう。
Aが聞いていない未聴の楽曲で、CとDが聞いている楽曲のうち、C、D共に聞いているSong7は相関性1.0とする。
Song7はAが気に入る可能性は高い。
と言う事でAにレコメンドされる。
この様な流れとなります。



自然言語処理

Spotifyでは各アーティストや楽曲について人々が話題にする時、一緒にどの様なテキストを使用しているのか?をWEBクローリングによって収集しているそうです。
そして収集したテキストが各アーティスト、楽曲にどのくらい関連性があるのか?を測るため自然言語処理を用いています。
自然言語処理により分析された各テキストはアーティストや楽曲との重要度を数値化された上でタグ付けされます。

例えば、Billie Eilishについて語られている時、generration zというワードが頻繁に一緒に使われているとしましょう。
するとBillie Eilishにはgeneration zというワードは関連性がある、と判断され、他のテキストと比べどのくらいの関連性や重要度を持つのかを数値化、タグとして楽曲データに加えるという様な作業が行われます。
これにより同じタグを持つ楽曲を好んで聞いているリスナーに適切なレコメンドを行う事などを可能にしている様です。

自然言語処理は、画像認識とともにAIの中心の研究領域といってもよく(少々過去形かもしれませんが)、非常に活発に活用かつ有用な成果を多く挙げています。

音楽においてもレコメンドエンジンだけでなく、今後さらに色々な活用事例が出てくる事でしょう。



オーディオ波形解析

すでに何度もお伝えしている通り、Spotifyではオーディオ波形データを画像認識でよく活用されるアルゴリズムであるCNN(畳み込みニューラルネットワーク)を使用してその特徴を解析、数値化しています。

canplay生徒様にはお知らせしてありますがこちらにその概要を記事にしてあります

2017年度版
https://canplay-music.com/2018/12/30/spotify-data/

2018年度版は研究会ですでに発表していますが、いずれまとめて記事にします

見ていただいてお分かりの通り、
ダンス度、エネルギッシュ度、テンポ、調や曲の長さまで色々な楽曲の特徴が抽出されています。
これらの特徴は、各楽曲ごとに数値化されそれぞれ類似性をもってタグ付けされレコメンドに使用されます。

このオーディオ波形データの特徴による分類およびレコメンドは未知の楽曲との出会いに非常に有用です。
先の2つアルゴリズムと違い、音楽そのものの(人間では判断しづらい)類似性から成るデータであり、通常に行われるであろう嗜好に基づくリスナーの視聴行動とは異なる可能性が大いにあるためです。
新しい楽曲との出会いがSpotifyでどんどん可能になっているのは、レコメンデーションエンジンの進化、特にこのオーディオ波形解析の進化に依る所が大きい様です。

このオーディオ波形解析のデータはAPIを使用して誰でも取得し活用する事ができます。
ここで紹介しているオーディオ波形解析以外にもプレーリスト関連のAPIなどが多数公開されています。



新しい音楽との出会いの可能性を高める機械学習活用レコメンドが今後の音楽シーンを変えていく

いかがだったでしょうか?
アプリで視聴中だけでなく、最近Spotifyから頻繁にパーソナライズドされたプレーリストがメールで配信されてきますが、これらのアルゴリズムが使用されているのでしょうね。
あらゆるレコメンド機能やその精度、特に新たな楽曲との出会いが随分可能になってきていて進化したなーと感じていましたがやはり機械学習によるものだったのですね。
今後の音楽シーンの流れ自体にも大きな影響を与える事は間違いないです。

サブスク時代の音楽視聴体験は機械学習を活用した音楽データサイエンスによってこれまでになく進化する事が大いに期待されます。