リサーチ
ベクトル埋め込み(Vector Embeddings)のマルチモーダルな進化

ジェームズ・リー
ベクトル埋め込みは、単一モダリティのテキストや画像表現から、視覚、音声、時間情報を統合して捉えるマルチモーダルシステムへと進化しました。これにより、YouTube、Spotify、Pinterestといった企業における、現代的な動画検索、レコメンデーション、および分類システムの基盤が形成されています。
ベクトル埋め込みは、単一モダリティのテキストや画像表現から、視覚、音声、時間情報を統合して捉えるマルチモーダルシステムへと進化しました。これにより、YouTube、Spotify、Pinterestといった企業における、現代的な動画検索、レコメンデーション、および分類システムの基盤が形成されています。

この記事の内容
ニュースレターに登録する
ニュースレターに登録する
ビデオ理解に関する最新の技術進歩、チュートリアル、業界の動向をお届けします
ビデオ理解に関する最新の技術進歩、チュートリアル、業界の動向をお届けします
AIを活用してビデオを検索、分析、探索します。
2023/08/09
20分
記事へのリンクをコピー
データ駆動型の製品開発を目指す企業にとって、ディープラーニングモデルの実装はますます重要な機械学習戦略となっています。ディープラーニングモデルを構築して動かすために、企業は何億テラバイトものマルチモーダルデータを収集し、ディープラーニングモデルに投入しています。その結果、ディープラーニングモデルが入力データを内部的に表現したものである埋め込み(embeddings)が、機械学習システムを構築するための重要なコンポーネントとして急速に台頭しています。
例えば、それらはSpotifyのアイテムレコメンダーシステム、YouTubeの次に見るべき動画のレコメンデーション、そしてPinterestのビジュアル検索の大部分を構成しています。レコメンデーションシステムのUIを通じてユーザーに明示的に提示されない場合でも、Netflixなどでは、ユーザーの好みの普及度に基づいて、どの番組を制作・開発すべきかといったコンテンツに関する意思決定を行うために、内部で埋め込みが使用されています。

コンテンツの圧縮された文脈特有の表現を生成するための埋め込みの利用は、GoogleのWord2Vecの論文が発表された後に爆発的な人気を博しました。Word2Vecの概念を基に構築・拡張された、自己注意(self-attention)メカニズムを持つTransformerアーキテクチャは、与えられた単語の周囲の文脈を計算するはるかに特殊化されたケースであり、成長を続けるマルチモーダルな語彙の表現を学習するための事実上の標準となりました。そして、学術界と産業界の両方におけるその人気の高まりにより、埋め込みはディープラーニングのワークフローに不可欠なものとなっています。
しかし、埋め込みの概念は、データフローの入力でも出力結果でもなく、モデルを洗練させるために機械学習サービス内に存在する中間的な要素であるため、少し分かりづらいかもしれません。そのため、最初から明確に定義しておくことが役立ちます。
1 - 埋め込みとは何か?
密な埋め込み(dense embedding)とは、概念に関連する情報を複数の要素で分散させるベクトルのことであり、要素を個別に調整することで、より多くの概念を比較的低次元の空間に効率的にエンコードできることを示しています。このような表現は、特定の概念の存在を局所的に「1」の値を持つ要素で示し、他の要素を「0」とするワンホットエンコーディングのような、シンボリックな表現と比較することができます。

ディープラーニングにおいて、「埋め込み」という用語は、単語や画像のカテゴリを表すワンホットベクトルから実数値の分散表現へのマッピングを指すことがよくあります。より具体的には、埋め込みのプロセスには次の3つのステップが含まれます。
マルチモーダルな入力を、ベクトル、テンソル、またはグラフの形式で、負荷の高い計算を実行しやすい表現に変換(Transforms)します。
ブログ投稿の要約や、大規模なビデオコーパスに対するセマンティック検索など、機械学習タスク向けに入力情報を圧縮(Compress)します。圧縮のプロセスは、可変のフィーチャー次元を固定の入力へと変化させ、機械学習システムの下流コンポーネントに効率的に渡すことを可能にします。
埋め込みがトレーニングされたデータに特有の埋め込み空間を作成(Creates an embedding space)します。ただし、ディープラーニングの表現の場合には、転移学習(transfer learning)を通じて他のタスクやドメインにも一般化させることができます。
単語、画像、または動画の埋め込みを作成して、多次元空間で成果物を表現することは、私たちに多くの可能性をもたらします。例えば、動画レコメンデーションシステムにおけるコンテンツ理解に焦点を当てたタスクでは、与えられた2つのアイテムを比較してそれらの類似性を評価することによく関心があります。動画をベクトルに変換し、共有された埋め込み空間で動画のフレームを比較することにより、このタスクを数学的な精度で実行できます。
2 - 単一モーダル(Unimodal)の埋め込み
2.1 - 言語表現
テキストの埋め込みは、低次元空間の実数値ベクトルに単語やフレーズをマッピングするテキストデータの表現方法の一種です。これらのベクトルはテキストの意味や文脈を捉え、様々な自然言語処理(NLP)タスクを可能にします。検索エンジン、製品レコメンデーション、ソーシャルメディアのコンテンツモデレーション、電子メールのスパムフィルタリング、カスタマーサポートのチャットボットなど、数多くのNLPアプリケーションが存在します。

テキストの埋め込みは、テキストから高レベルの特徴を抽出し、それを固定サイズの次元ベクトル(例:1,500次元)に変換するニューラルネットワークを使用して生成できます。これらの埋め込みはテキストデータの比較や分析に使用され、テキスト分類、テキスト検索、テキスト要約などのタスクを可能にします。
かつては、長・短期記憶(LSTM)やゲート付き回帰ユニット(GRU)言語モデルのような再帰型ニューラルネットワークが、現在の単語を予測する際に、固定長の再帰ベクトルに保存された過去のすべての単語からの情報を組み込んでいました。単語の埋め込みを生成するための他の一般的な方法には、連続バッグ・オブ・ワーズ(CBOW)モデル、skip-gram、およびGlobal Vectors(GloVe)などがあります。
2017年以降、テキストの埋め込みの学習にはTransformerが非常に重宝されています。元々はNLP向けに提案されたモデルであるVanilla Transformerは、自己注意メカニズムを使用して様々なNLPタスクで最先端の結果を達成しました。Vanilla Transformerの成功に続き、BERT、BART、GPT、Longformer、Transformer-XL、XLNetなど、多くの派生モデルが提案されています。事前トレーニングされたTransformerモデルは、強力なテキスト埋め込みジェネレーターになります。
2.2 - 視覚表現
画像の埋め込みは、画像を低次元空間の実数値ベクトルとして表現する方法です。これらのベクトルは画像の視覚的コンテンツを捉え、画像検索、物体検出、顔認識、コンテンツベースの画像検索など、様々なコンピュータビジョンのタスクに使用できます。

画像分類モデル(AlexNet、VGGNet、GoogLeNet、ResNetなど)の最終層の出力値を使用して、画像の埋め込みを取得できます。これらのモデルは、2012年、2014年、2015年の画像分類を対象としたILSVRC(ImageNet Large Scale Visual Recognition Competition)で優勝しました。画像の埋め込みは画像データの比較や分析に使用され、画像分類、画像検索、画像類似度検索などのタスクを可能にします。
あるいは、物体検出モデルによって特定された選択領域からの畳み込み特徴や関連するクラスラベルなど、より直接的な特徴を視覚的な埋め込みとして使用することもできます。このアプローチを使用するモデルには、R-CNN(Region-based CNN)、Fast R-CNN、およびFaster R-CNNなどがあります。
現在、NLPで最も人気のあるツールはTransformerですが、研究者たちは現在、それをビジュアルドメインなどの他の分野でどのように活用できるかを探求しています。その一例として、Transformerのエンコーダーを画像に適用するVision Transformer(ViT)の使用が挙げられます。ViTとそのバリエーションは、ローレベルのタスク、認識(recognition)、検出(detection)、および領域分割(segmentation)を含む、様々なコンピュータビジョンのタスク で成功を収めています。これらは教師あり学習と自己教師あり視覚学習の両方でうまく機能します。また、最近の研究では、内部表現における堅牢性や、潜在表現の伝播の連続的な振る舞いなど、ViTに関するさらなる理解も提供されています。事前トレーニングされたViTモデルは、強力な画像埋め込みジェネレーターになります。
2.3 - 音声表現
音声の埋め込みは、音声の音響的コンテンツをコンパクトかつ有意義な方法で捉える、音声信号の数値表現です。これらのベクトルは、音声信号のセマンティックおよび文脈情報を取得することを目指しています。音声処理、特に音声分類、音声検索、話者認識、音楽レコメンデーションなどのタスクに多くの用途があります。

これらの音声埋め込みを生成するために、AudioSetやUrbanSoundのような大規模音声データセットでトレーニングされた、VGGishやSoundNetなどの事前トレーニング済みモデルを使用できます。これらのモデルは、スペクトログラムやメル周波数ケプストラム係数(MFCC)などの高レベルの特徴を音声信号から抽出し、それらを埋め込みにエンコードできます。
言語ドメインや視覚ドメインと同様に、音声の埋め込みを生成するためにTransformerアーキテクチャを活用することもできます。いくつかの例として、PaSST、Audio Transformer、CTAL、SSAST、およびAudio Spectrogram Transformerが挙げられます。
3 - マルチモーダルな埋め込み
視覚、言語、音声の表現において多大な進歩が遂げられてきましたが、人間の概念の完全なセットを単一のモダリティのみを使用してモデル化することは、理論的に不十分です。例えば、「美しい絵」というアイデアは視覚的な表現に根ざしているため、自然言語やその他の非視覚的な方法で説明することは困難です。だからこそ、そのような概念をより適切に表現するために、複数のモダリティを使用する共同埋め込み(joint embeddings)を学習することが極めて重要なのです。一般的に、マルチモーダルAIの分野は、マルチモーダルなデータから埋め込みを抽出できるAIシステムの構築を追求しています。
3.1 - マルチモーダルAIに関する簡単なメモ

マルチモーダルAIは、ここ数十年の重要な研究分野となっています。私たちが生きている世界はマルチモーダルな環境であり、私たちの観察も行動もマルチモーダルです。例えば、AIナビゲーションロボットが現実世界の環境を認識するには、マルチモーダルセンサーが必要です。これらのセンサーには、カメラ、LiDAR、レーダー、超音波、GNSS、HDマップ、オドメーター(走行距離計)などがあります。さらに、人間の行動、感情、イベント、動作、ユーモアもマルチモーダルです。その結果、マルチモーダル感情認識、マルチモーダルイベント表現、マルチモーダルなユーモアの理解、顔・体・声ベースの動画人物クラスタリングなど、人間を中心とした様々なマルチモーダルAIタスクが幅広く研究されています。
インターネット技術の進歩とインテリジェントデバイスの普及により、かつてないほど大量のマルチモーダルデータがウェブ上で送信されています。これにより、数多くのマルチモーダルアプリケーションのシナリオが生まれています。今日の社会では、商業サービス(eコマース検索、視覚言語ナビゲーション、音響・視覚ナビゲーションなど)、コミュニケーション手段(読唇術や手話翻訳など)、人間とコンピュータの相互作用(HCI)、医療AI、および監視AIを含む、幅広いこのようなアプリケーションを目にすることができます。
ディープラーニングの時代において、マルチモーダルAIはディープニューラルネットワークのおかげで大きな進歩を遂げてきました。最も競争力のあるアーキテクチャの中には、マルチモーダルAIに新たな課題と機会をもたらすTransformerがあります。大規模言語モデルと、Frozen、VL-Adapter、Flamingo、BEiT、PaLIなどのマルチモーダルな派生モデルの最近の成功は、TransformerがマルチモーダルAI用の基盤モデルを構築する大きな可能性を秘めていることを示しています。
3.2 - マルチモーダルな事前トレーニング

2021年、新たなマイルストーンとしてCLIPが提案されました。CLIPは、マルチモーダルな事前トレーニングを使用して分類を検索タスクに変換するため、事前トレーニングされたモデルがゼロショット自動認識に取り組むことを可能にします。このように、CLIPは大規模なマルチモーダル事前トレーニングを十分に活用してゼロショット学習を可能にする、模範的な成功事例です。これは、多くのマルチモーダルタスクにおける主要なブレイクスルーとなりました。最近では、CLIPを活用した事前トレーニングモデルベースのゼロショット・セマンティックセグメンテーション、ALIGN、MAD、ALBEF、およびCoCaなど、他の研究でもCLIPのアイデアがさらに探求されています。
3.3 - マルチモーダルビッグデータのトレンド
近年、ソーシャルメディアやオンライン小売といった新しいアプリケーションの登場により、インターネットは急速に発展しています。これにより、多くの新しいマルチモーダルデータセットが作成されています。最もよく知られているものには、Conceptual Captions、COCO、VQA、Visual Genome、SBU Captions、Cooking312K、LAIT、e-SNLI-VE、ARCH、Adversarial VQA、OTT-QA、MultiModalQA、VALUE、Fashion IQ、LRS2-BBC、ActivityNet、およびVisDialなどがあります。

これらのデータセットにおける新たなトレンドは次の通りです。
データセットの規模が拡大している。新しくリリースされたいくつかのデータセットは、ミリオン(百万)規模であり、これにはProduct1M、Conceptual12M、RUC-CAS-WenLan (30M)、HowToVQA69M、HowTo100M、ALT200M、LAION-400M、およびLAION-5Bなどがあります。
利用できるモダリティが増えている。視覚、テキスト、音声に加えて、Pano-AVQA(360度動画に関する初の空間・音響・視覚大規模質問応答データセット)、YouTube-360 (YT-360)(360度動画)、AIST++(3Dダンスモーションと音楽の新しいマルチモーダルデータセット)、そしてArtEmis(視覚芸術のための情緒的言語)など、多様な新しいモダリティが登場しています。さらに驚くべきことに、MultiBenchは10種類のモダリティを含むデータセットです。
より多くのシナリオが登場している。一般的なキャプションやQA(質問応答)データセットに加えて、CIRR(実生活の画像)、Bed and Breakfast (BnB)(視覚と言語のナビゲーション)、M3A(財務データセット)、およびX-World(自動運転)など、さらに多くのアプリケーションやシナリオが研究されています。
タスクの難易度が上がっている。分かりやすい直接的なタスクを超えて、MultiMET(比喩理解のためのマルチモーダルデータセット)やHateful Memes(マルチモーダルなミームにおけるヘイトスピーチ)など、より抽象的なマルチモーダルタスクが提案されています。
ハウツー(説明)動画の人気が高まっている。例えば、YouCook2を用いた料理動画が挙げられます。一連の手順説明テキストを、作業を実行している人物の動画と一致(アライメント)させる行為は、強力な事前トレーニング用「事前定義タスク(pretext task)」の好例です(What’s Cookin’?で示されている通りです)。事前定義タスクとは、それを解くことでモデルに表現を強制的に学習させるために、あらかじめ設計された課題のことです。

Transformerは、他のディープニューラルネットワークアーキテクチャと同様に、膨大なデータを必要とします。したがって、その大容量モデルとマルチモーダルビッグデータの基礎が、Transformerベースのマルチモーダル機械学習の繁栄を共創しています。例えば、ビッグデータはVLP(Vision-Language Pre-training)Transformerモデルにゼロショット学習能力をもたらします。
4 - 動画表現

情報を提示する方法として、多くの人が動画を活用するようになっています。画像、動き、音声を組み合わせることで、人々を惹きつけ、豊富な情報を伝えることができる魅力的なメディアです。しかし、動画データの取り扱いは、画像、言語、音声を一度にまとめて処理する必要があるため、困難を極める場合があります(すなわち、動画はマルチモーダルです)。さらに、高い次元数の処理や動きのダイナミクスのモデル化など、動画ドメインには特有の課題が存在します。
動画の埋め込みは、動画の視覚的、言語的、および音響的なコンテンツをコンパクトで有意義な方法で捉える、動画の数値表現です。自然言語処理において単語の埋め込みが単語を密なベクトルとして表現するのと同様に、動画の埋め込みは動画のセマンティックおよび文脈情報を捉えることを目指しています。
動画の埋め込みは、コンピュータビジョンやマルチメディア解析において様々な用途があります。動画分類、動画検索、動画要約、動画レコメンデーションなどのタスクに使用できます。例えば、動画を埋め込みとして表現することで、メタデータやテキストによる説明にのみ依存するのではなく、コンテンツに基づいて類似の動画を比較・検索することがより簡単になります。

Transformerアーキテクチャは非常に汎用性が高く、様々なデータタイプのモデリングに使用できます。最近では、Transformerを動画のモデリングに適応させた多くのVideo Transformerの研究が行われています。Transformerに入力される前に、動画はいくつかの処理を経る必要があります。これには、トークン化(tokenization)、埋め込み(embedding)、および位置表現(positioning)が含まれます。例えば、上の図はVideo Vision Transformerの論文からのものです。著者らは、動画をトークンのシーケンスにマッピングするための2つのシンプルな方法(均一なフレームサンプリングとチューブレット埋め込み)を検討しています。その後、位置エンコーディングを追加し、トークンを再構成(reshape)してTransformerへの最終的な入力を取得します。
トークン化、埋め込み、および位置表現における具体的な戦略は、個別の動画モデリングタスクや利用可能なデータに応じて変化し得ることに注意することが重要です。
4.1 - 動画トークン化の手法

トークン化とは、ビデオを小さな単位(トークン)に分割するプロセスであり、これをTransformerモデルへの入力として使用できます。以下は、動画用の一般的なトークン化手法です。
1 - フレームレベルのトークン化
この手法では、動画の各フレームを1つのトークンとして扱います。フレームは順次エンコードされ、Transformerモデルに投入されます。このアプローチにより、モデルはフレームレベルで時系列の情報を捉えることができます。
2 - クリップレベルのトークン化
各フレームをトークンとして扱う代わりに、連続するフレームをクリップにグループ化する手法です。各クリップはトークン化され、単一のユニットとして処理されます。このアプローチはトークンの数を減らし、長いビデオに対してより効率的になります。
3 - 共同トークン化
この手法は、動画とそれに対応するテキスト説明の両方を共同でトークン化します。その後、動画とテキストのトークンが融合され、視覚情報とテキスト情報の両方を捉えた共同表現が作成されます。このアプローチは、動画の質問応答タスクに効果的であることが示されています。
4 - オブジェクトレベルのトークン化
この手法では、動画内の関心のあるオブジェクトや領域を検出・セグメント化し、各オブジェクトや領域を個別のトークンとして扱います。このアプローチは、物体検出や行動認識などのタスクに役立ちます。

4.2 - 動画埋め込みの戦略
動画モデルで使用される様々な埋め込み戦略は、そのパフォーマンスに多様な影響を与える可能性があります。以下にいくつかの例を示します。
1 - 画像ベースの埋め込み
この戦略は、Inception-V3やResNetなどの事前トレーニングされた画像モデルを使用して、動画の各フレームから視覚的特徴を抽出します。その後、プーリングや全結合層などの技術を使用して、これらの特徴を埋め込みに変換します。画像ベースの埋め込みは詳細な視覚情報を取得でき、個体検出やシーン理解などのタスクに効果的です。
2 - 音声ベースの埋め込み
視覚的特徴に加えて、動画から音響的特徴を抽出することもできます。スペクトログラム分析や音声の埋め込みなどの技術を使用して、音声信号を埋め込みに変換できます。音声ベースの埋め込みは、音に関連する情報を捉えることが可能で、音響・視覚同期や音響イベント検出などのタスクに役立ちます。
3 - 共同音響・視覚埋め込み
この戦略は、視覚特徴と音声特徴の両方を組み合わせて共同の埋め込みを作成します。視覚と音声の特徴は通常、モデルアーキテクチャのどこかで融合され、モデルが2つのモダリティ間の相関関係を捉えられるようにします。共同埋め込みは、ビデオキャプション生成や動画検索などのタスクに有益です。

4 - 時間(時系列)埋め込み
時間埋め込み戦略は、動画の時間的ダイナミクスを捉えることに焦点を当てています。これは、オプティカルフローやモーションベクトルなどの時間情報を埋め込みプロセスに組み込むことで行われます。時間(時系列)埋め込みは、モデルが動画内の異なるフレームやクリップ間の動きや時間的な関係を理解するのに役立ちます。
5 - 空間埋め込み
空間埋め込み戦略は、動画内の関心のある異なる領域間の空間的な関係を捉えることを目指しています。これは、地域ベースの埋め込みや、特定の空間位置にアテンションを向ける注意(アテンション)メカニズムなどの技術を使用することで実現できます。空間埋め込みは、追跡オブジェクト(object tracking)や行動認識などのタスクに役立ちます。
4.3 - 位置埋め込み(Positional Embeddings)の役割
自己注意(Self-attention)は、Transformerの必要不可欠な操作です。シーケンス内の他の埋め込みからの情報を使用して、各トークンの埋め込みを補強します。自己注意は集合として動作するため、動画の時空間構造を利用するためには位置情報を示すことが極めて重要です。これは、Transformer内で動画フレームまたはクリップの時間的な位置情報をエンコードする、位置埋め込み(PE:positional embeddings)を使用して行われます。

Transformerモデルにおける動画データ用の一般的な位置表現方法には、以下のようなものがあります。
1 - 学習された位置埋め込み
このアプローチは、Transformerモデルのトレーニング中に位置エンコーディングを学習します。モデルは、動画シーケンス内のフレームやクリップの相対的な位置をエンコードすることを学習します。この手法により、モデルは動画データの時間的順序を捉えることができます。
2 - 固定位置エンコーディング
この方法では、固定の位置エンコーディングが動画の埋め込みに追加されます。これらのエンコーディングは、動画シーケンスにおけるフレームまたはクリップの絶対的な位置に関する情報を提供します。固定位置エンコーディングは、サインおよびコサイン関数、あるいはその他の事前定義されたパターンに基づいています。
3 - 相対位置エンコーディング
このアプローチは、動画シーケンス内のフレーム間またはクリップ間の相対位置情報を組み込みます。連続するフレームやクリップ間の距離または時間差が考慮されます。相対的な位置エンコーディングは、Transformerモデルへの追加の入力として追加するか、または自己注意メカニズムに組み込むことができます。
4 - ハイブリッドアプローチ
方法によっては、動画データの絶対位置と相対位置の両方を捉えるために、異なるタイプの位置エンコーディングを組み合わせる場合もあります。これには、固定と学習された位置エンコーディングを組み合わせて使用したり、相対的な位置情報を自己注意メカニズムに組み込んだりすることが含まれます。
5 - プロダクション環境における埋め込み
埋め込みに基づくエンジニアリングシステム(基盤モデルの構築など)の構築や維持は、計算コストが高くなる可能性があります。また、埋め込みを作成、保存、管理する必要性の高さから、最近では関連製品のエコシステム全体が爆発的に増加しており、特に機械学習システムにおける最近傍探索(nearest neighbors)のセマンティッククエリを本番運用可能な形で利用しやすくするための、ベクトルデータベースの開発が急速に進んでいます。
5.1 - 実際の運用現場における埋め込み
本番環境において、多くのGPUにアクセスできる利点がある場合は、モデルの内部変化に触れるために独自の埋め込みモデルをトレーニングすることができます。あるいは、事前トレーニング済みの埋め込みを使用して、それらを独自のユースケースに適応させることもできます。現在、多くの企業がこれら両方のコンテキストで埋め込みを使用しています。特に、YouTubeは「YouTubeレコメンデーション向けディープニューラルネットワーク」という論文を通じて、本番推奨システムのコンテキストにおける動画の埋め込みに関する取り組みをいち早く公開した大企業の1つです。

YouTubeには8億件を超えるコンテンツ(動画)と26億人のアクティブユーザーが存在するため、アプリは既存のコンテンツをユーザーに推奨すると同時に、頻繁にアップロードされる新しいコンテンツに対しても一般化(予測・提案)できる必要があります。これらのレコメンデーションは、ユーザーが新しいページをロードする際に、低い遅延特性を保って推論時(inference time)にすぐに提供されなければなりません。
YouTubeは、2つのディープラーニングモデルに基づいて、動画用の2段階のレコメンダーシステムをどのように作成したかを共有しています。機械学習のタスクは、YouTubeのレコメンデーションにおいて、ユーザーがクリックする可能性が高い適切な次の動画を特定の時点で予測することです。最終的な出力は分類問題として定式化されます:ユーザーの入力した特徴量と動画の入力特徴量から、特定の動画に対する特定のユーザーの推定視聴時間を含む、推定確率の高いクラスを予測できるでしょうか?

モデルを構築するために、彼らは入力データとして2つの埋め込みセットを使用します:(1)ユーザーとそのコンテキストを特徴量として表す埋め込み、および(2)動画アイテムを表す埋め込み。このモデルには、テーブルや埋め込みに基づくものを含む、多くの特徴量が存在します。埋め込みベースの特徴量には次のものが含まれます。
ユーザーの視聴履歴 - ユーザーがどの動画を視聴したかを示すベクトルであり、密なベクトルにマッピングされたスパースな(希薄な)動画IDとして表されます。
ユーザーの検索履歴 - ユーザーが検索キーワードを入力した後にクリックした動画を示します。これもユーザーの視聴履歴と同じ空間にマッピングされたスパースベクトルとして表されます。
ユーザーの地域、年齢、性別 - テーブル特徴量として示されます。
動画の過去のインプレッション数(表示回数) - 時間経過とともにユーザーごとに正規化されます。
これらの特徴量はすべて、1つのアイテムの埋め込み(item embedding)に統合されます。ユーザーの場合、すべての埋め込みがブレンドされて1つのユーザーの埋め込み(user embedding)になります。その後、これらの埋め込みはモデルのsoftmax層に入力されます。softmax層は、レイヤーの出力(すなわち、ユーザーがアイテムと関わりを持つ確率)を正解(ground truth)アイテムのセットと比較します。正解アイテムは、ユーザーがすでに関わりを持ったことのあるアイテムのセットです。あるアイテムの対数確率は、2つのn次元ベクトル(クエリとアイテムの埋め込み)の内積(ドット積)となります。

5.2 - エンジニアリングの課題としての埋め込み
埋め込みを使用するプロダクション環境レベルの機械学習システムには、埋め込みの生成、埋め込みの保存、概念変化(コンセプトドリフト)の検出、推論とレイテンシの最適化、オフラインおよびオンラインでのシステム評価など、変化する多くの要素が存在します。埋め込みに直接関係する最初の2つの段階を見てみましょう。
埋め込みの生成
埋め込みは通常、分類や回帰のために使用される最終出力レイヤーの直前(最後から2番目)のレイヤーで、ニューラルネットワークモデルのトレーニングの副産物として生成されます。これらの埋め込みを生成するためのアプローチは2つあります。YouTubeが行ってきたように、独自のモデルをトレーニングすることができます。
しかし、ディープラーニングモデルの主な利点の1つは、事前トレーニング済みのモデルを活用できることです。事前トレーニング済みモデルとは、私たちが検討している開発タスクに類似したモデルであり、すでに膨大な量のトレーニングデータでトレーニングされており、ファインチューニング(微調整)を行うことで下流のタスクに使用できるモデルのことです。

モデルをファインチューニングする場合、一からトレーニングするのと同じステップを踏みます。トレーニングデータ、モデル、そして最小化すべき損失関数を用意します。しかし、いくつかの違いが存在します。私たちは、既存の事前トレーニング済みモデルを複製して新しいモデルを作成します。ただし、最終出力レイヤーだけは、新しいタスクに基づいて一から初期化します。トレーニング中、これらのパラメータをランダムに初期化し、前段のレイヤーのパラメータのみを調整してそれらが開発タスクに焦点を合わせるようにします。完全に一からトレーニングを始める必要はありません。このようにして、膨大な量のデータをトレーニングする必要なく、ファインチューニングされたモデルを特定のタスクに方向転換することができます。
生成された埋め込みは、その次元数を削減し(PCAやt-SNEなどの手法を使用)、適切なデータ構造を使用してインデックスを作成(インデキシング)することで、検索やクエリ処理における高速かつ効率的な取得を容易にして、さらに改善することができます(詳細は以下を参照)。
埋め込みの検索と取得
モデルのトレーニングを終えたら、そこから埋め込みを取り出す必要があります。トレーニングされたモデルは、重み、バイアス、レイヤー、学習率など、モデルのパラメータに関するすべての情報を保持するデータ構造を私たちに提供してくれます。埋め込みは、このモデルオブジェクトのレイヤーの1つであり、最初はメモリ上に存在します。モデルをディスクに書き出す際に、モデルオブジェクトの一部としてこれらも含めます。その後、それらをメモリ上にシリアライズ(直列化)し、再トレーニングや推論を行う際にロードします。

モデルを構築する際、埋め込みに対して様々な処理を行うことができます。埋め込みを保存する最も簡単な方法は、インメモリの numpy配列を使用することです。しかし、より高度なタスクの場合は、次のことが行えます。
推論中に、まとめて(バッチで)または1つずつ取得する。
オフラインで埋め込みの品質を分析する。
埋め込みを変換して新しい特徴量を作成する。
新しいモデルで埋め込みを更新する。
異なるバージョンの埋め込みを追跡管理する。
新しいドキュメントを埋め込みに変換する。
これらのほとんどのタスクを処理できる、最も複雑でカスタマイズ可能なソフトウェアはベクトルデータベースと呼ばれます。ただし、PostgresやSQLiteなどのデータベース用のベクトル検索プラグイン、およびRedisのようなキャッシュなどのよりシンプルな選択肢もあります。

埋め込みを扱うにあたり、最も重要な動作はベクトル検索と呼ばれます。これは、私たちが持っている埋め込みに類似した埋め込みを見つけるのに役立ち、類似のアイテムを検索するのに便利です。ベクトル検索を実行するには、データ構造を効率的に検索し、それらを比較して最も類似したものを見つける手段が必要です。
関係データベース(リレーショナルデータベース)は、b-tree(B木)構造を使用してノードの階層内でアイテムを昇順にソートし、読み取り速度を向上させます。しかし、列(カラム)を使用してベクトルを高速に検索することはできないため、ベクトルのために異なる構造を作成する必要があります。その一例として、多くのベクトルストアが効率的なベクトル検索を行うために使用している反転インデックス(倒置索引)が挙げられます。
汎用的な埋め込みストアは主に3つのレイヤーで構成されています:埋め込みそのもの、それらを単語、画像、テキストに対応づける(マッピングする)インデックス、そして様々な最近傍法アルゴリズムを使用して異なる種類の埋め込み間の類似度を比較する方法です。
埋め込み同士を比較するための一般的な手法の1つはコサイン類似度と呼ばれますが、何百万ものベクトルセットを比較する際には動作が遅く、非効率的になる可能性があります。これを解決するために、ベクトルの要素から「近傍」を形成し、あるベクトルのk-最近傍(k-nearest neighbors)を見つけ出す近似最近傍(ANN)探索アルゴリズムが開発されました。最も広く使用されている2つのアルゴリズムはHNSW(Hierarchical Navigable Small World)とFAISSであり、これらは独自のスタンドアロンライブラリであり、既存の多くのベクトルストアにも組み込まれています。

完全な検索と最近傍検索のトレードオフは、最近傍検索の方が精度は劣るものの、はるかに高速である点にあります。適合率(precision)と再現率(recall)を評価する際は、計算速度を考慮しつつ、予測精度に対する要件と推論のレイテンシを比較してトレードオフを検討することが重要です。
6 - 結論
これで、ベクトル埋め込みのマルチモーダルな進化と、様々なアプリケーションにおけるそれらの役割について一通り確認しました。
まず、埋め込みの簡単な定義から始めました。その後、テキスト、画像、音声を表現できる様々な単一モーダル(unimodal)の埋め込みを概観しました。
埋め込みは、昨今のデータのマルチモーダル表現の爆発的な進歩とTransformerモデルの多才さにおいて、さらに重要性が高まっています。また、動画の表現について(具体的には埋め込みとトークン化に関する戦略を)少し深掘りしました。
最後に、埋め込みの生成や保存など、プロダクション環境において埋め込みを扱うエンジニアリングのコンテキストを理解しました。
ベクトル埋め込みの進化は、特に動画データの領域において、複雑なデータの理解と分析に新たな可能性を切り開きました。この分野が発展し成熟し続けるにつれて、将来さらに刺激的なアプリケーションやイノベーションが登場することが期待されます。
Twelve Labsでは、マルチモーダルな動画理解のための基盤モデルを開発しています。言い換えれば、私たちはローデータの動画から動画の埋め込みを抽出し、動画検索や動画分類などの様々な下流の動画理解タスクを実現させています。私たちの目標は、最も先進的な動画理解インフラを提供し、開発者が人間と同じように世界を見て、聴いて、理解できるソフトウェアを作れるよう支援することです。
詳細にご関心がある方は、ぜひ https://playground.twelvelabs.io/ でご登録いただき、私たちの Multimodal Minds Discordコミュニティ に参加して、マルチモーダルAIのあらゆる話題についてチャットしましょう!
データ駆動型の製品開発を目指す企業にとって、ディープラーニングモデルの実装はますます重要な機械学習戦略となっています。ディープラーニングモデルを構築して動かすために、企業は何億テラバイトものマルチモーダルデータを収集し、ディープラーニングモデルに投入しています。その結果、ディープラーニングモデルが入力データを内部的に表現したものである埋め込み(embeddings)が、機械学習システムを構築するための重要なコンポーネントとして急速に台頭しています。
例えば、それらはSpotifyのアイテムレコメンダーシステム、YouTubeの次に見るべき動画のレコメンデーション、そしてPinterestのビジュアル検索の大部分を構成しています。レコメンデーションシステムのUIを通じてユーザーに明示的に提示されない場合でも、Netflixなどでは、ユーザーの好みの普及度に基づいて、どの番組を制作・開発すべきかといったコンテンツに関する意思決定を行うために、内部で埋め込みが使用されています。

コンテンツの圧縮された文脈特有の表現を生成するための埋め込みの利用は、GoogleのWord2Vecの論文が発表された後に爆発的な人気を博しました。Word2Vecの概念を基に構築・拡張された、自己注意(self-attention)メカニズムを持つTransformerアーキテクチャは、与えられた単語の周囲の文脈を計算するはるかに特殊化されたケースであり、成長を続けるマルチモーダルな語彙の表現を学習するための事実上の標準となりました。そして、学術界と産業界の両方におけるその人気の高まりにより、埋め込みはディープラーニングのワークフローに不可欠なものとなっています。
しかし、埋め込みの概念は、データフローの入力でも出力結果でもなく、モデルを洗練させるために機械学習サービス内に存在する中間的な要素であるため、少し分かりづらいかもしれません。そのため、最初から明確に定義しておくことが役立ちます。
1 - 埋め込みとは何か?
密な埋め込み(dense embedding)とは、概念に関連する情報を複数の要素で分散させるベクトルのことであり、要素を個別に調整することで、より多くの概念を比較的低次元の空間に効率的にエンコードできることを示しています。このような表現は、特定の概念の存在を局所的に「1」の値を持つ要素で示し、他の要素を「0」とするワンホットエンコーディングのような、シンボリックな表現と比較することができます。

ディープラーニングにおいて、「埋め込み」という用語は、単語や画像のカテゴリを表すワンホットベクトルから実数値の分散表現へのマッピングを指すことがよくあります。より具体的には、埋め込みのプロセスには次の3つのステップが含まれます。
マルチモーダルな入力を、ベクトル、テンソル、またはグラフの形式で、負荷の高い計算を実行しやすい表現に変換(Transforms)します。
ブログ投稿の要約や、大規模なビデオコーパスに対するセマンティック検索など、機械学習タスク向けに入力情報を圧縮(Compress)します。圧縮のプロセスは、可変のフィーチャー次元を固定の入力へと変化させ、機械学習システムの下流コンポーネントに効率的に渡すことを可能にします。
埋め込みがトレーニングされたデータに特有の埋め込み空間を作成(Creates an embedding space)します。ただし、ディープラーニングの表現の場合には、転移学習(transfer learning)を通じて他のタスクやドメインにも一般化させることができます。
単語、画像、または動画の埋め込みを作成して、多次元空間で成果物を表現することは、私たちに多くの可能性をもたらします。例えば、動画レコメンデーションシステムにおけるコンテンツ理解に焦点を当てたタスクでは、与えられた2つのアイテムを比較してそれらの類似性を評価することによく関心があります。動画をベクトルに変換し、共有された埋め込み空間で動画のフレームを比較することにより、このタスクを数学的な精度で実行できます。
2 - 単一モーダル(Unimodal)の埋め込み
2.1 - 言語表現
テキストの埋め込みは、低次元空間の実数値ベクトルに単語やフレーズをマッピングするテキストデータの表現方法の一種です。これらのベクトルはテキストの意味や文脈を捉え、様々な自然言語処理(NLP)タスクを可能にします。検索エンジン、製品レコメンデーション、ソーシャルメディアのコンテンツモデレーション、電子メールのスパムフィルタリング、カスタマーサポートのチャットボットなど、数多くのNLPアプリケーションが存在します。

テキストの埋め込みは、テキストから高レベルの特徴を抽出し、それを固定サイズの次元ベクトル(例:1,500次元)に変換するニューラルネットワークを使用して生成できます。これらの埋め込みはテキストデータの比較や分析に使用され、テキスト分類、テキスト検索、テキスト要約などのタスクを可能にします。
かつては、長・短期記憶(LSTM)やゲート付き回帰ユニット(GRU)言語モデルのような再帰型ニューラルネットワークが、現在の単語を予測する際に、固定長の再帰ベクトルに保存された過去のすべての単語からの情報を組み込んでいました。単語の埋め込みを生成するための他の一般的な方法には、連続バッグ・オブ・ワーズ(CBOW)モデル、skip-gram、およびGlobal Vectors(GloVe)などがあります。
2017年以降、テキストの埋め込みの学習にはTransformerが非常に重宝されています。元々はNLP向けに提案されたモデルであるVanilla Transformerは、自己注意メカニズムを使用して様々なNLPタスクで最先端の結果を達成しました。Vanilla Transformerの成功に続き、BERT、BART、GPT、Longformer、Transformer-XL、XLNetなど、多くの派生モデルが提案されています。事前トレーニングされたTransformerモデルは、強力なテキスト埋め込みジェネレーターになります。
2.2 - 視覚表現
画像の埋め込みは、画像を低次元空間の実数値ベクトルとして表現する方法です。これらのベクトルは画像の視覚的コンテンツを捉え、画像検索、物体検出、顔認識、コンテンツベースの画像検索など、様々なコンピュータビジョンのタスクに使用できます。

画像分類モデル(AlexNet、VGGNet、GoogLeNet、ResNetなど)の最終層の出力値を使用して、画像の埋め込みを取得できます。これらのモデルは、2012年、2014年、2015年の画像分類を対象としたILSVRC(ImageNet Large Scale Visual Recognition Competition)で優勝しました。画像の埋め込みは画像データの比較や分析に使用され、画像分類、画像検索、画像類似度検索などのタスクを可能にします。
あるいは、物体検出モデルによって特定された選択領域からの畳み込み特徴や関連するクラスラベルなど、より直接的な特徴を視覚的な埋め込みとして使用することもできます。このアプローチを使用するモデルには、R-CNN(Region-based CNN)、Fast R-CNN、およびFaster R-CNNなどがあります。
現在、NLPで最も人気のあるツールはTransformerですが、研究者たちは現在、それをビジュアルドメインなどの他の分野でどのように活用できるかを探求しています。その一例として、Transformerのエンコーダーを画像に適用するVision Transformer(ViT)の使用が挙げられます。ViTとそのバリエーションは、ローレベルのタスク、認識(recognition)、検出(detection)、および領域分割(segmentation)を含む、様々なコンピュータビジョンのタスク で成功を収めています。これらは教師あり学習と自己教師あり視覚学習の両方でうまく機能します。また、最近の研究では、内部表現における堅牢性や、潜在表現の伝播の連続的な振る舞いなど、ViTに関するさらなる理解も提供されています。事前トレーニングされたViTモデルは、強力な画像埋め込みジェネレーターになります。
2.3 - 音声表現
音声の埋め込みは、音声の音響的コンテンツをコンパクトかつ有意義な方法で捉える、音声信号の数値表現です。これらのベクトルは、音声信号のセマンティックおよび文脈情報を取得することを目指しています。音声処理、特に音声分類、音声検索、話者認識、音楽レコメンデーションなどのタスクに多くの用途があります。

これらの音声埋め込みを生成するために、AudioSetやUrbanSoundのような大規模音声データセットでトレーニングされた、VGGishやSoundNetなどの事前トレーニング済みモデルを使用できます。これらのモデルは、スペクトログラムやメル周波数ケプストラム係数(MFCC)などの高レベルの特徴を音声信号から抽出し、それらを埋め込みにエンコードできます。
言語ドメインや視覚ドメインと同様に、音声の埋め込みを生成するためにTransformerアーキテクチャを活用することもできます。いくつかの例として、PaSST、Audio Transformer、CTAL、SSAST、およびAudio Spectrogram Transformerが挙げられます。
3 - マルチモーダルな埋め込み
視覚、言語、音声の表現において多大な進歩が遂げられてきましたが、人間の概念の完全なセットを単一のモダリティのみを使用してモデル化することは、理論的に不十分です。例えば、「美しい絵」というアイデアは視覚的な表現に根ざしているため、自然言語やその他の非視覚的な方法で説明することは困難です。だからこそ、そのような概念をより適切に表現するために、複数のモダリティを使用する共同埋め込み(joint embeddings)を学習することが極めて重要なのです。一般的に、マルチモーダルAIの分野は、マルチモーダルなデータから埋め込みを抽出できるAIシステムの構築を追求しています。
3.1 - マルチモーダルAIに関する簡単なメモ

マルチモーダルAIは、ここ数十年の重要な研究分野となっています。私たちが生きている世界はマルチモーダルな環境であり、私たちの観察も行動もマルチモーダルです。例えば、AIナビゲーションロボットが現実世界の環境を認識するには、マルチモーダルセンサーが必要です。これらのセンサーには、カメラ、LiDAR、レーダー、超音波、GNSS、HDマップ、オドメーター(走行距離計)などがあります。さらに、人間の行動、感情、イベント、動作、ユーモアもマルチモーダルです。その結果、マルチモーダル感情認識、マルチモーダルイベント表現、マルチモーダルなユーモアの理解、顔・体・声ベースの動画人物クラスタリングなど、人間を中心とした様々なマルチモーダルAIタスクが幅広く研究されています。
インターネット技術の進歩とインテリジェントデバイスの普及により、かつてないほど大量のマルチモーダルデータがウェブ上で送信されています。これにより、数多くのマルチモーダルアプリケーションのシナリオが生まれています。今日の社会では、商業サービス(eコマース検索、視覚言語ナビゲーション、音響・視覚ナビゲーションなど)、コミュニケーション手段(読唇術や手話翻訳など)、人間とコンピュータの相互作用(HCI)、医療AI、および監視AIを含む、幅広いこのようなアプリケーションを目にすることができます。
ディープラーニングの時代において、マルチモーダルAIはディープニューラルネットワークのおかげで大きな進歩を遂げてきました。最も競争力のあるアーキテクチャの中には、マルチモーダルAIに新たな課題と機会をもたらすTransformerがあります。大規模言語モデルと、Frozen、VL-Adapter、Flamingo、BEiT、PaLIなどのマルチモーダルな派生モデルの最近の成功は、TransformerがマルチモーダルAI用の基盤モデルを構築する大きな可能性を秘めていることを示しています。
3.2 - マルチモーダルな事前トレーニング

2021年、新たなマイルストーンとしてCLIPが提案されました。CLIPは、マルチモーダルな事前トレーニングを使用して分類を検索タスクに変換するため、事前トレーニングされたモデルがゼロショット自動認識に取り組むことを可能にします。このように、CLIPは大規模なマルチモーダル事前トレーニングを十分に活用してゼロショット学習を可能にする、模範的な成功事例です。これは、多くのマルチモーダルタスクにおける主要なブレイクスルーとなりました。最近では、CLIPを活用した事前トレーニングモデルベースのゼロショット・セマンティックセグメンテーション、ALIGN、MAD、ALBEF、およびCoCaなど、他の研究でもCLIPのアイデアがさらに探求されています。
3.3 - マルチモーダルビッグデータのトレンド
近年、ソーシャルメディアやオンライン小売といった新しいアプリケーションの登場により、インターネットは急速に発展しています。これにより、多くの新しいマルチモーダルデータセットが作成されています。最もよく知られているものには、Conceptual Captions、COCO、VQA、Visual Genome、SBU Captions、Cooking312K、LAIT、e-SNLI-VE、ARCH、Adversarial VQA、OTT-QA、MultiModalQA、VALUE、Fashion IQ、LRS2-BBC、ActivityNet、およびVisDialなどがあります。

これらのデータセットにおける新たなトレンドは次の通りです。
データセットの規模が拡大している。新しくリリースされたいくつかのデータセットは、ミリオン(百万)規模であり、これにはProduct1M、Conceptual12M、RUC-CAS-WenLan (30M)、HowToVQA69M、HowTo100M、ALT200M、LAION-400M、およびLAION-5Bなどがあります。
利用できるモダリティが増えている。視覚、テキスト、音声に加えて、Pano-AVQA(360度動画に関する初の空間・音響・視覚大規模質問応答データセット)、YouTube-360 (YT-360)(360度動画)、AIST++(3Dダンスモーションと音楽の新しいマルチモーダルデータセット)、そしてArtEmis(視覚芸術のための情緒的言語)など、多様な新しいモダリティが登場しています。さらに驚くべきことに、MultiBenchは10種類のモダリティを含むデータセットです。
より多くのシナリオが登場している。一般的なキャプションやQA(質問応答)データセットに加えて、CIRR(実生活の画像)、Bed and Breakfast (BnB)(視覚と言語のナビゲーション)、M3A(財務データセット)、およびX-World(自動運転)など、さらに多くのアプリケーションやシナリオが研究されています。
タスクの難易度が上がっている。分かりやすい直接的なタスクを超えて、MultiMET(比喩理解のためのマルチモーダルデータセット)やHateful Memes(マルチモーダルなミームにおけるヘイトスピーチ)など、より抽象的なマルチモーダルタスクが提案されています。
ハウツー(説明)動画の人気が高まっている。例えば、YouCook2を用いた料理動画が挙げられます。一連の手順説明テキストを、作業を実行している人物の動画と一致(アライメント)させる行為は、強力な事前トレーニング用「事前定義タスク(pretext task)」の好例です(What’s Cookin’?で示されている通りです)。事前定義タスクとは、それを解くことでモデルに表現を強制的に学習させるために、あらかじめ設計された課題のことです。

Transformerは、他のディープニューラルネットワークアーキテクチャと同様に、膨大なデータを必要とします。したがって、その大容量モデルとマルチモーダルビッグデータの基礎が、Transformerベースのマルチモーダル機械学習の繁栄を共創しています。例えば、ビッグデータはVLP(Vision-Language Pre-training)Transformerモデルにゼロショット学習能力をもたらします。
4 - 動画表現

情報を提示する方法として、多くの人が動画を活用するようになっています。画像、動き、音声を組み合わせることで、人々を惹きつけ、豊富な情報を伝えることができる魅力的なメディアです。しかし、動画データの取り扱いは、画像、言語、音声を一度にまとめて処理する必要があるため、困難を極める場合があります(すなわち、動画はマルチモーダルです)。さらに、高い次元数の処理や動きのダイナミクスのモデル化など、動画ドメインには特有の課題が存在します。
動画の埋め込みは、動画の視覚的、言語的、および音響的なコンテンツをコンパクトで有意義な方法で捉える、動画の数値表現です。自然言語処理において単語の埋め込みが単語を密なベクトルとして表現するのと同様に、動画の埋め込みは動画のセマンティックおよび文脈情報を捉えることを目指しています。
動画の埋め込みは、コンピュータビジョンやマルチメディア解析において様々な用途があります。動画分類、動画検索、動画要約、動画レコメンデーションなどのタスクに使用できます。例えば、動画を埋め込みとして表現することで、メタデータやテキストによる説明にのみ依存するのではなく、コンテンツに基づいて類似の動画を比較・検索することがより簡単になります。

Transformerアーキテクチャは非常に汎用性が高く、様々なデータタイプのモデリングに使用できます。最近では、Transformerを動画のモデリングに適応させた多くのVideo Transformerの研究が行われています。Transformerに入力される前に、動画はいくつかの処理を経る必要があります。これには、トークン化(tokenization)、埋め込み(embedding)、および位置表現(positioning)が含まれます。例えば、上の図はVideo Vision Transformerの論文からのものです。著者らは、動画をトークンのシーケンスにマッピングするための2つのシンプルな方法(均一なフレームサンプリングとチューブレット埋め込み)を検討しています。その後、位置エンコーディングを追加し、トークンを再構成(reshape)してTransformerへの最終的な入力を取得します。
トークン化、埋め込み、および位置表現における具体的な戦略は、個別の動画モデリングタスクや利用可能なデータに応じて変化し得ることに注意することが重要です。
4.1 - 動画トークン化の手法

トークン化とは、ビデオを小さな単位(トークン)に分割するプロセスであり、これをTransformerモデルへの入力として使用できます。以下は、動画用の一般的なトークン化手法です。
1 - フレームレベルのトークン化
この手法では、動画の各フレームを1つのトークンとして扱います。フレームは順次エンコードされ、Transformerモデルに投入されます。このアプローチにより、モデルはフレームレベルで時系列の情報を捉えることができます。
2 - クリップレベルのトークン化
各フレームをトークンとして扱う代わりに、連続するフレームをクリップにグループ化する手法です。各クリップはトークン化され、単一のユニットとして処理されます。このアプローチはトークンの数を減らし、長いビデオに対してより効率的になります。
3 - 共同トークン化
この手法は、動画とそれに対応するテキスト説明の両方を共同でトークン化します。その後、動画とテキストのトークンが融合され、視覚情報とテキスト情報の両方を捉えた共同表現が作成されます。このアプローチは、動画の質問応答タスクに効果的であることが示されています。
4 - オブジェクトレベルのトークン化
この手法では、動画内の関心のあるオブジェクトや領域を検出・セグメント化し、各オブジェクトや領域を個別のトークンとして扱います。このアプローチは、物体検出や行動認識などのタスクに役立ちます。

4.2 - 動画埋め込みの戦略
動画モデルで使用される様々な埋め込み戦略は、そのパフォーマンスに多様な影響を与える可能性があります。以下にいくつかの例を示します。
1 - 画像ベースの埋め込み
この戦略は、Inception-V3やResNetなどの事前トレーニングされた画像モデルを使用して、動画の各フレームから視覚的特徴を抽出します。その後、プーリングや全結合層などの技術を使用して、これらの特徴を埋め込みに変換します。画像ベースの埋め込みは詳細な視覚情報を取得でき、個体検出やシーン理解などのタスクに効果的です。
2 - 音声ベースの埋め込み
視覚的特徴に加えて、動画から音響的特徴を抽出することもできます。スペクトログラム分析や音声の埋め込みなどの技術を使用して、音声信号を埋め込みに変換できます。音声ベースの埋め込みは、音に関連する情報を捉えることが可能で、音響・視覚同期や音響イベント検出などのタスクに役立ちます。
3 - 共同音響・視覚埋め込み
この戦略は、視覚特徴と音声特徴の両方を組み合わせて共同の埋め込みを作成します。視覚と音声の特徴は通常、モデルアーキテクチャのどこかで融合され、モデルが2つのモダリティ間の相関関係を捉えられるようにします。共同埋め込みは、ビデオキャプション生成や動画検索などのタスクに有益です。

4 - 時間(時系列)埋め込み
時間埋め込み戦略は、動画の時間的ダイナミクスを捉えることに焦点を当てています。これは、オプティカルフローやモーションベクトルなどの時間情報を埋め込みプロセスに組み込むことで行われます。時間(時系列)埋め込みは、モデルが動画内の異なるフレームやクリップ間の動きや時間的な関係を理解するのに役立ちます。
5 - 空間埋め込み
空間埋め込み戦略は、動画内の関心のある異なる領域間の空間的な関係を捉えることを目指しています。これは、地域ベースの埋め込みや、特定の空間位置にアテンションを向ける注意(アテンション)メカニズムなどの技術を使用することで実現できます。空間埋め込みは、追跡オブジェクト(object tracking)や行動認識などのタスクに役立ちます。
4.3 - 位置埋め込み(Positional Embeddings)の役割
自己注意(Self-attention)は、Transformerの必要不可欠な操作です。シーケンス内の他の埋め込みからの情報を使用して、各トークンの埋め込みを補強します。自己注意は集合として動作するため、動画の時空間構造を利用するためには位置情報を示すことが極めて重要です。これは、Transformer内で動画フレームまたはクリップの時間的な位置情報をエンコードする、位置埋め込み(PE:positional embeddings)を使用して行われます。

Transformerモデルにおける動画データ用の一般的な位置表現方法には、以下のようなものがあります。
1 - 学習された位置埋め込み
このアプローチは、Transformerモデルのトレーニング中に位置エンコーディングを学習します。モデルは、動画シーケンス内のフレームやクリップの相対的な位置をエンコードすることを学習します。この手法により、モデルは動画データの時間的順序を捉えることができます。
2 - 固定位置エンコーディング
この方法では、固定の位置エンコーディングが動画の埋め込みに追加されます。これらのエンコーディングは、動画シーケンスにおけるフレームまたはクリップの絶対的な位置に関する情報を提供します。固定位置エンコーディングは、サインおよびコサイン関数、あるいはその他の事前定義されたパターンに基づいています。
3 - 相対位置エンコーディング
このアプローチは、動画シーケンス内のフレーム間またはクリップ間の相対位置情報を組み込みます。連続するフレームやクリップ間の距離または時間差が考慮されます。相対的な位置エンコーディングは、Transformerモデルへの追加の入力として追加するか、または自己注意メカニズムに組み込むことができます。
4 - ハイブリッドアプローチ
方法によっては、動画データの絶対位置と相対位置の両方を捉えるために、異なるタイプの位置エンコーディングを組み合わせる場合もあります。これには、固定と学習された位置エンコーディングを組み合わせて使用したり、相対的な位置情報を自己注意メカニズムに組み込んだりすることが含まれます。
5 - プロダクション環境における埋め込み
埋め込みに基づくエンジニアリングシステム(基盤モデルの構築など)の構築や維持は、計算コストが高くなる可能性があります。また、埋め込みを作成、保存、管理する必要性の高さから、最近では関連製品のエコシステム全体が爆発的に増加しており、特に機械学習システムにおける最近傍探索(nearest neighbors)のセマンティッククエリを本番運用可能な形で利用しやすくするための、ベクトルデータベースの開発が急速に進んでいます。
5.1 - 実際の運用現場における埋め込み
本番環境において、多くのGPUにアクセスできる利点がある場合は、モデルの内部変化に触れるために独自の埋め込みモデルをトレーニングすることができます。あるいは、事前トレーニング済みの埋め込みを使用して、それらを独自のユースケースに適応させることもできます。現在、多くの企業がこれら両方のコンテキストで埋め込みを使用しています。特に、YouTubeは「YouTubeレコメンデーション向けディープニューラルネットワーク」という論文を通じて、本番推奨システムのコンテキストにおける動画の埋め込みに関する取り組みをいち早く公開した大企業の1つです。

YouTubeには8億件を超えるコンテンツ(動画)と26億人のアクティブユーザーが存在するため、アプリは既存のコンテンツをユーザーに推奨すると同時に、頻繁にアップロードされる新しいコンテンツに対しても一般化(予測・提案)できる必要があります。これらのレコメンデーションは、ユーザーが新しいページをロードする際に、低い遅延特性を保って推論時(inference time)にすぐに提供されなければなりません。
YouTubeは、2つのディープラーニングモデルに基づいて、動画用の2段階のレコメンダーシステムをどのように作成したかを共有しています。機械学習のタスクは、YouTubeのレコメンデーションにおいて、ユーザーがクリックする可能性が高い適切な次の動画を特定の時点で予測することです。最終的な出力は分類問題として定式化されます:ユーザーの入力した特徴量と動画の入力特徴量から、特定の動画に対する特定のユーザーの推定視聴時間を含む、推定確率の高いクラスを予測できるでしょうか?

モデルを構築するために、彼らは入力データとして2つの埋め込みセットを使用します:(1)ユーザーとそのコンテキストを特徴量として表す埋め込み、および(2)動画アイテムを表す埋め込み。このモデルには、テーブルや埋め込みに基づくものを含む、多くの特徴量が存在します。埋め込みベースの特徴量には次のものが含まれます。
ユーザーの視聴履歴 - ユーザーがどの動画を視聴したかを示すベクトルであり、密なベクトルにマッピングされたスパースな(希薄な)動画IDとして表されます。
ユーザーの検索履歴 - ユーザーが検索キーワードを入力した後にクリックした動画を示します。これもユーザーの視聴履歴と同じ空間にマッピングされたスパースベクトルとして表されます。
ユーザーの地域、年齢、性別 - テーブル特徴量として示されます。
動画の過去のインプレッション数(表示回数) - 時間経過とともにユーザーごとに正規化されます。
これらの特徴量はすべて、1つのアイテムの埋め込み(item embedding)に統合されます。ユーザーの場合、すべての埋め込みがブレンドされて1つのユーザーの埋め込み(user embedding)になります。その後、これらの埋め込みはモデルのsoftmax層に入力されます。softmax層は、レイヤーの出力(すなわち、ユーザーがアイテムと関わりを持つ確率)を正解(ground truth)アイテムのセットと比較します。正解アイテムは、ユーザーがすでに関わりを持ったことのあるアイテムのセットです。あるアイテムの対数確率は、2つのn次元ベクトル(クエリとアイテムの埋め込み)の内積(ドット積)となります。

5.2 - エンジニアリングの課題としての埋め込み
埋め込みを使用するプロダクション環境レベルの機械学習システムには、埋め込みの生成、埋め込みの保存、概念変化(コンセプトドリフト)の検出、推論とレイテンシの最適化、オフラインおよびオンラインでのシステム評価など、変化する多くの要素が存在します。埋め込みに直接関係する最初の2つの段階を見てみましょう。
埋め込みの生成
埋め込みは通常、分類や回帰のために使用される最終出力レイヤーの直前(最後から2番目)のレイヤーで、ニューラルネットワークモデルのトレーニングの副産物として生成されます。これらの埋め込みを生成するためのアプローチは2つあります。YouTubeが行ってきたように、独自のモデルをトレーニングすることができます。
しかし、ディープラーニングモデルの主な利点の1つは、事前トレーニング済みのモデルを活用できることです。事前トレーニング済みモデルとは、私たちが検討している開発タスクに類似したモデルであり、すでに膨大な量のトレーニングデータでトレーニングされており、ファインチューニング(微調整)を行うことで下流のタスクに使用できるモデルのことです。

モデルをファインチューニングする場合、一からトレーニングするのと同じステップを踏みます。トレーニングデータ、モデル、そして最小化すべき損失関数を用意します。しかし、いくつかの違いが存在します。私たちは、既存の事前トレーニング済みモデルを複製して新しいモデルを作成します。ただし、最終出力レイヤーだけは、新しいタスクに基づいて一から初期化します。トレーニング中、これらのパラメータをランダムに初期化し、前段のレイヤーのパラメータのみを調整してそれらが開発タスクに焦点を合わせるようにします。完全に一からトレーニングを始める必要はありません。このようにして、膨大な量のデータをトレーニングする必要なく、ファインチューニングされたモデルを特定のタスクに方向転換することができます。
生成された埋め込みは、その次元数を削減し(PCAやt-SNEなどの手法を使用)、適切なデータ構造を使用してインデックスを作成(インデキシング)することで、検索やクエリ処理における高速かつ効率的な取得を容易にして、さらに改善することができます(詳細は以下を参照)。
埋め込みの検索と取得
モデルのトレーニングを終えたら、そこから埋め込みを取り出す必要があります。トレーニングされたモデルは、重み、バイアス、レイヤー、学習率など、モデルのパラメータに関するすべての情報を保持するデータ構造を私たちに提供してくれます。埋め込みは、このモデルオブジェクトのレイヤーの1つであり、最初はメモリ上に存在します。モデルをディスクに書き出す際に、モデルオブジェクトの一部としてこれらも含めます。その後、それらをメモリ上にシリアライズ(直列化)し、再トレーニングや推論を行う際にロードします。

モデルを構築する際、埋め込みに対して様々な処理を行うことができます。埋め込みを保存する最も簡単な方法は、インメモリの numpy配列を使用することです。しかし、より高度なタスクの場合は、次のことが行えます。
推論中に、まとめて(バッチで)または1つずつ取得する。
オフラインで埋め込みの品質を分析する。
埋め込みを変換して新しい特徴量を作成する。
新しいモデルで埋め込みを更新する。
異なるバージョンの埋め込みを追跡管理する。
新しいドキュメントを埋め込みに変換する。
これらのほとんどのタスクを処理できる、最も複雑でカスタマイズ可能なソフトウェアはベクトルデータベースと呼ばれます。ただし、PostgresやSQLiteなどのデータベース用のベクトル検索プラグイン、およびRedisのようなキャッシュなどのよりシンプルな選択肢もあります。

埋め込みを扱うにあたり、最も重要な動作はベクトル検索と呼ばれます。これは、私たちが持っている埋め込みに類似した埋め込みを見つけるのに役立ち、類似のアイテムを検索するのに便利です。ベクトル検索を実行するには、データ構造を効率的に検索し、それらを比較して最も類似したものを見つける手段が必要です。
関係データベース(リレーショナルデータベース)は、b-tree(B木)構造を使用してノードの階層内でアイテムを昇順にソートし、読み取り速度を向上させます。しかし、列(カラム)を使用してベクトルを高速に検索することはできないため、ベクトルのために異なる構造を作成する必要があります。その一例として、多くのベクトルストアが効率的なベクトル検索を行うために使用している反転インデックス(倒置索引)が挙げられます。
汎用的な埋め込みストアは主に3つのレイヤーで構成されています:埋め込みそのもの、それらを単語、画像、テキストに対応づける(マッピングする)インデックス、そして様々な最近傍法アルゴリズムを使用して異なる種類の埋め込み間の類似度を比較する方法です。
埋め込み同士を比較するための一般的な手法の1つはコサイン類似度と呼ばれますが、何百万ものベクトルセットを比較する際には動作が遅く、非効率的になる可能性があります。これを解決するために、ベクトルの要素から「近傍」を形成し、あるベクトルのk-最近傍(k-nearest neighbors)を見つけ出す近似最近傍(ANN)探索アルゴリズムが開発されました。最も広く使用されている2つのアルゴリズムはHNSW(Hierarchical Navigable Small World)とFAISSであり、これらは独自のスタンドアロンライブラリであり、既存の多くのベクトルストアにも組み込まれています。

完全な検索と最近傍検索のトレードオフは、最近傍検索の方が精度は劣るものの、はるかに高速である点にあります。適合率(precision)と再現率(recall)を評価する際は、計算速度を考慮しつつ、予測精度に対する要件と推論のレイテンシを比較してトレードオフを検討することが重要です。
6 - 結論
これで、ベクトル埋め込みのマルチモーダルな進化と、様々なアプリケーションにおけるそれらの役割について一通り確認しました。
まず、埋め込みの簡単な定義から始めました。その後、テキスト、画像、音声を表現できる様々な単一モーダル(unimodal)の埋め込みを概観しました。
埋め込みは、昨今のデータのマルチモーダル表現の爆発的な進歩とTransformerモデルの多才さにおいて、さらに重要性が高まっています。また、動画の表現について(具体的には埋め込みとトークン化に関する戦略を)少し深掘りしました。
最後に、埋め込みの生成や保存など、プロダクション環境において埋め込みを扱うエンジニアリングのコンテキストを理解しました。
ベクトル埋め込みの進化は、特に動画データの領域において、複雑なデータの理解と分析に新たな可能性を切り開きました。この分野が発展し成熟し続けるにつれて、将来さらに刺激的なアプリケーションやイノベーションが登場することが期待されます。
Twelve Labsでは、マルチモーダルな動画理解のための基盤モデルを開発しています。言い換えれば、私たちはローデータの動画から動画の埋め込みを抽出し、動画検索や動画分類などの様々な下流の動画理解タスクを実現させています。私たちの目標は、最も先進的な動画理解インフラを提供し、開発者が人間と同じように世界を見て、聴いて、理解できるソフトウェアを作れるよう支援することです。
詳細にご関心がある方は、ぜひ https://playground.twelvelabs.io/ でご登録いただき、私たちの Multimodal Minds Discordコミュニティ に参加して、マルチモーダルAIのあらゆる話題についてチャットしましょう!
データ駆動型の製品開発を目指す企業にとって、ディープラーニングモデルの実装はますます重要な機械学習戦略となっています。ディープラーニングモデルを構築して動かすために、企業は何億テラバイトものマルチモーダルデータを収集し、ディープラーニングモデルに投入しています。その結果、ディープラーニングモデルが入力データを内部的に表現したものである埋め込み(embeddings)が、機械学習システムを構築するための重要なコンポーネントとして急速に台頭しています。
例えば、それらはSpotifyのアイテムレコメンダーシステム、YouTubeの次に見るべき動画のレコメンデーション、そしてPinterestのビジュアル検索の大部分を構成しています。レコメンデーションシステムのUIを通じてユーザーに明示的に提示されない場合でも、Netflixなどでは、ユーザーの好みの普及度に基づいて、どの番組を制作・開発すべきかといったコンテンツに関する意思決定を行うために、内部で埋め込みが使用されています。

コンテンツの圧縮された文脈特有の表現を生成するための埋め込みの利用は、GoogleのWord2Vecの論文が発表された後に爆発的な人気を博しました。Word2Vecの概念を基に構築・拡張された、自己注意(self-attention)メカニズムを持つTransformerアーキテクチャは、与えられた単語の周囲の文脈を計算するはるかに特殊化されたケースであり、成長を続けるマルチモーダルな語彙の表現を学習するための事実上の標準となりました。そして、学術界と産業界の両方におけるその人気の高まりにより、埋め込みはディープラーニングのワークフローに不可欠なものとなっています。
しかし、埋め込みの概念は、データフローの入力でも出力結果でもなく、モデルを洗練させるために機械学習サービス内に存在する中間的な要素であるため、少し分かりづらいかもしれません。そのため、最初から明確に定義しておくことが役立ちます。
1 - 埋め込みとは何か?
密な埋め込み(dense embedding)とは、概念に関連する情報を複数の要素で分散させるベクトルのことであり、要素を個別に調整することで、より多くの概念を比較的低次元の空間に効率的にエンコードできることを示しています。このような表現は、特定の概念の存在を局所的に「1」の値を持つ要素で示し、他の要素を「0」とするワンホットエンコーディングのような、シンボリックな表現と比較することができます。

ディープラーニングにおいて、「埋め込み」という用語は、単語や画像のカテゴリを表すワンホットベクトルから実数値の分散表現へのマッピングを指すことがよくあります。より具体的には、埋め込みのプロセスには次の3つのステップが含まれます。
マルチモーダルな入力を、ベクトル、テンソル、またはグラフの形式で、負荷の高い計算を実行しやすい表現に変換(Transforms)します。
ブログ投稿の要約や、大規模なビデオコーパスに対するセマンティック検索など、機械学習タスク向けに入力情報を圧縮(Compress)します。圧縮のプロセスは、可変のフィーチャー次元を固定の入力へと変化させ、機械学習システムの下流コンポーネントに効率的に渡すことを可能にします。
埋め込みがトレーニングされたデータに特有の埋め込み空間を作成(Creates an embedding space)します。ただし、ディープラーニングの表現の場合には、転移学習(transfer learning)を通じて他のタスクやドメインにも一般化させることができます。
単語、画像、または動画の埋め込みを作成して、多次元空間で成果物を表現することは、私たちに多くの可能性をもたらします。例えば、動画レコメンデーションシステムにおけるコンテンツ理解に焦点を当てたタスクでは、与えられた2つのアイテムを比較してそれらの類似性を評価することによく関心があります。動画をベクトルに変換し、共有された埋め込み空間で動画のフレームを比較することにより、このタスクを数学的な精度で実行できます。
2 - 単一モーダル(Unimodal)の埋め込み
2.1 - 言語表現
テキストの埋め込みは、低次元空間の実数値ベクトルに単語やフレーズをマッピングするテキストデータの表現方法の一種です。これらのベクトルはテキストの意味や文脈を捉え、様々な自然言語処理(NLP)タスクを可能にします。検索エンジン、製品レコメンデーション、ソーシャルメディアのコンテンツモデレーション、電子メールのスパムフィルタリング、カスタマーサポートのチャットボットなど、数多くのNLPアプリケーションが存在します。

テキストの埋め込みは、テキストから高レベルの特徴を抽出し、それを固定サイズの次元ベクトル(例:1,500次元)に変換するニューラルネットワークを使用して生成できます。これらの埋め込みはテキストデータの比較や分析に使用され、テキスト分類、テキスト検索、テキスト要約などのタスクを可能にします。
かつては、長・短期記憶(LSTM)やゲート付き回帰ユニット(GRU)言語モデルのような再帰型ニューラルネットワークが、現在の単語を予測する際に、固定長の再帰ベクトルに保存された過去のすべての単語からの情報を組み込んでいました。単語の埋め込みを生成するための他の一般的な方法には、連続バッグ・オブ・ワーズ(CBOW)モデル、skip-gram、およびGlobal Vectors(GloVe)などがあります。
2017年以降、テキストの埋め込みの学習にはTransformerが非常に重宝されています。元々はNLP向けに提案されたモデルであるVanilla Transformerは、自己注意メカニズムを使用して様々なNLPタスクで最先端の結果を達成しました。Vanilla Transformerの成功に続き、BERT、BART、GPT、Longformer、Transformer-XL、XLNetなど、多くの派生モデルが提案されています。事前トレーニングされたTransformerモデルは、強力なテキスト埋め込みジェネレーターになります。
2.2 - 視覚表現
画像の埋め込みは、画像を低次元空間の実数値ベクトルとして表現する方法です。これらのベクトルは画像の視覚的コンテンツを捉え、画像検索、物体検出、顔認識、コンテンツベースの画像検索など、様々なコンピュータビジョンのタスクに使用できます。

画像分類モデル(AlexNet、VGGNet、GoogLeNet、ResNetなど)の最終層の出力値を使用して、画像の埋め込みを取得できます。これらのモデルは、2012年、2014年、2015年の画像分類を対象としたILSVRC(ImageNet Large Scale Visual Recognition Competition)で優勝しました。画像の埋め込みは画像データの比較や分析に使用され、画像分類、画像検索、画像類似度検索などのタスクを可能にします。
あるいは、物体検出モデルによって特定された選択領域からの畳み込み特徴や関連するクラスラベルなど、より直接的な特徴を視覚的な埋め込みとして使用することもできます。このアプローチを使用するモデルには、R-CNN(Region-based CNN)、Fast R-CNN、およびFaster R-CNNなどがあります。
現在、NLPで最も人気のあるツールはTransformerですが、研究者たちは現在、それをビジュアルドメインなどの他の分野でどのように活用できるかを探求しています。その一例として、Transformerのエンコーダーを画像に適用するVision Transformer(ViT)の使用が挙げられます。ViTとそのバリエーションは、ローレベルのタスク、認識(recognition)、検出(detection)、および領域分割(segmentation)を含む、様々なコンピュータビジョンのタスク で成功を収めています。これらは教師あり学習と自己教師あり視覚学習の両方でうまく機能します。また、最近の研究では、内部表現における堅牢性や、潜在表現の伝播の連続的な振る舞いなど、ViTに関するさらなる理解も提供されています。事前トレーニングされたViTモデルは、強力な画像埋め込みジェネレーターになります。
2.3 - 音声表現
音声の埋め込みは、音声の音響的コンテンツをコンパクトかつ有意義な方法で捉える、音声信号の数値表現です。これらのベクトルは、音声信号のセマンティックおよび文脈情報を取得することを目指しています。音声処理、特に音声分類、音声検索、話者認識、音楽レコメンデーションなどのタスクに多くの用途があります。

これらの音声埋め込みを生成するために、AudioSetやUrbanSoundのような大規模音声データセットでトレーニングされた、VGGishやSoundNetなどの事前トレーニング済みモデルを使用できます。これらのモデルは、スペクトログラムやメル周波数ケプストラム係数(MFCC)などの高レベルの特徴を音声信号から抽出し、それらを埋め込みにエンコードできます。
言語ドメインや視覚ドメインと同様に、音声の埋め込みを生成するためにTransformerアーキテクチャを活用することもできます。いくつかの例として、PaSST、Audio Transformer、CTAL、SSAST、およびAudio Spectrogram Transformerが挙げられます。
3 - マルチモーダルな埋め込み
視覚、言語、音声の表現において多大な進歩が遂げられてきましたが、人間の概念の完全なセットを単一のモダリティのみを使用してモデル化することは、理論的に不十分です。例えば、「美しい絵」というアイデアは視覚的な表現に根ざしているため、自然言語やその他の非視覚的な方法で説明することは困難です。だからこそ、そのような概念をより適切に表現するために、複数のモダリティを使用する共同埋め込み(joint embeddings)を学習することが極めて重要なのです。一般的に、マルチモーダルAIの分野は、マルチモーダルなデータから埋め込みを抽出できるAIシステムの構築を追求しています。
3.1 - マルチモーダルAIに関する簡単なメモ

マルチモーダルAIは、ここ数十年の重要な研究分野となっています。私たちが生きている世界はマルチモーダルな環境であり、私たちの観察も行動もマルチモーダルです。例えば、AIナビゲーションロボットが現実世界の環境を認識するには、マルチモーダルセンサーが必要です。これらのセンサーには、カメラ、LiDAR、レーダー、超音波、GNSS、HDマップ、オドメーター(走行距離計)などがあります。さらに、人間の行動、感情、イベント、動作、ユーモアもマルチモーダルです。その結果、マルチモーダル感情認識、マルチモーダルイベント表現、マルチモーダルなユーモアの理解、顔・体・声ベースの動画人物クラスタリングなど、人間を中心とした様々なマルチモーダルAIタスクが幅広く研究されています。
インターネット技術の進歩とインテリジェントデバイスの普及により、かつてないほど大量のマルチモーダルデータがウェブ上で送信されています。これにより、数多くのマルチモーダルアプリケーションのシナリオが生まれています。今日の社会では、商業サービス(eコマース検索、視覚言語ナビゲーション、音響・視覚ナビゲーションなど)、コミュニケーション手段(読唇術や手話翻訳など)、人間とコンピュータの相互作用(HCI)、医療AI、および監視AIを含む、幅広いこのようなアプリケーションを目にすることができます。
ディープラーニングの時代において、マルチモーダルAIはディープニューラルネットワークのおかげで大きな進歩を遂げてきました。最も競争力のあるアーキテクチャの中には、マルチモーダルAIに新たな課題と機会をもたらすTransformerがあります。大規模言語モデルと、Frozen、VL-Adapter、Flamingo、BEiT、PaLIなどのマルチモーダルな派生モデルの最近の成功は、TransformerがマルチモーダルAI用の基盤モデルを構築する大きな可能性を秘めていることを示しています。
3.2 - マルチモーダルな事前トレーニング

2021年、新たなマイルストーンとしてCLIPが提案されました。CLIPは、マルチモーダルな事前トレーニングを使用して分類を検索タスクに変換するため、事前トレーニングされたモデルがゼロショット自動認識に取り組むことを可能にします。このように、CLIPは大規模なマルチモーダル事前トレーニングを十分に活用してゼロショット学習を可能にする、模範的な成功事例です。これは、多くのマルチモーダルタスクにおける主要なブレイクスルーとなりました。最近では、CLIPを活用した事前トレーニングモデルベースのゼロショット・セマンティックセグメンテーション、ALIGN、MAD、ALBEF、およびCoCaなど、他の研究でもCLIPのアイデアがさらに探求されています。
3.3 - マルチモーダルビッグデータのトレンド
近年、ソーシャルメディアやオンライン小売といった新しいアプリケーションの登場により、インターネットは急速に発展しています。これにより、多くの新しいマルチモーダルデータセットが作成されています。最もよく知られているものには、Conceptual Captions、COCO、VQA、Visual Genome、SBU Captions、Cooking312K、LAIT、e-SNLI-VE、ARCH、Adversarial VQA、OTT-QA、MultiModalQA、VALUE、Fashion IQ、LRS2-BBC、ActivityNet、およびVisDialなどがあります。

これらのデータセットにおける新たなトレンドは次の通りです。
データセットの規模が拡大している。新しくリリースされたいくつかのデータセットは、ミリオン(百万)規模であり、これにはProduct1M、Conceptual12M、RUC-CAS-WenLan (30M)、HowToVQA69M、HowTo100M、ALT200M、LAION-400M、およびLAION-5Bなどがあります。
利用できるモダリティが増えている。視覚、テキスト、音声に加えて、Pano-AVQA(360度動画に関する初の空間・音響・視覚大規模質問応答データセット)、YouTube-360 (YT-360)(360度動画)、AIST++(3Dダンスモーションと音楽の新しいマルチモーダルデータセット)、そしてArtEmis(視覚芸術のための情緒的言語)など、多様な新しいモダリティが登場しています。さらに驚くべきことに、MultiBenchは10種類のモダリティを含むデータセットです。
より多くのシナリオが登場している。一般的なキャプションやQA(質問応答)データセットに加えて、CIRR(実生活の画像)、Bed and Breakfast (BnB)(視覚と言語のナビゲーション)、M3A(財務データセット)、およびX-World(自動運転)など、さらに多くのアプリケーションやシナリオが研究されています。
タスクの難易度が上がっている。分かりやすい直接的なタスクを超えて、MultiMET(比喩理解のためのマルチモーダルデータセット)やHateful Memes(マルチモーダルなミームにおけるヘイトスピーチ)など、より抽象的なマルチモーダルタスクが提案されています。
ハウツー(説明)動画の人気が高まっている。例えば、YouCook2を用いた料理動画が挙げられます。一連の手順説明テキストを、作業を実行している人物の動画と一致(アライメント)させる行為は、強力な事前トレーニング用「事前定義タスク(pretext task)」の好例です(What’s Cookin’?で示されている通りです)。事前定義タスクとは、それを解くことでモデルに表現を強制的に学習させるために、あらかじめ設計された課題のことです。

Transformerは、他のディープニューラルネットワークアーキテクチャと同様に、膨大なデータを必要とします。したがって、その大容量モデルとマルチモーダルビッグデータの基礎が、Transformerベースのマルチモーダル機械学習の繁栄を共創しています。例えば、ビッグデータはVLP(Vision-Language Pre-training)Transformerモデルにゼロショット学習能力をもたらします。
4 - 動画表現

情報を提示する方法として、多くの人が動画を活用するようになっています。画像、動き、音声を組み合わせることで、人々を惹きつけ、豊富な情報を伝えることができる魅力的なメディアです。しかし、動画データの取り扱いは、画像、言語、音声を一度にまとめて処理する必要があるため、困難を極める場合があります(すなわち、動画はマルチモーダルです)。さらに、高い次元数の処理や動きのダイナミクスのモデル化など、動画ドメインには特有の課題が存在します。
動画の埋め込みは、動画の視覚的、言語的、および音響的なコンテンツをコンパクトで有意義な方法で捉える、動画の数値表現です。自然言語処理において単語の埋め込みが単語を密なベクトルとして表現するのと同様に、動画の埋め込みは動画のセマンティックおよび文脈情報を捉えることを目指しています。
動画の埋め込みは、コンピュータビジョンやマルチメディア解析において様々な用途があります。動画分類、動画検索、動画要約、動画レコメンデーションなどのタスクに使用できます。例えば、動画を埋め込みとして表現することで、メタデータやテキストによる説明にのみ依存するのではなく、コンテンツに基づいて類似の動画を比較・検索することがより簡単になります。

Transformerアーキテクチャは非常に汎用性が高く、様々なデータタイプのモデリングに使用できます。最近では、Transformerを動画のモデリングに適応させた多くのVideo Transformerの研究が行われています。Transformerに入力される前に、動画はいくつかの処理を経る必要があります。これには、トークン化(tokenization)、埋め込み(embedding)、および位置表現(positioning)が含まれます。例えば、上の図はVideo Vision Transformerの論文からのものです。著者らは、動画をトークンのシーケンスにマッピングするための2つのシンプルな方法(均一なフレームサンプリングとチューブレット埋め込み)を検討しています。その後、位置エンコーディングを追加し、トークンを再構成(reshape)してTransformerへの最終的な入力を取得します。
トークン化、埋め込み、および位置表現における具体的な戦略は、個別の動画モデリングタスクや利用可能なデータに応じて変化し得ることに注意することが重要です。
4.1 - 動画トークン化の手法

トークン化とは、ビデオを小さな単位(トークン)に分割するプロセスであり、これをTransformerモデルへの入力として使用できます。以下は、動画用の一般的なトークン化手法です。
1 - フレームレベルのトークン化
この手法では、動画の各フレームを1つのトークンとして扱います。フレームは順次エンコードされ、Transformerモデルに投入されます。このアプローチにより、モデルはフレームレベルで時系列の情報を捉えることができます。
2 - クリップレベルのトークン化
各フレームをトークンとして扱う代わりに、連続するフレームをクリップにグループ化する手法です。各クリップはトークン化され、単一のユニットとして処理されます。このアプローチはトークンの数を減らし、長いビデオに対してより効率的になります。
3 - 共同トークン化
この手法は、動画とそれに対応するテキスト説明の両方を共同でトークン化します。その後、動画とテキストのトークンが融合され、視覚情報とテキスト情報の両方を捉えた共同表現が作成されます。このアプローチは、動画の質問応答タスクに効果的であることが示されています。
4 - オブジェクトレベルのトークン化
この手法では、動画内の関心のあるオブジェクトや領域を検出・セグメント化し、各オブジェクトや領域を個別のトークンとして扱います。このアプローチは、物体検出や行動認識などのタスクに役立ちます。

4.2 - 動画埋め込みの戦略
動画モデルで使用される様々な埋め込み戦略は、そのパフォーマンスに多様な影響を与える可能性があります。以下にいくつかの例を示します。
1 - 画像ベースの埋め込み
この戦略は、Inception-V3やResNetなどの事前トレーニングされた画像モデルを使用して、動画の各フレームから視覚的特徴を抽出します。その後、プーリングや全結合層などの技術を使用して、これらの特徴を埋め込みに変換します。画像ベースの埋め込みは詳細な視覚情報を取得でき、個体検出やシーン理解などのタスクに効果的です。
2 - 音声ベースの埋め込み
視覚的特徴に加えて、動画から音響的特徴を抽出することもできます。スペクトログラム分析や音声の埋め込みなどの技術を使用して、音声信号を埋め込みに変換できます。音声ベースの埋め込みは、音に関連する情報を捉えることが可能で、音響・視覚同期や音響イベント検出などのタスクに役立ちます。
3 - 共同音響・視覚埋め込み
この戦略は、視覚特徴と音声特徴の両方を組み合わせて共同の埋め込みを作成します。視覚と音声の特徴は通常、モデルアーキテクチャのどこかで融合され、モデルが2つのモダリティ間の相関関係を捉えられるようにします。共同埋め込みは、ビデオキャプション生成や動画検索などのタスクに有益です。

4 - 時間(時系列)埋め込み
時間埋め込み戦略は、動画の時間的ダイナミクスを捉えることに焦点を当てています。これは、オプティカルフローやモーションベクトルなどの時間情報を埋め込みプロセスに組み込むことで行われます。時間(時系列)埋め込みは、モデルが動画内の異なるフレームやクリップ間の動きや時間的な関係を理解するのに役立ちます。
5 - 空間埋め込み
空間埋め込み戦略は、動画内の関心のある異なる領域間の空間的な関係を捉えることを目指しています。これは、地域ベースの埋め込みや、特定の空間位置にアテンションを向ける注意(アテンション)メカニズムなどの技術を使用することで実現できます。空間埋め込みは、追跡オブジェクト(object tracking)や行動認識などのタスクに役立ちます。
4.3 - 位置埋め込み(Positional Embeddings)の役割
自己注意(Self-attention)は、Transformerの必要不可欠な操作です。シーケンス内の他の埋め込みからの情報を使用して、各トークンの埋め込みを補強します。自己注意は集合として動作するため、動画の時空間構造を利用するためには位置情報を示すことが極めて重要です。これは、Transformer内で動画フレームまたはクリップの時間的な位置情報をエンコードする、位置埋め込み(PE:positional embeddings)を使用して行われます。

Transformerモデルにおける動画データ用の一般的な位置表現方法には、以下のようなものがあります。
1 - 学習された位置埋め込み
このアプローチは、Transformerモデルのトレーニング中に位置エンコーディングを学習します。モデルは、動画シーケンス内のフレームやクリップの相対的な位置をエンコードすることを学習します。この手法により、モデルは動画データの時間的順序を捉えることができます。
2 - 固定位置エンコーディング
この方法では、固定の位置エンコーディングが動画の埋め込みに追加されます。これらのエンコーディングは、動画シーケンスにおけるフレームまたはクリップの絶対的な位置に関する情報を提供します。固定位置エンコーディングは、サインおよびコサイン関数、あるいはその他の事前定義されたパターンに基づいています。
3 - 相対位置エンコーディング
このアプローチは、動画シーケンス内のフレーム間またはクリップ間の相対位置情報を組み込みます。連続するフレームやクリップ間の距離または時間差が考慮されます。相対的な位置エンコーディングは、Transformerモデルへの追加の入力として追加するか、または自己注意メカニズムに組み込むことができます。
4 - ハイブリッドアプローチ
方法によっては、動画データの絶対位置と相対位置の両方を捉えるために、異なるタイプの位置エンコーディングを組み合わせる場合もあります。これには、固定と学習された位置エンコーディングを組み合わせて使用したり、相対的な位置情報を自己注意メカニズムに組み込んだりすることが含まれます。
5 - プロダクション環境における埋め込み
埋め込みに基づくエンジニアリングシステム(基盤モデルの構築など)の構築や維持は、計算コストが高くなる可能性があります。また、埋め込みを作成、保存、管理する必要性の高さから、最近では関連製品のエコシステム全体が爆発的に増加しており、特に機械学習システムにおける最近傍探索(nearest neighbors)のセマンティッククエリを本番運用可能な形で利用しやすくするための、ベクトルデータベースの開発が急速に進んでいます。
5.1 - 実際の運用現場における埋め込み
本番環境において、多くのGPUにアクセスできる利点がある場合は、モデルの内部変化に触れるために独自の埋め込みモデルをトレーニングすることができます。あるいは、事前トレーニング済みの埋め込みを使用して、それらを独自のユースケースに適応させることもできます。現在、多くの企業がこれら両方のコンテキストで埋め込みを使用しています。特に、YouTubeは「YouTubeレコメンデーション向けディープニューラルネットワーク」という論文を通じて、本番推奨システムのコンテキストにおける動画の埋め込みに関する取り組みをいち早く公開した大企業の1つです。

YouTubeには8億件を超えるコンテンツ(動画)と26億人のアクティブユーザーが存在するため、アプリは既存のコンテンツをユーザーに推奨すると同時に、頻繁にアップロードされる新しいコンテンツに対しても一般化(予測・提案)できる必要があります。これらのレコメンデーションは、ユーザーが新しいページをロードする際に、低い遅延特性を保って推論時(inference time)にすぐに提供されなければなりません。
YouTubeは、2つのディープラーニングモデルに基づいて、動画用の2段階のレコメンダーシステムをどのように作成したかを共有しています。機械学習のタスクは、YouTubeのレコメンデーションにおいて、ユーザーがクリックする可能性が高い適切な次の動画を特定の時点で予測することです。最終的な出力は分類問題として定式化されます:ユーザーの入力した特徴量と動画の入力特徴量から、特定の動画に対する特定のユーザーの推定視聴時間を含む、推定確率の高いクラスを予測できるでしょうか?

モデルを構築するために、彼らは入力データとして2つの埋め込みセットを使用します:(1)ユーザーとそのコンテキストを特徴量として表す埋め込み、および(2)動画アイテムを表す埋め込み。このモデルには、テーブルや埋め込みに基づくものを含む、多くの特徴量が存在します。埋め込みベースの特徴量には次のものが含まれます。
ユーザーの視聴履歴 - ユーザーがどの動画を視聴したかを示すベクトルであり、密なベクトルにマッピングされたスパースな(希薄な)動画IDとして表されます。
ユーザーの検索履歴 - ユーザーが検索キーワードを入力した後にクリックした動画を示します。これもユーザーの視聴履歴と同じ空間にマッピングされたスパースベクトルとして表されます。
ユーザーの地域、年齢、性別 - テーブル特徴量として示されます。
動画の過去のインプレッション数(表示回数) - 時間経過とともにユーザーごとに正規化されます。
これらの特徴量はすべて、1つのアイテムの埋め込み(item embedding)に統合されます。ユーザーの場合、すべての埋め込みがブレンドされて1つのユーザーの埋め込み(user embedding)になります。その後、これらの埋め込みはモデルのsoftmax層に入力されます。softmax層は、レイヤーの出力(すなわち、ユーザーがアイテムと関わりを持つ確率)を正解(ground truth)アイテムのセットと比較します。正解アイテムは、ユーザーがすでに関わりを持ったことのあるアイテムのセットです。あるアイテムの対数確率は、2つのn次元ベクトル(クエリとアイテムの埋め込み)の内積(ドット積)となります。

5.2 - エンジニアリングの課題としての埋め込み
埋め込みを使用するプロダクション環境レベルの機械学習システムには、埋め込みの生成、埋め込みの保存、概念変化(コンセプトドリフト)の検出、推論とレイテンシの最適化、オフラインおよびオンラインでのシステム評価など、変化する多くの要素が存在します。埋め込みに直接関係する最初の2つの段階を見てみましょう。
埋め込みの生成
埋め込みは通常、分類や回帰のために使用される最終出力レイヤーの直前(最後から2番目)のレイヤーで、ニューラルネットワークモデルのトレーニングの副産物として生成されます。これらの埋め込みを生成するためのアプローチは2つあります。YouTubeが行ってきたように、独自のモデルをトレーニングすることができます。
しかし、ディープラーニングモデルの主な利点の1つは、事前トレーニング済みのモデルを活用できることです。事前トレーニング済みモデルとは、私たちが検討している開発タスクに類似したモデルであり、すでに膨大な量のトレーニングデータでトレーニングされており、ファインチューニング(微調整)を行うことで下流のタスクに使用できるモデルのことです。

モデルをファインチューニングする場合、一からトレーニングするのと同じステップを踏みます。トレーニングデータ、モデル、そして最小化すべき損失関数を用意します。しかし、いくつかの違いが存在します。私たちは、既存の事前トレーニング済みモデルを複製して新しいモデルを作成します。ただし、最終出力レイヤーだけは、新しいタスクに基づいて一から初期化します。トレーニング中、これらのパラメータをランダムに初期化し、前段のレイヤーのパラメータのみを調整してそれらが開発タスクに焦点を合わせるようにします。完全に一からトレーニングを始める必要はありません。このようにして、膨大な量のデータをトレーニングする必要なく、ファインチューニングされたモデルを特定のタスクに方向転換することができます。
生成された埋め込みは、その次元数を削減し(PCAやt-SNEなどの手法を使用)、適切なデータ構造を使用してインデックスを作成(インデキシング)することで、検索やクエリ処理における高速かつ効率的な取得を容易にして、さらに改善することができます(詳細は以下を参照)。
埋め込みの検索と取得
モデルのトレーニングを終えたら、そこから埋め込みを取り出す必要があります。トレーニングされたモデルは、重み、バイアス、レイヤー、学習率など、モデルのパラメータに関するすべての情報を保持するデータ構造を私たちに提供してくれます。埋め込みは、このモデルオブジェクトのレイヤーの1つであり、最初はメモリ上に存在します。モデルをディスクに書き出す際に、モデルオブジェクトの一部としてこれらも含めます。その後、それらをメモリ上にシリアライズ(直列化)し、再トレーニングや推論を行う際にロードします。

モデルを構築する際、埋め込みに対して様々な処理を行うことができます。埋め込みを保存する最も簡単な方法は、インメモリの numpy配列を使用することです。しかし、より高度なタスクの場合は、次のことが行えます。
推論中に、まとめて(バッチで)または1つずつ取得する。
オフラインで埋め込みの品質を分析する。
埋め込みを変換して新しい特徴量を作成する。
新しいモデルで埋め込みを更新する。
異なるバージョンの埋め込みを追跡管理する。
新しいドキュメントを埋め込みに変換する。
これらのほとんどのタスクを処理できる、最も複雑でカスタマイズ可能なソフトウェアはベクトルデータベースと呼ばれます。ただし、PostgresやSQLiteなどのデータベース用のベクトル検索プラグイン、およびRedisのようなキャッシュなどのよりシンプルな選択肢もあります。

埋め込みを扱うにあたり、最も重要な動作はベクトル検索と呼ばれます。これは、私たちが持っている埋め込みに類似した埋め込みを見つけるのに役立ち、類似のアイテムを検索するのに便利です。ベクトル検索を実行するには、データ構造を効率的に検索し、それらを比較して最も類似したものを見つける手段が必要です。
関係データベース(リレーショナルデータベース)は、b-tree(B木)構造を使用してノードの階層内でアイテムを昇順にソートし、読み取り速度を向上させます。しかし、列(カラム)を使用してベクトルを高速に検索することはできないため、ベクトルのために異なる構造を作成する必要があります。その一例として、多くのベクトルストアが効率的なベクトル検索を行うために使用している反転インデックス(倒置索引)が挙げられます。
汎用的な埋め込みストアは主に3つのレイヤーで構成されています:埋め込みそのもの、それらを単語、画像、テキストに対応づける(マッピングする)インデックス、そして様々な最近傍法アルゴリズムを使用して異なる種類の埋め込み間の類似度を比較する方法です。
埋め込み同士を比較するための一般的な手法の1つはコサイン類似度と呼ばれますが、何百万ものベクトルセットを比較する際には動作が遅く、非効率的になる可能性があります。これを解決するために、ベクトルの要素から「近傍」を形成し、あるベクトルのk-最近傍(k-nearest neighbors)を見つけ出す近似最近傍(ANN)探索アルゴリズムが開発されました。最も広く使用されている2つのアルゴリズムはHNSW(Hierarchical Navigable Small World)とFAISSであり、これらは独自のスタンドアロンライブラリであり、既存の多くのベクトルストアにも組み込まれています。

完全な検索と最近傍検索のトレードオフは、最近傍検索の方が精度は劣るものの、はるかに高速である点にあります。適合率(precision)と再現率(recall)を評価する際は、計算速度を考慮しつつ、予測精度に対する要件と推論のレイテンシを比較してトレードオフを検討することが重要です。
6 - 結論
これで、ベクトル埋め込みのマルチモーダルな進化と、様々なアプリケーションにおけるそれらの役割について一通り確認しました。
まず、埋め込みの簡単な定義から始めました。その後、テキスト、画像、音声を表現できる様々な単一モーダル(unimodal)の埋め込みを概観しました。
埋め込みは、昨今のデータのマルチモーダル表現の爆発的な進歩とTransformerモデルの多才さにおいて、さらに重要性が高まっています。また、動画の表現について(具体的には埋め込みとトークン化に関する戦略を)少し深掘りしました。
最後に、埋め込みの生成や保存など、プロダクション環境において埋め込みを扱うエンジニアリングのコンテキストを理解しました。
ベクトル埋め込みの進化は、特に動画データの領域において、複雑なデータの理解と分析に新たな可能性を切り開きました。この分野が発展し成熟し続けるにつれて、将来さらに刺激的なアプリケーションやイノベーションが登場することが期待されます。
Twelve Labsでは、マルチモーダルな動画理解のための基盤モデルを開発しています。言い換えれば、私たちはローデータの動画から動画の埋め込みを抽出し、動画検索や動画分類などの様々な下流の動画理解タスクを実現させています。私たちの目標は、最も先進的な動画理解インフラを提供し、開発者が人間と同じように世界を見て、聴いて、理解できるソフトウェアを作れるよう支援することです。
詳細にご関心がある方は、ぜひ https://playground.twelvelabs.io/ でご登録いただき、私たちの Multimodal Minds Discordコミュニティ に参加して、マルチモーダルAIのあらゆる話題についてチャットしましょう!




