はじめまして!2024年2月に「CA Tech JOB」というインターンシップにデータサイエンティストとして参加しました、柳智也(@ynt0485)です。現在は筑波大学の修士1年で、機械学習および数理最適化を専門としています。

今回のインターンシップでは、ABEMAにてレコメンドロジックのA/Bテストを行った結果を分析しました。本ブログでは、レコメンドロジックの変更によってどのように推薦結果が変わったのかについて紹介します!

 

タスクの説明

はじめに、今回のタスクの内容について説明します。
ABEMAでは、コンテンツを視聴している画面(以下、視聴面)に、視聴中のものとは別のコンテンツを推薦する「人気・注目枠」という枠が存在します(図1)。人気・注目枠では、ユーザーがそのときに視聴しているコンテンツ(視聴コンテンツ)の情報やユーザーの過去の視聴情報を用いて、複数のコンテンツが表示されます。
もしユーザーが興味のあるコンテンツをこの枠に表示することができれば、それらのコンテンツのクリックを引き起こし、新たな視聴を生むことができるかもしれません。そのため、人気・注目枠ではユーザーが好むであろうコンテンツを表示する、つまり推薦の精度を高めることが重要です。

図1:ABEMAの画面

 

次に、人気・注目枠のレコメンドロジックの概要について説明します。レコメンドロジックには、

  1. candidateの生成
  2. candidateの並び替え

の2ステップが存在します(図2)。

最初の「①candidateの生成」では、視聴コンテンツを入力として、人気・注目枠に表示するコンテンツの候補(candidate)を選択します。この時、生成される候補の数は実際に表示可能なものよりも大きなものとなります。ここでは機械学習モデルを用いており、とある指標を最大化するように設計・実装されています。

なお、今回のA/Bテストでは、
・コントロールグループは「5分視聴の有無」
・トリートメントグループは「視聴時間」
を最適化するようになっています。

 

図2:レコメンドの流れ

 

candidateを生成したあとは、「②candidateの並び替え」が実行されます。ここでは①で選択したcandidateの集合に順序をつけることで、人気・注目枠で表示する順番を決定します。今回のタスクでは、この並び替えにおいて2つの手法を適用し、人気・注目枠で表示されるコンテンツ(推薦コンテンツ)にどのような違いが生じるのかを分析していきます。

1つ目の手法は、機械学習モデルを使用してコンテンツを並び替えるものです。機械学習モデルではユーザーの過去の視聴や推薦コンテンツの情報を入力してcandidateのランクを決定します。このように、与えられた候補に順序づけを行う機械学習モデルのことを「reranker」と呼びます。なお、このrerankerではクリック率(CTR)を最適化しています。

2つ目の手法は、視聴コンテンツとcandidateの類似度を用いて並び替えるものです。1つ目とは違い、機械学習モデルを使用せず、candidate生成時に計算された視聴コンテンツとcandidateの類似度を利用します。つまり、視聴コンテンツとの類似度が高いcandidateが人気・注目枠の上位に表示されるように並び替えられます。

以上より、今回のA/Bテストの設計は以下のようにまとめられます。このうち、今回のインターンでは主にtreatment1と2の差分に注目し、rerankerのある/なしによる推薦の変化を分析しました。

基礎分析の結果

ここからは、上記のA/Bテストにおける基礎分析の結果を説明します。今回は、各コンテンツのインプレッション(imp)数、クリック(click)数、CTR(=click/imp)を時系列で確認しました。

以下の図3〜5が、各群におけるそれぞれの指標の変化を表す折れ線グラフになります。各図の横軸は日付になっており、図の赤い部分が実験期間を表しています。左側のグラフは実数値、右側のグラフはコントロールグループとの相対比をプロットしています。相対比が1よりも大きければコントロールグループよりトリートメントグループの値が大きく、1よりも小さければトリートメントグループの値が小さいという解釈になります。

この結果から、実験期間中のインプレッション数の相対比は実験期間前のばらつきの範囲内を推移しており、施策によって変化していないことがわかります。一方で、実験期間中のクリックとCTRは、treatment2のみ実験期間前のばらつきの範囲よりも大きな値を推移しており、ユーザーがクリックをするようなコンテンツを他の群より多く推薦できていると考えられます。

 

 

次に、ジャンルごとにインプレッション数とクリック数を確認していきます。treatment1・2それぞれcontrolとの相対比を取り、ジャンルごとにプロットしたものが図6の棒グラフになります。なお、左側がインプレッション数、右側がクリック数を表しています。

この結果を見ると、treatment1はcontrolとインプレッション数・クリック数ともに大きな変化はありません。一方で、treatment2はジャンルによって大きく増加/減少していることがわかります。

図6:controlとの相対比(左がインプレッション数、右がクリック数)

 

最後に、コンテンツごとに変動を確認していきます。図7ではインプレッション数・クリック数でtreatment2とtreatment1の差分を取り、箱ひげ図をプロットしています。左側がインプレッション数、右側がクリック数を表しています。

この結果を見ると、実験期間中にインプレッション数・クリック数が大きく増加/減少しているコンテンツが存在することがわかります。treatment2とtreatment1の違いはrerankerの有無であったことから、rerankerがあるときとないときで表示回数に大きな差があるコンテンツが存在すると考えられます。

図7:treatment2とtreatment1の差分(左がインプレッション数、右がクリック数)

 

以上の基礎分析から、以下のことがわかりました。

・rerankをしないtreatment2でクリック数(CTR)が大きく向上している
・インプレッション数やクリック数の変動はジャンルごとに異なる
・一部コンテンツでインプレッション数とクリック数が大きく変動している

ここからは、下の結果から考えたいくつかの仮説を検証していきます。

 

立てた仮説の内容

上記の基礎分析を踏まえ、本インターンシップでは2つの仮説を検証することにしました。

①rerankがないことで視聴ジャンルと同じジャンルを推薦できている

先ほどの基礎分析では、rerankを使用しないtreatment2でクリック数(CTR)が大きく向上していることがわかりました。

ここで、rerankを使用しないとき、candidateを並び替える基準は視聴コンテンツとの類似度であったことに注目します。コンテンツの類似度の計算方法については省略しますが、一般的にジャンル1ならジャンル1、ジャンル2ならジャンル2のコンテンツ同士の類似度が高くなると考えられます。

そのため、treatment2では視聴コンテンツのジャンル(視聴ジャンル)と同じジャンルのコンテンツを推薦しやすくなっており、これがクリック数を向上させている要因ではないかと仮説を立てました。

②rerankによって人気コンテンツが推薦されやすくなっている

こちらは、rerankのある/なしによって一部のコンテンツのインプレッション数・クリック数が大きく変動していることから考えた仮説になります。

rerankerの学習は、過去の視聴履歴を用いて定期的に行われています。このとき、ABEMAで人気のコンテンツは視聴履歴に多く出現するため、「ある人気コンテンツをクリックした」というデータが多く蓄積され、学習データに偏りが生じます。そのため、人気コンテンツであることをrerankerが過度に学習してしまい、多くのユーザーに人気コンテンツを推薦するという偏りが生じているのではないかと考えました。

 

仮説の検証結果

上記の仮説の検証結果を説明します。

1つ目の仮説の検証結果

はじめに、1つ目の仮説である「rerankがないことで視聴ジャンルと同じジャンルを推薦できている」について分析を行います。この仮説を検証するために「インプレッション数とクリック数それぞれについて、視聴ジャンルと推薦ジャンルが一致している割合が増えているか」を確認しました。

図8,9が、インプレッション数・クリック数それぞれについて、ジャンルが一致しているかどうかを表したグラフです。赤色が視聴ジャンルと推薦ジャンルが一致していないとき、青色が視聴ジャンルと推薦ジャンルが一致しているときに相当します。また、左側のグラフが比率、右側のグラフが実数値を表しています。

まず、図8のインプレッション数を集計したグラフではrerankをしないtreatment2で青色が占める割合が増えており、rerankをするときよりもしないときのほうが視聴ジャンルと同じジャンルのコンテンツを表示できていることがわかります。

図8:視聴ジャンル→人気注目枠のコンテンツジャンルの
インプレッション数(左側が比率、右側が実数値)

 

また、図9のクリック数を集計したグラフでも同様にrerankをしないtreatment2で青色が占める割合が増えています。また、実数値についてもtreatment1よりtreatment2の値が上回っているジャンルが多いことがわかります。ここから、視聴ジャンルと同じジャンルのコンテンツを推薦することでクリック数を増加させることができると考えられます。

図9:視聴ジャンル→人気注目枠のコンテンツジャンルのクリック数(左側が比率、右側が実数値)

 

以上より、クリック数を増加させるという観点では視聴しているジャンルと同じジャンルを推薦することが重要であるとわかりました。

ここまでの結果をもとに、rerankerの改善ポイントを考えます。rerankerの特徴量を確認したところ、推薦コンテンツのジャンルは考慮されているものの、視聴コンテンツのジャンルは入力されておらず、視聴しているジャンルと同じジャンルであるかどうかを考慮できない設計となっていました。そのため、推薦コンテンツのジャンルが視聴コンテンツのジャンルと一致しているかの特徴量を追加するといった工夫が挙げられます。

2つ目の仮説の検証結果

次に、2つ目の仮説である「rerankによって人気コンテンツが推薦されやすくなっている」について分析を行います。

はじめに、この分析にあたっては各コンテンツの人気度を設定する必要があります。今回は、実験期間中におけるサービス全体の10秒視聴ユニークユーザー数(UU数)を各コンテンツにおいて集計し、ジャンルごとに人気度をランキング形式で付与しました(図10)。この人気度の定義はバイアスを含んでいます。施策によって各群の人気・注目枠で表示されるコンテンツが変わり、人気・注目枠経由で生じる10秒視聴UU数に影響を与えるためです。しかし、サービス全体の視聴のうち、バイアスを生じさせる人気・注目枠経由の視聴が占める割合は非常に小さいことが分かっています。そのため、バイアスは非常に小さいものであると判断して、今回の人気度の定義を採用しました。

図10:人気度の計算方法のイメージ

 

人気度を横軸、インプレッション数の差分(treatment2-treatment1)を縦軸にとった散布図をプロットした結果が図11になります。横軸が左にいくほどコンテンツの人気度が高く、縦軸が下にいくほどrerankがないときよりrerankがあるときのほうが推薦回数が多いという解釈になります。

仮説がもし正しいとすると、人気度が高いコンテンツほどrerankのあるtreatment1で推薦回数が多くなるため、図の左下側に点が集まります。しかし、実際の結果を見るとそのような傾向は見られず、図の左上側に点が分布しています。つまり、人気コンテンツはrerankをしない場合でも推薦回数が多いことがわかりました。

図11:人気度とインプレッション数の差分

 

上の結果は、コンテンツの人気度等を考慮せずにコンテンツの類似度でcandidateを並び替える場合でも、人気コンテンツを推薦できていることになるため、やや不思議なものとなっています。時間の関係上、本インターンシップ中に追加の分析をすることはできませんでした。しかし、rerankerのロジックの深掘りや、candidate生成時点で人気コンテンツがどれだけ出現しているかを分析したりすることで、rerankの有無で人気コンテンツの表示数が変化しない要因を特定できるのではないかと考えています。

 

もう少し分析してみたかったこと

ここまでの分析では、「視聴ジャンルと同じジャンルを推薦することでクリック数を増加させられる」という示唆を得ることができました。
今回は時間の都合上深掘りませんでしたが、ネクストとして以下のような分析を行うことで、今回のA/Bテストの結果をより深く理解できるのではないかと考えています。

クリック数と視聴時間の関係性の分析

今回はクリック数に注目しましたが、視聴時間をかけあわせた分析が求められると考えています。ABEMAのコンテンツ推薦では、推薦したコンテンツがクリックされて終わりではなく、良い視聴体験に繋げることが目的であるからです。例えば、クリックされたコンテンツがユーザーにとって興味のないコンテンツであれば、すぐに視聴を止められてしまいます。つまり、推薦したコンテンツがクリックされて、かつ、どれだけユーザーに視聴してもらえてるかが重要です。そのため、推薦されたコンテンツのクリック数と視聴時間の分析が必要だと考えています。

ユーザーの視聴ジャンル数の変化

ここまでの分析は視聴ジャンルと同じジャンルのコンテンツを推薦することが望ましいという結果でしたが、視聴ジャンルと異なるジャンルのコンテンツを推薦することがユーザーにとって有益になる場合もあります。例えば、今まで自身が視聴していなかったジャンルのコンテンツが推薦されることで、ユーザーは新たな興味を見つけられるかもしれません。これは推薦の文脈では「多様性が広がる」と表現されます。

視聴ジャンルと同じジャンルのコンテンツばかりを推薦してしまうと、ユーザーの視聴の多様性を広げることができません。そのため、ユーザーの視聴ジャンル数などを分析し、多様性の観点でも推薦システムを評価する必要があると思います。

 

おわりに

今回のインターンシップでは、ABEMAのレコメンドロジックのA/Bテストを行い、その結果を分析しました。私自身が日常でABEMAのコンテンツをよく視聴していることもあり、分析を通じて身近なサービスの内部を理解していくのがとても楽しかったです!

また、インターンシップ中はメンターさんをはじめとして、ABEMAの施策分析チームの方々から様々なフィードバックをいただきました。途中、自分が分析の方針に悩んでいる際にも快くご相談に乗っていただき、短い期間で示唆を得ることができました。

改めまして、この度はインターンシップに参加させていただき、ありがとうございました!