この記事は『 X のアルゴリズム・ルール・専門用語について Advent Calendar 2024 』(https://qiita.com/advent-calendar/2024/x-tips )の 1 日目の記事です。
X には、毎日約 5 億のポストが投稿されています。そして、あなたのタイムラインに表示されているポストは、その中のごく一部に過ぎません。実は、タイムラインには膨大なポストからあなたが興味を持っているトピックのポストのみが表示されているのです。
本記事では、X の「おすすめ」タイムラインに表示されるポストがどのように選ばれているのか、その仕組みを解説します。
本記事の内容
・タイムラインに表示されるポストは「候補ポストの取得」「ランク付け」「フィルタリング」の 3 つの段階で選定されます。
①候補ポストの取得 では、フォローしているアカウント/フォローしていないアカウント 50/50 で 1,500 件のポストを収集します。
②ランク付け で、候補となる 1,500 件のポストに対し、肯定的なエンゲージメントから表示優先順位をつけます。
③フィルタリング で、ユーザーの好みや安全性に基づいて表示制御を行います。
・最終的に、広告やフォローのおすすめなどを追加し、バランスの取れたタイムラインをユーザーに表示します。
処理の構成
最適なポストを選び出すためのプロセスは Home Mixer と呼ばれます。「Candidate Sources(候補ポストの取得)」「Heavy Ranker(ランク付け)」「Heuristics & Filtering(フィルタリング)」の主要な 3 つの段階に分かれています。
① Candidate Sources
② Heavy Ranker
③ Heuristics & Filtering
出典:Twitter's Recommendation Algorithm(2023/3/31)
https://blog.x.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm
ポスト・ユーザー・エンゲージメントから「あなたが他のユーザーとやり取りする可能性はどれくらい?」や「あなたが興味のある話題で、現在人気のあるトピックは何ですか?」などの質問に答えられる、ポストを選定するモデルを使用しています。
次に、主要な 3 つの段階について説明します。
① Candidate Sources
まず最初に、候補となるポストを 1,500 件収集します。あなたがフォローしているアカウント(ネットワーク内)のポストと、フォローしていないアカウント(ネットワーク外)のポストで、それぞれ 50 %ずつ収集します。
基本的には、あなたと他のユーザーにエンゲージメントが生まれる可能性を予測し、特に関連性の高いツイートを選定します。
たまに、フォローしていないユーザーのポストや、まったく興味のないポストが表示され、不思議に思ったことはないでしょうか。これは、ネットワーク外からのポストも表示されるために発生する現象なのです。
ネットワーク内ポスト について詳しく
ネットワーク内ポストは、フォローしているアカウントからの関連ポストのことです。特に優先的に選ばれるポストとなり、あなたとの関係値(仲良し度)が高いアカウントほど、より多くのポストが収集されます。
例えば、過去にリプライなどのコミュニケーションをしたユーザーのポストは優先的に表示されます。また、ポストのクリック、プロフィールの閲覧もエンゲージメントに入るため、あなたが直近で興味を持ったユーザーのポストも表示されやすくなります。
ネットワーク外ポスト について詳しく
逆に、ネットワーク外ポストは、フォローしていないアカウントからの関連ポストのことをいいます。類似した興味を持つ他のユーザーのエンゲージメントをもとに、関連性のあるポストを収集します。
最初のアプローチは、あなたがフォローしている人や、同様の興味を持つ人のエンゲージメントを分析することです。あなたの興味のある話題への関連性を数値化して判断します。
・私がフォローしている人たちはどんなポストに反応したのか?
・私と似たポストに反応した人たちは誰か?他にどんなポストにも反応したか?
───つまりは、あなたのフォロワーのフォロワーまでのポストが分析されます。
また、話題ごとにコミュニティが存在し、X ではクラスターと呼ばれています。影響力のあるユーザーを中心にクラスターが形成され、このクラスターに所属しているユーザーに対し、関連するポストを表示します
出典:Twitter's Recommendation Algorithm(2023/3/31)
https://blog.x.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm
各クラスター内のポストから、特に人気のあるポスト優先表示することで、クラスターに所属してるユーザーの多くがポストを見ることになります。さらに、そのポストが「いいね!」されるほど、ポストはコミュニティとより関連づけられるようになります。
② Heavy Ranker
①で、1,500 件のポストを収集したら、候補となるポストにランク付けをしていきます。ニューラルネットワークによってランク付けが行われ、肯定的なエンゲージメント(いいね、リツイート、返信など)が多いポストの表示優先度をあげます。
この表示優先度は「スコア」といい、あなたが「どんなポストに反応をしそうか?」を重要視されてつけられています。エンゲージメントの可能性の高いポストを判別しているわけです。数千万のパラメータを活用し、各ポストのスコアを算出しているらしいです。
③Heuristics & Filtering
ランク付けされたポストに対して、さらにヒューリスティックやフィルターを適用し、ユーザーの好みや安全性を考慮します。ポストを最適化するための調整です。
具体的には次の処理を行います。
・ミュートしたアカウントのポストを非表示
・ブロックしたアカウントのポストを非表示
・コンテンツの多様性確保(1 人の投稿者のポストを連続させない)
・ネットワーク内・外ポストをバランスよく表示
・他の人にミュート、ブロックされた否定的なポストを避ける
--
◆TIPS
2024年11月現在、ブロックの仕様が変わり、ブロックされたユーザーのポストも見えるようになっています。公式のヘルプセンターには以下のように記載されています。
ポストを [公開] に設定した場合、ブロックしたアカウントであってもそのポストを見ることができます。ただし、ポストに対してエンゲージメント(いいね、返信、リポストなど)を行うことはできません。
出典:X ヘルプセンター."Xのブロック機能"
https://help.x.com/ja/using-x/blocking-and-unblocking-accounts
最終段階
このようにして、ポストのセットが完成します。
最後の処理として、ポストのセットに、広告、フォローのおすすめなどのポスト以外のコンテンツを追加し、バランスのとれたタイムラインを作成します。
以上が、個々の関心や関連性に応じたタイムラインを表示する仕組みです。