遂に米Twitter社は3月31日(現地時間)、予告通りプラットフォームを構成するソースコードの一部をGitHubで公開しました。本日はその内容を詳細に解説していきます。
主にはタイムラインの『おすすめ』欄に出てくるアルゴリズムの話です。(フォローしていないおすすめのツイートが出るタイムラインのことです。)
では、早速要約から見ていきます。
1.要約
1.1 アルゴリズムハック方法
⭕️ポディシブ要素
- フォローは少ない方が良い(フォロー・フォロワー比率が重要)
- 投稿に2分以上滞在:「いいね」×22倍の効果
- 投稿を経由してプロフィールにアクセス後に、他の投稿にいいねやリプライをされる場合:「いいね」×24倍の効果
- 投稿にリプライされる場合:「いいね」×54倍の効果
- あなたの投稿にリプライされて、さらにそのリプライに対してあなが返信する場合は:「いいね」×150倍の効果
- 画像&動画付きのツイート:2倍のブーストを得る(変更可能性あり)
❌ネガティブ要素
- ミュートされる
- 不正行為の報告される
- スパム報告される(いいねの効果の-738倍)
- フォロー解除される (上記の4つほどのペナルティはない)
1.2 アルゴリズム指針
Twitterのアルゴリズムは、毎日約5億のツイートから最も関心が高いものを選び、ユーザーの「For You」タイムラインに表示することを目的としています。これは複数のステップで行われます。
- 候補のツイートを収集:フォローしている人(イン・ネットワーク)とフォローしていない人(アウト・オブ・ネットワーク)から関連性のあるツイートを見つけます。
- ツイートのランキング:機械学習モデルを使用して、ツイートの関連性をスコアリングし、ランク付けを行います。
- ヒューリスティックとフィルターの適用:望ましくないツイートやすでに見たツイートを取り除き、最終的なタイムラインを作成します。
これらのプロセスにより、ユーザーに最も関心があると思われるツイートが表示されるようになります。また、Twitterは今後もアルゴリズムを改善し、透明性を高める機能を開発しています。
2.【重要】アルゴリズム解説
それでは実際のコードを見ながらアルゴリズムを解説します。(ページの最後に出典も記載しています。)
2.1 フォロワーとフォロワーの比率
Twitter の「Tweepcred」PageRank アルゴリズムは、フォロワー数は少ないがフォロワー数が多いユーザーのページ ランクを下げます。
ソースはこちら
2.2 TwitterBlueの課金者は、アルゴリズムで後押しされる
ソースはこちら
2.3 おすすめタブに表示される要因
- あなたのツイートをいいね/RT
- あなたのツイートをクリックして返信 or 2分以上そこにとどまる
- プロフィールをチェック
ソースはこちら
2.4 Twitterで「評価スコア」を下げる要因
- ブロックされる
- ミュートされる
- 不正行為の報告
- スパム報告
- フォロー解除 (上記 4 ほどのペナルティはない)
ソースはこちら
2.5 アクション別の評価
- あなたのツイートをクリックして2分以上滞在するユーザーは、ツイートが「いいね」されるよりも22倍重要。
- あなたのツイートを経由してプロフィールにアクセスし、他のツイートに「いいね」やリプライをする場合は、「いいね」の24倍重要です。
- あなたのツイートにリプライする場合は、「いいね」の54倍重要です。
- あなたのツイートにリプライし、さらにそのリプライに対して返信する場合は、「いいね」の150倍重要です
- あなたのツイートがスパムされると、それは「いいね」の効果の-738倍で、厄介な状況になります。
ソースはこちら
2.6 必要に応じて政府はTwitterアルゴリズムに介入できる
実際、 @TwitterEngは「GovernmentRequested」というクラスもあります。
ソースはこちら
2.7 メディア付き投稿
画像&動画付きのツイートが2倍のブーストを得ているようです。
(ただし、これはTwitterが完全に再構築する予定の古いモデルなので、状況が変わる可能性があります)
ソースはこちら
2.8 現状見つかってないアルゴリズム
- リンクを含むツイートの順位が下がる
- ツイートをブックマークするとランキングが上がる
これらはまだ見つかっておらず見つけ次第アップデートします。
3.個人の所感
おそらく、主要SNSでアルゴリズムをオープンソース化したのはTwitterが初めてではなかろうか。
さすが、イーロンマスクですね。
施策の規模が桁違いです。
(一応前からオープンソース化したいと言っていました。)
そして、4/2具体的なアルゴリズムのハック方法も追記しましたが、個人的にはTwitterは他のYoutubeやInstagramやTiktokなどのSNSと違い、正直あまりアルゴリズムに影響を受けないと思っております。
理由は『人為的な拡散力が圧倒的』だからです。
RTという機能で、アルゴリズムを無視して人為的な操作で他者に投稿を表示させられるので、人の感情を動かして、RTさせたくなる投稿をしておけば問題はないかと思います。(その辺詳しく書くと3万文字くらいいきそうなのでまた次回でw)
(現在私はフォロワー5.2万人程度で最近は毎月1万程度フォロワーを伸ばしている+累計40社のTwitterを支援している実績からの感覚値です。)
今、Twitterのバズについての超大ボリューム解説noteを書いておりまして、出来上がれば告知しますね。
それまで、noteかTwitterをフォローして楽しみにお待ちください😄
最近も
2ヶ月でフォロワー+1万人
初月でフォロワー+1万人
と短期間で爆伸びもさせておりまして、
『一刻も早くTwitterを伸ばして集客や採用に繋げたい😂』
という方は、note待たずにこちらから問い合わせください。
※問い合せ多数の場合は全ての方に返信できない場合がございます。
※しっかりと記入されている方から優先的にご返信いたします。
脱線失礼しました!!
では、元記事の全文日本語翻訳を見ていきます!
(改行や太文字、言葉の入れ替えなど頑張りました😂)
4.全文翻訳
4.1 挨拶
Twitterは、今世界で起こっていることの中から最高のものをお届けすることを目指しています。そのためには、毎日投稿される約5億件のツイートの中から、最終的にあなたの端末の「For You」タイムラインに表示されるトップツイートを抽出する推薦アルゴリズムが必要です。
このブログでは、このアルゴリズムがどのようにあなたのタイムラインに表示されるツイートを選んでいるのかをご紹介します。
私たちのレコメンデーションシステムは、多くの相互接続されたサービスや仕事によって構成されていますが、この投稿で詳しく説明します。アプリの中でツイートが推薦される領域は、検索、探索、広告などたくさんありますが、この記事では、ホームタイムラインの「あなたのために」フィードに焦点を当てます。
4.2 ツイートはどのように選ばれるのか?
Twitterのレコメンデーションの基盤は、ツイート、ユーザー、エンゲージメントデータから潜在情報を抽出する一連のコアモデルと機能です。これらのモデルは、
「将来、他のユーザーと交流する確率はどのくらいか」
「Twitter上のコミュニティとその中でのトレンドツイートは何か」
など、Twitterネットワークに関する重要な質問に答えることを目的としています。これらの質問に正確に答えることで、Twitterはより適切なレコメンデーションを提供できるようになります。
レコメンデーションパイプラインは、これらの機能を消費する3つの主要なステージで構成されています:
①候補ソーシングと呼ばれるプロセスで、さまざまなレコメンデーションソースから最適なツイートを取得する。
②機械学習モデルを使用して、各ツイートをランク付けします。
③ブロックしたユーザーのツイート、NSFWコンテンツ、すでに見たツイートなどを除外するなどのヒューリスティックやフィルタを適用する。
For Youタイムラインの構築と配信を担当するサービスは、Home Mixerと呼ばれています。Home Mixerは、コンテンツのフィードを構築するためのカスタムScalaフレームワークであるProduct Mixerをベースに構築されています。
このサービスは、さまざまな候補ソース、スコアリング機能、ヒューリスティック、フィルターをつなぐソフトウェアバックボーンとして機能します。
この図は、タイムラインを構築するために使用される主要なコンポーネントを示しています:
このシステムの主要な部分を、1回のタイムラインリクエストで呼び出される順番に、候補ソースからの候補者の取得から見ていきましょう。
4.3 候補者情報源
Twitterは、ユーザーの最近の関連ツイートを取得するために使用するいくつかの候補ソースを備えています。各リクエストに対して、これらのソースを通じて数億のプールからベストな1500ツイートを抽出するよう試みます。
私たちは、あなたがフォローしている人(In-Network)とフォローしていない人(Out-of-Network)から候補を見つけます。現在、For Youのタイムラインは、ユーザーによって異なるかもしれませんが、平均して50%のネットワーク内ツイートと50%のネットワーク外ツイートで構成されています。
4.2 ネットワーク内ソース
In-Networkソースは最大の候補ソースで、あなたがフォローしているユーザーからの最も関連性の高い最新のツイートを配信することを目的としています。ロジスティック回帰モデルを用いて、あなたがフォローしているユーザーのツイートを関連性に基づいて効率的にランク付けします。そして、上位のツイートは次のステージに送られます。
ネットワーク内ツイートのランキングで最も重要な要素は、Real Graphです。リアルグラフは、2人のユーザー間のエンゲージメントの可能性を予測するモデルです。あなたとツイート作成者の間のReal Graphのスコアが高いほど、彼らのツイートをより多く含めることになります。
In-Networkソースは、Twitterで最近取り組まれているテーマです。このサービスは、各ユーザーのツイートのキャッシュからネットワーク内ツイートを提供するために使用されていました。また、数年前に更新・学習されたロジスティック回帰ランキングモデルの再設計も行っているところです!
4.3 ネットワーク外の情報源
ユーザーのネットワークの外にある関連ツイートを見つけるのは、より厄介な問題です。作者をフォローしていない場合、あるツイートが自分に関連するかどうかをどうやって判断すればいいのでしょうか。Twitterは、この問題に対処するために2つのアプローチをとっています。
○ソーシャルグラフ
私たちの最初のアプローチは、あなたがフォローしている人や同じような興味を持つ人のエンゲージメントを分析することで、あなたが関連性を見出すであろうものを推定することです。
エンゲージメントとフォローのグラフをたどり、以下の質問に答えます:
- 私がフォローしている人たちは、最近どのようなツイートをしたのだろうか?
- 私と同じようなツイートを「いいね!」しているのは誰で、その人たちが最近「いいね!」したものは何か?
これらの質問に対する答えに基づいて候補となるツイートを生成し、ロジスティック回帰モデルを用いてランク付けします。このようなグラフの探索は、Out-of-Networkレコメンデーションに欠かせないものです。
私たちは、この探索を行うために、ユーザーとツイート間のリアルタイムなインタラクショングラフを保持するグラフ処理エンジン、GraphJetを開発しました。
Twitterのエンゲージメントとフォローのネットワークを検索するこのようなヒューリスティックな方法は有用であることが証明されていますが(これらは現在ホームタイムラインのツイートの約15%に対応しています)、埋め込み空間へのアプローチはネットワーク外ツイートの大きなソースとなっています。
4.4 エンベデッドスペース
(エンベッド:埋め込みという意味)
エンベッディングスペースアプローチは、コンテンツの類似性に関するより一般的な問いに答えることを目的としています: どのようなツイートやユーザーが私の興味と似ているのか?
エンベッディングは、ユーザーの興味とツイートの内容を数値化したものを生成することで機能します。そして、この埋め込み空間における任意の2人のユーザー、ツイート、ユーザーとツイートのペア間の類似度を計算することができます。正確な埋め込みを生成すれば、この類似度を関連性の代用として使うことができます。
Twitterの最も有用な埋め込み空間の1つがSimClustersです。SimClustersは、カスタム行列因数分解アルゴリズムを用いて、影響力のあるユーザーのクラスターを中心としたコミュニティを発見します。コミュニティは145kあり、3週間ごとに更新されます。ユーザーとツイートはコミュニティの空間に表現され、複数のコミュニティに所属することができます。コミュニティの規模は、個人の友達グループの数千人から、ニュースやポップカルチャーの数億人規模まで様々です。これらは、最も大きなコミュニティの一部です:
各コミュニティにおけるツイートの現在の人気度を見ることで、ツイートをこれらのコミュニティに埋め込むことができます。あるコミュニティのユーザーがそのツイートを気に入れば気に入るほど、そのツイートはそのコミュニティと関連づけられることになります。
4.5 ランキング
For Youタイムラインの目標は、関連性の高いTweetを提供することです。パイプラインのこの時点では、関連性のある候補が1500件ほどあります。スコアリングは、各候補ツイートの関連性を直接予測し、タイムライン上のツイートをランク付けするための主要なシグナルとなります。この段階では、どの候補から発信されたものであるかは関係なく、すべての候補が平等に扱われます。
ランキングは、ツイートの相互作用を継続的にトレーニングし、肯定的なエンゲージメント(いいね、リツイート、返信など)を最適化する、約4800万パラメータのニューラルネットワークで実現されています。このランキングメカニズムは、何千もの特徴を考慮し、10個のラベルを出力して各ツイートにスコアを付けます(各ラベルはエンゲージメントの確率を表します)。このスコアからツイートがランク付けされます。
4.6 ヒューリスティック、フィルター、製品の特徴
ランキングの段階を経て、ヒューリスティックとフィルターを適用して、さまざまな製品機能を実装します。これらの機能は、バランスよく多様なフィードを作成するために連携しています。いくつかの例を挙げます:
- 視認性フィルタリング: ツイートの内容や好みに応じて、フィルタリングを行います。例えば、ブロックやミュートをしたアカウントのツイートを削除します。
- 著者の多様性: 一人の著者が連続してツイートしすぎないようにします。
- コンテンツのバランス ネットワーク内のツイートとネットワーク外のツイートを公平なバランスで配信するようにします。
- フィードバックに基づく疲労度 視聴者からネガティブなフィードバックがあった場合、特定のツイートのスコアを下げます。
- ソーシャルプルーフ: 品質保証として、そのツイートと二次的なつながりがないネットワーク外のツイートを除外する。つまり、あなたがフォローしている誰かがそのツイートに関与しているか、そのツイートの作者をフォローしているかを確認する。
- 会話: 元のツイートと一緒にスレッド化することで、返信にさらなる文脈を提供する。
- 編集されたツイート: 端末に表示されているツイートが古くなっていないかどうかを判断し、編集済みのツイートと入れ替える指示を出す。
4.7 ミキシングとサービング
この時点で、Home Mixerはあなたのデバイスに送信するツイートのセットを準備しています。最後に、ツイートと、広告、フォロー推奨、オンボーディングプロンプトなど、ツイート以外のコンテンツを混ぜ合わせ、お客様の端末に返送して表示させます。
上記のパイプラインは1日に約50億回実行され、平均1.5秒未満で完了します。1回のパイプラインの実行には220秒のCPU時間が必要で、アプリで感じる遅延の150倍近い時間がかかります。
私たちのオープンソースの目的は、私たちのシステムがどのように動作しているのか、ユーザーの皆さんに完全な透明性を提供することです。私たちは、私たちのアルゴリズムをより詳細に理解するために、ここ(とここ)で見ることができる推奨の動力源となるコードを公開し、私たちのアプリでより透明性を提供するためのいくつかの機能にも取り組んでいます。私たちが計画している新しい開発には、以下のようなものがあります:
- クリエイターのための、リーチとエンゲージメントに関するより良いTwitter分析プラットフォーム。
- ツイートやアカウントに貼られた安全ラベルの透明性を高めることができます。
- ツイートがタイムラインに表示される理由をより深く知ることができます。
4.8 まとめ
Twitterは、世界中の会話の中心です。毎日、1,500億以上のツイートが人々の端末に配信されています。ユーザーに最高のコンテンツを提供することは、困難であると同時にエキサイティングな問題でもあります。私たちは、新しいリアルタイム機能、埋め込み機能、ユーザー表現など、推薦システムを拡張する新しい機会に取り組んでいます。私たちは、未来の町の広場を作っているのです。もしあなたがこのことに興味を持たれたなら、ぜひ私たちの仲間になることを検討してください。
5.リソース
5.1 翻訳元記事
https://blog.twitter.com/engineering/en_us/topics/open-source/2023/twitter-recommendation-algorithm
5.2 Github
https://github.com/twitter/the-algorithm
5.3 参考ブログ
https://steventey.com/blog/twitter-algorithm
6. 最後に
コード公開後に開催したスペースでイーロンマスク氏は「公開したアルゴリズムはかなり恥ずかしいもので、多数の間違いが見つかるだろう。われわれは迅速に修正するつもりだ」と語っております。
また、「ユーザーの提案に基づいて24~48時間ごとにおすすめのアルゴリズムを更新していく」ともツイートしております。
したがって、今後も迅速にTwitterのアルゴリズムのアップデート情報をキャッチしていくためにも是非私のTwitterをフォローしてください😄
Twitterアルゴリズム関連の最新情報をお届けします。
長文ご愛読ありがとうございました。