Spotifyのレコメンド機能が最強と思える理由はAI機能の仕組みにあった

AIサービスと生成AI

Spotifyの有料版”Premium”には、やめられなくなる中毒性があります。他の音楽配信サービスと一線を画すその強みは、使い続ければ使い続けるほど的確になっていく、圧倒的に優れたレコメンド機能。AI(機械学習)を活用したその仕組みについて調べてみました。

一般的なレコメンド機能の仕組み
Spotifyのレコメンド機能は何が違うのか?
Spotifyのレコメンド機能は日々進化する

スポンサーリンク

一般的なレコメンド機能の仕組み

以前書いた記事(音楽好きな人はSpotifyは有料サービス Premiumがおすすめ。そのワケは?)では、Spotifyが提供する強力なレコメンド機能が、至福の音楽体験を提供してくれる点について説明しました。

それでは、Spotifyの強力なレコメンド機能は、技術的にどのように実現されているのでしょうか?

では、Spotifyのレコメンド機能について推測する前に、一般的なレコメンド機能についてみてみましょう。

Amazonや楽天のようなショッピングサイトでも、NetflixやAmazon Prime Videoのような動画配信サービスでも、「あなたへのおすすめ」と呼ばれるAI(機械学習)を使ったレコメンド機能が必ず実装されています。

このレコメンド機能は、「協調フィルタリング」と「コンテンツベースフィルタリング」の2種類のどちらか、あるいは両方の組み合わせで作られていると思われます。

両者の特徴をおおまかにまとめると以下のようになります。

コンテンツベースフィルタリング 協調フィルタリング
レコメンドの仕組み 商品の特徴から推薦 訪問者と似た行動履歴をもつ利用者のデータをもとに推薦
セレンディピティ(素敵な偶然に出会いやすさ) ✗ 不利 ○ 有利
商品知識を管理するデータベース ✗ 必要 ○ 不要
Cold Start(履歴が少なくても推薦できるか) ○ 有利 ✗ 不利

協調フィルタリングって何?商品のおすすめ機能を学ぼう!(出典: umedyメディア)

久しぶりにAmazonでなにか商品を検索したときに、そのあとしばらく似たような商品が「あなたへのおすすめ」に大量に出続けることはないでしょうか?

Amazonでの購買履歴が少ないとすると、「協調フィルタリング」であなたと似た購買行動の人の履歴をたどることができません。この場合は、「コンテンツベースフィルタリング」で検索した商品と似たような商品を勧めてきているのではないかと思われます。

ただ、「協調フィルタリング」とつかっても、「コンテンツベースフィルタリング」を使っても、多少の検索履歴・購買履歴では的確なものをすすめるのはむずかしいでしょう。

スマートウォッチをちょっと検索したくらいで、毎回 いろいろなスマートウォッチをおすすめされるのもうっとうしいですし、紅茶のティーバッグを1箱買ったぐらいで、いろいろな種類の紅茶のティーバッグのまとめ買いを勧められても、買ったばっかりじゃないかとムッとしてしまいます。

ショッピングサイトや動画配信サービスでおすすめされたもので、「こんないいものを紹介してくれてありがとう」となった記憶は個人的にはほぼ皆無です。

Spotifyのレコメンド機能は何が違うのか?

さて、上記で説明した一般的なAIによるレコメンド機能では、Spotifyの優れた体験は実現できません。Spotifyはどのような仕組みを使っているのでしょうか?

以下のサイトによると、Spotifyでは先程の「協調フィルタリング」の他に、最低でも2つのAI(機械学習)の仕組みを活用しているようです。

How does Spotify use Machine Learning?(Spotifyは機械学習をどのように活用しているか?)

1.協調フィルタリング(Collaborative filtering)
2.自然言語処理(Natural language processing)
3.強化学習(Reinforcement learning)

1.協調フィルタリング(Collaborative filtering)

以下の文によるとSpotifyでは加入者が作成するプレイリストを重視しています。

4億600万人の加入者が作成する数十億のプレイリストから、好みが似ているユーザーを判別し、新たなユーザーに 別のユーザーが聴いている曲をおすすめするのです。

協調フィルタリングとは、推薦アルゴリズムの一種で、多くのユーザーのデータを集めて、あるユーザーの嗜好を予測するものです。Spotifyの加入者4億600万人全体では、特定のクラスターが聴く音楽の種類に数多くの類似性が生じています。
2021年10月現在、Spotifyの楽曲数は8200万曲、プレイリストは40億件。Spotifyは、加入者が作成した数十億のプレイリストを、ユーザー体験を最適化するための有用なデータを得るための道と捉えています。
原文)Collaborative filtering is a type of recommendation algorithm that makes predictions about one user’s preferences based on a collection of data from many users. Across Spotify’s 406 million subscribers, numerous similarities occur between the types of music certain clusters of people listen to.

As of October 2021, Spotify had 82 million songs, and 4 billion playlists. Spotify sees the billions of playlists that subscribers have created as paths to obtain useful data to optimize the user experience.

ユーザーの類似性を、聴いている曲だけでなく、作成したプレイリストからも判別しているようなのです。ユーザーのグループ分けの精度がより確かになることが期待できます。

2.自然言語処理(Natural language processing)

さて、先程の記事(How does Spotify use Machine Learning?)によると、Spotifyは、曲の歌詞を分析し、どんな感情を表している曲なのかを分類した上で、ユーザーごとのプレイリストをつくっています。

SpotifyのNLPは、楽曲で使われている言語に基づいて楽曲を分類します。キーワードがピックアップされ、楽曲が特定の感情をどの程度示しているかを測ることができる重みが付けられます。これはspotifyのアルゴリズムが、どの曲とアーティストを、同じプレイリストに入れるかを判別するのに役立ち、より簡単にレコメンド・システムに展開することができます。
原文)Spotify’s NLP then categorized songs based on the language used to describe them. Keywords will be picked out and assigned a weight, which can measure how much a song exhibits a particular emotion. This helps spotify’s algorithms identify which songs and artists belong in playlists together, which can then be more easily deployed to the recommendation system.

多くの音楽配信サービスにおける楽曲の分類は、ジャンル(J-POP、ハードロック、ジャズ、クラシックなど)とか曲調(明るい、暗い、スロー、アップテンポなど)、歌手、年代などのいくつかの属性で分類されていたのではないでしょうか?

それに対してSpotifyでは、楽曲内で使われている言葉も、分類の要素として使っているようなのです。この場合、同じ歌い手が、同じメロディの曲を違う歌詞で歌った場合、違う分野の曲と識別できることになります。例えば、真面目な恋愛ソングか、パロディのおふざけソングか、といった具合です。

この分析・分類を年間何万曲もリリースされるすべてについて行っているとしたらすごいことです。

3.強化学習(Reinforcement learning)

Spotifyが提供するDiscover  Weeklyやプレイリストに対する「拡張」機能が、使い込むほど洗練されてくることから、おそらく強化学習も使っているだろうとは予想していましたが、こうもはっきり書かれると空恐ろしい気がします。

新しいコンテンツは、まず協調フィルタリングやNLPを使って購読者に提供されます。その後、加入者は様々なレベルでその曲に関与し(一度だけ聴く、繰り返し聴く、そのアーティストの曲をもっと聴く)、あるいは曲をスキップして関与を断ちます。いずれの場合も、ユーザーはレコメンドがどれだけ成功したかをSpotifyのアルゴリズムに送信していることになります。
New content is first served to subscribers using collaborative filtering or NLP. The subscriber will then engage with the song on varying levels (listen to the song once, on repeat, listen to more songs by the artist) or disengage by skipping the song. In either case, the user is sending information to the algorithm about how successful their prediction was.

Spotifyの場合は、毎週月曜に”Discover Weekly”で、これまでSpotifyのアルゴリズムが学習した成果を特定ユーザーへのレコメンドとして 30曲ほど提供します。

この30曲には、これまでよく聴いていた曲と似たもの、また一部には新たな出会いの可能性としてこれまで聴いていないが気に入りそうな曲が混ざっています。

このすべての曲をユーザーが気に入るわけではありませんが、いくつかは最後まで聴いたり、場合によっては何度も聴いたり、プレイリストに追加したりするでしょう。

この結果をSpotifyのシステムが”学習”し、レコメンドのアルゴリズムがさらに”強化”される、これが”強化学習”なのです。

Spotifyのレコメンド機能は日々進化する

最低でも「協調フィルタリング」「自然言語処理」「強化学習」の3つのAI機能を組み合わせ、加入者がよく聞く曲、レコメンドの気に入り具合、プレイリストの傾向などを日々分析し、その加入者に最適なレコメンドを進化させていくのです。

長く使えば使うほど、AIでレコメンドが的確になっていく。

Spotifyが用意したAIレコメンド機能を加入者自身が育て上げていくイメージです。

この育て上げたレコメンドシステムを置きざりにして、他の音楽配信サービスに乗り換えることはまずないでしょう。自分がつくりあげたレコメンドシステムを、別の音楽配信サービスでつくるには、最低でも半年1年の時間がかかります。

しかも、乗り換え先の音楽配信サービスのAIシステムが貧弱な場合には、Spotifyと同じ快適なレコメンドシステムができる保証はありません。

現在はどうかわかりませんが、今のSpotifyのような体験は、2020年のApple Musicでは私はできませんでした。

なんとなくわかった気になる Apple MusicとSpotifyのレコメンド機能の違い

そうなるとAIシステムへの投資余力がない他の中堅サービスでは実現は難しいと思われます。

Spotifyの研究機関”Spotify R&D”では機械学習のリサーチエリアとしてこちらのような記事も出しています。

Spotify R&Dにおける機械学習の研究分野

SpotifyがAIを活用して利用者に提供する音楽体験には今後も期待しています。