第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秒間隔で取りに行きます。学習と推論の両方が、かなり速く回っています。