Spotifyの推薦システムと多様性について

Jun Ernesto Okumura
Eureka Engineering
Published in
24 min readDec 17, 2020

はじめに

この記事は「eureka Advent Calendar 2020」17日目の記事です。

こんにちは、@pacocat です!

昨日はBI HeadのTamaki Tetsumotoによる、アナリストを支えるデータ基盤の運用についての記事でした。また、一昨日はエウレカでのデータ組織運用についての記事を書かせていただきました。2本目となる今回は、最近興味のあるAIトレンドについて少し紹介をしたいと思います。

最近はAIに対する過剰な期待も収まりつつあり、より実践的な議論や文献が増えてきたような印象を持っています。ビジネス的に成功している事例も増えてきており、今年も様々な事例からアイデアをもらっていました。

私の興味もAIのビジネス活用にあり、気になったテーマについては時間のある時にまとめるようにしています。去年はYouTubeの推薦アルゴリズムについて紹介をしましたが、他にもAirbnbの機械学習導入事例ゲーム領域での機械学習の活用DiDiの強化学習を使ったタクシー配車システムゲーム理論の活用事例、について書かせていただいています。

今回紹介する話題

今年はKDD2020やRecSys 2020に参加して、推薦システムにおける多様性について興味を持ちながら文献を調べていました。

本記事では、その中でも面白いと感じた、Multi-objectiveな推薦多様性のユーザー受容度の評価、を扱ったSpotifyの2つの研究を紹介したいと思います。Spotifyは因果推論の領域でもたくさんの論文を出していてどれも面白かったのですが、テーマが広がりすぎるのでまた別の機会にまとめるかもしれません。

読者は「機械学習を実務で使っている方」を想定しているため、数式などもたくさん載せていますが、数式を読み飛ばしても文章で要点が理解できるように配慮しています。

今回紹介する研究は以下となります。

  1. Multi-objectiveな文脈付きバンディットアルゴリズムについて(KDD 2020)
    Rishabh Mehrotra, Niannan Xue, and Mounia Lalmas. 2020. Bandit based Optimization of Multiple Objectives on a Music Streaming Platform. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD ‘20). Association for Computing Machinery, New York, NY, USA, 3224–3233. DOI:https://doi.org/10.1145/3394486.3403374
  2. 多様な推薦に対する許容度の分析(RecSys 2020)
    Rishabh Mehrotra, Chirag Shah, and Benjamin Carterette. 2020. Investigating Listeners’ Responses to Divergent Recommendations. In Fourteenth ACM Conference on Recommender Systems (RecSys ‘20). Association for Computing Machinery, New York, NY, USA, 692–696. DOI:https://doi.org/10.1145/3383313.3418482

では、1つずつみていきましょう。

1. Bandit based Optimization of Multiple Objectives on a Music Streaming Platform

背景

KDD2020のチュートリアルを聴いて興味を持った論文です。ステークホルダーが複数いるサービスでは、アイテムを推薦する際に様々な立場を考慮する必要があります。例えば、AmazonにおけるBuyer/Retailer、AirbnbのGuest/Host、UberのRider/Driver、そしてSpotifyにおけるListner/Artistが挙げられます。

ここでの課題は、推薦によって誰のどんな指標を最適化したいのか?、という問題設定です。

一般的には、ユーザーの立場にたって、CTRやセッション時間などを目的とした推薦が行われていると思います(これらの数値が高いと、ユーザーのエンゲージメントが高い状態とみなせます)。

一方、サプライヤーの立場になると、もっと多様なアイテムを推薦することでユーザーの興味の幅を広げてほしいと感じるかもしれません。さらに、ユーザー/サプライヤーを抱えるプラットフォームは、利益が最大となるようなアイテムの流通を実現したいと考えるでしょう。

これらの指標が完全に相関していれば苦労はないですが、多くの場合で目的がバッティングしてしまうのは目に見えています。プラットフォームのことを優先しすぎて収益性の高い商品ばかり推薦するとUXを毀損してしまう、などなど。「何かを最適化すると他の指標が落ちる」というトレードオフにぶつかることは少なくありません。

本論文は、既に Spotifyに導入されているバンディットアルゴリズムを使ったプレイリスト推薦を、多目的(Multi-objective)に拡張する提案を行っています。

バンディットアルゴリズムについて

バンディットアルゴリズムとは、複数の選択肢のどれを採択すれば長期的なリターンを最大化できるか、という意思決定問題を解くアルゴリズムの一種です。

適切に探索(試行錯誤)を行うことでリターンを最大化していく」という特徴があり、推薦アルゴリズムについてまわるCold-Start問題に対応する方法としても知られています。強化学習が好きな方は、ざっくりと「状態数1の場合の強化学習手法」と理解しても大きな齟齬はありません。

このアルゴリズムに文脈情報を付け加えることで、意思決定戦略を個別化できるようにしたのが文脈付きバンディットアルゴリズムです。詳しくは、以下の記事でとても丁寧に解説されています。

バンディットアルゴリズムでは、推薦を行った結果として、スカラー値で与えられる報酬(例えば、ユーザーがその推薦に反応したら1、それ以外で0、など)を受け取り、自身の推薦戦略をアップデートしながら学習を行います。複数の目的を同時に最適化する問題(Multi-Objective Optimisation; MOO)では、この報酬はスカラー値ではなくベクトルとして受け取ることになります。例えば、[クリック, 視聴時間, 収益] = [1, 10分, 100円]、といった要領です。

単一の報酬の場合とは異なり、報酬がベクトルで与えられる場合には、最適化手法として大きく2つのアプローチがあります。

  1. パレートフロント(Parate front)と呼ばれる最適解集合を求める
  2. ベクトルの報酬を集約関数でスカラー値に写像して、この報酬を使って最適化する(Scalarisation)

しかし、パレートフロントを求める手法は直接的ではあるものの、計算コストを考えると実時間での処理に大きな懸念があるため、以下では後者のアプローチを使います。

Spotifyでの問題設定

さて、前置きが長くなりましたが、本論文で扱われているSpotifyの問題設定を見ていきましょう。ここでは、ユーザーにプレイリスト(楽曲の集まり)を推薦するケースを考えてみます。

まずは最適化したい対象です。今回は4つのuser-centric指標(stream, clicks, song played, long stream)、2つのplatform-centric指標(diversity, promotion)、を考えます。詳しい説明は次の通りです。

  • stream: プレイリストの視聴時間
  • clicks: プレイリストでクリックされた楽曲数
  • song played: 視聴された楽曲数
  • long stream: 長時間の視聴
  • diversity(g): 様々な多様性が考えられますが、ここではgender diversity、すなわちプレイリストの楽曲に占めるメイン歌手の性別割合
  • promotion: プラットフォームが意図的に販促したい楽曲(※詳しい定義がありませんでしたが、恐らくユーザーがこれらの楽曲に反応した量だと思われます)

実際にSpotifyのデータから得られた各指標の相関行列は次のようになります。

各指標同士の相関行列(紹介論文のFigure1より)

この図をみると、user-centricな指標は互いに正に相関している傾向が見えます。そのため、ユーザーのことだけを考えた推薦では、いずれかを最適化すれば他の指標も同時についてくることが分かります。一方で、platform-centricな指標はこれらとの正の相関がありません(※論文では負の相関と書かれていましたが、絶対値が微妙なので本記事ではあえてこのように表現しています)。例えば、ECサイトでは、売れ残りの(恐らくニッチな)商品を売るためにユーザーの趣向と衝突してでも在庫量の多い商品を推薦したくなるかもしれません。このような相反する目的を同時に達成する推薦を行うのが論文のテーマです。

Multi-objectiveな文脈付きバンディット問題

ではいよいよアルゴリズムの中身に入っていきましょう。文脈付きバンディットでは、① まず文脈を観測し、② その文脈で最も将来の累計報酬が高くなる選択を行い、③ 選択の結果として報酬を受け取る、という流れを繰り返します。何度も試行錯誤しながら、②の意思決定精度を改善していくのです。今回は、次のような定式化を行います。

論文では文脈として以下のような特徴が使われています。

  • ユーザー特徴:年齢、性別、地域、言語、時刻、…
  • プレイリスト特徴:ジャンル、タグ、…

複数の目的を扱うため、報酬がベクトルの形で与えられる点に注意してください。この報酬は、特徴を報酬信号にマップする関数が分かれば、以下のような計算として与えることができます。

さて、前述の通り、本論文ではパレートフロントを直接求めずに、重み付き平均を使った変換を行います。ベクトルの報酬が与えられたら、次にこれをスカラー値にする方法が必要です。今回は、ジニ係数を一般化したGeneralised Gini Function(GGF)と呼ばれる操作を使います。

GGFは定義式だけみると分かりづらいと思うので図にしてみました。この関数は、ベクトル報酬の要素を大きさ順に並べて、制約付きの重みを乗じた上で集約する、というもので、以下のような性質を持っています。

  • 大きな要素から小さな要素に報酬を分配すると単調に増加する
  • Gを最大化する解はパレートフロント上に乗る

つまり、Gを大きくすることは、なるべく平等に資源を分配することと連動し、勾配上昇法などを使ってGを大きくすることで次第に最適解に近づいていく、ということです。目的がクリアになったので、後は定式化して解くだけです。

Gを最大化するには、特徴を報酬にマップする変換が分からないといけませんが、ここはL2正則付きの回帰をすることで真の変換を代替します。ただし、このままでは解きづらいのでもう少しだけ式変形します。

ここまでくれば、後は勾配上昇法を使ってGを大きくする行動戦略αを見つけていけば大丈夫です。

実験

実験は、シミュレーションデータセットとSpotifyのストリーミングデータの2種類で行っています。

まずはシミュレーションデータセットの方です。こちらでは様々な選択肢K(50, 100, 200, 500)と目標数D(5, 10, 20)に対して、以下に紹介する複数のアルゴリズムを試しています。

  • ε-greedy (ε-g(C), ε-g(S), ε-g(L)): 基本的にはグリーディーな方策で、εの確率(1%)で探索を行いながら、それ以外(99%)は一番好ましいと思われる選択をしていきます。Single-Objectiveなのと、混合戦略でないことが特徴です。目的を明示する場合は、C(クリック)・S(視聴時間)・L(視聴楽曲数)の添字をつけています。
  • LinUCB: バンディット問題でよく使われる方策で、選択肢の不確実性も加味した判断を行います(試行が少ない選択肢に対しては、統計的な不確実性を楽観的に解釈する)。Single-Objectiveな方策です。
  • pure strategy: 常に現在の平均報酬が高いものをグリーディーに選択する方策です。Single-Objectiveかつ、決定論的な特徴があります。
  • mixed strategy: 現在の平均報酬に応じて確率的に選択を行う混合戦略です。Single-Objectiveですが、pure strategyと異なり決定論的ではありません。
  • random strategy: 全くランダムに選択を行うベースラインです。
  • MO-OGDE: Multi-ObjectiveでGGFを使っている方策で、本研究の提案手法に近いですが、文脈を考慮していない方策になっています。
  • MO-LinCB: 本論文の提案方策です。Multi-Objectiveかつ文脈を考慮したアルゴリズムです。
シミュレーションデータに対する結果(紹介論文のFigure.4より一部抜粋)

結果を見てみると、以下の特徴が分かります。

  • mixed strategyはpure strategyよりも優れている。つまり、決定論的な方策よりも確率的に選択を行う方策の方がパフォーマンスがいいことが分かります。ある時点で平均報酬が高くても、他にベストなものがあるかもしれない可能性を考えると、混合戦略の方がより適切な選択を見つけやすいことが影響しているのでしょう。
  • 不確実性を考慮にいれたアルゴリズム(LinUCB, MO-LinCB)はmixed strategyよりも優れている。
  • 提案手法(MO-LinCB)が最も優れている。
  • 文脈を考慮しないとパフォーマンスが悪化する(MO-LinCB vs. MO-OGDE)。

これらの観測から、MO-LinCBの有用性が確認できました。

では、実際のデータに対して実験するとどうなるのでしょうか。著者らは、Spotifyの7日間におけるデータをユーザーについてランダムにサンプルし、20万人のユーザーと1200万のプレイリストに関するデータを収集しました。これらのデータを使ってε-greedy, (同アルゴリズムにGGFを組み込んでMulti-Objectiveに拡張した)MO-ε-greedy, MO-LinCBの3方策を比較したのが下図です。

Spotifyの視聴データに対する実験結果(紹介論文のFigure3より)

この結果からは次のようなことが分かります。

  • ε-greedy方策を比較すると、クリックを報酬とした方策 ε-g(C) はクリックだけでない他指標(視聴時間、視聴楽曲数)でもパフォーマンスが優れている。これは、各指標がお互いに相関していることと、このタスクにおいてはクリックが重要な変数になっていることが関係しています。
  • MO-ε-greedy方策は、Single-Objectiveなどの方策よりも優れている。これは、Single-Objectiveなアルゴリズムはパレート最適ではなく、お互いに相関する指標を同時に最適化する方がパフォーマンスが良い、と解釈することができます。
  • MO-LinCBが最もパフォーマンスが良い。

実データを使った実験でも、MO-LinCBの有用性が確認できました。とはいえ、ここまではお互いに正に相関している指標の最適化です。負の相関をする(お互いに衝突する)指標を入れるとMO-LibCBはどのように振る舞うのでしょうか。

実データに対する結果。divesity指標を追加(紹介論文のFigure5より一部抜粋)

冒頭に紹介したdiversity(アーティストの性別の多様性)を報酬に入れて見た結果が上図です。diversityはクリックとの相関係数が-0.12なので、(論文の表現では)弱く負に相関している指標です。

まず、diversityを入れることでジェンダーに対するスコアは若干ですが改善します(右図の青線)。しかし、新しい指標の導入によって、他の指標はさほど変わりません。この辺りはかなり解釈が微妙ですが、好意的には「衝突する指標を入れても、既存の指標を毀損することなく全体最適ができる」と捉えることができます。

感想

本論文では、複数の指標を目的とした文脈付きバンディットアルゴリズムを定式化して、実データで有用性の検証を行っています。負の相関を持つ指標としてgender diversityが採用されていましたが、もっと強い負の相関を持つ指標(例えば、プラットフォームの利益にはなるが、ユーザー体験を著しく毀損するような指標)を入れるとどういう結果になるかは素直に気になります。恐らくそんなにポジティブな結果にならないのかもしれませんが、とはいえMulti-Objectiveな推薦をどのように実現するかについてのストーリーは分かりやすく、印象に残った研究でした。

2. Investigating Listeners’ Responses to Divergent Recommendations

背景

冒頭で言及した通り、多様な推薦には「user-centricな指標だけでなくplatform-centricな指標も加味したい」という意図も含まれます。そうすると気になるのは、platform-centricな推薦に対するユーザーの反応です。プラットフォーム都合の推薦をしても、それを気にしないユーザーもいれば、もともと慣れている推薦の方がいいと感じてサービスを使わなくなるユーザーもいるでしょう。こうしたユーザーのレコメンドに対するreceptivity(受容度)をどのようにしたら計測できるか、さらには予測できるのか、というのがこの論文のモチベーションになります。

receptivityの定義と計測

receptivityの定義は様々なアプローチが考えられますが、ここでは2種類のプレイリスト推薦に対する行動の変化を使います。具体的には次の2つです。

  • normal: 通常の推薦アルゴリズム(Spotifyでは文脈付きバンディット)
  • random: 事前に用意したプレイリスト群からランダムに推薦するアルゴリズム

大胆に思えますが、著者らは大規模なA/Bテストでユーザーの行動変化を追跡しています(論文中にも注釈がありましたが、このような実験はビジネス毀損リスクがあるため、実際に実験を行う場合は細心の注意が必要です)。

normalとrandomを切り替えることで観測する量としては以下の2つが考えられます。

  • Engagement: ユーザーがどの程度サービスを使っているか(具体的な定義はありませんが、クリック数・視聴楽曲数・視聴時間などが考えられます)
  • Effort: ユーザーが好みの楽曲を聞くまでにどの程度の労力が必要になっているか(プレイリストのスクロール量など)

receptivityの定義としては3種類考えます。

考え方としては自然で、もし推薦の変化によってEngagementが変わらないのであればそのユーザーは変化を許容してくれていると考えることができます。一方でEffortの観点で見ると、いくらEngagementが変わらなくてもEffortが変化する(例えば楽曲を探すのに苦労してしまう)と、それはいい状態ではありません。この両者の観点を取り入れたのがEffort-centric receptivity。また、推薦の変化によってEngagementが減少して、推薦を戻した際にEngamenentが復活したユーザーは受容度がないとも捉えられますが、この考えを取り入れたのがEmendation-centric receptivityです。

実際に実験した結果が下図です。およそ2000万人のユーザーによる、1億セッションのデータが使われています。receptivityはユーザーの性質によって変わる可能性があるため、著者らはアクティビティを3つ(30日間のアクセス日数に応じて左からlow, mid, high)に分けてEngagementの減少を計測しました。横軸は右に行くほどEngagementが減少する(良くない)ことを表しています。

ユーザーのアクティビティで分けたEngagementの減少幅(紹介論文のFigure1より)

結果を見てみると、low-activeなユーザー(左図)はEngagementが減少していません(むしろ増加しているように見えますが、解釈について言及はありませんでした)。low-activeなユーザーはもともと推薦とのインタラクションが少ないので、推薦の変化に対する影響度が少ないのかもしれません。一方で、high-activeなユーザー(右図)は、分布が正に寄っており、Engamementの減少が見られました。日頃カスタマイズされた推薦に触れているので、突然ランダムになることに対してネガティブな反応を示したと思われます。

receptivityは予測できるか?

次に、receptivityを予測問題として考えましょう。ユーザーの属性や視聴特性によって、receptivityが判別できるか、というタスクです。論文では言及されていませんが、「ユーザーのreceptivityが事前に分かれば、受容度の高いユーザーにはもっと多様な楽曲を提供するなど、platform-centricな推薦をしたい」という意図もあるかもしれません。

今回は、XGBoostを使った予測モデルを構築します。特徴量としては、

  • 年齢、性別などの属性情報
  • どのような曲を聴いているか(Nostargia: 世代に合わせた古い曲の視聴傾向、Currency: 最新の曲の視聴傾向、など)
  • 行動特性(スキップ率、視聴楽曲数、など)

といったものを使います。また、ベースラインのモデルとして以下の3種類を比較します。

  • Random baseline: ユーザーがreceptiveであるかをランダムに振り分けるモデル
  • Engagement-based predictor: Engagementの実績が中央値より上であるユーザーはreceptiveと判断するモデル。直感的には、エンゲージメントの高いユーザーは推薦が変化しても許容してくれるだろう、という仮説。
  • Diversity-based predictor: 視聴楽曲が多様であればreceptiveと判断するモデル(詳細は書いてませんが、 視聴楽曲のジャンル数などが考えられます)。直感的には、多様な楽曲を聴いているユーザーはランダムな推薦への許容度が高いだろう、という仮説。
receptivity別の予測モデル比較(紹介論文のTable1より)

さて、結果を見てみると、まずユーザー特徴から予測するモデル(一番下)が最も優れています。また、ランダムな予測よりは、Diversity-based、Engamement-basedなベースラインのほうがマシな予測をしています。ここで興味深いのは、Diversity-basedの成績が大して良くないことです。感覚的には、様々な楽曲を聴いているユーザーは推薦をランダムにしても一定の許容度を示しそうですが、こうしたユーザーはあくまでも「自分の好みの範囲内で様々な楽曲を聴いているのであって、ランダムな推薦をよしとしているわけではない」ということを表しているのかもしれません。

XGBoostモデルのFeature Importance(紹介論文のFigure2より抜粋)

さらに、Feature Importanceを見れば、receptivityに対してどの特徴が効いているかを深掘ることも可能です。ここでは解釈を割愛しますが、どんな特徴がユーザーをreceptiveにしているか、解像度を上げることでuser-centricな指標とplatform-centricな指標の折り合いを見つけられるかもしれません。

感想

短いペーパーですが、receptivityに関する近年の議論をフォローできるので印象的な論文でした。特に、論文中に紹介されている文献リストは面白そうなものばかりなので、個人的にもこの領域はフォローしていきたいなと思っています。

最後に

長くなってしまいましたが、今年面白かった話題について紹介しました。Spotifyは推薦領域での出版が活発で、個人的には因果推論についての研究で興味深いものもたくさんありました。全て紹介するのはスコープ外になってしまいますが、AIチーム内でも議論が盛り上がった話もあるので、また折を見てまとめるかもしれません。社内以外でもこうした話題について議論したいので、似たような領域で活動されている方はぜひ @pacocat までご連絡ください。

また、エウレカではデータ活用に関わるメンバーを募集しています。詳しい職種や組織の動き方については一昨日の記事にまとまっているので、そちらをご覧ください。

--

--

Jun Ernesto Okumura
Eureka Engineering

eureka,Inc. Data Director← AI PdM / Team Leadとして強化学習領域の戦略立案やAIプロジェクト推進 ← BI / リサーチ / ゲームデザイナーとして意思決定やプロダクト開発に従事 ← 宇宙物理学の研究でPh.D (Kyoto ⇔ Berkeley ⇔ Tokyo)