最近は「マルチモーダル」という言葉をよく耳にするようになりました。これは、画像、音声、テキストなど、複数の種類のデータを組み合わせて扱う技術のことです。
この記事は、マルチモーダルAIを理解するための第一歩として、その核心にある 「テンソル」と「テンソル空間」 の概念を見ていきましょう。
異なるデータを「テンソル」で統一的に扱う
マルチモーダルAIが複数のデータタイプを同時に処理できるのは、すべてのデータを 「テンソル」 という共通の形式に変換するからです。テンソルは、数学的にはより厳密な定義がありますが、AIの分野では、シンプルに多次元の配列として理解するのが一般的です。これにより、コンピュータはさまざまなデータを統一的に扱えるようになります。N次元のテンソルという表現をN階のテンソルという風に呼びます。
-
1階のテンソル (ベクトル): 数値の並び。例:
[1, 0, 5]
-
2階のテンソル (行列): 数値の行と列。例:
[[1, 2], [3, 4]]
- 3階以上のテンソル: さらに高階に拡張された配列。
つまり、テキストを扱う場合はベクトル(1階のテンソル)であり、テンソルという言葉が生まれたのは、ベクトルや行列(2階のテンソル)だけでは表現できない、より複雑な物理現象を記述する必要があったからです。その後、AIの分野で画像や音声のような複雑なデータを扱う際に、この概念が非常に役立つことがわかり、広く使われるようになりました。
なぜテンソルで表現する必要があるのでしょうか?それは、コンピュータがデータを扱うために、すべての情報を数値化する必要があるからです。文字、画像、音声といった多様なデータをテンソルに変換することで、それらをコンピュータが処理可能な数値の集合体として扱えるようになります。
データタイプによって「テンソル」の階は異なる
それぞれのデータが持つ固有の情報構造を保持するため、データタイプによって最適なテンソルの階は異なります。
-
テキスト: 単語一つひとつは、意味を数値化した ベクトル(1階のテンソル) として表現されます。例:単語「猫」が
[1, 0, 5]
のようなベクトルで表される。文全体は、これらのベクトルの集合として、 行列(2階のテンソル) として扱われることが多いです。 - 画像: カラー画像は、幅、高さ、そしてRGB(赤、緑、青)のカラーチャンネルの3つの階を持つ3階のテンソルで表現されます。グレースケール画像なら、幅と高さの2階のテンソルです。画像のピクセルデータが2次元的に配置されていることに加え、色情報を保持するために階が必要不可欠です。
- 音声: 音声信号は、時間と共に変化する周波数スペクトルを持つため、時間と周波数といった階を持つテンソルで表現されます。例えば、ステレオ音声であれば、時間、周波数に加えて左右のチャンネルという階が加わります。
このように、各データの固有の構造を効率的かつ正確に捉えるために、最適な階のテンソルが使われます。もし階を無理に統一しようとすると、重要な情報が失われたり、不要なデータが増えたりする可能性があるのです。
テンソルは、生データ(入力テンソル)を特徴抽出という処理(モデルの層)に通すことで、より高次元で抽象的な情報(出力テンソル)へと変化する器です。変数に複雑なオブジェクトを格納出来ることをイメージしてみてください。スカラー、ベクトル、行列は、それぞれ0階、1階、2階のテンソルの特別なケースであり、より高次元のデータを扱うためにテンソルという汎用的な概念が使われます。
特徴を収めるのであれば、より高階のテンソルを使うことでAIは文脈をより深く理解出来るのではないか?という疑問が浮かぶ人もいるでしょう。私もこの関係を知った時にどうしてテキストを高階のテンソルとして処理しないのかとGeminiに尋ねました。
結果として、現在のアテンションによるどのトークンがどのトークンに作用しているのかに注目するという機構が高階のテンソルでの文脈理解よりも優れており、パフォーマンスにも優れているために現在のAIはTransformerベースの機構になっているのです。
異なるベクトル空間の集合が「テンソル空間」
以前の記事で 「ベクトルデータベース」 について触れましたが、それは主にテキストを扱う1階のベクトルを格納するものでした。しかし、画像は3階のテンソル、音声は時間や周波数といった複数の階を持つテンソルで表現されます。
マルチモーダルAIの世界では、これらの異なる階を持つテンソルが共通のベクトル空間(1階のテンソル)へと収束されていきます。
- テキストの埋め込み:単語や文の意味を表す1階のベクトル
- 画像の埋め込み:画像の内容を表す3階のテンソル
- 音声の埋め込み:音声の特徴を表す複数階のテンソル
「テンソル空間」とは、これらの異なる階のテンソルが、それぞれ異なるエンコーダ(もしくはパイプライン)によって変換された後、共通の埋め込みベクトル(1階のテンソル)として比較・関連付け可能になる、概念的な場所です。異なる種類のデータが、この共通のベクトル空間で初めて意味的なつながりを持つことができるのです。この文脈における「テンソル空間」は、数学的な厳密な定義とは異なりますが、多様なデータを統合するAIの仕組みを理解する上で非常に役立つ考え方です。
マルチモーダルAIの応用例
マルチモーダルな技術は、私たちの生活の様々な場面で応用されています。
- マルチモーダルLLM: 画像、音声、テキストなどの入力を同時に理解し、すべてを考慮した回答を生成する大規模言語モデルです。単に画像の説明を生成するだけでなく、画像の中の物体について質問に答えたり、複数の画像とテキストを組み合わせてストーリーを作ったりすることができます。
- 画像キャプショニング: 画像の内容を説明するテキストを自動生成する技術です。画像という視覚情報とテキストという言語情報を橋渡しする、典型的なマルチモーダルタスクです。
- 音声・映像認識: 動画内の音声と映像を同時に分析し、登場人物や出来事を正確に特定する技術です。リップシンク(口の動きと音声の一致)を判断するなど、両者の協調が重要になります。
結論
マルチモーダルAIの第一歩は、異なる種類のデータを、それぞれの情報構造を保ったまま最適な階のテンソルに変換することにあります。この変換によって、コンピュータはテキスト、画像、音声といった多様なデータを数値データとして共通に扱えるようになり、テンソル空間という概念的な場所で情報を統合・処理できるようになります。
一見すると様々なデータを難なく扱っている様に見えますが、裏ではこの様に異なるデータを持つことで解決していることが分かってくるとおもしろいですね。次回はこのデータをどの様に分割しているのかについて解説していきます。