埋め込みとは
IBM® watsonx.aiはこちら
コンピューター・ニューラル・ネットワークの概念

公開日:2023年12月22日
寄稿者:Joel Barnard

埋め込みとは

埋め込みは、テキスト、画像、オーディオなどのオブジェクトを連続ベクトル空間内の点として表現する手段であり、空間内のこれらの点の位置は、機械学習(ML)アルゴリズムにとって意味論的な意味があります。

埋め込みは、テキストおよび画像の検索エンジン、推奨システム、チャットボット、不正検出システム、その他多くのアプリケーションを構築する機械学習エンジニアにとって重要なツールです。基本的に、埋め込みにより、機械学習モデルが類似のオブジェクトを見つけられるようになります。

他の機械学習の手法とは異なり、埋め込みは、定義に人間の専門知識を明確に必要とせず、ニューラル・ネットワークなどのさまざまなアルゴリズムを使用してデータから学習されます。これにより、モデルは、人間が識別することが不可能なデータ内の複雑なパターンと関係を学習できるようになります。

たとえば、OpenAIの埋め込み実装により、ChatGPTは各単語を個別に分析するのではなく、さまざまな単語やカテゴリ間の関係を簡単に理解することができます。埋め込みを使用することで、OpenAIのGPTモデルは、ユーザーのプロンプトや質問に対して、より一貫性があり、状況に応じた適切な応答を生成できます。

IBM watsonx.aiのツアーを見る

AIモデルのトレーニング、検証、チューニング、デプロイを行うAI開発者向けの次世代エンタープライズ・スタジオ(ツール・機能群)をご利用ください。

関連コンテンツ

IBMニュースレターを購読する

埋め込みの仕組み

ほとんどの機械学習アルゴリズムは、低次元の数値データのみを入力として受け取ることができます。したがって、データを数値フォーマットに変換する必要があります。これには、テキスト・データの「バッグ・オブ・ワード」表現の作成、画像のピクセル値への変換、グラフ・データの数値行列への変換などが含まれます。

埋め込みモデルに入力されるオブジェクトは、ベクトルとして表現される埋め込みとして出力されます。ベクトルは数値の配列です(例:1489, 22… 3, 777)、各数字はオブジェクトが指定された次元に沿った位置を示します。入力データの複雑さに応じて、1,000以上の次元に達することがあります。このn次元空間内の埋め込みが他の埋め込みに近づくほど、それらはより類似します。分布の類似性は、あるオブジェクトから別のオブジェクトまでのベクトル点の長さ(ユークリッド、コサイン、またはその他によって測定)によって決まります。

2013年にGoogleによって開発されたモデルの1つであるWord2Vec(word to Vector)は、2 層のニューラル・ネットワークを使用して、単語埋め込みを効率的に作成する方法です。入力として単語を受け取り、n次元の座標(埋め込みベクトル)を出力するため、これらの単語ベクトルを3次元空間にプロットすると、同義語がクラスター化されます。

「dad」と「mom」という2つの単語がベクトルとしてどのように表現されるかを次に示します。

「dad」= [0.1548, 0.4848, …, 1.864]

「mom」= [0.8785, 0.8974, …, 2.794]

この2つの単語にはある程度の類似性はありますが、ベクトル空間では「father」は「dad」にかなり近い位置にあり、その結果、より高いドット積(2つのベクトルの相対的な方向と、それらが指し示す方向にどれだけ密接に並んでいるかを示す尺度)が得られると予想されます。

より複雑な例は、推奨埋め込みです。これは、ユーザーとアイテム(映画、製品、記事など)を連続ベクトル空間内の高次元ベクトルとして表現することによって機能します。これらの埋め込みは、ユーザーの好みやアイテムの特性を反映する潜在的な機能を捉えます。このアイデアは、埋め込みの内積がその項目に対するユーザーの好みと相関するような方法で、各ユーザーと項目の表現を学習することです。

各ユーザーとアイテムは、埋め込みベクトルに関連付けられます。これらのベクトルは通常、トレーニング・プロセス中に推奨モデルを通じて学習されます。ユーザー埋め込みと項目の埋め込みは、行列にまとめられます。ユーザー行列の行はユーザーを表し、アイテム行列の行はアイテムを表します。

ユーザーとアイテムのペアの推奨スコアは、ユーザー埋め込みベクトルとアイテム埋め込みベクトルの内積を取ることで計算できます。内積が大きいほど、ユーザーがそのアイテムに興味を持っている可能性が高くなります。

推奨スコア = ユーザー埋め込み ⋅ アイテム埋め込み

埋め込み行列は、過去のユーザーとアイテムのインタラクションを使用したトレーニング・プロセスを通じて学習されます。このモデルは、予測スコアと実際のユーザーの好み(評価、クリック、購入など)との差を最小限に抑えることを目的としています。

モデルがトレーニングされると、それを使用してユーザーに対する上位N個の推奨事項を生成できます。ユーザーの予測スコアが最も高い項目が推奨されます。

埋め込みを使用する理由

埋め込みは、高次元のカテゴリデータを連続的なベクトル表現に変換し、意味のあるパターン、関係、セマンティクスを取り込むことができるため、さまざまな分野や用途に使用されています。データサイエンスで埋め込みが使用される理由をいくつか以下に示します。

意味表現

エンティティ(単語、画像、グラフ内のノードなど)を連続空間内のベクトルにマッピングすることにより、埋め込みは意味論的な関係と類似性を捉えて、モデルがよりよく理解して一般化できるようにします。

次元削減

テキスト、画像、グラフなどの高次元データを低次元の表現に変換できるため、計算効率が向上し、作業が容易になります。

モデルの汎化の改善

データから意味のある表現を学習することで、モデルは目に見えない例まで十分に一般化できるため、限られたラベル付きデータを使用するタスクでは埋め込みが重要になります。

効果的な視覚化

t-SNEのような技術を適用すると、高次元の埋め込みを2次元または3次元で視覚化し、データ内の関係やクラスターについてのインサイトが得られます。

ニューラル・ネットワークでの効率的なトレーニング

埋め込み層は、カテゴリ入力を連続ベクトルにマッピングするためにニューラル・ネットワーク・アーキテクチャーで一般的に使用され、バック・プロパゲーションと最適化を容易にします。

どのようなオブジェクトを埋め込むことができるか

エンベディングは、幅広いデータ型に適用できる汎用性の高い表現です。ここでは、埋め込むことができる最も一般的なオブジェクトをいくつかご紹介します。

単語

単語埋め込みは、特定の言語コーパス内の使用パターンに基づいて、単語の意味関係と文脈上の意味を捉えます。各単語は、実数の固定次元の密ベクトルとして表現されます。これは、ゼロ・エントリーが多数あるワンホット・エンコーディングなどのスパース・ベクトルとは逆です。

単語埋め込みにより、より意味のある単語の効率的な表現が得られるため、自然言語処理(NLP)モデルのパフォーマンスが大幅に向上しました。これらの埋め込みにより、機械は意味的なニュアンスや文脈上の関係を捉えて言語を理解し、処理することができるようになり、感情分析や機械翻訳、情報検索など幅広い用途で利用価値が高まります。

一般的な単語埋め込みモデルには、Word2Vec、GloVe(Global Vectors for Word Representation)、FastText、およびBERT(Bidirectional Encoder Representations from Transformers)やGPT(Generative Pre-trained Transformer)のような変換器ベースのモデルから派生した埋め込みがあります。

テキスト

テキスト埋め込みは、単語埋め込みを拡張して、連続ベクトル空間で文全体、段落、またはドキュメントを表現します。テキスト埋め込みは、感情分析、テキスト分類、機械翻訳、質問応答、情報検索など、NLPのさまざまな応用で重要な役割を果たします。

Doc2Vec、USE(Universal Sentence Encoder)、BERT、ELMO(Embeddings from Language Models)などのモデルは、WikipediaやGoogleニュースなど、事前にトレーニングされた大量の埋め込みコーパスでトレーニングされています。

画像

画像埋め込みは、画像のコンテンツに関する視覚的特徴とセマンティック情報をキャプチャするように設計されています。画像埋め込みは、さまざまなコンピューター・ビジョン・タスクに特に役立ち、画像の類似性、画像分類、オブジェクト検出、その他の視覚認識タスクのモデリングを可能にします。

画像埋め込み用の一般的な畳み込みニューラル・ネットワーク(CNN)には、VGG(Visual Geometry Group)、ResNet(Residual Networks)、Inception(GoogLeNet)、EfficientNetなどのモデルが含まれます。これらのモデルは大規模な画像データ・セットで事前トレーニングされており、強力な特徴抽出ツールとして使用できます。

音声

画像やテキスト埋め込みと同様に、音声埋め込みも、多くの場合、深層学習アーキテクチャ、特にリカレント・ニューラル・ネットワーク(RNN)、畳み込みニューラル・ネットワーク(CNN)、または両方を組み合わせたハイブリッド・モデルを使用して生成されます。これらの埋め込みは、音声データの関連する機能と特性をキャプチャし、効果的な分析、処理、および類似性のメトリクスを可能にします。音声埋め込みは、音声認識、音声分類、音楽分析などの用途で特に役立ちます。

グラフ

グラフ埋め込みは、複雑なネットワークにおけるノード分類、リンク予測、コミュニティ検出などのさまざまなタスクに不可欠です。これらの埋め込みは、ソーシャル・ネットワーク分析、推奨システム、生物学的ネットワーク分析、不正行為検出、およびデータをグラフとして表現できるその他のさまざまな領域で応用されています。

埋め込みの作成方法

埋め込みは、「埋め込み学習」と呼ばれるプロセスを通じて作成されます。使用される具体的な方法は埋め込まれるデータのタイプによって異なりますが、埋め込みは次の一般的な手順に従って作成されます。

  1. 埋め込みモデルの選択またはトレーニング:データやタスクに適した既存の埋め込みモデルを選択するか、必要に応じて新しい埋め込みモデルをトレーニングします。テキストの場合は、Word2Vec、Glove、またはBERTを選択できます。画像には、VGGやResNetなどの事前トレーニング済みのCNNを使用できます。

  2. データを準備する:選択した埋め込みモデルと互換性のある方法でデータをフォーマットします。テキストの場合、これにはトークン化と場合によっては前処理が含まれます。画像の場合は、画像のサイズ変更と正規化が必要になる場合があります。

  3. 埋め込みモデルをロードまたはトレーニングする:事前トレーニングされたモデルを使用する場合は、重みとアーキテクチャーをロードします。新しいモデルをトレーニングする場合は、準備したトレーニング・データをアルゴリズムに入力します。

  4. 埋め込みを生成する:データ・ポイントごとに、トレーニングまたはロードされたモデルを使用して埋め込みを生成します。たとえば、単語埋め込みモデルを使用する場合、単語を入力して対応するベクトルを取得します。

  5. 埋め込みをアプリケーションに統合する:生成した埋め込みを機械学習モデルの機能として使用したり、特定のタスクに応じて類似性検索、推奨、クラスタリングなどに使用できます。

あらゆる埋め込みのケースにおいて、意味のある関係が保持される連続ベクトル空間でデータを表現するという考え方があります。トレーニング・プロセスには、選択した目的関数に基づいて予測値と実際の値の差を最小限に抑えるためにモデルのパラメーターを調整することが含まれます。トレーニングが完了すると、埋め込みはさまざまな下流タスクに使用できます。

実際の埋め込みの例

埋め込みは、さまざまな領域にわたるさまざまな現実世界の用途で広く使用されています。たとえば、以下のような例が挙げられます。

自然言語処理(NLP)

 

  • 感情分析における単語埋め込み:Word2VecやGloVeなどの単語埋め込みは、連続したベクトル空間で単語を表現するために使用されます。センチメント分析モデルでは、これらの埋め込みを利用して、テキストのセンチメントを理解し、分類できます。

  • 質問応答用のBERT:BERT埋め込みは質問応答システムで使用されます。モデルは質問とドキュメントのコンテキストを理解して、関連情報を抽出できます。

  • Doc2Vecとのテキストの類似性:Doc2Vec埋め込みは、類似したドキュメントの検索などのタスクに適用されます。ドキュメントの埋め込みは、ドキュメント間の意味上の類似性を測定するために比較されます。

 

コンピューター・ビジョン

 

  • CNNによる画像分類:VGGやResNetなどのCNNは、画像分類タスクに使用されます。最終層または中間層の特徴は、画像の埋め込みとして機能できます。

  • CLIPを使用した画像の取得:CLIPモデルは、画像とテキストの結合埋め込みを学習します。これにより、自然言語クエリに基づいた画像検索などの応用が可能になります。

  • FaceNetによる顔認識:FaceNetは、顔認識に使用できる顔埋め込みを作成します。これらの埋め込みは、異なる顔間の類似性を測定するためによく使用されます。

 

レコメンダー・システム

 

  • 埋め込みを使用したコラボレーティブ・フィルタリング:埋め込みは、コラボレーティブ・フィルタリング・モデルでユーザーとアイテムを表現するのに使用されます。行列因数分解手法は、これらの埋め込みを活用して、パーソナライズされた推奨事項を作成します。

  • 単語埋め込みによる製品の推奨:eコマースでは、単語埋め込みを使用して製品の説明やレビューを埋め込むことができます。同様の製品は、埋め込みの意味上の類似性に基づいて推奨できます。

 

クロスモーダル・アプリケーション

 

  • MUSEによるマルチモーダル翻訳:MUSE(Multilingual Universal Sentence Encoder)により、クロス・リンガルな理解とクロス・モーダルな理解が可能になります。言語間でテキストを翻訳したり、画像を対応する説明と結びつけたりするなどの作業に使用できます。

  • 結合埋め込みを使用したクロスモーダル検索:結合埋め込みは、画像やテキストなどのさまざまなモダリティに対して学習されます。これにより、あるモダリティでのクエリが別のモダリティで結果を取得する、クロスモーダル検索が可能になります。

 

異常検出

 

  • グラフ埋め込みによるネットワーク異常検出:ネットワーク・ノードの埋め込みを使用して、異常を検出できます。埋め込み空間の変化は、異常な動作を示している可能性があります。

  • トランザクション埋め込みによる不正検出:トランザクション・データの埋め込みは、不正行為に関連するパターンを特定するのに役立ちます。異常な埋め込みは、不正な取引の可能性を示している可能性があります。

 

これらの例は、さまざまな用途にわたる埋め込みの応用力の高さを強調し、さまざまな種類のデータの意味のある表現と関係をキャプチャする能力を示しています。

 

関連ソリューション
IBM Natural Language Understanding

IBM Watson Natural Language Understandingは、ディープラーニングを使用して、非構造化テキスト・データから意味とメタデータを抽出します。テキスト分析を使用してデータを掘り下げ、カテゴリー、分類、エンティティ‐、キーワード、センチメント、感情、関係、および構文を抽出します。

NLUはこちら

IBM watsonx

IBMの次世代AIとデータのプラットフォームでAIの力を倍増します。IBM watsonx は、ビジネスにすぐに使えるツール、アプリケーション、ソリューションのポートフォリオであり、AI導入のコストとハードルを削減しながら、AIの成果と責任ある使用を最適化するように設計されています。

watsonxはこちら

IBM AIソリューション

ビジネス全体でAIを運用化し、迅速かつ倫理的に効果を発揮します。IBMのビジネス・グレードのAI製品と分析ソリューションの充実した製品群は、AI導入のハードルを下げ、適切なデータ基盤を確立しながら、成果と責任ある活用のために最適化するよう設計されています。

AIソリューションはこちら
参考情報 機械学習とは

データとアルゴリズムを活用するOW ML、そのユースケース、および関連する懸念事項について洞察を得ることで、テクノロジーの責任ある革新的な使用を可能にします。

オープンソースの大規模言語モデル:メリット、リスク、種類

さまざまな種類の大規模言語モデル(LLM)と、生成AI用のオープンソースLLMのメリット、リスク、ビジネス・ユース・ケースについて詳しく学びます。

Pythonの初心者向けガイド

Pythonは、埋め込みでよく使用されるプログラミング言語です。このガイドでは、この簡単なプログラミング言語を始めるために知っておく必要があるいくつかの基本概念を紹介します。

詳細情報はこちら

AI開発者がAIモデルをトレーニング、検証、チューニング、デプロイするための次世代エンタープライズ・スタジオであるwatsonx.aiを使用して、生成AIの導入を加速しましょう。

watsonx.aiのデモ