本文へ移動
X解体新書

リファレンス

全26フィルタ

For Youのパイプラインに登録されたフィルタです。スコアリング前に21個、選抜後に5個。一部は実験用で既定オフ、または特定のリクエストだけで動きます。

スコア前
21個
選抜後
5個
フォローが免除にならない
22個

26 / 26 件

#フィルタ
01
DropDuplicatesFilterスコア前

複数の取得経路から同じ tweet_id が入ってきたとき、先に来た1件だけを残します。残した候補には、落とした候補の取得経路の記録が引き継がれます。

drop_duplicates_filter.rs:20

02
ZeroFavCodivertFilterスコア前既定オフ/条件付き

いいね0件向けの取得経路(ForYouPhoenixRetrievalZeroFav)だけから来た候補のうち、著者が実験の処置群でないものを落とします。

既定オフ(ViewerZeroFavCodivertIsTreatment = false / home-mixer/params/param.rs:233-238)

zero_fav_codivert_filter.rs:60-62

03
CoreDataHydrationFilterスコア前

author_id が 0 の候補、つまり本文や著者情報の取得に失敗した候補を落とします。

core_data_hydration_filter.rs:13

04
NewUserSoftNsfwFilterスコア前既定オフ/条件付きフォローで免除

新規の閲覧者のフィードで、フォロー外かつ soft NSFW のラベルが付いた候補を落とします。

既定オフ(EnableNewUserSoftNsfwFilter = false)。有効時の対象はアカウント作成7日未満かつ行動履歴100件未満(home-mixer/params/param.rs:862-879)

new_user_soft_nsfw_filter.rs:13-22

05
AgeFilterスコア前

投稿から48時間を超えた候補を落とします。tweet_id から作成時刻を復元できなかった候補も落とします。

48時間(MAX_POST_AGE / home-mixer/params/config.rs:39)

age_filter.rs:16-20

06
SelfTweetFilterスコア前

閲覧者自身が書いた投稿(author_id が閲覧者の user_id と一致するもの)を落とします。

self_tweet_filter.rs:16

07
OONRetweetReplyFilterスコア前フォローで免除

閲覧者がフォローしていない著者のリポストと返信を落とします。フォローの有無に関わらず、祖先(返信先)の情報がない返信も落とします。

EnablePhoenixOonReplies(既定 false / home-mixer/params/param.rs:67-72)が有効な場合だけ、Phoenix経由のフォロー外返信は残ります

oon_retweet_reply_filter.rs:17-28

08
OONNsfwSimclustersFilterスコア前フォローで免除

SimClusters経由で来た候補のうち、閲覧者のフォロー外かつ著者がNSFW判定のものを落とします。3条件すべてが揃ったときだけです。

SimClustersソース有効時のみ(EnableSimclustersSource 既定 true / home-mixer/params/param.rs:48-53)

oon_nsfw_simclusters_filter.rs:19-23

09
RetweetDeduplicationFilterスコア前

同じ元投稿を指すリポストが複数あるとき、先に来た1件だけを残します。判定キーは retweeted_tweet_id(無ければ tweet_id)なので、元投稿とそのリポストも同一扱いです。

retweet_deduplication_filter.rs:20

10
IneligibleSubscriptionFilterスコア前

サブスク限定投稿を、その著者を購読していない閲覧者から落とします。

ineligible_subscription_filter.rs:24

11
PreviouslySeenPostsFilterスコア前

既読と判定された候補を落とします。tweet_id・retweeted_tweet_id・in_reply_to_tweet_id などの関連IDのどれかが、既読IDの集合か Bloom フィルタに当たれば対象です。

Bloomフィルタは確率的データ構造で、未読を既読と誤判定する可能性があります

previously_seen_posts_filter.rs:24-31

12
PreviouslySeenPostsBackupFilterスコア前

表示済みID(impressed_post_ids)に一致した候補を落とします。見る範囲は上の既読フィルタと同じです。impressed_post_ids が空なら何も落としません。

公開コードの本パイプラインでは、この値を埋める Hydrator が変数に作られるだけで一覧に登録されていません(home-mixer/candidate_pipeline/phoenix_candidate_pipeline.rs:341-343)

previously_seen_posts_backup_filter.rs:15-26

13
PreviouslyServedPostsFilterスコア前

直近に配信済みのIDに一致した候補を落とします。関連IDも同じように照合します。

直近10分・100件(home-mixer/params/param.rs:1128-1139)。既定で全リクエストに適用(EnableServedFilterAllRequests = true / home-mixer/params/param.rs:1001-1006)

previously_served_posts_filter.rs:28-30

14
ViewerMutedKeywordFilterスコア前

閲覧者のミュートワードが投稿の本文(tweet_text)に一致した候補を落とします。見るのは本文だけで、複数語は連続フレーズの一致が必要です。

viewer_muted_keyword_filter.rs:45-52

15
AuthorSocialgraphFilterスコア前

次の6条件のどれかに当たると落とします。①閲覧者が著者をミュート ②閲覧者が著者をブロック ③著者が閲覧者をブロック ④引用先の著者が閲覧者をブロック ⑤閲覧者が引用先の著者をブロック ⑥閲覧者がリポスト元の著者をブロック。

author_socialgraph_filter.rs:45-51

16
VideoFilterスコア前既定オフ/条件付き

動画付きの投稿を落とします。投稿自身の動画に加えて、引用先の動画も対象です。リクエストが動画除外(exclude_videos)を求めたときだけ動きます。

query.exclude_videos が true のときのみ

video_filter.rs:8-10

17
TopicIdsFilterスコア前

トピック指定のリクエストで指定トピックに合わない候補と、除外トピックに一致した候補を落とします。

トピック要求または除外トピックがあるリクエストのみ

topic_ids_filter.rs:15-17

18
NewUserMinEngagementFilterスコア前既定オフ/条件付きフォローで免除

新規・復帰直後の閲覧者のとき、フォロー外かつ反応の指標が閾値未満の候補を落とします。

既定オフ(EnableNewUserMinEngagementFilter = false / home-mixer/params/param.rs:832-837)。有効時の既定は窓1800秒、指標 fav、閾値 0.0

new_user_min_engagement_filter.rs:64-72

19
InventoryHoldoutFilterスコア前既定オフ/条件付き

投稿と閲覧者のIDから0〜99の値を計算し、種別(オリジナル/返信/リポスト)ごとの指定割合に入った候補を落とします。内容は見ません。

既定オフ(EnableInventoryHoldout = false)。割合はすべて0%(home-mixer/params/param.rs:1008-1031)

inventory_holdout_filter.rs:52-57

20
FavHoldoutFilterスコア前既定オフ/条件付き

いいね数に応じた割合で、投稿と閲覧者の組ごとに候補を決定的に落とします。いいねが多いほど割合が上がり、1万件超で15%です。

既定オフ(EnableFavHoldout = false / home-mixer/params/param.rs:1033-1038)。1件以下は0%

fav_holdout_filter.rs:10-47

21
FairShareRankingFilterスコア前

候補が予算を超えたとき、取得経路ごとの候補数に比例して枠を配り、あふれた分を落とします。各経路の中では先に来た順に残します。

既定オン(EnableFairShareRanking = true)。予算は2800件(PhoenixScoresResultSize / home-mixer/params/param.rs:1295-1306)

fair_share_ranking_filter.rs:68-110

22
VFFilter選抜後

Visibility Filtering の答えが Drop・Tombstone・未評価(NotEvaluated)の投稿を落とします。Allow・Interstitial・Avoid・Downrank の投稿は残します。

vf_filter.rs:22-27

23
AncillaryVFFilter選抜後

祖先(返信先の親投稿)・引用元・リポスト元のいずれかが Visibility Filtering で落とされた投稿を落とします。Tombstone扱いの祖先は判定から除きます。

ancillary_vf_filter.rs:13-15

24
AncestorVideoFilter選抜後既定オフ/条件付き

祖先に動画を持つ投稿を落とします。動画除外(exclude_videos)のリクエストだけで動きます。

query.exclude_videos が true のときのみ

ancestor_video_filter.rs:8-20

25
DedupConversationFilter選抜後

同じ会話に属する候補のうち、点数が最も高い1件だけを残します。会話IDは祖先IDの最小値(無ければ元投稿ID)です。

dedup_conversation_filter.rs:23-30

26
VideoCarouselFilter選抜後既定オフ/条件付き

動画カルーセル用に追加で選ばれた候補を、通常のフィード枠から外してカルーセルの材料に回します。

既定オフ(EnableVideoCarousel = false / home-mixer/params/param.rs:1191-1196)

video_carousel_filter.rs:15-26