一度見ただけなのに、おすすめが別人になる
YouTubeやSNSで、普段は見ない動画を一度だけ開いたら、おすすめがその話題で埋まったことないですか?
友人に送られた動画だったり、仕事で確認しただけだったりして、自分の好みが変わったわけではありません。それなのに、閉じても次の日も似た動画が並び、「もう興味ないのに」と思いながら何本も非表示にすることになります。
興味は戻ったのに、表示だけが戻らない
推薦サービスは視聴、クリック、滞在時間などの行動から、次に見そうなものを選んでいるわけですが、一度の行動がどれくらい残るかは画面から見えません。
でも、ここで一つ不思議があります。新しい行動をすぐ反映するサービスほど、好みの変化に素早く追いつけそうです。それなら、普段と違う一本の影響もすぐ消えそうなのに、なぜしばらく尾を引くのでしょうか?
実際の推薦システムは、動画同士の近さ、似た利用者の行動、視聴履歴の長さなど、多数の情報を組み合わせています。以下はその実装を断定する話ではなく、「最近の行動をどの程度重く扱うか」という一部分を単純化した実験です。なお、この模型だけでは、冒頭の「一本で表示が大きく動き、その影響が長く残る」を同時には説明できません。ここで扱うのは、そのうち「入った影響がどんな速さで薄れるか」だけです。
新しい一本を、どれくらい重く採用するか
指数移動平均という見方で、この戻りにくさを解釈できるか試してみます。これは、新しい行動ほど重く、古い行動ほど一定の割合で軽くしながら、現在の傾向を更新する方法です。
更新のつまみを α(アルファ)とします。α が大きければ、いま見た一本を強く採用するため、表示は素早く変わります。ただし次の行動も強く採用するので、直前の影響は速く薄れます。
α が小さければ、一度の行動だけでは表示が大きく動きません。その代わり、過去を少しずつしか手放さないため、いったん傾いた傾向は長く残ります。
「反応が速いか」と「過去が尾を引くか」は別々の設定に見えますが、この単純なモデルでは同じ α の表裏です。敏感にすれば変化を拾いやすい一方で表示が揺れやすく、安定させれば偶然には強い一方で元へ戻るのが遅くなります。
戻りの遅さは、おすすめ以外にも現れる
同じ釣り合いは、迷惑メール判定やニュースの関心推定にも現れます。直近の操作を重く扱えば、環境の変化にはすぐ追いつけますが、偶然のクリックにも振り回されます。長い履歴を重く扱えば、たまたま一度開いただけの記事には動じませんが、本当に関心が変わったときの追従は遅れます。
推薦で「先回りされた」と感じる側には、動画と利用者の近さを捉える別の仕組みもあります。その違いは、こちらの記事で扱っています。

今回の焦点は「何を近いと判断するか」ではなく、「新しい行動で傾向をどの速さで更新するか」です。似たおすすめでも、近さと時間では使っている数学が違います。
一本の影響は、どんな速さで薄れるのか
時点 t の好みの推定値を $s_t$、その時点の行動を $x_t$ とすると、更新は次のように書けます。
$$ s_t = \alpha x_t + (1-\alpha)s_{t-1} $$
$s_t$ は「いま推定している好み」、$x_t$ は「いま見た一本」、$s_{t-1}$ は「一つ前までの履歴」です。$\alpha$ は新しい一本の重み、$1-\alpha$ は過去を残す割合になります。
普段と違う動画を時点 0 で一本だけ見て、その後は元の行動に戻ったとします。その一本が k 回更新した後に残す影響は、次の形で減ります。
$$ \alpha(1-\alpha)^k $$
毎回 $1-\alpha$ を掛けるので、影響は一定量ずつではなく、現在残っている量に比例して減っていきます。これが「指数的に薄れる」という意味です。
たとえば $\alpha=0.20$ なら、最初の影響が半分になるまで約3回の更新です。$\alpha=0.05$ なら約14回かかります。後者は一度の反応こそ小さいものの、入った影響を長く残します。
半分になる更新回数 h は、
$$ h = \frac{\log(1/2)}{\log(1-\alpha)} $$
と書けます。ここで h は「影響が半分になるまでの行動回数」です。時間そのものではないので、一日に何本も見る人と数日に一本しか見ない人では、同じ h でもカレンダー上の長さが変わります。

このモデルでは、普段の行動に戻った後も、一本の影響が一回で消えるわけではありません。元の行動で更新されるたび、残っている影響に $1-\alpha$ が掛かり、少しずつ基準へ近づきます。
「戻す」には、何本の行動が必要か
おすすめが戻らないとき、「サービスが自分の過去を忘れていない」と考えたくなります。指数移動平均として捉えると、忘れていないかどうかより、毎回どの割合で過去を残しているかが効いていると読めます。
しかも、α を大きくすれば解決するわけでもありません。戻りは速くなりますが、今度は偶然の一本で表示が大きく変わります。α を小さくすれば誤反応は減りますが、本当に好みが変わったときも追いつきません。
推薦の「しつこさ」は、単なる失敗ではなく、変化への速さと偶然への強さを同時に得られないところから生まれているのかもしれません。もしおすすめ画面に「過去の影響を半分にする」という設定があったら、自分は何回分の履歴を残したいでしょうか?
