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

Phoenix ─ AIは何を見ているか

予測しているのは「あなたがどうするか」。投稿の良し悪しではない。

この章で分かること

  • モデルが何を入力に取っているかが分かる
  • 「いいね数」がモデル入力に入っていない事実を知る
  • リアルタイム性の正体が分かる

点数の元になる予測を出しているのが「Phoenix」というAIです。よく誤解されますが、Phoenixは投稿の良し悪しを判定していません。「この閲覧者がこの投稿にどう反応するか」を予測しています。

どんなAIか

項目
種別Transformer(非causal・候補分離マスク付き)
層数8
埋め込み次元2,560
履歴の長さ1,022トークン
候補の長さ64トークン
出力ヘッド二値64枠 + 連続8枠

1トークン = 1つの体験

モデルに入る「履歴」は、閲覧者の過去の体験の列です。1つの位置が「この人は、いつ、誰の、どの投稿を見て、何をして、何秒滞在したか」を表します。

位置の並べ方に工夫があります。最新の1件が常に同じ場所に置かれる設計(右アンカー)になっているため、履歴が10件の人でも1000件の人でも、「直近の1件」の扱いが揃います。

モデルが見ているもの

分類中身
閲覧者IDハッシュ・IPハッシュ・国・言語・緯度経度・インストール済みアプリ・性別・年齢
各体験投稿IDハッシュ・著者IDハッシュ・投稿の古さ・タイムゾーン・現地時刻・意味コード
履歴のみその位置で起きた行動滞在時間
候補のみ(マルチモーダル埋め込みの枠はあるが、公開設定では無効)

これは重要です。「いいねが多いからAIが高く評価する」という直接の経路は、少なくとも公開されている設定にはありません。いいね数が効くのは、候補インデックスへの掲載条件(第3章)と新人枠の判定であって、予測そのものではありません。

投稿の中身はどう伝わるのか

本文の意味は「Semantic ID(意味コード)」という形で渡されます。マルチモーダルのエンコーダが本文・著者・メディア・カード・記事・引用元投稿をまとめてベクトルにし、それを6階層×256通りのコードに量子化したものです。

リアルタイム性の正体

「アルゴリズムはすぐ学習するのか?」という質問への答えは、少し意外です。モデルの再学習を待つ必要はありません。

モデルは閲覧者の履歴を内部に持っていません。毎回のリクエストで、履歴の列が丸ごと渡されます。したがって数秒前のいいねも、次のリクエストの入力に含まれ得ます。

モデルは「あなたを覚えている」のではなく、「毎回あなたの直近を読み直している」。

モデル自体はKafkaのストリームで継続学習され、チェックポイントは配信側が30秒間隔で取りに行きます。学習と推論の両方が、かなり速く回っています。