見出し画像

大規模言語モデルは、絵文字の分散表現をどう見るか - YANS2023ブース展示

くふうカンパニーの舘野(@hotchpotch)です。先日行われたYANS2023にスポンサー企業として参加し、ブースで「大規模言語モデルは絵文字の分散表現をどう見るか」という展示を行いました。
Webブラウザー上で、絵文字の分散表現(特徴量)を使ってインタラクティブにぐりぐり動かしながら、色々な視点から絵文字を見ることができます。

🎨Emoji Embedding Projector

  • 🌐 https://emoji-emb.netlify.app/

    • 🔼 こちらのURLから、ブラウザで絵文字の分散表現を視覚的に弄れます

    • スマートフォンでも横表示にすれば操作できますが、PC ブラウザでの閲覧がおすすめです

🤗 楽しみ方

  • 絵文字アイコンをクリックすると、その絵文字の類似 Top-100 が表示されます。

  • 左下の PCA タブでは、主成分の上位1-10が表示され、そのうち3つを使い3D空間にマッピングできます。

    • 例えば、#1(第一主成分)は国旗なので、#1 を選択しないことで、国旗の集合がなくなるでしょう

  • T-SNE タブでは、各種パラメータに沿ってアニメーションで収束していく様も見ることが出来ます。

  • UMAP / T-SNE の各種パラメータを変更することで、クラスターへの集約を視覚的に理解しやすくなります。

  • 左上のデータソースを変更することで、顔文字のみや標準化(z-score)済みに差し替えることも可能です。

インタラクティブに動かす実装には TensorBoard を使い、PCAやT-SNEによる次元削減、それによるプロットやクラスタリングを視覚的に見ることができます。
例えば、絵文字のPCAしたときの第一主成分は国旗となり、またその第一主成分をUIから変更して使わないことで、国旗による集合が無くなって別視点の分析が可能です。
T-SNEを使うことで、徐々に特定の絵文字の3次元上の空間が近くなっていき、例えば「時計」関連だったり「動物」関連だったりの集合が形成されていくのを見て楽しむことが出来ます。

なぜこのような絵文字の調査を行ったのか

絵文字は一文字にも関わらず、パッと見の視認性の高さは元より、サービス内容によっては絵文字が入るだけで分かりやすく、楽しくなる文字だと思ってます。くふうカンパニーグループのサービスでは、生活が便利になるユーザ向けサービスを家計簿アプリZaimや、チラシ情報サービスのトクバイ等々、いくつも提供しています。
そのため、サービスの中で絵文字をサービスで解りやすい形で活用できないかと考え、まずは大規模言語モデルでの絵文字の取り扱いを調査してみました。

GPT-4 と絵文字

GPT-4 や 3.5 では絵文字をうまく扱える、ということをご存知の方は多いのではないでしょうか。例えば、以下の文章を絵文字込みの文章に変換との指示出しですんなり行うことができることから、うまく絵文字を扱えてそうですよね。

以下の文章を、絵文字を交えた表現に変えてください。
元の文章は変えないで、文の間に絵文字を入れてください。
---
絵文字は、人々が感情や意図を伝えるための一つの手段として使用されるので、
その意味で自然言語の一部と見なすことができます。
しかし、以下の点を考慮する必要があります
絵文字🎨は、人々👥が感情❤️や意図🤔を伝えるための一つの手段🛠として使用されるので、
その意味で自然言語🗣の一部と見なすことができます。
しかし、以下の点📍を考慮する必要があります⚠️

では、分散表現(embeddings)にしたときはどうでしょうか。

OpenAI embeddings (ada-v2) と絵文字

OpenAIのembeddings API を使って、絵文字一文字一文字を分散表現(1536次元ベクトル)の変換して、文章のベクトルとコサイン類似度をとって、マッチする絵文字の Top-5 を表示してみましょう。なお絵文字は、絵文字修飾子やゼロ幅接合子を含まない、1654個の絵文字を利用しています。

  • cat and dog → 🐈 🐱 🐕 🐶 😻

  • アナと雪の女王 → ⛪ 🛄 ⛳ 🇯🇵 ⛄

  • 映画を見に行った。帰り道が大雨だった。→☔ 🌧️ 🇯🇵 🎬 🌂

こんな感じで、単語はもちろん、文章からもそれっぽい絵文字にマッチしますね。日本語を含むと日本の国旗が上位に来がちですが。
では続いて絵文字と絵文字での、コサイン類似度の top-20 をみてみましょう。

😚 => 😗😁😇😘😊😃😏😉😌😛😄😀😺😋😝😜😍😻😎
😋 => 😌😇😝😊😃😀😉😗😚☺️😘😍😺😁😎😜😛😏✋
😜 => 😝😉😏😄😁😎😊😀😛😚😘😋😃😌😺😍🤪😈😗
😝 => 😜😋😉😀😚😛😏😘😕😺😮😁😗😎😃😖😊😌😟
😛 => 😉😚😝😀😜😁😃😋😏😄😺😇😘😎😊🙂😌😗☺️
🤑 => 💰💳💱💵💲💸🎰💴💶🤒🥯💼🎱📈🤙🏦🤐📑🤏
🤗 => 😗🤩🥰😘🤓😇😍🤙😊😋🎉🥳🤞❤️🤍🤪♥️🤱😚
🤔 => 🤐🤓🤷🧐👀🙀🤦🤫🤒🤿🤭🤨🤤🤱🤙❓🤗🤯❔
🤐 => 🤔🤒🥘🤤🍽️🍱🤨🤠🍳🍜🥩🙀🧐🤓🥬🤿🍡🥓🥖
😶 => 😿😺😽😼😸😹😵☹️😾😋😀😗😧😙😇😻😖😣😨
😏 => 😉😁😊😜😎😄😚😀😌😈😇😝😘😃😬😋😗😛😺
😒 => 😑😐😓😖😠😿😕😞😔😫😨😡😟😥😢😪😣😝😙
😓 => 😞😔😖😣😪😕😒😢😐😿😑😡😠😥😨😟😙😫😧
🐱 => 🐈🐯🐭🐁🐾🐲🐰🐫🐼🐿️🐵🐩🐹🐤🦁🐻😻🐦🐥
🍎 => 🍉🍏🍈🍋🍇🍊🍐🍢🍌🥎🍍🍠🍒🍖🥐🍅🍓🥑🥍
🚀 => 🚡🚯🚐🚉🚄🚁🪀🚊🚍📈🚂🔀🙀🚥🚻🛀🪁🛫🚺
🎈 => 🎇🎂🎊🎉🎍🎰🎐🎆🎓🎁🍰🥳🎌🎋🎃🎏🍾🎦❤️
🍕 => 🍗🍖🍙🍘🍟🍜🍔🍮🍛🍤🍚🍭🍡🍦🍱🍣🍝🍪🍳
🌟 => 🌵🌍🌗🌏🌌🌛🌞🌸🌠🌅🌙🌁🌱🌃🌝🌎🌐🌕🌺
🎉 => 🎊🎈🥳🎇🎍🤩🎁🎂😍🎰🎓🍾🥰🤗🙌😎🎆😊😁
🐶 => 🐕🐺🐾🐩🐁🐂🐄🐫🐵🐼🐽🐬🐴🐱🐭🐮🐲🐧🐻
🍦 => 🍧🍮🍤🍭🍨🍫🍪🍣🍯🍬🍙🍩🍍🍡🥭🍘🍜🥧🍛
🌈 => 🌌🌅🌗🌖🌁🌙🌓🌉🌞🌛🌑🌆🌸🌘🌇🌚🌏🌻🌼
🎤 => 🎧🎭🎙️🎪📻🎻🎼🎫🏤🎦🎴🎬🎵🫤🎶👤📤📵🎽
🍍 => 🍋🍉🍈🍇🍌🍠🍨🍐🍧🍒🍏🍎🍓🍮🍣🍬🍢🍦🍯

確かに似ている絵文字が抽出できてますね。顔系絵文字のなかでも、例えば🤑は顔文字ではなく、💰💳💱💵💲といったお金系絵文字が類似なのも面白いですね。

より視覚化してわかりやすい形に

ただ、この情報だと、絵文字同士の関係性を直感的に見るには得られる情報が少ないですね。もっとぐりぐりいじって直感的に探索したい。

そういえば、TensorBoard を使えばうまく空間上にマッピングして表示できるのでは、と作ってみた(というかデータを変換して埋め込んだ)物が今回の展示にも使った Emoji Embedding Projector です。色々な視点で見ることができるようになり、あれこれ弄るだけでなかなか面白いのではないでしょうか。

なお、TensorBoard で「文字」として絵文字を表示すると視認性が悪かったため、絵文字(Noto Color Emoji)を一旦画像にて表示しています。TensorBoard 上でうまく画像を表示するには正方形のsprite画像一枚を用意する必要があるのですが、ドキュメントには仕様がぱっと見書いてなかったため、どのようにやれば良いのか最初分からず戸惑いました。正解は [TensorBoard] How to make sprite images for the embedding projector? などに書いてあります。

大規模言語モデルはなぜ絵文字をうまく扱えるのか?

ブースに来てくださった方と「なんでうまく絵文字がうまく扱えるのか」、つまり大規模言語モデルがいい感じに学習できているのか、という話題で「X(Twitter)などの、短文に絵文字を含めて発言することが多いSNSのデータの特徴を捉えてるのでは」という仮説で盛り上がりました。
通常の記事などでは絵文字が使われてもほんの一部な事が多いですが、たしかにX等の短文では文字列長に対してふんだんに絵文字が使われていたり、単語の代替として絵文字を入れていたりと、うまく絵文字の特徴を学習できそうですね。

なぜこの内容でYANSブース展示をしたか

我々の組織、くふうカンパニーグループでは、AI for UserFirst の実現に向け、2023年7月にくふうAIスタジオという組織を立ち上げ、徐々にAX(AI eXperience・AI Transformation)を活用した価値提供を始めたばかりです。
NLPの活用も少しづつ始めており、一つ前の記事 家計簿アプリ Zaim における名寄せの検証 も目新しい技術でははないですが、しっかりとNLPを価値につなげていけるような取り組みを初めている最中です。

まだまだ会社の知名度も低いため、まず企業ブースで足を止めて知ってもらおう、と深くNLPを活用している会社に比べたらゆるい感じの内容ではありますが、「大規模言語モデルは絵文字の分散表現をどう見るか」の展示を行いました。

当日のポスター

結果、ポスターやデモを見て興味を持ってくださった方が多いのか、企業スポンサー参加人数を除くと約250名の参加の中、持っていった100個のスポンサーグッズであるクリアファイル&案内チラシを渡すことができました。
これからNLPをさらに活用する、というポジションの会社としては、まずは一定の興味を持ってもらえたのではないかと思っています。

そんなくふうAIスタジオですが、大規模言語モデルを含めたNLPの活用をまだまだ始めたばかり。NLPを実務で活用して、ユーザーファーストなサービス価値、事業価値を作っていきたい方々を積極採用中です(もちろんNLPに限らずそれ以外のAI・データサイエンス利活用も!)。
どんなことやっているのであろう?とすこしでも興味がありましたら、会社のコーポレートや採用情報を見ていただけると幸いです。カジュアル面談もあるので、お気軽にご連絡ください!


なお、YANS2023のセッション、ポスター展示、来場者の方々との対話、どれも非常に面白く普段とはまた違った知識がインプットされ、参加してとても良かったです。発表者の方々、来訪者の方々、運営の方々、ありがとうございます!

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