Spotifyって機械学習をどう活用してるの?⇒元社員がQuoraで回答

Q&AサイトのQuoraに、先月こんな質問があがっていました。

「Spotifyはどのようにして機械学習で成果を出してきたのでしょうか?機械学習を当初から重要視していたのか、もしくは途中からキャッチアップしたのでしょうか?」

1

この質問に対して、2008年~2015年まで同社にて機械学習チームを率いていたErik Bernhardssonという人物が回答を寄せています。

機械学習も活用した楽曲リコメンドに力を入れるSpotify。その中の人だった彼が、若干の内部事情も含めて同社による取り組み状況を明かしていました。

興味深い内容だったので、少し補足しながら彼の回答を紹介していきたいと思います!

Spotifyにおける機械学習の重要性

Bernhardsson氏によるコメントを紹介する前に、Spotifyにおける機械学習の重要性について触れておきたいと思います。

言わずもがなですが、Spotifyはスウェーデンを本拠地とする音楽ストリーミング配信サービスの最大手。同社は、各ユーザーに最適な楽曲をリコメンドする機能を実現する仕組みの一部として、機械学習を取り入れていいます。

2011年に1500万曲だったSpotifyによる配信楽曲数は、いまや4,000万曲以上にまで膨れ上がっています。この膨大な楽曲群の中から、一人のユーザーが自力で好みの曲を探しきることは不可能です。

そこで重要になってくるのが楽曲のリコメンド機能。同機能を通じて、自分では思いもよらなかった新しい曲と出会えることも、この手のサービスの魅力です。

Spotifyはリコメンド機能として、毎週月曜にお薦めの楽曲群を配信してくれる「Discovery Weekly」を2015年にローンチ。同社でプロダクト・ディレクターを務めるMatthew Ogle氏は、「Discover Weekly」について、次のように豪語しています。

「仮に世界中にリスナーが20人しかいないようなニッチで変わったミュージシャンがいたとする。我々ならその20人とミュージシャンをつなげることができる」。

実際にユーザーの好みを把握するDiscovery Weeklyの精度に驚愕する人も出てきています。「精度が高すぎてもはや怖い」との声も。

毎週の配信を手ぐすね引いて待っているユーザーも多いのでしょう。システムの不具合によってDiscovery Weeklyの配信が遅れた時には、「生きる意味を見失わないようにすることで精いっぱいだ」と嘆くユーザーが出る始末。

こうした背景がありつつの、「Spotifyってどうやって機械学習で成果を出してきたの?」という先の質問が出てきたのでしょう。

当初は協調フィルタリング中心

QuoraでのBernhardsson氏によるコメントによると、Spotifyのリコメンド機能の開発は、2012年まではサイドプロジェクトとして彼一人で担当していたとのこと。

初期は「協調フィルタリング」と呼ばれる手法に注力するようにしたことで、一定の成果が出るようになったと語っています。協調フィルタリングとは、ユーザーによる過去の行動履歴から類推した好みをもとに、おすすめを提示する方法です。

しかし単純な協調フィルタリングの欠点は、ユーザーによるレビューや購買といった行動にあらわれた物事しか評価できない点。それではユーザーの好みを正確に評価しきれません。

例えばあるジャンルの音楽を全く聴いていないユーザーがいたとしても、嫌いだからではなく単に知らないからかもしれません。

また普段はロックばかり聴いているユーザーが、ある日子供向けの音楽ばかり流したとしても、それは自分の子どものために流しただけという場合もあります。こうした文脈を考慮しないで、子ども向けの曲ばかりリコメンドしてしまっては、「なんだ、分かってないな」となってしまいます。

そこで協調フィルタリングをベースとしつつも、行動履歴としてあらわれない要因を統計的に把握する手法を開発したことで、さらに精度が改善されたといいます。

また2014年に、ビッグデータを駆使した音楽リコメンデーションエンジン「The Echo Nest」を買収したことも大きな契機だったそう。

The Echo Nestは、楽曲のテンポやコード、ピッチなどの音楽的要素や、楽曲に関するネット上の情報を解析できます。これによって協調フィルタリングでは難しかったセマンティック分析、つまり楽曲そのものを分析した上でのリコメンドができることになります。

ただBernhardsson氏によると、こうした技術がSpotifyのリコメンド機能に活かされることはなかったそう(理由は書かれていませんが)。それよりもThe Echo Nestにいた優秀な人材が流入してきたことのメリットのほうが、はるかに大きかったとのこと。

ディープラーニングの活用

さらに2014年にインターンとして入社してきたSander Dieleman氏による取り組みをきっかけに、Spotifyによるディープラーニング(深層学習)の活用が本格化したといいます。Dieleman氏は、現在Google傘下のDeepMind社でリサーチサイエンティストを務める人物です。

Bernhardsson氏によると、現在のDiscovery Weeklyの仕組みは、協調フィルタリングをベースにしつつ、ディープラーニングで補強した形ではないかとしています(Bernhardsson氏はDiscovery Weeklyローンチ前に退社しているので、あくまで推測)。

協調フィルタリングとディープラーニングのかけ合わせによるリコメンドとは、どういうことなのでしょうか?

Quoraの回答には詳細がなかったので、Dieleman氏による過去のブログ記事をみてみます。

Dieleman氏によると、協調フィルタリングの欠点は、リコメンド対象がメジャーで人気の楽曲に偏りがちになってしまうこと。過去の購買パターンをもとに分析するため、データ量の多い人気曲が目立ってしまうのです。

「これではリコメンド内容が退屈で予測しやすいものになってしまう」というのがDieleman氏の懸念でした。

ユーザーが過去にまだ出会ったことのない新しい曲、もしくは非常にニッチな曲もリコメンドできる必要があります。

そのために彼が考えたのが、協調フィルタリングとディープラーニングを組み合わせた手法。ものすごくざっくり説明すると、この手法はリコメンドする曲を選ぶために、

・協調フィルタリングなどによってユーザーの好みの楽曲リストを作成
・その上で共通点の多い楽曲リストを持つ他のユーザーを抽出
・抽出された他のユーザーによる楽曲リストの中から、ユーザーの好みと「似ている」曲を選んでリコメンドする

というやり方。この「似ている」曲を判別するために、曲の音声シグナルを解析した上で、ニューラルネットワークによる学習を行っているそう。

自分と共通点の多い他のユーザーのプレイリストの中から、まだ自分のプレイリストにない「似ている」曲をリコメンドしてくれるので、未知の曲でありつつ好みの曲である可能性が高いというわけです。