この記事は『 X のアルゴリズム・ルール・専門用語について Advent Calendar 2024 』(https://qiita.com/advent-calendar/2024/x-tips )の 24 日目の記事です。
X がアカウントやポストにペナルティを与える場合、その原因の多くは「スパム対策」です。プラットフォームの信頼性やサービスの質を保つため、スパムの疑いのあるポストは表示回数が減らされます。
この記事では、アルゴリズムのソースコードから、どんなポストの表示回数が減らされるかを「予想」したものをご紹介します。
本記事の内容
・ポストの内容によって、インプレッション(表示回数)が激減するかもしれません。ポストの内容が不適切であったり、人々を疲れさせるものである場合です。
・また、スパム扱いされてしまったポストもインプレッションが下がります。リンクを含んだポストや、ハッシュタグを多用したポストは好まれません。
・実は、少し意識するだけでポストは伸ばすことができ、少し注意を欠くことでどんなに有益なポストをしても誰にも届かなくなるのです。
ブロック/ミュート/通報 をされるのは最悪
ポストへのエンゲージメントによって、ポストの表示回数は底上げされます。例えば、多くの人がいいねをしているポストのスコアを高くし、表示されやすくします。
いいね1回が0.5点に対し、「通報」は、なんと 369点 のマイナススコアとなります。また、誰かがあなたをポストからブロックしたり、ミュートしたり、「表示頻度を減らす」とマークしたりすると、ツイートのスコアが 74点 も減少します。
これを見ると、X では「嫌われない戦略」が重要であることが分かります。攻撃的はポストはもちろんダメで、愚痴や文句などのネガティブな内容、自慢やヤンチャなどの「ムカつく」と思われるポストも敵を作ってしまうだけなのかもしれません。
ただネガティブなだけのポストは人々を疲れさせるだけです。X から人が離れていく原因にもなるので、サービスとして当然の処置だと感じます。
当然、攻撃的なポストは表示されにくい
あたりまえですが、攻撃的なポストは表示回数が激減します。その判定は、単語での判定や感情分析による自動化されているようにも見えますし、ほかのユーザーからのフィードバックによるものにも見えます。
具体的にどの程度下がるものなのかは分かりませんが、少なくとも判定条件には入っているようです。
// Offensive
if (scoringData.isOffensive) {
boostDetails.add(Explanation.match((float) params.offensiveDamping, "[x] Offensive damping"));
} else {
boostDetails.add(Explanation.match(LinearScoringData.NO_BOOST_VALUE,
String.format("Not Offensive, damping=%.3f", params.offensiveDamping)));
}
出典:GitHub - X (fka Twitter).『twitter/the-algorithm』
https://github.com/twitter/the-algorithm/blob/main/src/java/com/twitter/search/earlybird/search/relevance/scoring/FeatureBasedScoringFunction.java
理解できない言語は致命的
ポストの言語が理解不能だった場合、表示回数が激減します。少なくとも絵文字ひとつだけのポストは対象になるはずで、これは十分にスパム的なポストに見えますし、とても有益な情報には見えないでしょう。
こちらも影響についてはあまり分かっていませんが、ブースト率 0.01 というところを素直に受け取るなら、致命的なペナルティを受けることにはなりそうです。
// Boost (demotion) if the tweet language is not one of user's understandable languages,
// nor interface language.
43: optional double unknownLanguageBoost = 0.01
出典:GitHub - X (fka Twitter).『twitter/the-algorithm』
https://github.com/twitter/the-algorithm/blob/main/src/thrift/com/twitter/search/common/ranking/ranking.thrift
外部リンクを含むポストはスパム判定される
現在のXでは、ポストにニュースサイトやメディア以外の外部URLを含めると、スパムと見なされ「ポストの表示回数が減るペナルティ」が適用されます。
この仕様は公式ドキュメントや禁止事項には明記されていません。しかし、X運用者の間では広く知られた事実で、特に個人ブログや別のSNSのURLを含むポストは表示回数が極端に減ることが確認されています。
出典:Qiita.(2024/12/06) - "「ポストにURLを含めると表示回数が減る仕様」について、イーロンマスクから対策案が出ました。"
https://qiita.com/haihaikazuma/private/958fb6b04ba2212e74d8
複数のハッシュタグを含むポストにペナルティ?
アルゴリズムのソースコードを確認すると、複数のハッシュタグやトレンドワードを含むポストに対し何らかのペナルティを与えるであろう「multipleHashtagsOrTrendsPenalty」というパラメータが存在します。
出典:Qiita.(2024/12/23) - "公式「ポストに含めるハッシュタグ数は 2 つまでがおススメです。」"
https://qiita.com/haihaikazuma/private/762ee9feb1c0996cba3d
言語設定には絶対に従うこと
UI の言語、オプション設定の言語、ポストの言語はすべて統一してください。ポストの言語と設定されている言語が一致しない場合、ペナルティです。
// UI language is english, tweet language is not
30: optional double langEnglishUIBoost = 0.3
// tweet language is english, UI language is not
31: optional double langEnglishTweetBoost = 0.7
// user language differs from tweet language, and neither is english
32: optional double langDefaultBoost = 0.1
出典:GitHub - X (fka Twitter).『twitter/the-algorithm』
https://github.com/twitter/the-algorithm/blob/main/src/thrift/com/twitter/search/common/ranking/ranking.thrift
30: UI 言語は英語ですが、ツイートの言語は英語ではありません。
31: ツイートの言語は英語ですが、UI 言語は英語ではありません。
32: ユーザー言語はツイートの言語と異なり、どちらも英語ではありません。
古いポストは下がる
古いポストは時間の経過とともに関連性が低くなり、他のユーザーに表示される頻度が低くなります。ポストの関連性スコアは 6 時間ごとに 50 %減少します。
また、最初に「ポストの半減期」といいましたが、これは正確ではありません。厳密には「ポストの関連性スコアの半減期」であることに注意してください。『ポストの関連性スコア』については後述します。
出典:Qiita.(2024/12/06) - "最新ポストとはいつまでか?ポストの表示半減期(「ポストの関連性スコア」半減期)について。"
https://qiita.com/haihaikazuma/private/17a000c0ae548fc01567
フォローが多いだけのユーザーは影響力が低い
結論、FF 比が 0.6 を超えるアカウントは、アカウントの「信頼度」が落ちるためにポストがほかの人のタイムラインに表示されにくくなります。
タイムラインは、たくさんのポストから各ユーザーごとに「おすすめ」のポストが表示されています。しかし、FF 比が 0.6 を超えるアカウントは、自身のポストがほかのユーザーのおすすめとして表示されにくくなるのです。
出典:Qiita.(2024/12/02) - "フォロー数とフォロワー数の比率(FF 比)による悪影響について。"
https://qiita.com/haihaikazuma/items/e55d0b9255df85b5688e
影響力が低いユーザーは、ほかのユーザーに表示させるポストが最新の 3 つまでとなります。ランキング アルゴリズムで考慮されるポストが 3つに制限されるためです。
逆に、影響力の高いユーザーのポストは、アルゴリズムはそれらすべてを考慮します。短期間に大量のポストを投稿したとしても、すべてのポストがほかのユーザーに表示される可能性があります。
出典:Qiita.(2024/12/03) - "アカウントの『影響力』と、影響力が低いアカウントのポスト表示制限について。"
https://qiita.com/haihaikazuma/items/cc3714d744a594a1409f
繋がりのあるアカウントのリプライが優先される
あなたのネットワーク内アカウント(つまりフォローあるいはフォローされているユーザー)への返信は、ネットワーク外の返信よりも表示優先度が上がるかもしれません。
「outOfNetworkReplyPenalty」という、あきらかに表示にデブーストをかけるようなパラメータが見つかっています。
// subtractive penalty applied after boosts for out-of-network replies.
120: optional double outOfNetworkReplyPenalty = 10.0
出典:GitHub - X (fka Twitter).『twitter/the-algorithm』
https://github.com/twitter/the-algorithm/blob/main/src/thrift/com/twitter/search/common/ranking/ranking.thrift
「アカウントの影響力が低くなる」条件
以下の状態により、アカウントの影響力が低くなっている場合も、ポストの表示回数が少なくなってしまうかもしれません。
影響力は次の要素によって低くなります。
- 作成から30日未満の新規アカウントである。
- シャドウバン、機能制限、凍結等、アカウントが制限されている
- デバイスの状態は有効か(※詳細な情報なし)
- フォロワー数よりフォロー数が多い(FF 比が大きい)
出典:Qiita.(2024/12/03) - "アカウントの『影響力』と、影響力が低いアカウントのポスト表示制限について。"
https://qiita.com/haihaikazuma/items/cc3714d744a594a1409f
以上が、インプレッションにペナルティが与えられるポスト(とアカウントの状態)です。