Home Artists Posts Import Register

Content

こんばんは、スタジオ真榊です。前回はシャドウバンについて考察しましたが、本日もAI術師さん向けTwitter攻略術の続きということで、2023年3月31日にGithub上で公開されたツイートのおすすめアルゴリズムについての記事をお届けします。


公開されたソースコードを見た人たちからは、例えば「ツイート拡散の観点において、リプライは『いいね』の27倍の価値がある」とか「フォローしている人数がフォロワー人数より多いアカウントの投稿は拡散されにくくなる」といった情報が次々に投稿され、話題になっています。ただ、ソースコードをよく見てみると、どうも我々の投稿は、ちまたでよく言われているものとはちょっと違う仕組みで採点されていることがわかってきました。


そこで、いつもの実験を行うことにしました。「公開された情報を参考にしたら実際にバズることはできるのか?」ということで、非フォロワーに拡散されやすくなるという要素を研究し、全部盛りにしたツイートをしてみた結果がこちらです。


スタジオ真榊のアカウントでは、いきなり過去最も拡散されたツイートになってしまいました。あからさまに拡散を狙いに行ったツイートだったのでなかなか書いていて恥ずかしかったのですが、予想以上の結果だ…


そんなわけで、今回はアルゴリズムの内容を分かりやすく解説しながら、あくまでAI術師の観点から「どうしたら多くの人のTLに自分のAIイラスト投稿を表示できるのか?」または「なぜ自分のAIイラストはツイッターに拡散してもらえないのか?」ということを考える記事にしていきたいと思います。今回も長くなりますが、どうぞおつきあい下さい。


公開されたアルゴリズム

さて、旧ツイッター社(現在は合併してX社)は2023年3月31日、「おすすめ(For You)」タイムライン表示に関するアルゴリズムのソースコードをgithub上に公開しました。




公開されたソースコードはこちら。



公開情報は非常にボリュームが多いので、ポイントを要約して説明しますと、おすすめTLに表示される「優良ツイート」は次のような3段階のプロセスで決められていることがこの情報から明らかになりました。


1.候補ソーシング(Candidate Sourcing)

まず、さまざまなデータを基に、そのユーザーにおすすめすべきツイートが1500個抽出されます。この段階で、フォローしているユーザーの投稿と、フォローしていないユーザーの投稿がほぼ50:50になるように調整されます。ざっくり言うと、フォローしている人のツイートは「リプライやいいねでやりとりしている仲良しユーザーのもの」がおすすめされやすく、フォローしていない人のツイートの場合は「そのユーザーにぴったりだと思われるもの」が選ばれやすくなっています。


2.ランク付け(Rank)

「Heavy Ranker」という機械学習モデル(AI)を使って、取得した1500件のツイートにランク付けし、よりそのユーザーにあったものを上位に表示できるように並び替えます。


3.経験則フィルタリング(heuristics and filters)

最後の仕上げとして、取得したツイートの中から、ブロックした人物の投稿、NSFW(成人向け) コンテンツ、既に読んだツイートなど、そのユーザーが望まないと思われるツイートを選び出してキック(除外)します。



こちらの画像(▲)が、おすすめツイートがタイムラインに届くまでのフローチャートです。今紹介した3つのプロセスは、「HomeMixer」と上部に書かれた中央から右の部分で行われているもので、実はその前にも1500件のツイートを抽出する前提となる段階があるようです。


何はともあれ、この3段階のプロセスによって、そのユーザーだけの「フォロー内外50:50のおすすめTL」ができあがります。1500件の候補を出して、細かくランキングして、余計なものはフィルタリングする、という流れですね。(※正確には、最後に広告ツイートを混ぜる工程が加わるのですが、パーセンテージが分かりにくくなるので割愛します)


無関係の人のTLに載るツイートとは?

上手にアルゴリズムの波に乗っかれたら、自分の投稿をより多くの人に見てもらえることにつながるので、ぜひコツが知りたくなりますね。AI術師にとってまず気になるのは、「非フォローユーザーのおすすめツイート」がどうやって選び出されているかということでしょう。この点について、ツイッター側は「ソーシャルグラフ(Social Graph)」「埋め込みスペース(Embedding Spaces)」という二つの手法によって判断しているとしています。




「ソーシャルグラフ」は、「フォローしている人々が最近エンゲージしたツイートはどれか」「自分に似たツイートを気に入ったユーザーは誰か」「最近はほかにどんな内容を気に入っているか」を解析して、ユーザーごとのおすすめツイートを抽出するもの。「埋め込みスペース」は、例えば「サッカー」や「AI」など、ユーザーの興味関心のあるコミュニティごとにインフルエンサーや人気ツイートを抽出することで、ユーザーが関心を持つと思われるツイートやユーザーを判断するもの。ちなみに、フォローしていないユーザーのおすすめツイートは全体の50%に当たりますが、この50%のうち15%がソーシャルグラフで、35%が埋め込みスペースで抽出されるそうです。


AIイラストツイートをフォロワー外にも拡散したいのであれば、まずは「AIイラスト界隈」のアカウントに評価されるようなツイートを目指す・・・ということになるわけですが、それだとぼんやりしすぎてよく分かりませんね。ここでは、「おすすめされるツイートの半分は知らない人の投稿」で、「自分の普段の行動や所属コミュニティを基にツイッター側が勝手に選んだツイートがおすすめされている」とだけ理解しておけばOKです。


「ランク付け」のひみつ

さて、このようにして抽出された1500件のツイートは次に「HeavyRanker」と呼ばれるスコア計算機でランク付けされます(上の画像の中央部分)。これは、「そのユーザーが当該ツイートをいいねしそうかどうか」「リツイートしそうかどうか」などを、過去の行動パターンから機械学習モデルを使って予測する仕組みのようです。


公開されたソースコードによると、その際に下記のようなルールで軽重をつけたスコア評価がなされることが分かりました。




「いいね:+0.5」「リプライ:+13.5」などと書かれているので、「なるほど、たくさんいいねやリプライされているツイートがおすすめされるんだな」と思いがちですが、どうもそうではないようです。そのように解説している記事も多いのですが、素直に公開情報を読む限り、「過去のデータを踏まえ、その投稿を見たあなたがどんなアクションを起こすかの確率」を機械学習モデルが予想して、それが起きる頻度による「重み」を掛けてスコアリングしている、と読めるのです。


例えば、あなたがあるツイートを見ていいねをする頻度とブロックをする頻度はだいぶ掛け離れていますよね。いいねは頻繁に、リツイートはたまに、ブロックはまれに、通報はごくまれに、が普通です。つまり、それぞれの行動の評価を等価値にするのではなく「重み」を分けてスコアリングしないと、頻繁に起こる「いいね」の評価ばかりに振り回されてしまいます。ソースコードを見ますと、ユーザーが頻繁にする行為ほど重みが軽くなっているだけでなく、行動ごとにポイント上限も設けられていることが分かってきました。


以上、あくまで現時点の個人的見解ではありますが、そうした前提でこちらのリストをご覧ください。


Heavy Rankerによる加算/減算の重み付けリスト

過去の行動から見て、そのツイートを見たユーザーが・・・


・いいねしそうポイント:×0.5(上限100ポイント)

・リツイートしそうポイント:×1.0(上限100ポイント)

・リプライしそうポイント:×13.5(上限100ポイント)

・ツイ主のプロフィールにアクセスしそうポイント:×12(上限1000000ポイント)

※ツイートからツイート主のプロフィールを開き、ツイートに「いいね」または「リプライ」しそう、という意味

・動画を再生して半分以上視聴しそうポイント:×0.005(上限100ポイント)

・そのツイートにリプライして、さらにツイート主から反応をもらえそうポイント:×75(上限200ポイント)

※非常に分かりづらいですが、あるAI術師さんのツイートがあったとして、賢木がそれにリプライしそうで、かつその術師さんからも返事やいいねがもらえそうだと、そのツイートは優先的に表示されるという意味のようです

・ツイートの詳細を開いていいねor返信しそうポイント:×11(上限1000000ポイント)

・ツイートの詳細を開いて2分以上滞在しそうポイント:×10(上限1000000ポイント)

・否定的な反応をしそうポイント:×74(下限-1000ポイント)

※ツイートに興味がない、投稿者をブロックする、投稿者を非表示にするーのいずれかを行いそう

・ツイートを通報しそうポイント:×369(下限-20000ポイント)



この表をもとに「リプライはいいねの27倍の価値がある!」と言う人もいるのですが、正確には「リプライする頻度はいいねをする頻度の27分の1くらいなので、この数字を掛けてスコアのバランスを取っている」と理解した方が自然です。また、この重みはときおり調整されているようです。


それぞれの「~しそうポイント」が具体的にどのような数字でheavy rankerに渡されているかは不明ですが、それぞれに「上限」があることに注目しましょう。コードを読むと、「いいねしそう」は100ポイントまで、「プロフィールにアクセスしそう」は100000ポイントまでと、かなり派手に上限が異なります。


この仕組みについては不明なことが多いのですが、素直に読めば、


・「ユーザーがいいねやリツイートをしそうなツイート」というだけではランク上位に来づらい

・詳細を開いてじっくり返信を考えたり、プロフを開いたりしてくれそうなツイートが上回る


・・・ということが推測されます。


さらなるブースト

ここに、そのアカウント自体のスコア付けや、以下のような「加算or減衰ブースト」の要素が加わるようです。


・画像や動画などのメディアを含むツイートはポイント2倍

・Twitter Blueバッジがあるアカウントのツイートは、そのフォロワーにとってはポイントが4倍になる。非フォロワーにはポイントが2倍になる。

・アカウントの年齢やフォロワー数、デバイスの使用状況といった要素を解析して、アカウントをスコア付けする。使用歴が短かったり、フォロワー数が少なかったりすると不利になる。

・FF比を参照し、フォロー数よりフォロワー数が少ないアカウントほどスコアが下がる。

・ユーザーのスコアが100点に近いほどそのツイートがプッシュされるが、65点未満の場合、ランキングアルゴリズムで考慮されるツイートは最大3つまでに制限される。

・時間経過とともにツイートの関連性は低くなり、おすすめされにくくなる。ツイートの関連性スコアは 6 時間ごとに 50% 減少する。

・UIは英語、ツイートは非英語の場合、0.3倍のブーストがかかる(英語設定のアカウントに日本語ツイートは届きにくい)

・ツイートは英語、UI は非英語の場合、0.7倍のブーストがかかる(日本語設定のアカウントに英語ツイートはやや届きにくい)

・UIと言語が違う場合、0.1倍のブーストが掛かる(外国語設定のアカウントに日本語ツイートは超届きにくい)

・認識されない言語のツイートと判定された場合、0.01倍のブーストがかかる(言語が判別できないツイートは見えにくくなる)


アカウント評価値がさきほどのポイント計算とどう関わるかは正確には分かりませんが、傾向としてこのようなことが行われているということだけ覚えておきましょう。これまでも体感的に言われていたとおり、画像つきツイートや新しいツイートは有利であり、中でもTwitterBlueアカウントのツイートは理不尽なほど優遇されていることが分かります。


成人向けツイートはどうやって除外されるのか

これらの複雑な経緯を経て、1500のツイートに優先順位が付けられるわけですが、我々のおすすめTLに届けられる前の最後の仕上げとして、「ふさわしくないもの」がキックされます。具体的には、次のようなアクションが行われます。



・2次的なつながりのないツイートの除外:フォローしている人が誰もそのツイートに関与していたり、フォローしたりしていない場合、信頼性がないとみなされ、キックされる模様(Social proof)

・ブロック、ミュートしたアカウントやワード、成人向けコンテンツ表示設定を基にしたツイートが排除される(Visibility Filtering)

・投稿者の偏りを除去(Author Diversity)

・フォロー内・フォロー外のツイートのバランス調整(Content Balance (In network vs Out of Network))

・ネガティブフィードバックを踏まえたツイート除去(Feedback fatigue)

・重複するツイートや既読ツイートを除去(Deduplication / previously seen Tweets removal)



このうち「Visibility Filtering」という仕組みでは、例えばそのユーザーがブロックしているアカウントがTLに登場したり、性的、暴力的なコンテンツなどが表示されたりしないようアクションを起こすとのこと。そう聞くと「お、それがシャドウバンなんじゃないの?」と思いますが、公開情報はあくまでおすすめTLのアルゴリズムについてで、詳しいことは分かりません。ただ、「trust_and_safety_models」と呼ばれる次のような複数の機械学習モデル群が、問題のあるツイートを自動検出していることは確かなようです。


◆trust_and_safety_models

①pNSFWMedia: アダルト・ポルノコンテンツを含むNSFW 画像付きのツイートを検出するモデル。

②pNSFWText: NSFW テキスト、アダルト/性的なトピックを含む文章のツイートを検出するモデル。

③pToxicity: 侮辱や特定の種類の嫌がらせなど、有害なツイートを検出するモデル。(有害ではあるが、Twitter の利用規約に違反はしないもの)

④pAbuse: 虐待的なコンテンツを検出するモデル。(ヘイトスピーチ、標的を絞った嫌がらせ、虐待行為など、Twitter の利用規約への違反が含まれる)


ほかにもいろいろなモデルがあるそうですが、現時点では公開されていません。ただ、前回「AI術師が陥るシャドウバン問題 7年ぶり解除までにやった10の対策」で「ツイッターはセンシティブな画像ツイートを機械的に検出している」などと考察したのは正しかったことになります。「肌色BAN」が実際に存在することがなお信憑性を帯びたと言えるでしょう。


ただ、「このモデルはどんなコンテンツを性的だと判定するのか」や「検出した後どうするのか」がまだ明らかではないため、シャドウバンの仕組みが完全に明らかになったわけではありません。

AI術師が陥るシャドウバン問題 7年ぶり解除までにやった10の対策

皆様こんにちは、スタジオ真榊です。今回は多くのAI術師さんたちを悩ませている、ツイッターの「シャドウバン」についての記事です。 スタジオ真榊のアカウントはAIイラストが生まれるずっと前から成人向けの活動を続けてきたので、開設した7年前からずっと検索に引っかからない状態だったのですが、いろいろと対策を講...



AI術師としての考察

ここまで見てきた情報を基に、AI術師がフォロワー外にもおすすめされる投稿をするにはどうしたらいいかを考えてみましょう。


①界隈内で交流して認知度を高めよう

まずは「AIイラスト界隈の中で認知度があるアカウント・ツイートであること」「機械学習モデルに『多くの人に好まれそうなAIイラスト投稿だ』と認識されること」が重要であることになります。「#AIイラスト」や「#AIグラビア」といったハッシュタグでは多くの人気ツイートを見ることができますが、こうしたツイートの要素をまねることで、AIイラストをよくいいね・リツイートしているフォロワー外の人にアプローチできる可能性が高まります。また、あなたが「知り合いがフォローしている人」になることで、二次フォロワーに投稿が届きやすくなるので、まずは一次フォロワーを増やすことが第一歩となります。


②じっくり見てもらえるツイートをしよう

刹那的に「いいねしそう」「リツイートしそう」というだけでなく、「そのユーザーがツイートやプロフィールの詳細を見て、リプライしたり、あなたと会話のやりとりを始めそう」とAIに感じさせるツイートが有利です。つまり、普段からリプライをもらえていて、そのリプライにきちんと反応しているアカウントや、よくプロフを確認してもらえているアカウントほど、この判定は強まることが考えられます。逆に言えば、普段から一方的にハッシュタグもりもりの画像のみツイートを繰り返して、リプライにも反応しないアカウントはおすすめされにくくなる危険性がありますし、botと誤判定される恐れも強まると言えるでしょう。特にアカウントを開設した直後の振る舞いは気をつけましょう。


③プライドを捨てよう

これはおすすめしにくいことではありますが、イーロンの靴の裏をなめるのも有効です。お金を払ってTwitterBlueに参加すれば、フォロワーには4倍、非フォロワーにも2倍、おすすめされやすくなります。4月15日からはおすすめ欄がTwitterBlueのみになると言われており、本気でAIイラストレーターをやるなら選択肢に入ってくると言わざるを得ません。ちなみに、ご存じの通り賢木はイーロンのスニーカーをTwitterBlueのサービス開始初日からペロペロしています。ペロペロ。



④誤解される行動は慎もう

まずは無関係の人に届ける前に、フォロワーに支持してもらえるようなツイートでなければいけません。初動でどんどんRTが伸びるような投稿でなければ、フォロワーの外、AIイラスト界隈全体、さらには界隈の外の一般層へと拡散していかないのは誰でも分かることだと思います。しかし、この「初動から伸びる」というハードルを達成するためには、ツイッターに「悪質なツイートorアカウント」として排除されないことが重要。フォロワーが少ないのに既にシャドウバンになっていたり、全ての投稿がNSFWなアカウントだとレッテルを貼られていたり、他のアカウントと好意的なやりとりをしておらず悪質アカウントの疑いがあると判断されたりすると、どんなに良いツイートでも初動から大きくブレーキが掛かってしまいます。


ちなみに画像付きツイートは文字のみツイートより有利ですが、AIイラスト投稿の時点でここはクリアしているので特に意味はありません。イラスト投稿以外のツイート時も、何か画像をつけておくとバズりやすいくらいに覚えておけばいいと思います。


⑤画像だけでなく、テキスト内容にも気を配ろう

注意したいのが、ハッシュタグをもりもりにした画像のみのAIイラスト投稿や、翻訳不能のテキストつきのツイートは非常に危険ということです。単にそのツイートのランクが下がっておすすめされにくくなるだけでなく、あなたのアカウント自体のスコアが下がり、シャドウバンや凍結といった不都合を招くことが想像されます。賢木も外国語圏の人に届きやすいかと思い、よく絵文字とハッシュタグだけのツイートを好んで投稿していたのですが、もしかすると言語不明ツイートとしてデブースト対象になるかもしれないので、今後は控えようと思います。



          ▲こういうのは危険かも…?


同じような理由で、性的なテキストを添えるのもよろしくありません。ツイッターの機械学習モデルは、画像がセンシティブかどうかだけでなく、テキストがセンシティブかどうかも検知しているからです。どんな言葉が引っかかるかは想像するしかありませんが、直接に性的なワードだけでなく、隠語風のものも含めて、センシティブ投稿時によくあるワードは学習していると思ったほうがいいでしょう。「おっぱい」「セックス」みたいなものだけでなく、「シコれる」とか「ドピュw」みたいなワードもセンシティブな特徴量を持っていると考えられるので、できるだけ使わないことをオススメします。肌色率多めの水着イラストに「デッwww」とか書いたり、桃の絵文字とか❤とかを添えて投稿したりしているとよくないかもしれません。


【まとめ】

アルゴリズムの仕組みから読み取れるのは、これを作った人物は我々に「対話をしてほしい」と考えているということです。単にいいねされるだけでなく、その投稿から拡散が始まり、会話が始まり、活発な議論が始まり、知らない人も自分の考えを次々に表明するようなツイートを「良い」と考えているようです。性的であったり、スパム的であったり、リツイートはされても好意的なリプライはつかないものだったり、目にした人がミュートやブロックをするような投稿やアカウントは上位に来づらくなっていきます。


「バズ実験」で実践検証


さて、今回の検証内容を踏まえて、実験的に投稿したのがこちらのツイートです。




アルゴリズムを踏まえた実験として、拡散につながりやすくなるよう、いくつかフックを入れました。


・詳細をタップしたくなるツリーにした

これは情報商材アカウントがよくやる悪質なツイート手法。「これをやるだけで落ちなかった脂肪がスルッ!秘密はプロフに書いてあります」とか「マジでヤバイ!iphone14を一括1円でゲット!お金がない私が最初にやったのが→」のように、続きが気になるようなフックを入れて閲覧者を誘い込むテクニックです。実験では、TwitterBlueの長文ツイート機能を使って、文章の佳境でわざと「Show more(続きを読む)」が出るようにし、まずツリーを読んでもらう率を高めました。


・URLカードを削除し、画像を入れた

普通、記事のURLを貼るとこのように「Twitterカード」と呼ばれるリンクパネルが表示されますが、これを左上の「×」クリックで削除し、代わりに記事のスクリーンショットを2枚入れました。これは画像ツイート扱いとなること、ニュース記事のリンクを貼ること(これもブースト対象の模様)でランクブーストがもらえることと、URLをタップしなくても記事内容が目に入ることを狙ったものです。


・ひと言いいたくなるような題材と表現を選んだ

この記事は、現在の画像生成AIをとりまく言論環境からすると賛否両論を巻き起こす内容のものであり、「その通りだ」「いや全く違う」と議論が百出することが予想できました。また、AIイラストコミュニティにも親和性が高い記事であることもあり、バズ実験の題材に選びました。

アルゴリズムからすれば、単にいいね・リツイートされるだけでなく、多くのユーザーから詳細をじっくり読んでリプライをもらえるような内容が優位です。記事中に出てくる人物の発言は、もっと穏当に紹介することもできましたが、「人間ならではの機微を描けていない」「AIをいち早く使った漫画家は勝つ」といった強い表現をあえて正面に出すことで、「頷ける部分もあるが、それはちょっと違うんじゃないか?」と一言言いたくなるような表現でフックを作りました。


・あえて間違いとも読める表現を盛り込んだ


トレインミステリーの大家、西村京太郎さんは「出版社はわざと1カ所だけ間違えろと言う。電車の型番をわざと間違えておくと鉄道マニアから苦情が来て本が売れるからだ」とテレビ番組で発言したことがありました。「100日後に死ぬワニが時代にフィットして、独占配信のサマータイムレンダが失敗したように、今の作品は視聴者と同じ時間を共有できるライブ感がとても大切」という文章は、これを狙って入れたものです。

文意としてはこれで正しいのですが、名作であるサマータイムレンダが失敗作品かのように読める上、大炎上した100ワニが大成功と書かれると、多くの人は感情的に反応したくなるからです。実際、このポイントに多くの人が引っかかりを感じ、リプライや引用リツイートがなされました。


・リプライに積極的にレスした

多くのアカウントにおすすめされるには、それが「会話が始まるツイート」とみなされることが重要だと考えました。そこで、リプライには積極的にいいねをし、丁寧にリプライを返しました。単発のリプライだけでなく、できるだけ会話のツリーが続く会話を心がけました。確かに、おすすめTLにはリプ欄で会話が展開しているツイートがよく流れてきますので、普段から心がけておくとそこそこ効果があるのではないかと思います。


・ツリーの中で、過去の小バズツイートを引用した

文章の流れ上かなりむりやりではありましたが、前日にそこそこバズったツイートがあったので、これを引用しました。「詳細をクリックして2分以上滞在しそう」「プロフィールにアクセスしそう」のポイントを稼ぐことが狙いでした。多くの人がこのツイートだけでなく、アカウントや過去のツイートにも興味を持っているとAIが認識するような演出を心がけました。


・ついでに宣伝も試みた

予想以上に大きく伸びたため、一番これまで紹介してもらえたURLの宣伝もしておきました。これは実利をねらったものではありますが、自分のサイトにアクセスしてもらえることが評価値の上昇につながることを狙ったものでもあります。ただ、外部サイトのリンクを貼るとデブーストされるとのことですので、これはうまくいったかどうか分かりません。(蛇足ですが、特に支援者さん増加にも繋がりませんでした)




終わりに


このような対策をすれば、ツイッターのアルゴリズムの流れにうまく乗れると考えたのですが、実際の結果からある程度それを裏付けることができたように思います。ポイントとして、自分のアピールしたいことだけを投稿するのではなく、できるだけ詳細をタップしてもらえるような工夫をし、多くの人と対話するアカウントでいることがおすすめ欄に乗りやすくなるためには重要ということになります。


ただ、あす4月15日からは、おすすめTLがTwitterBlue契約者のみになるという情報があり、状況はいまだ流動的です。もちろん全てがTwitterBlue契約者だけになるわけではなく、自分のフォローしているアカウントのツイートも表示はされるようですが、また混乱を呼びそうですね…。




そんなわけで、今日はここまで。明日からはAIイラスト術天下一武道会の作品が連日掲載されますので、どうぞお楽しみに!


(※別記事でもお知らせ致しますが、10記事選考後にエントリー辞退者が1名ありましたので、オブザーバーとして11人目の寄稿者さんに代打していただきます。どうぞご理解いただけたら幸いです)

Files

Comments

No comments found for this post.