YouTubeの推薦アルゴリズムの変遷を追う〜深層学習から強化学習まで〜

Jun Ernesto Okumura
Eureka Engineering
Published in
29 min readDec 24, 2019

はじめに

この記事は「eureka Advent Calendar 2019」24日目の記事です。

こんにちは、Data Analystの @pacocat です!

私はeurekaには2019年11月に入社したばかりなのですが、毎日楽しく仕事させてもらっています。最近はプロダクト開発のための定性調査の仕組みづくりを手伝ったり、事業分析や組織開発をしていたりと、様々な定量・定性データを活用してどのように事業成長に貢献できるか考える日々です。

前職ではAI PdMとして、ゲームや強化学習領域でのAI活用を推進していました(興味ある方はGDC2019での発表や各種スライド slideshare / speakerdeck をご覧ください)。直近はがっつりAIに関わっているわけではありませんが、趣味で推薦×強化学習分野のサーベイをしていたら面白い話題がたくさんあったので、それらの中からYouTubeの推薦アルゴリズムについてピックアップします。

この記事で扱うテーマ

本記事では、YouTubeの推薦アルゴリズムを時系列で追っていきます。

記事の目的は、YouTubeにおける推薦アルゴリズムを俯瞰することと、強化学習を推薦システムに使う際のテクニックを紹介することです。記事はある程度機械学習の知識があることを前提に書かれていますが、そうでなくても雰囲気だけつかめるように意識しています。

強化学習は最近応用が急速に加速している技術領域で、今後も面白いアプリケーションがたくさん出てくると予測しています。現在の活用事例について興味を持ってもらえたら幸いです。

紹介する論文は以下の3本です(重要な参考文献は、都度文中で補足します)。

  1. 推薦システムへのDeep Learningの適用(RecSys 2016)
    Deep Neural Networks for YouTube Recommendations (Covington et al. 2016)
  2. 推薦システムへのRNNの適用と、コンテキスト情報の効率的な入力(WSDM 2018)
    Latent Cross: Making Use of Context in Recurrent Recommender Systems (Beutel et al. 2018)
  3. 推薦システムへの強化学習の適用(WSDM 2019)
    Top-K Off-Policy Correction for a REINFORCE Recommender System (Chen et al. 2019)

では、一つ一つ見ていきましょう。

1. Deep Neural Networks for YouTube Recommendations

RecSys’16で報告された論文で、これまでのMatrix Factorizationベースの推薦アルゴリズムをDeep Learningに置き換えて、精度の向上を実現したという内容です。

YouTubeでは、トップページなどでユーザーにカスタマイズされた動画を推薦しています。普段から何気なく触れている機能ではありますが、推薦システムの観点でみると、以下のような困難な要素がたくさんあります。

  1. Scale:YouTubeでは1Mを超える動画を10億単位のユーザーに対して推薦しますが、このスケールで問題なく動くシステムを作るのは簡単ではありません。効率的な学習やservingの仕組みが非常に重要です。
  2. Freshness:新しい動画はこの瞬間にも次々と投稿されており、2019年時点では毎分500時間に渡る動画が追加されていると言われています(参考)。こうした新鮮な動画をどのように推薦システムに組み込むかも大きな課題です。
  3. Noise:ユーザーがYouTubeの動画をどのように見るかは様々な外部要因に左右されます。また、ユーザーがどれだけ推薦結果に満足しているかは真には計測できず、フィードバック情報は様々な計測できないノイズの影響を受けています。

特に一点目の問題はYouTubeのような大規模サービスにおいて顕著でしょう。こうした課題を踏まえ、本論文では以下のような推薦システムが提案されました。

論文のFigure2より

このシステムは大きく2つのパーツに分かれており、第1のパーツでは対象ユーザーの好みに合いそうな動画を大雑把に絞り込みます(数百万→数百)。続く第2のパーツでは、絞り込まれた動画をより精緻にランク付けし、最終的な推薦結果としてユーザーに提供します。これら2つのパーツをDeep Learningで実現しました、というのがこの論文の大まかな内容です。発想自体は自然に思えますが、実際にこの規模の問題で実現するためには多くの工夫が必要です。以下ではまず問題を定式化した上で、紹介されているポイントを一点一点紐解いてみましょう。

YouTubeの動画推薦は以下の確率を求める問題と考えることができます。

Neural Networkの役割は、これらの埋め込みベクトルを学習することです。ユーザーの表現を上手く獲得できれば、後は埋め込み先のN次元空間上で視聴確率の高い動画を順々に推薦していけばいい、という仕組みです(ちなみに、未知動画に対する埋め込みには0ベクトルを使います)

論文のFigure3より

アーキテクチャの全体像はこのようになっています。一番下段では、以下に紹介するようなユーザー特徴量が入力されています。

  • 過去の視聴履歴:視聴動画の埋め込みベクトルを平均化したもの(256次元)
  • 過去の検索履歴:検索内容のunigramとbigramを埋め込んで平均化したもの(256次元)
  • 視聴地域の埋め込みベクトル
  • 訓練サンプルの経過時間(Example Age)と非線形変換(※推論時は0か小さな負数を入力)
  • ユーザーの性別, etc…

過去の視聴・検索履歴を全て平均して入れているのが特徴的ですね。余談ですが、自分のトップページには大分前に検索した映画予告に関連する動画が未だに推薦され続けてるのですが、上述の平均化処理で過去の検索情報が残っているのかもしれません(論文の設定では直近50件までの検索行動を平均化しています)。

また、特徴量としてはExample Ageの重要性が強調されていました。YouTubeではユーザーの好みと関連が薄くても新鮮なコンテンツが消費されやすいという視聴行動が観測されているようで、動画がアップロードされてからの時間傾向を表現することが重要になります。

論文のFigure4より

そこで、訓練中にサンプルがどれくらい過去のものかを明示的に入れることで、モデルがどの時間軸で訓練をしているのか合わせて学習させます。推論時にはこの特徴量を0(もしくは小さな負数)にセットすることで、モデルに「今はtraining windowの最後(もしくは少し先の未来)で推論しているんだ」と教えることができるわけです。実験でも、視聴傾向のスパイク(上図緑)がExample Ageの導入によって再現できる(上図赤)ことが確認されています。

論文のFigure5 より

Trainingセットを作る際には、未来からの情報のリークを防ぐため、ランダムなhold-out(上図a)ではなく、過去の履歴から未来の視聴動画を予測する(上図b)ように作ります。ベーシックな協調フィルタリングでは過去と未来の情報を同時に扱うことになるため、こうした時系列の行動が考慮されていない点に注意が必要です。視聴・検索履歴を入力する際には、直近の50個の履歴に限ります(一部のヘビーユーザーの行動に引きずられないようにする意図もあるそうです)。

このように作られた教師データでLogLossを計算し、重みを更新していけば学習は進みます。ただし、今回は1Mを超えるアイテムの推薦を考えるため、そのまま学習すると最後のsoftmax計算が高コストになってしまいます。教師信号もスパースなので、正直に計算を行っても非効率です。そこで著者たちは、機械翻訳などでも使われているsoftmaxのサンプリング手法を用いてこの計算を高速化しています(詳しくはこちらの記事を参照)。

推論時にも、softmaxを真面目に計算するのではなく、ユーザー・動画の埋め込みベクトルで作られる内積空間で近傍探索をすることで、推論のレイテンシを低減しています。

ここまでが1つ目のパーツの紹介でした。続いては、最初のモデルで絞り込まれた数百の動画をより細かくスコア付けする工程です。

論文のFigure7 より

アーキテクチャ図に示されているように、ここでは以下のような特徴量が使われています。

  • ユーザーに表示した動画の埋め込みベクトル
  • ユーザーが視聴した動画の埋め込みベクトルの平均
  • ユーザー言語と動画言語の埋め込みベクトル
  • 最終視聴からの経過時間と非線形変換
  • 推薦回数, etc…

特に、過去に推薦した回数は重要な特徴だったようで、何度も推薦しているのにユーザーが反応しないアイテムは推薦から外す、という学習も行われているようです。個人的にも、後で見ようと思った推薦動画がリロード後に推薦リストから消えていた経験がありますが、こいつの影響かもしれませんね。

Neural Networkをforwardして、実際にユーザーの視聴があれば正のフィードバックを、視聴がなければ負のフィードバックを行います。ここで、正のフィードバックを与える際に視聴時間で重みを付けをしているのが本論文の大きな特徴です。著者たちはWeighted Logistic Regressionと呼んでいますが、ざっくりと視聴時間を予測する問題を解く形になります。推論時には、視聴時間の期待値が大きな動画から順に推薦していきます。

通常のLogistic Regressionとは異なり、正のフィードバックに視聴時間で重み付けすると、上式のようにオッズ比が視聴時間の期待値として近似されます。

視聴時間を目的関数にしているのは、著者たちがビジネスメトリクスとして視聴時間を重視しているのに加えて、クリックするかしないかの二値分類にしてしまうと、”clickbait”と呼ばれる意図的にクリック稼ぎを目的とした扇動的な動画に最適化される懸念があるのも理由です。

論文のTable1より

これまで紹介してきたトリックを使うことで、ベースラインのモデルと比較して、Neural Networkを導入したシステムではLossが改善しました。著者たちは中間層の深さやユニット数も変えながら実験していますが、多層にしていくほど精度の向上が見られていますね。

以上がYouTubeの推薦システムにNeural Networkを組み込んだ話です。次の論文では、ユーザーのコンテキスト情報をRNNで扱い、学習を効率化させた内容を紹介します。

2. Latent Cross: Making Use of Context in Recurrent Recommender Systems

この論文はWSDM2018で報告された論文で、ユーザーのコンテキスト情報をNeural Networkに入力する方法を議論しています。扱うNetworkはRNNを想定しており、コンテキストをAttentionのように入れると学習が効率化するという報告です。日本語でも解説資料試験実装があるので、気になる人はそちらもご覧ください。

YouTubeの推薦システムでは、視聴時刻や場所、デバイスといったユーザーのコンテキストが推薦精度に大きな役割を果たすようになっています。この論文では、より効率的にコンテキスト情報を活用する手法としてLatent Crossが提案されています。

論文のTable.1より

先ほどの論文(上テーブルでYTと表記)と比較すると、RNNを利用していることと、特徴入力に要素積を使っている点が大きな差分となっています。

さて、ナイーブに考えると、Neural Networkにコンテキストを入れるにはユーザー情報と一緒にコンテキスト情報を連結(concatenate)して入力する方法が考えられるでしょう(著者たちはFirst-order DNNと表現)。しかし、これは入力された特徴量同士の関係を明示的に与えないまま相互作用を獲得させることになり、学習が難しくなる懸念があります。

一方で、Matrix Factorizationのような行列分解系の手法では、ユーザーとアイテムをdenseなベクトルとして表現した上で、内積を取って組み合わせを明示的に評価しています(著者たちはSecond-order手法と表現)。これらのモデルはユーザーとアイテムの関係を上手く学習することが知られており、多くのアプリケーションでも成果を上げています。では、First-order DNNではこれらの相互作用をどの程度再現できるのでしょうか?

著者たちはこの疑問に答えるために、以下のような実験を行いました。

まず、各軸がN次元であるm軸テンソルを上式の正規分布から生成します(ここでrはテンソルのランクです)。例えば、m=2, N=100, r=1であれば、2個の100次元ベクトルがあり(それぞれ100要素を持つユーザーベクトルとアイテムベクトルを考えればわかりやすいでしょう)、これをr=1に低ランク近似する問題と考えることができます。m=2であればMatrix Factorizationで、軸を増やして(例えば時間のコンテキスト情報を追加して)m=3とすればTensor Factorizationで解ける問題になります。

この実験では行列分解系の手法をDNNが再現するか調べたいので、中間層1層のDNNで学習させることで(目的関数はMSE、OptimizerはAdagrad)、低ランク近似を再現できるか、ピアソンの積率相関で検証します。中間層の幅は1–100まで様々に変化させました。

論文のFigure.3より

結果を見ると、どの設定でも中間層の幅を広くすることで再現に成功しています(Matrix FactorizationをDNNで代替できそうに思えます)。一方で、同じモードやランクのもとでどちらかを増やす設定を見ると、十分な精度を出すためには多くのユニット数が必要になることが分かります。実アプリケーションではr~200レベルの相互関係を学習することもあるため、精度を出すためには非常に大きなDNNが必要になるでしょう。結論、「DNNでも相互作用は学習できるが、実用レベルの問題を考えると非常に非効率になるのが問題」ということです。

そこで登場するのがLatent Crossです。concatenateして入力するのが非効率であれば、コンテキスト特徴(の埋め込みベクトル)を直接隠れ層に作用させて、Attentionとして機能させようという発想です。

論文のFigure.1より

提案されたアーキテクチャは上図の通りですが、2つのReLUの手前にあるモジュールがLatent Crossを表しており、ここではコンテキストの埋め込みベクトルと隠れ層の出力ベクトルの要素積を取ることで情報を入力しています。要素積として作用させることで、コンテキスト情報がマスクのような役割を果たすことになるわけです。

本論文では、コンテキストとして以下のような情報を使っています。

  • TimeDelta:前回の視聴から次の視聴(もしくは推論)までの時間。先の論文でも言及されていましたが、この特徴は大切なようです。
  • クライアント:YouTubeはiOS/Android/Roku/Chromecastなど様々なデバイスで視聴されていますが、映画のような長時間のコンテンツはモバイルよりもRokuで視聴されやすい、などの傾向があります。
  • ページ情報:YouTubeにはトップページや動画再生ページなどがありますが、トップページでは新着コンテンツが好んで視聴される一方で、後者のページでは関連の高い動画をより深堀りたい視聴傾向があることは想像しやすいですね。

アーキテクチャ図では、GRU(RNN)の前後にLatent Crossがあり、著者たちはそれぞれpre-fusion/post-fusionと名付けています。前者は隠れベクトルに影響を与え、後者は予測に直接影響を与えていると言っていいでしょう。GRUの前後にどのようなコンテキストを入れるかは、ケースによって考える必要があります。また、2つ以上のコンテキストを入力する時には、下式のように埋め込みベクトルの加算を用います。

著者たちは、提案手法を使って実際のYouTubeの視聴データを使った実験も行っています。訓練では、モデルが学習している時点から過去7日間までさかのぼり、直近100個の視聴履歴を使って次の視聴動画の予測を行います。最終的に使われた動画は50–200万に及んでいるため、最後のsoftmax部分では高速化のためhierarchical softmaxを用いています(詳しくはこちらの記事を参照)。

論文のTable.2より

結果を見ると、他のモデルと比較してLatent CrossがMAP@kで好成績を収めているのが分かるでしょう(ここではコンテキストとしてTimeDeltaのみを考えていることに注意してください)。

論文のFigure.4より

TimeDelta以外の特徴を含めても、単純なconcatenationと比較してLatent Crossの方が成績がいいことが確認できますね。

ここまでが2本目の論文紹介でした。Neural Networkの導入→RNNの導入とコンテキストのLatent Cross入力、と見てきましたが、次はいよいよ強化学習を活用した推薦アルゴリズムの話へと移っていきます。

3. Top-K Off-Policy Correction for a REINFORCE Recommender System

これまでの推薦アルゴリズムでは、ユーザーの視聴履歴を教師データとして、ユーザーが好みやすい動画の推薦を行っていました。一方で、その場その場で(短期的に)好みの動画を推薦するのではなく、ユーザーが長期的にYouTubeへのエンゲージメントを高めるような推薦はできないのでしょうか。この論文では、強化学習を用いることで、ユーザーの視聴時間の向上と推薦アイテムの多様化を実現しました。

強化学習によるこのようなアプローチは近年様々な業界で使われ初めており、タクシー配車のアルゴリズムでも使われています。例えば、タクシー配車プラットフォームの観点では、近場のお客さんを優先的に拾うよりも、長期的に拾えるお客さんの数や売上を上げるために別の場所に移動したほうがいい、というシチュエーションはありそうです。このような長期的な指標を最適化するために強化学習の活用が行われています。タクシーの事例は以前サーベイした資料があるので興味ある方はご覧ください。

この技術はゲームドメインでの活用も有名です。強化学習を使って訓練したAIが、囲碁MOBA(Multiplayer Online Battle Arena)において人間のトッププレイヤーを攻略した話題は記憶に新しいと思います。

このように、ある環境において長期的な収益の期待値を最大化するような行動系列を学習するのが強化学習の特徴です。学習には必ずしも人間による教示が必要ないという点も特筆すべきでしょう。

話をYouTubeに戻します。本論文では、ユーザーの視聴時間を報酬として、長期的にユーザーがよりYouTubeの動画を視聴するような推薦モデルを作ることを考えます。

システムの概要を大雑把に表したのが上図です。ある時刻tのユーザーに対して、推薦システムはどの動画を推薦するか選択します(行動a)。ユーザーはそれに対して反応して、推薦動画を視聴すればその視聴時間が報酬としてシステムに与えられ、同時にユーザーは次の状態に遷移します。

「状態」と言うと分かりづらいかもしれませんが、シリーズ動画のPart1を見たらユーザーはPart2を見る状態になっているでしょうし、その次はPart3を見る状態になりますよね。ここまで直接的でなくても、初めて出会うジャンルのミュージシャンを起点にして、そのジャンルをどんどん開拓していくようになる視聴行動もありますし、そうしたユーザーの時系列のコンテキストを抽象的に表現したものが「状態」だと思ってください。

推薦システムの仕事は、ユーザーの状態遷移モデルを学習しつつ、長期的な視聴時間の期待値を最大化するためにどのような推薦を行えばいいか学習することになります。この行動系列を生み出す確率分布を方策と呼び、システムは試行錯誤をしながら、より視聴が期待できる方向に方策をアップデートし続けるわけです。

この問題の設定は納得感の高いものですが、これを実現するためには非常に多くの困難に向き合わないといけません。

  • 行動空間の広さ:システムが推薦するアイテムは1Mを超えており、それだけの行動選択肢を持っています。試行錯誤しながら学習すると言っても、これだけ巨大な空間に対してどのように探索を行い、微かな報酬シグナルから学習していけばいいのでしょうか。
  • 様々な方策の同居:サービスに投入された推薦アルゴリズムは、学習対象となる強化学習エージェントだけではありません。新規ユーザーに対して決定論的に特定動画を推薦するロジックなど、エージェントのコントロール外にいるロジックもあります。自分の行動によって得られた結果から自分の方策を見直すだけであれば話は簡単ですが、今回は他人の行動結果からも学んでいかないといけません。
  • 学習の不安定さ:強化学習は実世界規模の問題ではとにかく不安定になることが活用のネックになっています。正解が与えられない状況下で試行錯誤をするためバリアンスは非常に大きく、かといってバリアンスを軽減するためにアルゴリズムを修正すると今度は不要なバイアスを持ち込んでしまう、というような状況が頻繁に発生します。
  • 複数アイテムの推薦:行動空間が広い、という話がありましたが、Top-1推薦であれば状況はまだマシで、YouTubeのように複数アイテムを同時に推薦するようなTop-K推薦の問題になると、探索空間は行動の組み合わせの数だけ広がり、簡単に爆発します。

このような多くの難しさはありますが、本論文がどのようにこれらの課題を対処しているか、一歩一歩見ていきましょう(なお、ここからは数式が多めになります)。

最初に、本論文で使われているREINFORCEアルゴリズムについて紹介します。

強化学習では、問題をマルコフ決定過程(MDP)として記述します。突然MDPが登場してきますが、上で描いた模式図に数学的な設定を与えているくらいの気持ちで読み進めてください。システム(エージェント)の目標は、期待収益を最大化するような方策を見つけ出すことです。

方策はθでパラメトライズすれば、上式のように勾配が計算できます。見た目はいかついですが、自身の方策によって得られた軌跡と報酬から、より期待収益が高くなる方向に勾配を計算しています。

さて、ここで複数方策が同居する問題が立ち上がります。YouTubeでは数時間ごとにデータを集めてパラメータ更新をするため、集められたデータは過去の様々な方策が混ざったものになります。また、先に紹介した通り決定論的な方策も同居しているため、ピュアに「現時点の方策の評価」ができません。

ただ、強化学習にはちゃんと対処法が用意されています。更新対象となる自分の現時点での方策を推定方策と呼びますが、推定方策とは別の方策(挙動方策と呼びます)からも学習を行うoff-policyという手法があります。自分の試行錯誤だけでなく、他人の試行錯誤のデータからも学習する、というイメージです。REINFORCEアルゴリズムはon-policyアルゴリズム(推定方策と挙動方策が一致するアルゴリズム)であるため、ここにoff-policy補正をかけて、他の方策の存在を考慮にいれましょう。

具体的には、推定方策とは別の方策βを仮定してあげて、軌跡のサンプリング自体はβから行い、πをアップデートする量は補正してあげる要領です(Importance Sampling)。ただしこの補正ではβが分母にくるため、到達確率が小さい軌跡が探索されている場合はβ→0となり、結果として大きなバリアンスを持ち込むことになります。特にβは多くの確率の掛け算に分解されるため、小さい値を取りやすくなります。

そのため、上式のように近似を行いましょう。2つ目の近似はなんだか強引に見えますが、この変換後もバリアンスの上界がある程度抑えられることが分かっています(Achiam et al. 2017)。

合わせて、Weight CappingNormalized Importance SamplingTrust Region Policy Optimizationといったバリアンス低減のテクニックが同時に使われていますが、長くなるので詳細は割愛します。これほど慎重にバリアンスに向き合わないと学習が進まない不安定さが伝わりますね。

論文のFigure.2を加工

off-policy補正による効果を簡単な実験で確かめてみましょう。推薦アイテム(行動)が10個ある場合を考え、それぞれの報酬はアイテムのインデックスで与えられるとします。つまり一番報酬が高いアイテムはa=10で、このアイテムを選択することが最適方策になる状況を考えます。挙動方策は上式のように、iが小さなアイテムほどたくさん選択される方策として与えてみます。

この設定で実験をすると、off-policy補正をかけた方策(右図)はa=10を集中的に選択し、最適に近い状態が実現できています。一方で、off-policy補正をかけない場合(左図)は、βが小さいaに偏っている影響で、πもそれに引きずられてしまってしまいます。これで補正が効いていることが確認できました。

off-policy補正を使った更新式まで求めたところで、次にアーキテクチャを見ていきましょう。ユーザー状態を表現するベクトルを推薦アイテムの埋め込みベクトルと一緒にRNNに入力し、そこで得られたユーザーの次状態をsoftmaxで表現されたπとして出力します。コンテキストには先ほどのLatent Crossが用いられており、TimeDelta・デバイス・ページといった情報が入力されます。

章の冒頭で複数の挙動方策が同居している、という問題に言及しましたが、本論文ではβを同じアーキテクチャ内で別パラメータθ’を使って学習しています。これによって、挙動方策群が全体平均としてどのような推薦を行うかが表現できるわけです。全体でならすことによって、β={0,1}のような出力が行われる決定論的な方策が同居していても勾配が計算しやすくなることも期待できます。βの学習がθの学習に影響を与えないよう、勾配の流れは分岐箇所で止めている点に注意してください。

このようにπとβが求まり報酬Rもデータから観測できるので、勾配を計算してより高い報酬が期待できる方策に近づけることができました。いよいよ最後の関門であるTop-K推薦に話題を進めましょう。

Top-K推薦をするにあたってすぐに思いつくのは行動空間の拡張です。一つのアイテム推薦を一行動として考えるのではなく、複数アイテムの組み合わせを行動とします。ただ、これは冒頭で言及したとおり行動空間の爆発を引き起こすので、なんとか計算を縮減しないと解けません。

そこで、問題を単純化して「複数アイテムの推薦はTop-1推薦を複数回繰り返す」と読み替えてしまいます。当然重複するアイテムも出てきますが、最終的に重複を除いた集合が得られればいいのでいったん許容します。

同様にREINFORCEアルゴリズムも上式のように拡張できます。新たに登場したαはあるアイテムaが推薦リストに含まれる確率を意味することになります。

勾配にoff-policy補正をして展開すると、Top-K推薦に拡張した勾配は、Top-1時の勾配に補正項λをつけただけの形に変形できます。このλをもう少し深堀ってみましょう。aが推薦されづらいアイテムだった場合(π→0)に報酬が発生すると、勾配は通常のK倍となってより大きく更新されます。一方で、既にaが推薦されやすい場合(π→1)には、λ→0に近づくため勾配の更新は抑制されることになります。

Top-K補正の影響を先ほどの実験で検証しましょう。今度は、a=1とa=2が高い報酬(r=10, 9)を持ち、他は全て報酬が低い(r=1)という状況を考えます。簡単のため挙動方策は一様分布としています。

結果を見ると、Top-K補正をかけない場合(左図)は、一番高い報酬を持つa=1を推薦し続ける方策が学習されています。ここにTop-K補正を入れると、二番手であるa=2も推薦されるようにりました(右図)。これは、a=2の推薦確率が低い時には、報酬発生時にK(=2)倍余計に勾配を考慮するのと、a=1がリストに入り始めると勾配が0に近づくことが相補的に影響していると考えられます。

長くなりましたが、ここまででTop-K off-policy補正の全体像の説明はおしまいです。最後に、実際のYouTube環境での実験結果を紹介します。

論文のFigure.5より

K=16の設定で実験したところ、最大0.8%程度の視聴時間の増加が見られました。上図はK=16をベースラインとした場合の比較ですが、Kを大きくしてもさほど視聴時間は変わらず、逆にKが小さすぎるとパフォーマンスが悪化することが確認されています。

論文のFigure.4より

視聴時間の他に影響があったのは推薦されるアイテム数です。上図は推薦動画をインプレッションの高い順に並べた時の累積分布を表していますが、コントロール群(青線)では人気の動画に推薦が集中している(分布が左に寄っている)一方で、今回のアルゴリズムを適用した実験群(緑線)ではよりランキングの低い動画が推薦される傾向が強くなっています。提案モデルによって、視聴時間や動画の多様性を増加させることができました。

最後に

この記事ではYouTubeの推薦アルゴリズムの変遷を追いながら、推薦システムへの ① 深層学習の導入、② RNNの導入とコンテキスト特徴の効率的な入力、③ 強化学習の導入、を紹介してきました。

特に3つ目の論文が面白かったので、夢中になって書いたら結構な長さになってしまいましたが、ここでは紹介しきれなかった話題や論文もたくさんあるので、また他の機会に紹介していきたいと思います。

最近は推薦×強化学習領域のサーベイをしていましたが、YouTubeに限らず、ECや他のドメインでも様々な導入事例があります。 社内だけに調査の情報を閉じてしまうのはもったいないので、勉強会や議論の場などあれば気軽に誘ってくださいませ。

最後に、eurekaではマッチングやレコメンド領域のAI技術に向き合っていきたいと思っています。興味のある方はぜひお声がけください。

--

--

Jun Ernesto Okumura
Eureka Engineering

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