見出し画像

Twitterアルゴリズムがついに公開!ツイートはどういう仕組みでTLに表示されるのか。アルゴリズム要約と翻訳を紹介します。

イーロン・マスク氏が以前からほのめかしていましたが、本当にTwitterアルゴリズムの全貌が4/1公開されました。今回はその内容を詳しく紹介していきます。

どういう仕組みでおすすめ(For you)TLにツイートが表示されるのか。気になる人は是非チェックしてください。時間がない人は、「わかったことまとめ(要約)」だけ見ればOKです。

1.最初に。イーロンのツイートを少し紹介

イーロンは以前こんなことをリプしていました。

「Twitterのレコメンデーションアルゴリズムは、もっと良くなるし、オープンソースになる」(オープンソースとは、ソフトウェアを構成しているプログラムを無料で一般公開すること)

そして、日本時間4/1 AM4時、予告通りプラットフォームを構成するソースコードをGitHubで公開しました。下記ツイートがそれです。

アルゴリズムの仮説検証をずっと繰り返し行ってきた私にとって、大興奮の内容です笑。イメージしていたアルゴリズムとは、ちょっと意外な数字もあって、驚きました。丸1日かけて、ソースコードや英語記事を読んで大体わかってきたので、わかったことを紹介しますね。

アルゴリズム紹介記事の翻訳を読んでる時間がない人は、この要約だけ読んでください笑。

2.わかったことまとめ(要約)

・タイムラインは、下記4つのステップで作られる。
 ①最初の選別
 ②ランク付け
 ③フィルタリング
 ④広告と混ぜる

・タイムラインには、フォローしている人、フォロー外の人のツイートが、均等になるように表示される。

・現在のタイムラインのおおよその割合
フォローしている人のツイート:45%
フォローしてない人のツイート:45%
広告:10%

・①の工程で、数億あるツイートから1500個を選ぶ
関係性の強さと、類似性の強さが大事。日ごろのいいね、リプ、RTによる交流が大事です。それが関係性の強さに出てきます。

・②の工程で、ランク付けを行う
多数のパラメーターがあり、ユーザーやツイートに点数がつけられる。ユーザースコアとツイートスコアが高いものが選ばれる。エンゲージが高く、質の良いツイートを作ることがやっぱり大事。

・③の工程で、最終チェック。
ブロックしているものを除外して、フォロー内と外のツイートがバランスよく選別されているかなどチェックします。

・④の工程で、混ぜられる。
現在のタイムラインでは、広告が約10%表示されます。大体9つのうち1つが広告。

・プラス要素(+)
フォロー数が少なく、フォロワー数が多い
Twitter Blue アカウント(課金)
ツイートに2分以上滞在してもらう
いいね、リプ、RTをもらう
リプをもらって、そのリプに返信する
ツイートからプロフィールクリックされて、他のツイートにいいねやリプライをされる
画像、動画付き
評価の高いユーザーと関わっている
質の高いツイート
ブックマークされるのもおそらくプラス

・マイナス要素(-)
フォロワー数より、フォロー数が多い
6時間おきにツイートスコアは半分に減っていく。つまりTL表示が減っていく。
ブロックやミュートされてる
ネガティブなリプをもらう
スパム報告される
スパムアカウントと交流する
更新がない
ニュース系以外の外部リンクをつける
メンションのみ
文字無しの画像ツイート
URLのみ
アカバン(凍結)されたことがある
複数ハッシュタグはTL表示には影響しない

私のツイートでもいろいろとわかったことをまとめています。是非チェックしてください。このツイートは、ブックマーク数が70を超えるほど反響がありました。ありがとうございます。

アナリティクス結果


ここからTwitterアルゴリズム記事の翻訳です。気になる人だけよんでください笑。

3.「Twitterアルゴリズム紹介記事」全文翻訳

Twitter社から発表されたアルゴリズムについての記事がこちらです。

翻訳したものがこちらです。翻訳ソフトを使いましたが、正直意味がわからなかったので、できる限り、わかりやすく修正しました笑。

『Twitterのレコメンデーションアルゴリズム』

Twitterの目的は、今世界で起きている最高を届けること。そのために、毎日投稿される約5億件のツイートの中から、あなたの「For You」タイムラインに表示されるトップツイートを抽出するアルゴリズムが必要です。この記事では、アルゴリズムがどうやって、あなたのタイムラインに表示するツイートを選んでいるのかを紹介します。

私たちのレコメンデーションシステム(アルゴリズム)は、相互に関連するたくさんのシステムで構成されています。検索、探索、広告など、ツイート表示に影響する部分はいろいろありますが、今回は「For You」フィードに焦点を当てます。

ツイートはどうやって選んでる?

Twitterアルゴリズムは、「ツイート」「ユーザー情報」「エンゲージメント」などの情報を抽出する一連のコアモデルから成り立っています。このモデルは「今後、他のユーザーと交流する確率は?」「Twitter上のコミュニティとその中でのトレンドツイートは?」といった質問に正確に答えることで、適切なタイムラインを提供しています。

TLに表示されるおすすめツイートを選ぶ流れは、主に下記3つのパートで構成されています。
①「CANDIDATE SOURCING(表示ツイート最初の選別)」
様々なレコメンデーションソースから最適なツイートを選びます。
②「RANK(ランク付け)」
AI機能で、各ツイートをランク付けします。
③「HEURISTICS & FILTERS(最適ツイート発見!フィルタリング)」
ブロックしたユーザーのツイートや、NSFW(職場閲覧注意)のツイート、すでに見たツイートなどを除外します。

この3つのパートから成る、For Youタイムラインの構築と配信を決定する部分を「Home Mixer(ホームミキサー)」と呼びます。「Home Mixer」は、タイムラインを構築するための、Twitter独自のScalaフレームワーク「Product Mixer」をベースにしています。

下記の図は、タイムラインを作る主な構成要素を示したものです。

それでは、アルゴリズムの重要な部分を、順番に紹介していきます。まずは、「CANDIDATE SOURCING」から。

①表示ツイート最初の選別(CANDIDATE SOURCING)

Twitterには、ユーザーのために表示するべき、関連性が強い最新のツイートを取得するためのプログラム(CANDIDATE SOURCING)がいくつかあります。これらのプログラムによって、数億あるツイートから、1,500個のツイートを抽出します。

あなたがフォローしている人(In-Network)、フォローしていない人(Out-of-Network)から候補となるツイートを探します。ユーザーによって少し変わりますが、フォローしている人、フォローしていない人のツイートは、現在のタイムラインで半々になってます。

◆フォローしている人から選ぶ(In-Network Source)

「In-Networkソース」は最大の候補ソースで、あなたがフォローしている人のツイートの中から、最も関連性の高い最新ツイートを選びます。ロジスティック回帰モデルを用いて、フォローしている人のツイートを関連性の高い順にランク付けします。上位のツイートは次のパートに送られます。

フォローしている人のツイートのランク付けで、最も重要な要素は、「Real Graph(要は、関係性の強さ)」です。リアルグラフは、2人のユーザー間のエンゲージメントの可能性を予測するモデルです。あなたとツイート作成者の間のリアルグラフスコアが高いほど、そのツイートがより多く含まれます。

「In-Networkソース」は、最近使われるようになりました。12年前から使われていたプログラムは、各ユーザーのキャッシュからツイートを提供するサービスですが、利用を停止しました。数年前に更新した「ロジスティック回帰ランキングモデル」の再設計も進めています!

◆フォローしてない人のツイート選び(Out-of-Network Sources)

つながっていないユーザーの中から、関連性が強いツイートを選ぶのは難しい。フォローもしていない人のツイートの中から、どれが最適か、どうやって判断するのでしょうか?

Twitterでは、これに対応するため、2つの手法を使っています。「Social Graph(ソーシャルグラフ)」「Embedding Spaces(エンベディングスペース)」です。

「Social Graph(ソーシャルグラフ)」:相関関係のこと
最初の方法は、自分がフォローしている人や同じような興味を持つ人のエンゲージメントを分析することで、あなたに関連すると思うものを推定するというものです。

自分とつながっている人とエンゲージが高いユーザーをたどりながら、下記をチェックしていきます。
・「自分がフォローしている人が、最近どんなツイートと絡んだのか?」
・「自分に似ているツイートを好きな人は?最近他に好きなものは?」

これらの質問に対する回答から、候補となるツイートを選び、得られたツイートをロジスティック回帰モデルでランク付けします。ユーザーの相関関係を横断するチェックシステムが大事です。私たちは、ユーザーとツイートの関係性をリアルタイムにチェックできるグラフ処理エンジン「Graph Jet」を開発しました。「Social Graph」アプローチはかなり有用であることがわかっています。(ここで選ばれたツイートが、現在、タイムラインの15%を占めています)

次に紹介する「Embedding Spaces(エンベディングスペース)」は、フォロー外からツイートを選ぶとき、より重要視される手法です。

「Embedding Spaces」
この手法は、より広い範囲で、ツイートの類似性をチェックします。
「自分の好みに近いツイートやユーザーは?」

このアプローチによって、ユーザーの興味とツイートの内容を数値で出します。あるユーザーとの、ツイートの類似度(どれだけ似ているか)を計算することができます。この類似度を出すことで、関連性(どれだけ関係性が強いか)の代わりとして使うことができる。

最もよく使われるプログラムが「SimClusters」
「SimClusters」は、独自の行列因数分解アルゴリズムを用いて、影響力のあるユーザーのクラスターを中心としたコミュニティを発見します。コミュニティは全部で約15万個あり、3週間ごとに更新されます。

ユーザーとツイートはコミュニティという空間で表現され、複数のコミュニティに所属することができます。コミュニティの規模は、個人の友人グループであれば数千人、ニュースやポップカルチャーであれば数億人規模に及びます。

下の絵は、大きなコミュニティの一部です。

各コミュニティでの人気ツイートを見つけます。コミュニティのユーザーがそのツイートを気に入れば気に入るほど、そのツイートはそのコミュニティと関連付けられることになります。そのツイートは、あなたと類似性があるのかチェックしています。

②ランク付け(RANKING)

For Youタイムラインの目的は、あなたに関連するツイートを提供することです。①「CANDIDATE SOURCING」のパートで、関連性がありそうな候補ツイートが1500個ほどに絞られます。

各ツイートに点数をつけるのですが、このランク付けによって、タイムラインに表示されるツイートが決まってきます。ちなみにここでは、フォロー内か外か、どのユーザーのツイートかは関係なく、すべてのツイートが平等に扱われます。

ランキングは、エンゲージメント(いいね、リツイート、リプなど)を最適化する、約4800万パラメータのニューラルネットワークで、実現されています。このランキングメカニズムは、数千の特徴を考慮し、エンゲージメントの確率を表す10個のラベルを出力して、各ツイートにスコア(点数)をつけます。その点数でツイートのランク付けを行います。

③フィルタリング(Heuristics, Filters, and Product Features)

②のランク付けの後、これまでの経験則やフィルターが実装された様々な手法で、ユーザーにとって最適なツイートを選別します。様々な選別手法によって、バランスのとれた多様なタイムラインを作っています。

どんな選別方法があるのか、いくつか例をあげます。

・最適なフィルタリング
ツイートの内容や好みに応じてフィルタリングすることができます。例えば、ブロックやミュートをしたアカウントからのツイートを削除します。

・ユーザーの多様性
1人のユーザーのツイートを連続してたくさん表示させない。いろんなユーザーのツイートが表示されるように調整する。

・ツイートのバランス
フォローしているグループと、フォロー外のグループのツイートを、公平に同じくらいになるよう配信する。

・ネガティブフィードバック
ユーザーからブロックやミュートされたツイートは、スコアが下がり、結果的にタイムラインに表示されにくくなります。

・つながりチェック
タイムラインの品質保護として、2次的なつながりがないフォロー外ツイートを除外します。あなたがフォローしている誰かが、そのツイートにいいねしているか、そのツイート発信者をフォローしている場合のみ、TLに表示させます。

・リプによる長文化
元ツイートにリプをつけて、スレッド化することで、より多くの文字を提供することができます。コンテンツ力アップにつながり、TLに表示されやすくなります。

・最新の情報へ更新
現在端末にあるツイートが古くなっているかどうかを判断し、編集済みのものに差し替えます。

④最後に混ぜる(Mixing and Serving)

この時点で、「Home Mixer(ツイート選別のアルゴリズム)」はあなたのデバイスに配信するツイートを選び終わってます。最後に、選別されたツイートと広告が、おすすめフォローなど、選別ツイート以外のコンテンツを混ぜ合わせ、あなたのタイムラインができあがります。

紹介した①~④の工程は、1日に約50億回実行され、平均1.5秒未満で更新が完了します。ひとつの工程を実行させるには、アプリでの待機時間の約150倍、220秒のCPU時間が必要です。


Twitterアルゴリズムをオープンソースにした目的は、私たちのシステムがどのように機能しているのか、透明性を提供するためです。私たちのアルゴリズムをより詳しく理解していただくために、ここに、レコメンデーションシステムのコードを公開しています。今後も、透明性をより高めていくため、いくつかの新機能開発にも取り組んでいます。

現在、開発中の一部をご紹介します。

  • クリエイターのために、リーチ数やエンゲージメント情報がわかるTwitterアナリティクスプラットフォームを改善します。

  • ツイートやアカウントに貼られた安全ラベルの透明性を高めます。

  • ツイートがタイムラインに表示される理由をよりわかりやすくします。

次は何をするのか?

Twitterは世界中の会話の中心です。毎日、1,500億件以上のツイートが人々の端末に配信されています。ユーザーに最高のコンテンツを提供することは、挑戦的でエキサイティングなことです。そのために私たちは、新しいリアルタイム機能、埋め込み機能、ユーザー表現など、世界で最もおもしろいデータセットとユーザーベースを持っているのです。

私たちは未来の街を作っています。あなたがその街作りに興味を持つのなら、ぜひ私たちの仲間に加わってください。

(著者:Twitterチーム)


4.さいごに

Twitterアルゴリズムが公開されたことで、タイムライン表示の仕組みがわかりました。関係性や類似性の強さで最初の1,500個が選ばれ、そのあとランク付けされるということは、、、インプを上げるためには、やっぱり質のいいツイートと、いいねやリプなどの交流が大事ってことですね。

ちなみにここで言う質のいいツイートとは、ノウハウが詰まっているような有益なツイートということではありません。最適なツイートといった方がいいかもです。より具体的な運用方法はまた別の機会で紹介します。アルゴリズムは日々変化していくので、引き続き追っていきます!

長文を読んでいただきありがとうございました。ちょっとでも役に立ったなと思っていただけたなら、スキやRTお願いいたします!

これからも、気づいた点は都度Twitter(@sho_Japump)で共有していきますので、フォローしていただけると嬉しいです!^^
Twitter運用で困っていたら、DMからでも相談してください。

Twitterアカウント運用代行は、株式会社ジャパンプにおまかせください。

株式会社ジャパンプは、2011年11月11日設立のマーケティング総合支援会社です。オフラインとデジタルの両面から、あらゆる企業のマーケティング活動を支援します。

■Twitterアカウント運用代行事業
Twitter運用は、業界業種や商品の種類、目的によって運用方法が変わります。SNSが初めてでどう対応していいかわからない方にも丁寧なサポートを心掛けています。アカウント開設からターゲット・KPI設定、ヘッダー、プロフィール制作まで、アカウント立ち上げをサポートいたします。まずはお気軽にお問い合わせください。Twitter(@sho_Japump)からのご相談も大歓迎です。

■主な事業
・営業代行
・営業コンサルティング
・ビジネスマッチングサービス
・メディア運営
・WEBマーケティング支援
・SNS運用代行
・ホワイトペーパー制作

株式会社ジャパンプへのお問い合わせはこちらから


この記事が気に入ったらサポートをしてみませんか?