本文へ移動
Xアルゴリズム解体新書
2第一部10

「点数」の正体

+20点は「コピーされたら加算」ではない。AIの予測確率に掛かる係数である。

この章で分かること

  • 「リンクコピー+20点」の本当の意味が説明できる
  • 「通報1件でいいね468件が消える」が誤りである理由が分かる
  • 自分で点数を計算できるようになる

この章だけで、世間に出回っている誤解のほとんどが片づきます。ここを外すと、公開コードを読んでも全部ずれます。

世間で言われていること

数字はすべて本物です。param.rs に書かれている既定値と完全に一致します。ところが、意味がまるで違います。

正しくはこうです

「リンクコピーされたら +20点」ではありません。「この閲覧者は、この投稿を見たらリンクコピーしそうか?」をAIが確率で予測し、その予測確率に20を掛けるのです。

コードにすると、たったこれだけです。

fn apply(score: Option<f64>, weight: f64) -> f64 {
    score.unwrap_or(0.0) * weight
}
score はAIの予測値、weight が公開されている係数です。ranking_scorer.rs:447-449

たとえばAIが「この人がこの投稿をリンクコピーする確率は3%」と予測したなら、加算されるのは 0.03 × 20 = 0.6 です。誰かが実際にコピーしたかどうかは、この計算に一切関係ありません。

X自身がコードで否定している

面白いことに、この誤解についてX自身がコードのコメントで反論を書いています。要点は4つです。

  1. 01係数は予測確率に掛かる。生の件数には掛からない。
  2. 02だから「通報1件=いいね468件」という読み方は誤りである
  3. 03通報の基礎発生確率はいいねの1000分の1以下なので、係数を大きくしないとランキングに影響できない。
  4. 04推薦は個人化されているため、悪意ある大量通報は「その通報者に似た人」の画面にしか主に効かない。

実際に計算してみる

ある投稿・ある閲覧者について、AIが次のように予測したとします。数値は説明のための仮定です。

予測される行動確率係数点数
いいねする40%0.5+0.200
返信する5%5.0+0.250
リンクをコピーして共有3%20.0+0.600
作者をフォローする0.5%4.0+0.020
滞在する30秒0.004+0.120
通報する0.01%-234.0−0.023
合計約 +1.17

係数20のリンクコピーは、確率がわずか3%でも最大の貢献をしています。これが「係数が大きい」ことの意味です。一方で係数0.5のいいねも、確率が40%と高いのでしっかり効いています。

そして通報は、係数が −234 もあるのに、確率が0.01%なので影響は −0.023 しかありません。ここが「1通報でいいね468件が消える」が成立しない理由です。

自分で動かしてみる

下の計算機は、実際のコードと同じ手順で点数を出します。左のつまみは「AIがそう予測した確率」です。動かすと、どの項目がどれだけ効くのかが体感できます。

スコア計算機

左は「AIがそう予測した確率」です。実際の回数ではありません。動かすと右の点数が変わります。

同じ作者の
  • 40.00%×0.5=+0.200
  • 5.00%×5=+0.250
  • 3.00%×1=+0.030
  • 0.60%×5=+0.030
  • 0.40%×20=+0.080
  • 0.50%×5=+0.025
  • 0.80%×2=+0.016
  • 0.30%×4=+0.012
  • 12.00%×0.4=+0.048
  • 4.00%×0.2=+0.008
  • 6.00%×0.05=+0.003
  • 5.00%×0.05=+0.003
  • 25秒×0.004=+0.100
  • 0.05%×-43.2=-0.022
  • 0.02%×-31.2=-0.006
  • 0.02%×-58.8=-0.012
  • 0.01%×-234=-0.023
  • 55.00%×-0.02=-0.011
最終スコア
0.5486
プラスの合計
+0.804
マイナスの合計
−0.074
差引
+0.731
オフセット変換+0.001
0.7315
同一作者の減衰(1本目)1本目は減衰なし
×1.0000
フォロー外割引フォロー外のため適用
×0.75

この計算機は新人枠とDPP多様化を含んでいません。

計算手順 ranking_scorer.rs:460-562

既定値 param.rs:308-474

26項目のウェイト分布

標準の計算に直接入るのは26項目です。係数の大きい順に並べると、こうなります。

  • 通報する-234
  • 作者をミュートする-58.8
  • 「興味がない」を押す-43.2
  • 作者をブロックする-31.2
  • リンクをコピーして共有+20
  • 返信+5
  • DMで送る+5
  • 引用リポスト+5
  • 投稿をきっかけに作者をフォロー+4
  • 共有ボタンを押す+2
  • リポスト+1
  • いいね+0.5
  • 投稿をクリックする+0.4
  • リンクを開く+0.2
  • 写真を拡大する+0.05
  • 動画を開く+0.05
  • 動画の品質視聴(VQV)+0.05
  • 引用元の投稿をクリックする+0.05
  • 滞在せずに流された-0.02
  • 未探索の投稿+0.02
  • 滞在時間(1秒あたり)+0.004
プラスマイナス棒の長さは係数の絶対値です。係数は「実際の回数」ではなく「その行動をする予測確率」に掛かります。param.rs:308-474

上位を見てください。リンクコピー、DM送信、引用、返信、作者フォロー。どれも「わざわざ人に教えたくなった」「この人をもっと見たくなった」という行動です。ワンタップで済むいいねは0.5にすぎません。