Wang+'23 Fresh Content Needs More Attention: Multi-funnel Fresh Content Recommendation (KDD 2023)
TL; DR
大規模な商業プラットフォームにおける新規コンテンツ推薦の成功事例
2種類の異なるモデルで構成される Multi-funnel Nonination の仕組みを採用
数十億人のユーザーを対象としたライブ実験を通じて有効性を検証した
Motivation
推薦システムがもたらす人気バイアス
推薦システムはユーザーとコンテンツのインタラクションログによって学習されることが多い
インタラクションログは推薦システムが選んだコンテンツに依存する
→ 非常に強いフィードバックが生まれる("rich gets richer" effect)
低人気のコンテンツプロバイダーが直面する課題
初期の露出量が非常に少ない(か全くない)ために、コンテンツが推薦システムに選ばれない
せっかく動画を投稿したのに全然再生してもらえない
いわゆるコールドスタート問題
推薦システムのもたらす負のフィードバックループを壊し、健全なプラットフォームを作りたい
重要な点
高品質な新規コンテンツが十分な露出量を確保し、バズるチャンスを得られる
大規模な商用プラットフォームで運用可能な実用的なアーキテクチャ
新規コンテンツの量
YouTube: 500 hours/min
Spotify: 1 music per 1.4second
Challenge
新規コンテンツの露出を増やす際に直面するジレンマ
全てのコンテンツを探索するようなシステムは長期的なユーザー体験を向上させる
一方、確度が高い推薦の割合が減ることで短期的なユーザー体験を毀損する可能性がある
新規コンテンツの coverage と relevance のバランス
coverage
どの程度の量(ユニーク数)の新規コンテンツをユーザーに提供できているか
relevance
提供するコンテンツがどの程度ユーザーの興味とマッチしているか
課題とその対応策サマリ
既存の推薦システムに対して新規コンテンツ用推薦システムをどう位置付けるか?
→ 既存の推薦パイプラインとは全く別のシステムとして構築する
新規コンテンツ用推薦システムにはどのような要素が必要か?
nomination system
graduation filter
ranking system
coverage と relevance のバランスをどう取るか?
(ランダムに新規コンテンツを推薦する方法は coverage 最大になるが relevance やユーザー体験を毀損する)
multi-funnel nomination system を採用する
https://gyazo.com/c673d5b46119cb90b2deb10960ba00ed
coverageが高いコンテンツとrelevance が高いコンテンツの間でユーザーリクエストを振り分ける
ユーザーインタラクションデータがほとんどない状態で、どのようにコンテンツをモデル化するか?
コンテンツ特徴を利用した two-tower DNN model
ほぼリアルタイムなユーザーフィードバックに基づくsequence model
新規コンテンツ推薦の効果をどう計測するか?
発見可能なコーパス(= Y日以内にX回の (positive) interactions を受け取ったコンテンツ集合)を増加させる効果を測定するため、ユーザーとコーパスの共同振り分け実験フレームワークを採用
Fresh Content Recommendation Pipline
Overview
https://gyazo.com/2fe7474eca0b25ecd8248a66f9d0eed6
5つのコンポーネントで構成される
Fresh content nominator
新規コンテンツ候補を推薦する two tower model
query tower: 視聴履歴に基づいてユーザー表現をエンコードする
candidate tower: アイテム特徴からアイテムの表現をエンコードする
視聴履歴から (positive) user interaction を予測するタスクで学習
Graduation filter
リアルタイムでユーザーによって最低𝑛回消費されたコンテンツを除去する
Ranking
Pre-scorer と Ranker(メインの推薦システムと共有)で構成される
Pre-scorer
real-time Bernoulli multi-arm bandit model
arm -> content
報酬 $ r_i -> クリック後少なくとも10秒滞在をクリックと定義したCTR
以下の beta 分布からThompson Samplingする
https://gyazo.com/eca4841170815c28ffe4da1fd6e5f4b5
top10のコンテンツを返す軽量なモデル
Ranker
DNNを利用した重いモデル
top1を返す
最終的に選ばれたtop1のアイテムがコンテンツリストの適当な位置(掲出スロット)に掲出される
コントロールや測定が容易というメリットがある
User corpus co-diverted experiment
実験設定
オンラインプラットフォーム(おそらくYouTubeと考えられる)におけるA/Bテスト
ct群とtr群に分けられたユーザーは異なるコーパスから推薦がされる
https://gyazo.com/95841238127da825d3e52785795d6a2e
x%のユーザーがx%のコーパスに暴露されるため、実験で測定された処理の効果は、100%のユーザーが100%のコーパスに暴露されたときの効果と一致する
評価指標
Daily Unique Impressed Contents at 𝐾 (DUIC@K)
毎日K回のインプレッションを受けたユニークなコンテンツの数
Fresh Content Dwell Time (DwellTime)
ユーザーが新規コンテンツに費やした時間
Number of content receiving X (post bootstrapping) positive interactions in Y days (Discoverable Corpus@X,Ydays)
Y日以内にX回の (positive) interactions を受け取ったコンテンツの数
= Discoverable Corpus の大きさ
全体でのユーザーの滞在時間を測るユーザーメトリック
オンライン実験結果
https://gyazo.com/0745eff1d4fb3ec414211175db4558c1
(a) 1日あたり1000 impression 以上を受け取るコンテンツ数が7.2%増加
(b) Discoverable Corpus の大きさも一貫して向上
Yが大きい領域でも向上している -> より多くのユニークなコンテンツがメインの推薦システムによってレコメンドされ、結果としてユーザーに発見されるようになった
(c) コンテンツプロバイダーのアップロード数が増加
https://gyazo.com/5bed5e612f9d1fa5198adbc16e271690
(a) 7日以内の新規コンテンツの(positive) interactionsは平均して+2.52%増加
(b) 全体の滞在時間の減少は−0.12%とわずか
(c) 小規模なコンテンツプロバイダーの提供コンテンツの滞在時間は+5.5%.増加
-> short-term user engagementにあまり影響がないユーザーによって多くの新規コンテンツが消費されている
Multi-funnel Fresh Content Recommendation
Fresh Content Recommendation Pipline をさらに効率的で精緻なものにしたい
Fresh content nominator の coverage と relevance を共に高めることを目指す
Q1: インタラクションデータが非常に限られているコンテンツに対してユーザーの興味をどう推定するか
Q2: リアルタイムに少数の初期のインタラクションデータが得られた後、それらをどう利用すべきか?
Q3: content generalization と real-time learning のバランスをどう取って、ユーザーのコストを減らすことができるか?
Content Generalization Model
協調フィルタリングに基づくほとんどの推薦モデルはIDベースのembeddingを学習して推薦に使用するが、新規コンテンツに対してはデータが少ないため十分な表現が得られない
新規コンテンツにも十分に汎化する two-tower model を構築する
前述の Fresh content nominator からの変更点
特徴量からアイテムIDを削除(個別アイテムの情報を覚えてしまうのを防ぐ)
特徴量から人気度の情報になるようなものを削除(人気バイアス除去)
例: imp数, positive intaraction数
オンライン実験結果
設定
tr: Fresh content nominator のみを Content Generalization Model に変更
結果
DUIC@1,000が 3.3% 向上
新規コンテンツの滞在時間が 2.6% 向上
ID特徴や人気特徴に頼らないコンテンツ特徴を利用することで、既存コンテンツの人気傾向を学習し、新規コンテンツにも汎化することができている
(Near) Real-Time Learning Model
上述したコンテンツベースのモデルは新しいコンテンツに対する汎化性能に優れるが、あるユーザーに対してインタラクションが発生した後にその情報を素早く加味することができない
このような即時反応データの利用は重要
しばしばコンテンツを特徴づけたり、品質を反映したりするのに十分な特徴量がない
初期のユーザーフィードバックを即時に反映することで、低品質コンテンツの露出を防ぎ、より可能性のあるコンテンツの露出機会を増やすことができる
リアルタイムに収集されるユーザーログを使用して高速にアップデートされる near real-time nominator が必要
ID特徴も使用する two-tower モデル
直近15分の near real-time なユーザーインタラクションデータを学習に使用
(データ収集 -> serveまでのend2end)レイテンシが数時間
メインの推薦システムは18~24時間、長いものは数日のため数時間オーダーは非常に高速
学習を高速にするためシンプルなアーキテクチャを採用
https://gyazo.com/392e363e6a39cbf32e3fb0bffb6f2030
視聴履歴を元に次に視聴するコンテンツを予測するタスクで学習する
ユーザー表現の作り方
https://gyazo.com/d785c86ada485f98b5a85cecb3c50721
fは学習される
表現の工夫
ID特徴によってコーパス中の人気アイテムに過剰に寄ってしまうリスクがあるためカテゴリ特徴を入れる
アイテムコーパス全体における人気度の逆数で特徴量を重み付け
モデルが大まかな特徴量を無視して、汎化のためのより具体的な内容特徴量の学習に集中するようにする
Low-funnel vs Middle-funnel Contents
新規コンテンツは Low-funnel と Middle-funnel に分けられる
Low-funnel: 非常に少数、もしくはインタラクションデータがまったくない
real-time learning model はインラクションデータの欠如のためうまく推論ができない
content generalization model が力を発揮するシチュエーション
Middle-funnel: 少数だがインタラクションデータが集まっている
real-time learning model がパーソナライズの力を発揮するシチュエーション
違いの強みを生かし合い欠点を補い合うため、コンテンツの種類によって使用するモデルを切り替える
どう切り替えるかがキモ
ナイーブにはそれぞれのファネルでの推論 + 後段の処理で最終的なアイテムを選ぶ方法が考えられる
→ rankerが持つ望ましくない人気バイアスにより、middle-funnel contentが支配的になってしまう現象が観測された
そこで query division multiplexing と呼ぶアプローチを取る
p%の確率でランダムに2つのファネルから片方を選択して推論させる
https://gyazo.com/f0033037492bd7b11edc44b3d895962c
Experiments
実験設定
Single-funnel nomination 設定
S-two-tower
content generalization model
S-real-time
real-time sequence model
Multi-funnel nomination 設定
𝑝 %の確率で content generalization model が、100-𝑝 %の確率で real-time sequence model が使用される
p=80, Low-funnelの閾値 𝑛𝑙𝑜𝑤=200 に設定(後述)
1%のオンラインユーザーを使用した実験でユーザー行動を計測
5%のオンラインユーザーを使用した実験で発見可能なコーパスへの影響を計測
実験結果
multi-funnel nominationの効果
https://gyazo.com/b5e53982655ae02b59bd58937fcb8210
(a) S-real-time は S-two-tower に比べてDUIC@1000が1.79%低下
Low-funnel では content generalization model が有効
(b) Single-funnel nomination (via S-two-tower) に比べて Multi-funnel nomination ではDUIC@1000が0.65%向上
Multi-funnel nominationにすることによって新規コンテンツのカバレッジが向上している
発見可能なコーパスの大きさへの効果
https://gyazo.com/dfa0af207febb968f9ec2085d6c4f49a
Multi-funnel nomination を採用することでどのようなXにおいても改善している
コールルドスタートから抜け出した後も、高品質なコンテンツの総数を増やせている
S-real-timeは十分でない
ユーザーエンゲージメントへの効果
https://gyazo.com/f31f56c5aecc3174f809d610f7b552f0
青: Single-funnel nomination, 赤: Multi-funnel nomination, ベースライン: content generalization model
(a) 全体的な滞在時間はほとんど差がない
(b) Multi-funnel nominationはSingle-funnel nominationに比べて小規模なコンテンツプロバイダーのコンテンツに対する滞在時間を0.45%増加させている。S-real-timeはむしろ低下する結果に
(c) 一方で、新規7日の positive interactionはS-real-timeが優れている(ユーザーの好みをより正確に予測できている)。 Multi-funnel nominationの場合は多少悪化
Low-funnelの閾値 𝑛𝑙𝑜𝑤の探索
https://gyazo.com/c674f4dba1f15dafdf6d1a4607da7cb2
200程度が最適
おそらく、低すぎる場合より多くの低品質コンテンツが content generalization model によって nominate されるが、ユーザー興味との関連性が低いため後段でフィルタリングされる
実際、上限を400から100に下げた場合、インプレッションがゼロでないユニークコンテンツの数が2.9%減少する
一方、リアルタイムモデルに学習シグナルを提供するためには、Low-funnel nominator から一定量の初期インタラクションが必要
今後はMiddle-funnel も Low-funnel nominator に寄せていく(汎化重視)方向性が考えられる
mixing probabilitiy の探索
https://gyazo.com/1d8a31fa12d43f2858e1fcd4d9126245
より多くのランダムリクエストがreal-time sequence modelを採用する場合、ほぼリアルタイムにモデルが更新されるため、ユーザーはより関連性の高いコンテンツとマッチングされる
real-time sequence model の割合が増えるほど 新規コンテンツの滞在時間は増加
一方で、DUIC@Kは減少していく
p=80程度がちょうど良いトレードオフ
ユーザーアクティビティとの関連
https://gyazo.com/66b504f944ee53bfa3bb6b74c2930014
カジュアルなユーザーは real-time sequence model と content generalization model の差があまりない
コアユーザーは real-time sequence model によって短期的なエンゲージメント(Good CTR)が向上している
さらに多重化させることが可能
𝑞%のコアユーザーを選択しreal-time sequence modelを他ユーザーはcontent generalization modelを当てる
https://gyazo.com/0547d6b46d00aafc4f0d34d9ba4f7cbe
40%のコアユーザーに割り当てるだけで、滞在時間とgood CTRを大幅に改善しつつ、DUIC@100の毀損は小さく抑えることができる
Memo
課題と提案法共に納得感があり、実験や分析もmassiveで学びのある論文
一段階目の実験で終わらず、さらなる効率化を追求している