機械学習があなたの好きな音楽を発見する方法: パーソナライズされた音楽推奨の背後にある科学

機械学習があなたの好きな音楽を発見する方法: パーソナライズされた音楽推奨の背後にある科学

今週の月曜日も、他の月曜日と同様に、Spotify の 1 億人を超えるユーザー全員に新しいプレイリストが配信されました。 「Discover Weekly」と呼ばれるこのプレイリストには、ユーザーが聞いたことがないけれど気に入るかもしれない 30 曲がミックスされています。その効果は魔法のようです。

私自身、Spotify の大ファンで、特に Discover Weekly が大好きです。なぜ?私のことを理解してくれていると思うからです。それは私の人生の中で誰よりも私の音楽の好みをよく知っています。毎週、自分では絶対に見つけられなかったり、気に入るとは思えなかった曲を常におすすめしてくれるので、私のニーズを満たしてくれるので嬉しいです。

外で何が起こっているのか知らない人のために、私のバーチャルな友達を紹介させてください。

[画像の説明: 私の Spotify ウィークリーディスカバリープレイリスト]

驚いたことに、そう思っていたのは私だけではありませんでしたし、Weekly Discover に夢中になっていたのも私だけではありませんでした。ユーザーのコミュニティ全体がそこに集まっていたのです。この流行により、Spotify は取り組みの焦点を再び定め、アルゴリズムベースのプレイリストにさらに多くのリソースを投入することになった。

Dave Howitz: @Spotfiy 毎週発見するプレイリストは、かつて一緒に死にかけた経験のある元恋人のように、不気味なほど私にとって馴染み深いものなのです。

アマンダ・ウィットブレッド: @Spotify Discover Weekly は、もし今プロポーズされたら、私は「イエス」と言うほどに成長しました。

2015年にDiscover Weeklyが初めてリリースされて以来、私はその仕組みを知りたくてたまらなかった(そして私はSpotifyの大ファンなので、そこで働いているふりをしてその製品を調べるのが大好きだった)。 3週間必死にグーグル検索をした後、ありがたいことに、ようやく舞台裏の知識を得ることができました。

では、Spotify はどのようにして毎週 30 曲をユーザーに提供しているのでしょうか?まず、他の音楽サービスがどのように音楽を推奨しているか、そして Spotify が優れている点を詳しく見てみましょう。

オンライン音楽選択サービスの簡単な歴史

[[226464]]

Songza は、2000 年代初頭から、ユーザーにプレイリストを提供するために手動選択を採用し始めました。手動選択とは、いわゆる音楽の専門家やその他の編集者が良いと思う音楽を手動で選択してプレイリストを作成し、リスナーが直接聴くことができることを意味します。 (その後、Beats Music も同じ戦略を採用しました)。手動選択の効果は許容範囲ですが、この方法は純粋に手動選択であり、方法が比較的単純であるため、各リスナーの音楽の好みの微妙な違いを考慮することはできません。

Songza と同様に、Pandora は音楽キュレーション サービス分野における初期のプレーヤーの 1 つでした。曲の属性を手動でタグ付けする代わりに、少し高度なアプローチを使用します。つまり、人々は音楽を聴くとき、それぞれの曲のラベルとしていくつかの説明的な言葉を選択します。さらに、Pandora のプログラムは特定のタグを直接フィルタリングして、類似の曲を含むプレイリストを生成することができます。

同じ頃、MIT メディアラボを拠点とする音楽情報エージェンシー「The Echo Nest」が、音楽のカスタマイズに対してまったく異なる高度なアプローチを採用していました。 Echo Nest はアルゴリズムを使用してオーディオと音楽のテキスト コンテンツを分析して、音楽の識別、パーソナライズされた推奨、プレイリストの作成と分析などを実行します。

***、Last.fm は異なるアプローチを取り、現在でも使用されている戦略を採用しました。つまり、協調フィルタリングを使用して、ユーザーが好む可能性のある音楽を特定するということです。これについては、この記事の後半でさらに詳しく説明します。

では、他の音楽選択サービスが推奨機能を実装している中、Spotify はどのようにしてその魔法のエンジンを使用して、競合他社をはるかに上回るユーザーの嗜好の暗黙の理解を実現しているのでしょうか?

Spotifyの3つの推奨モデル

実のところ、Spotify は単一の革新的な推奨モデルを使用しているわけではなく、むしろ他の企業が使用している最良の戦略のいくつかを組み合わせて、独自の強力な発見エンジンを作成しています。

Spotify は、毎週のディスカバリーを作成するために、主に 3 つの推奨モデルを使用しています。

  • 協調フィルタリング モデル (Last.fm で最初に使用されたモデル)。これは、あなたの行動と他のユーザーの行動を分析することによって機能します。
  • 自然言語処理 (NLP) モデル。テキストを分析することで機能します。
  • オーディオモデル。これは、生のオーディオ チャネル自体を分析することによって機能します。

これらの推奨モデルがどのように機能するかを詳しく見てみましょう。

推奨モデル 1: 協調フィルタリング

[[226465]]

まず、背景を説明します。協調フィルタリングという言葉を聞くと、多くの人がすぐに Netflix を思い浮かべます。なぜなら、Netflix は協調フィルタリングを使用して推奨モデルを実装した最初の企業の 1 つだからです。このアプローチは、ユーザーが投稿した映画レビューを使用して、それらの映画を計算し、他の同様のユーザーに推奨するというものです。

Netflix がこれを成功裏に適用して以来、協調フィルタリングは急速に普及しました。最近では、推奨モデルを実装したい人は誰でも、それを最初の試みとして考えることが多いです。

Netflixとは異なり、Spotifyにはユーザーが音楽をどのように評価しているかについての絶対的なデータはありません。 Spotify が使用するデータは目に見えないフィードバックであり、具体的にはオンラインで曲を聴いた回数や、ユーザーが曲を個人のプレイリストに保存したか、曲を聴いた後にアーティストのホームページにアクセスしたかなどの追加情報です。

しかし、協調フィルタリングとは何でしょうか、そしてどのように機能するのでしょうか?以下は短い会話を使った簡単な紹介です。

何が起こっているのでしょうか? この 2 人にはそれぞれ好みの曲があるようです。左側の人は P、Q、R、S の曲が好きで、右側の人は Q、R、S、T の曲が好きです。

協調フィルタリング システムは、このデータを使用して結論を​​導き出します。

「ふーん。Q、R、Sと二人とも好きな曲が同じなので、似たようなユーザーなのかもしれない。だから、相手が聴いたことがある曲でも、自分が聴いたことがない曲が好きなはず。」

システムは、右側の人に曲 P を体験し、左側の人に曲 T を体験することを推奨します。とても簡単そうに聞こえますね。

しかし、Spotify はこの概念を具体的にどのように適用して、何百万人ものユーザーの好みに基づいて曲の推奨を計算するのでしょうか?

…行列演算はPythonライブラリを使用して実装できます

実際には、ここで言及されているマトリックスは非常に大きいです。各行は Spotify の 1 億 4000 万人のユーザーのうちの 1 人を表し (Spotify を使用している場合は、このマトリックスの行にもなります)、各列は Spotify のデータベースにある 3 億曲のうちの 1 曲を表します。

次に、Python ライブラリは次の長くて複雑な行列分解式を実行します。

計算が完了すると、システムはそれぞれ X と Y という名前の 2 種類のベクトルを生成します。 X はユーザー ベクトルであり、単一のユーザーの音楽の好みを表します。 Y は曲ベクトルであり、単一の曲の特徴を表します。

現在、ユーザー ベクトルは 1 人あたり 1 億 4000 万個、曲ベクトルは 3 億個あります。これらのベクトルの内容は、それ自体では意味をなさない単なる数字ですが、後で比較するときに非常に役立ちます。

自分と似た趣味を持つユーザーを見つけるために、協調フィルタリング システムは自分のベクトルを他のユーザーのベクトルと比較し、最終的に自分に最も似ているユーザーを見つけます。 Y ベクトルの場合も同じプロセスが機能します。つまり、ある曲のベクトルを他の曲のベクトルと比較して、現在見ている曲に最も似ている曲を見つけることができます。

協調フィルタリングはうまく機能しますが、Spotify は別のエンジンを追加することでさらに改善されることを認識していました。ここで自然言語処理が登場します。

推奨モデル2: 自然言語処理

Spotify が使用する 2 番目の推奨モデルは自然言語処理です。これらのモデルのソース データは、名前が示すように、曲のメタデータ、ニュース記事、ブログ、インターネット上のその他のテキストなど、一般的な言語のテキストです。

自然言語処理(コンピュータが人間の言語を理解する能力)は、それ自体が広大な分野であり、感情分析アプリケーション プログラミング インターフェイス(API)を通じて運用化されることがよくあります。

自然言語処理の正確な原理はこの記事の範囲を超えていますが、大まかに説明すると、Spotify は Web 上のブログ投稿やその他の音楽関連のテキストをクロールし、特定のアーティストや曲について人々が何を言っているかを調べます。たとえば、人々がそれらの曲についてよく使用する形容詞や言葉、それらに関連して議論されている他のアーティストや曲などです。

Spotify が収集したデータをどう使うのかはわかりませんが、Echo Nest がそれをどう使うかは教えられます。データを「文化的ベクトル」と「*** コメント セット」に分類します。あらゆるアーティストと曲の何千もの***レビューが毎日更新されます。各コメントには、その説明の重要性 (簡単に言えば、誰かがそのコメントを使用して音楽を説明する可能性) を表す重みが関連付けられています。

[エコーネストで使用されている「文化的ベクトル」または「トップ用語」。ブライアン・ホイットマンの表]

次に、協調フィルタリングと同様に、自然言語処理モデルはこれらのコメントと重みを使用して曲の表現ベクトルを作成し、これを使用して 2 つの音楽が類似しているかどうかを判断できます。かなりクールですよね?

推奨モデル3:オリジナルオーディオモデル

まず、次のような質問をするかもしれません。

しかし、ソフィア、最初の 2 つのモデルからすでに大量のデータが得られています。なぜ音声自体を分析するのでしょうか?

まず、3 番目のモデルを導入すると、すでに優れたこの推奨サービスの精度がさらに向上します。しかし実際には、このモデルを使用するもう 1 つの二次的な目的があります。元のオーディオ モデルで新しい曲が考慮されることです。

シンガーソングライターの友人が Spotify で新曲をリリースしたとします。おそらくリスニング記録が 50 件しかないので、共同でフィルタリングする他のリスナーはほとんどいないでしょう。同時に、オンライン上ではほとんど痕跡が残らないため、自然言語処理モデルはそれを認識しません。幸いなことに、オリジナルのオーディオ モデルでは、新しい曲と人気のある曲が区別されません。そのため、この機能を使用すると、友達の曲も人気曲とともに毎週のディスカバリー プレイリストに表示されるようになります。

さて、次は「どうやって」という部分です。非常に抽象的と思われる生のオーディオデータをどのように分析できるでしょうか?

畳み込みニューラルネットワークを使用!

畳み込みニューラルネットワークは顔認識をサポートする技術でもあります。 Spotify の場合のみ、ピクセルではなくオーディオ データ処理に基づくように若干変更されました。以下はニューラル ネットワーク アーキテクチャの例です。

[画像提供: Sander Dieleman]

この特定のニューラル ネットワークには、画像の左側の広いバーと、右側の 3 つのやや狭いバーで表される 4 つの畳み込み層があります。入力はオーディオ フレームの時間周波数表現であり、連結されてスペクトログラムが形成されます。

オーディオ フレームはこれらの畳み込み層を通過し、最後の畳み込み層の後に「グローバル テンポラル プーリング」層が表示されます。このレイヤーはタイムライン全体にわたってデータを集約し、曲の継続時間内で学習した特徴を効果的に計算してカウントします。

処理後、ニューラル ネットワークは、推定拍子、ピッチ、モード、テンポ、音量などの特徴を含む曲の理解を導き出します。以下は、Draft Punk の「Around the World」の 30 秒クリップのデータのグラフです。

[画像提供: Tristan Jehan & David DesRoches (The Echo Nest)]

最終的に、曲のこれらの主要な特徴を理解することで、Spotify は曲同士の類似性を判断し、ユーザーの視聴履歴に基づいてどのユーザーがその曲を好む可能性があるかを判断できるようになります。

これらは基本的に、毎週の検出をサポートする推奨ワークフローが依存する 3 つの主要なモデルをカバーしています。

[Cassandraインスタンス]

もちろん、これらの推奨モデルは、Spotify のより大きなエコシステムの他の部分とも接続されています。これには、大規模なデータ ストアと多数の Hadoop クラスターを使用した推奨サービスのスケーリングが含まれ、エンジンは巨大なマトリックス、無数のインターネット音楽記事、および膨大な量のオーディオ ファイルを計算できます。

この記事が私と同じように皆さんのインスピレーションや好奇心を刺激してくれることを願っています。舞台裏で機能する機械学習テクノロジーを理解し、感謝しながら、私は毎週の独自の発見を通じて好きな音楽を探し求めていきます。

<<:  人工知能の時代、今後子どもたちが持つどんな能力が人気になるのでしょうか?

>>:  医療業界における放射線科はなぜ人工知能による混乱に対してより脆弱なのでしょうか?

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

人工知能技術の登場によるデジタル変革をどう理解すればよいのでしょうか?

デジタル化は、意思決定レベルから産業レベルまでの変化において中心的な課題になりつつあります。科学技術...

教育省は小中学校の人工知能教育拠点のリストを発表し、北京洪志中学校を含む184校が選ばれた。

教育部基礎教育司は1月11日、「教育部弁公庁による小中学校向け人工知能教育拠点の推薦に関する通知」(...

AIと行動科学がワクチン接種への躊躇にどう対処できるか

Fractal Analytics の共同創設者 Ram Prasad 氏は、AI が問題領域の特定...

ロボットが商品を移動、無人仕分け、梱包作業員が異動・昇進…「ダブル11」の裏側にあるサプライチェーンアップグレード戦争

「ダブル11」は10年以上前から存在しており、大半の「買い物中毒者」は巨大プラットフォームでの数千億...

「最もわかりにくい」Paxos アルゴリズムと、データベースの高可用性におけるその使用法をわかりやすい言葉で理解する

最近、Paxos アルゴリズムについてみんなが議論しています。私はオンラインで多くの記事を読みました...

新しい AI スキル: 芸術の分類と鑑賞

芸術作品の分類と分析は難しいことで知られており、ごく少数の専門家だけが発言権を持ち、この分野への人工...

顔認識の国家基準に関する意見募集:顔のスキャンや嗜好予測の義務化はなし

近年、顔認証が話題になっていますが、現実には、通知なく顔認証データを取得したり、強制的に顔認証させら...

独自の大規模言語モデルを展開する 5 つの方法

これは歴史上最も急速に成長している新技術です。生成 AI は世界を変え、画像、ビデオ、オーディオ、テ...

もしかしたら「スパイ」していたのかもしれません!大規模モデルのプライバシー推論精度は 95.8% です。

Reddit のユーザーが通勤に関するステータスを投稿しました。通勤途中に、曲がり角を待つ厄介な交...

...

...

XNOR-NETテクノロジー詳細解説:AIテクノロジーがモバイル端末に搭載され、新時代が到来

[[187849]]この時代、人間の生活はスマートデバイスから切り離すことはできません。持ち歩く携帯...

人工知能を活用するための5つのベストプラクティス

生産性、精度、意思決定能力を向上させるために人工知能 (AI) を導入する手法は、さまざまな業界で広...