三つの棚
投稿はどこから集められるのか。フォロワー向け・フォロー外向け・類似発掘の3経路。
この章で分かること
- 投稿が候補に入る3つの経路を区別できる
- 各経路に入るための具体的な条件が分かる
- いいね1件・8件・32件の意味が分かる
点数の話の前に、そもそも候補に入らなければ何も始まりません。Xは3か所から投稿を集めます。それぞれ入場条件がまったく違います。
棚A ─ フォロワーに届ける棚(Thunder)
「Thunder」は、投稿をメモリの上に置いておくだけの、驚くほど単純な倉庫です。どれくらい単純かというと、本文もいいね数も言語もNSFW判定も保存していません。持っているのは「誰が」「いつ」「どのID」だけです。
| 決まり | 数値 | 意味 |
|---|---|---|
| 保存期間 | 48時間 | 過ぎたらメモリから消える |
| 著者あたり オリジナル投稿 | 50件 | 超えると古いものから落ちる |
| 著者あたり 返信+リポスト | 30件 | 2つで合計30件の共有枠 |
| 著者あたり 動画投稿 | 100件 | 別枠が用意されている |
| 閲覧者のフォロー数上限 | 10,000人 | 超えると後方の著者は丸ごと無視される |
| 1回の返却上限 | 1,200件 | — |
もう1つ、地味に効く事実があります。Thunderが取り込むのは投稿の作成・削除・引用削除の3種類のイベントだけで、「機微な内容に更新」といったイベントは無視されます。投稿後に付いた判定は、この棚には反映されません。
棚B ─ フォロー外へ届ける棚(Phoenix Retrieval)
ここがバズの本体です。フォローされていない人の画面に出るには、この棚に載る必要があります。そして入口で、こう弾かれます。
if (isCommunityPost) → 除外
else if (isReply) → 除外
else if (isRepost) → 除外
else if (shouldDropPost) → 除外(可視性フィルタ・アダルト判定)
else → インデックスへ棚に入ったあとは、いいねの数で置かれる場所が増えていきます。
| いいね数 | 起きること |
|---|---|
| 1件 | 1fav インデックスに載る |
| 32件 | 32fav インデックスに載る |
| 64・128・256… | 2の冪を超えるたびにスコアが再計算される |
動画には専用のインデックスがあり、10秒超かつ非NSFWであることが条件です。ここでも著者側に nsfwUser nsfwAdmin のフラグが立っていると載りません。
棚C ─ 類似から発掘する棚(SimClusters)
「この投稿にいいねした人は、あの投稿にもいいねしている」という関係で、投稿同士を近さで結んだ地図です。閲覧者が過去にいいねした投稿を出発点に、その近所を探しにいきます。
| 条件 | 数値 |
|---|---|
| 埋め込みが作られる最低いいね数 | 8件 |
| いいねの集計期間 | 3日(動画は7日) |
| いいねの重みの半減期 | 8時間 |
| 投稿の年齢上限 | 48時間 |
| クラスタあたりの上位枠 | 1,600件 |
| 探索するクラスタ数 | 50個 |
なお、埋め込みの生成トリガーはいいねイベントだけです。リポストでも返信でもブックマークでもありません。この棚に関しては、いいねが唯一の入場券です。
3つの棚をまとめる
投稿タイプ比較
同じ内容でも、投稿の形が違うだけで開く経路が変わります。
6つの経路のうち6つが開いています。
- ○
- ○
フォロー外へ広がる
Phoenix Retrieval ─ フォローしていない人に届ける主経路
インデックスに載る。いいね1件で1fav、32件で32fav
- ○
- ○
- ○
- ○