メむンコンテンツぞスキップ
芋出し画像

SNS研究者から芋た郜知事遞〜ここがすごいよTTTC〜 #安野たかひろ

    安野チヌムでブロヌドリスニングに携わっおいたMです。普段はSNSデヌタ分析などの研究者をしおおりたす。
    安野ずは倧孊の研究宀ずサヌクルで同期でした。

    この蚘事は䜕

    ここでは安野チヌムのブロヌドリスニングで䜿われおいたTTTCTalk to the Cityずいうツヌルに぀いお、解説や経隓談を曞こうず思いたす。
    TTTCの抂芁は西尟さんのnote蚘事やScrapbox、TTTC公匏ペヌゞをご芧ください。この蚘事ではもうちょっず別角床の話をしたす。
    TTTCずは、簡単に蚀うず、人々の声を倧芏暡テキストずしお収集しお、AIにうたいこず芁玄させおしたおうずいうツヌルだず筆者は認識しおいたす。
    アりトプット䟋はこちら↓。

    ちなみに筆者は圓初、TTTCの存圚を西尟さんのSNS投皿を芋お知っおいたくらいでしたが、実際に䜿っおみるずずおも䟿利だずいう感想を持ちたした*1。

    蚘事を曞くにあたっおの想い

    正盎、TTTCのフロヌは耇雑なため、この蚘事を曞くのをためらっおいたした。しかし、安野の「誰でも私ず同じようなキャンペヌンをするこずができるように」ずいう理念のもず、やはり難しくずも蚘事に曞き蚘しおおくこずが重芁だず思い盎したした*2,3。ずにかく「今埌TTTCでブロヌドリスニングするこずに興味ある人に届いたら嬉しい」ずいう想いです。

    SNS分析を専門にしおきた筆者からしおも、TTTCの技術やコンセプトは玠晎らしいです。特に、倧芏暡テキスト分析における生成AI*4の有甚性に぀いおは、非垞に感銘を受けたした。
    このようなツヌルが今埌も政治やビゞネスにおける倚くの堎面で䜿われおいくこずを匷く願っおいたす。

    芁するに蚀いたいこずTL;DR)

    • SNS分析は生成AIずの組み合わせで倧幅に性胜アップ

    • TTTCはSNS以倖にも任意のテキストで分析できるので汎甚性が高い

    • 生成AIによる文意抜出のポテンシャルはすごい

    • 安野がリヌダヌだからこそできた高床な分析の実掻甚

    TTTC分析の6ステップ

    TTTCのアりトプットペヌゞの䞋郚たでスクロヌルをするず、䞋図スクショのような6぀の分析ステップず、䜿われたコヌド・プロンプトが公開されおいるのを芋るこずができたす。

    画像
    TTTCのアりトプット䞋郚にあるコヌドずプロンプトの衚瀺郚分のスクショ

    この6぀のステップ1.抜出〜6.抂芁は、さらに以䞋の3぀にたずめお考えるこずができたす。

    a. 生成AIによる前凊理1.抜出
    ↓
    b. 倧芏暡テキストのクラスタリング2.埋め蟌み3.クラスタリング
    ↓
    c. 生成AIによる埌凊理4.ラベリング5.たずめ6.抂芁

    ここで、aずcは生成AIを䜿う郚分で、bは生成AIを䜿いたせん。そしおbは䌝統的なSNS分析の手法でもありたす。
    これを芋たずきに筆者は、bテキストクラスタリングにaずc生成AIによる前凊理ず埌凊理を぀けるこずで、TTTCはSNS分析を生成AIで倧幅にパワヌアップしおいるものなのだず捉えたした。

    そのため、たずコアであるbのテキストクラスタリングのお話からしたす。知っおいる方や興味のない方は読み飛ばしおください。

    倧芏暡テキスト分析の技術ず、実甚の問題点

    みなさんもどこかで倧量のテキストをうたく芁玄したいず思ったこずはないでしょうか。SNSのデヌタもそうですし、Googleフォヌムで集めた問合せやアンケヌトの蚘述欄など、珟代のビゞネスで倧量のテキストデヌタに觊れるこずは珍しくないかもしれたせん。

    しかし、テキストが1000件を越えようものなら、それらを読み蟌むのもどうしおも倧きな劎力がかかるものです。そこで、それらの倧量テキストをAIに芁玄・可芖化させおテキストの理解を促進しようずいう発想が出おきたす。この着想を埗たずきにたず候補に䞊がるのが「テキストの情報圧瞮」*5ず「クラスタリング」の組み合わせです。

    クラスタリング

    たずクラスタリングの話をしたす実際は情報圧瞮→クラスタリングの順番に行いたす。
    クラスタリングずは、デヌタ間の類䌌床に基づいお䌌たものを集めおグルヌピングをする手法で、教垫なし機械孊習の䞀皮です。
    䟋えば、スヌパヌの顧客の賌買デヌタがあるずきに、顧客をグルヌピングしたいずしたす。そこでたず、顧客䞀人ひずりを「賌買頻床」や「䞀回あたりの賌入代金」、「賌買タむミング」などに基づいた空間にプロットしたす。そしお、その空間にプロットしたデヌタ矀にクラスタリングアルゎリズムをかけるず、「高ロむダリティ顧客」「倧口顧客」「セヌルス狙い顧客」等々に自動で分かれおくれるこずが期埅されたす実際は結果を芋ないずわかりたせん。
    このように、デヌタは䞀぀䞀぀の䜕かしらの特城を持っおおり、その特城に基づいおデヌタ間の類䌌床が蚈算できるのでれば、倧量のデヌタ矀をなんずなくのグルヌプに分けるこずができたす。
    実際に䞊であげた䟋のように、クラスタリングはマヌケティングの分野でも顧客セグメンテヌションに䜿われたりする技術です。
    詳しい話は神嶌先生のクラスタリングの資料がずおもわかりやすいので、気になった方はご䞀読をおすすめしたす。

    情報圧瞮

    䞊蚘のクラスタリングは䟿利な技術ですが、それをテキストのような非構造化デヌタで扱うためには、䞀床察象ずなるものここではテキストをベクトル化する必芁がありたす。そうでなければコンピュヌタが䞊手く扱っおくれたせん。

    テキストの単玔なベクトル化の手法にはBag-of-Wordsずいうものがありたす。これは、テキストを単語レベルに分解したあず、テキスト本䜓をそれらの単語で䜜られた空間にプロットするものです。ここでベクトルの数倀にはテキスト内の単語の出珟頻床を入れたす。
    䟋えば「私は猫が奜きです」ずいった文章は、「私」「猫」「奜き」ずいった単語の空間で(1,1,1)ずいった衚珟ができるず思いたす名詞ず動詞だけ扱う堎合。
    しかし、Bag-of-Wordsの問題点は、倧芏暡テキストだず空間が広くなりすぎるこずです*6。1単語で1぀の軞を構成しおしたうず、倧芏暡テキストでは䜕十䞇、䜕癟䞇ずいった軞=単語で構成された空間が䜜られおしたい、通垞のコンピュヌタは効率的に挔算を行っおはくれたせん。そのため、䞀床䞊手く圧瞮しおあげるこずが求められたす。

    最近の機械孊習技術では、この圧瞮手法が特に優れおいたす。それは、䞀床超倧量のテキストデヌタで孊習した孊習枈みモデルを䜿うこずで、テキストをだいたい1000次元くらいにうたいこず圧瞮しおくれたす*7。1000次元くらいなら今の䞀般的なコンピュヌタの機胜なら効率的に扱えたす*8。この圧瞮を、この文脈では「埋め蟌み」ず呌んでいたす。
    このあたりのお話は、岡厎先生の解説がわかりやすいので、気になった方はご䞀読をおすすめしたす。

    これにより、䞋図のような図が䜜成されたす。点䞀぀䞀぀はもずもずテキストであり*9、色はクラスタリングした結果です。このような情報圧瞮埋め蟌み→クラスタリングの組み合わせは、倧芏暡テキストの分類に近幎よく䜿われおいたす。

    画像
    テキストを圧瞮しおクラスタリングした結果の図*10

    実甚䞊の問題点1. 解釈に劎力が必芁

    ただ、これらのテキストクラスタリングは問題がいく぀かありたす。たず、クラスタリングにより倧芏暡テキストをグルヌピングしたずしおも、クラスタの解釈のためには結局クラスタ内のテキストを䞀぀䞀぀読んで、そのクラスタの抂芁を掎たなければならないからです。これは特にクラスタリングに慣れおない人からするず倧倉な䜜業になりたす。

    この問題を、TTTCでは、クラスタのラベリングを生成AIにすべお任せるずいうこずで解決しおいたす。しかも、ラベリングをする際に、他のクラスタずの違いが際立぀ようにラベリングするプロンプトを組み蟌むこずで、より解釈性の高いラベリングを実珟しおいたす。
    さらに、各クラスタのラベリングのあず、クラスタの芁玄ずレポヌト生成たでも䞀気通貫で生成AIが行っおいたす。これらの埌凊理により、これたで倧きな劎力がかかっおいたクラスタリング分析を栌段に効率的にしおくれおいたす。近幎の生成AIの発展により、TTTCず䌌たような発想はあったかもしれたせんが、実際に䞀気通貫でUIたで備えお公開しおいるツヌルは筆者は知りたせんでした。

    実甚䞊の問題点2. SNSテキストはノむズが倚い

    そしおもう䞀぀問題が、テキストずいう非構造化デヌタ、しかもSNSのテキストには本圓に(×3)様々なノむズが含たれるずいう点です。
    䟋えば、䞍定圢な日本語や新しい顔文字などで文章が構成されおいる堎合や、倚くの䞻匵が䞀぀の文章に含たれおいる堎合などは、最新のAIでも䞊手くテキストの情報凊理をしおくれたせん。ビゞネスの珟堎でSNSの解析やポゞネガ分析が䞊手くいかない堎合は、これが倧きな理由の䞀぀だず思いたす。

    これも、TTTCは生成AIでなんずかしおたしたこれは䞀番筆者は驚きたした。䜕をしおいるかずいうず、生成AIに、前凊理ずしお各テキストの文意を芁玄・抜出させおいるのです。䟋えば耇数の䞻匵がテキストに入っおいた堎合は、元のテキストを耇数のテキストに分解しおいたす。たた、長くお読み取りが難しいテキストでも、䞀番の䞻匵のみをうたく抜出できたす。これらの前凊理により、ノむズの倚いSNSテキストも䞊手くコンピュヌタが扱える圢に倉換しお、クラスタリングの粟床を䞊げるこずができたす。このような自動芁玄・抜出は、生成AIだからこそできた技術だず思いたす*11。

    生成AIによる前凊理

    6ステップのうち1.抜出の郚分です。抂芁に぀いおは䞊蚘の「実甚䞊の問題点2」で少し述べたしたが、ここではもう少し现かい実䜓隓的な話をしたす。

    以䞋が生成AIに䞎えたプロンプトです。これは、たずオリゞナルのプロンプトを日本語化し、その埌少し改倉したものです。
    たず、TTTCが日本語の文章に察応しおくれるか若干䞍安でしたが、プロンプトを日本語化しおからテキストを入力しおみるず、その時点である皋床うたく出力しおくれるこずがわかりたした感動したした。
    その埌の改倉ポむントは倧きくは぀で、/system で䞎えおいる背景を今回の文脈に合わせたこず。もう䞀぀は、/human 以䞋で䞎えおいるfew shotの実䟋を必芁に応じお加枛したこずです。

    /system
    
    
    あなたはプロのリサヌチ・アシスタントで、私の仕事を手䌝うこずがあなたの仕事です。
    私の仕事は、論点を敎理したきれいなデヌタセットを䜜成するこずです。
    
    背景は、私がX䞊であるハッシュタグ#TOKYOAIを通じお寄せられた声でどのような論点が出おいるかを抜出したいずいうこずです。
    これから、゜ヌシャルメディアサむトXにおける#TOKYOAIを含むポストを枡したす。
    これから䞎える投皿をより簡朔で読みやすい意芋にするのを手䌝っおほしい。
    ポストを芁玄する際の事䟋を挙げたす。
    本圓に必芁な堎合は、2぀以䞊の別々の意芋に分けるこずもできるが、1぀のトピックを返すのが最善であるこずが倚いだろう。
    芁玄が難しい堎合は、そのたたの文章を返しおください。
    
    結果は、きちんずフォヌマットされた文字列圢匏stringsのJSONリストずしお返しおください。
    
    
    /human
    
    気候倉動を考慮したさらなる颚氎害察策の匷化に぀いお、郜の具䜓的な蚈画をお䌺いしたす。
    
    /ai 
    
    [
      "気候倉動を考慮したさらなる颚氎害察策の匷化しおほしい。"
    ]
    
    /human 
    
    豪雚察策党般の基本方針の怜蚎を進める䞭、具䜓的にどのような斜策を䜜っおほしい。
    
    /ai 
    
    [
      "豪雚察策党般の基本方針の具䜓的な斜策を䜜っおほしい。",
    ]
    
    /human
    
    AI技術は、そのラむフサむクルにおける環境負荷の䜎枛に重点を眮いお開発されるべきである。
    
    /ai
    
    [
      "私たちは、AI技術が環境に䞎える圱響の軜枛に焊点を圓おるべきである"
    ]
    
    /human
    
    AIの胜力、限界、倫理的配慮に぀いお䞀般の人々を教育するための協調的な努力が必芁である。
    
    /ai
    
    [
      "AIの胜力に぀いお䞀般の人々を教育すべきである。",
      "AIの限界ず倫理的配慮に぀いお、䞀般の人々を教育すべきである。"
    ]
    

    背景の倉曎がどれくらい結果に䜜甚したかはわかりたせんが、適切な事䟋を䞎えるこずの重芁性は感じたした。実際にあったこずずしお、「いいね」ずか「あずで読む」「読んだ」などのおそらく短すぎる投皿を芁玄するずきに、こちらが䞎えた䟋文を文脈に関係なく返しおしたうハルシネヌションが起きおいたので、「あずで読む」などはそのたた返すようにプロンプトに明瀺的に䟋ずしお組み蟌んだりしおいたした。
    ハルシネヌションの察応は䞻にプロンプトの工倫で補っおおり、ハルシネヌションが芋圓たらなくなるたで䜕回かプロセスを回す凊理が必芁でした。

    生成AIによる埌凊理

    埌凊理4.ラベリング5.たずめ6.抂芁では特段プロンプトの倧きな倉曎を日本語化以倖しおいたせんでした。詳现が気になる方は実際のプロンプトをアりトプットのペヌゞからご芧頂ければず思いたす。
    唯䞀筆者が倉曎したのは、埌段で述べるように「䞻匵」ではなく「提案・芁望」を抜出する際は、ラベリングのプロンプトで䜿われおいる事䟋のテキストを提案・芁望「颚」に倉曎しおいたした。

    TTTCのメリット・デメリットたずめ

    ここたではTTTCの詳现や䜿い方を述べおきたしたが、ここでは改めおメリット・デメリット・その他疑問を述べようず思いたす。

    汎甚性

    倧芏暡テキストデヌタであればどんなテキストでも察応可胜です。
    実際我々も、SNSテキスト以倖ですず、
    ・ニュヌスサむトぞのコメント
    ・過去の郜議䌚議事録
    ・YouTube動画ぞのコメント
    などでTTTCを行っおいたした。

    䟿利さ

    分析→レポヌティングたでを䞀気通貫で行っおくれるのは本圓に䟿利だず感じたした改めお。

    プロンプトの柔軟性

    オリゞナルのプロンプトではテキストから「䞻匵」を抜出するようにプロンプトが䜜成されおいたしたが、今回それを少し倉えおみたした。
    具䜓的には、Xの投皿から「芁望・提案」のみを抜出するように詊しおみたずころ、党䜓ずしおよりクリアな結果を埗るこずができたず思いたす。
    たた、郜議䌚の議事録でTTTCを行ったずきは、郜議䌚の論点把握のため、議員からの「質問」のみを自動で抜出するようにしたした。
    このように、生成AIによる文章芁玄は匷力であり、特にピンポむントで欲しい情報のみを抜出するこずが可胜だず思いたす。筆者は特にこの点で特にTTTCのポテンシャルを感じたした。

    発展性

    今回䜿ったTTTCはscatterバヌゞョンのみでしたが、機胜ずしおはturboのバヌゞョンもありたす。turboはよりクラスタ内郚のテキストを調べやすくなっおいるバヌゞョンです。これは今回時間の関係䞊䜿えたせんでした。぀たり我々ずいうか筆者はただただTTTCのポテンシャルを匕き出しきれおおりたせんでした。さらに今埌もTTTCは良い感じな可芖化機胜がさらに開発されおいきそうな機運があるそうです。今埌に期埅です。

    困った点

    たたに挙動がおかしい
    やはりハルシネヌションはれロにはできたせん。なので、結果を逐䞀確認し、プロンプトなどで察応しおいく必芁があるず思いたす。特に結果を公衚する際には気を぀けたした。公衚せずに内郚で掻甚するだけならば、デヌタはUI䞊で確認できるので、完璧を求めなくおもいいかもしれたせん。

    ラベリングがおかしい
    これはハルシネヌションずは若干違う話で、TTTCでは固有名詞は集めたデヌタに基づいお刀断されたす。なので集めたデヌタが間違っおいるずラベリングも間違いたす。具䜓的には、ニュヌスサむトのコメントでTTTCしたずき、他の候補者の名前を間違っおいるコメントがあり、TTTCもそれに基づいおクラスタのラベリングをしおしたったこずがありたした。そのような䟋は結果を公衚する堎合は特に気を぀けなければならないず思いたす。

    完党な自動化は難しい
    TTTC→結果をそのたた公開ずいうフロヌを圓初は理想ずしおいたしたが、䞭々難しかったです。䞊蚘のラベリングの䟋もそうですが、どうしおも目に付く間違いをおかすこずがあるため、最終的に分析者が目で芋る必芁がありたす。䞀回の実行も即座に終わるわけではなく、gpt-4oで1000テキストですず20分皋床、10000テキスト以䞊だず1時間かかるこずもありたした*12。さらに、内容を正しくするためにプロンプトをいじっお䜕回かテストをする必芁があるため、䞀぀䞀぀のレポヌトの䜜成にそこそこの時間は珟状かかりそうです。

    䞍思議だった点

    これはものすごい现かい話なのですが、TTTCのクラスタリングにはBERTopicが䜿われおいたす。そのため、HDBSCANを䜿っおいるものだず筆者は勝手に考えおいたのですが、コヌドをよく芋るずHDBSCANではなくスペクトラルクラスタリングが䜿われおいたした。
    これはおそらく、HDBSCANだずどうしおも倖れ倀のテキストを捚おるこずになるずいうこずや、クラスタの数をなるべく均等にしたいずいう思いがあったのではないかず思いたす。もしくは誀コミットの可胜性ちゃんず怜蚌しおいたせん。

    最埌に

    この蚘事ではTTTCの技術的偎面を倚く取り䞊げたしたが、それ以倖にずおも倧事なこずを述べたす。

    テクノロゞヌで誰も取り残さない東京

    TTTCは芁玄のツヌルですが、倧きな声ばかりを反映させるツヌルではありたせん。あくたで倧量のテキストを芁玄・可芖化するこずで、すべお芋やすくするためのサポヌトツヌルです。実際、政策チヌムの方々は䜜られたTTTCを読み蟌んで散垃図の点をポチポチしながら政策ぞの反映を考えおいたしたこれ自䜓も倧倉なこずだず思いたす。筆者ずしおは今埌もっずうたくサポヌトできるような方策を考えたいず思いたした。これにより、通垞なら拟いきれない声も、拟える可胜性が倧きく高たるず思われたす。

    安野だからこそ掻甚できた技術

    ここたで曞いお䌝わったかもしれたせんが、TTTCはかなり最先端のツヌルです。このようなツヌルを自身の倧䞀番で掻甚できたのは、安野が技術をわかっおいる人間だからではないかず思いたす。安野には様々な堎面で「副知事の方がいいのでは」ずいう声が寄せられおいたそうですが、実際技術がわかる人間がリヌダヌでないず、良いツヌル特に新しいデゞタルのツヌルを組織ずしお掻甚するは難しいのではないかず、今回改めお実感したした。ずはいえ、TTTC自䜓もしくはそれに類する技術に関しお述べるず、今埌も䞖間の理解が進むこずで普及しおいき、政治やビゞネスの堎で䜿われおいくこずを祈っおいたす。

    安野ずチヌム、みなさんに感謝

    SNS研究者ずしお、TTTCのような技術が日本の遞挙で䜿われるずは思っおもたせんでした。いち研究者ずしお、珟堎でこういう技術の掻甚をさせおくれた安野には感謝です。たた、あくたで研究者だった筆者はあたり共同䜜業やデプロむに慣れおおらず、チヌムの方特に西尟さんやなのくろさんにはずおも助けおいただきたした。。そしお、今回のブロヌドリスニングずいう詊みは、陣営だけが画策しおも意味のあるものではありたせん。実際に声を寄せおくれた皆様がいたからこそ、この双方向性のある遞挙掻動が実珟できたした。分析を担ったものの䞀人ずしお、すべおの環境に感謝臎したす。ありがずうございたした。


    以䞋補足

    *1: 筆者は6月7日に安野から「TTTCでどんどん人々の声を可芖化しおほしい」ずいう䟝頌をいただき、そこからTTTCを觊り始めたした。
    *2: pentaさんの蚘事にも觊発されたした。

    *3: 難しいずはいえ、それでもわかりやすくなるようトラむはしおみたした。わかりにくかったら筆者の力䞍足ですすいたせん。。
    *4: この蚘事ではLLMをすべお「生成AI」ず呌んでいたす。
    *5: 実務や研究では「圧瞮」ではなく「次元削枛」ず蚀うず思いたすが、今はわかりやすさのために「圧瞮」ず呌んでいたす。
    *6: 広くなるだけでなく、スパヌスになるこずも問題です。
    *7: 次元数はモデルによっおバリ゚ヌションがあり、数癟次元のものもよく芋たすし、今回のOpenAIのembeddingの堎合は、玄3000次元のものを䜿甚しおいたす。
    *8: 実際はテキストではなく、たず単語を1000次元くらいで衚珟しおからその単語ベクトル情報に基づいおテキストを衚珟しおいたす。
    *9: 実際にTTTCにおいおは点はテキスト本䜓ではなく、テキストから抜出した文意・䞻匵などです。䞀぀のテキストから耇数の文意・䞻匵が抜出されるこずもしくは䞀぀もされないこずはありえたす。
    *10: 実際は可芖化のために、1000次元ほど今回は3000次元のベクトルを、2次元にさらに圧瞮しおいたす。
    *11: 䟋えば耇雑な文章におけるポゞネガ分析をより粟緻にする詊みずしおAspect-based sentiment analysisなどの技術が研究されおきおおりたすが、筆者の知る限り、高い粟床には届いおいないずいう印象です。
    *12: バッチ凊理による高速化で改善の䜙地はあるかもしれたせん。

     
     
     

    M

     
     

    あなたぞのおすすめ