エンベディング: エンベディング空間と静的エンベディング

エンベディングは、エンベディング空間内のデータをベクトル表現したものです。一般に、モデルは初期データベクトルの高次元空間を低次元空間に射影することで、潜在的なエンベディングを見つけます。高次元データと低次元データの比較については、カテゴリデータ モジュールをご覧ください。

エンベディングを使用すると、前のセクションで説明した食事アイテムを表すスパース ベクトルなど、大規模な特徴ベクトルで機械学習を簡単に行うことができます。エンベディング空間内のアイテムの相対位置に潜在的なセマンティックな関係がある場合もありますが、低次元空間とその空間内の相対位置を見つけるプロセスは人間が解釈できないことが多く、結果として得られるエンベディングを理解するのは困難です。

それでも、人間が理解できるように、エンベディング ベクトルがどのように情報を表しているかを説明するために、サンドイッチに最も似ていないからサンドイッチに最も似ているまでのスケールで、ホットドッグピザサラダシャワルマボルシチの料理を 1 次元で表した例を考えてみましょう。単一のディメンションは、「サンドイッチ度」の架空の測定値です。

図 3. サンドイッチ度合いの軸に沿って、下から上へは、ボルシチ、サラダ、ピザ、ホットドッグ、シャワルマとなります。
図 3. 想像上の「サンドイッチ度」の次元に沿った食品。

このラインのどこにアップル シュトルーデルが該当しますか。hot dogshawarma の間に配置することもできます。しかし、アップル シュトルーデルには、他のオプションとは大きく異なる甘さデザート感という追加の要素があるようです。次の図は、「dessertness」ディメンションを追加して、これを可視化しています。

図 4. 前と同じ画像ですが、縦軸が「デザート度」になっています。アップル シュトルーデルはホットドッグとシャワルマの間にありますが、横軸では高く、デザート度軸ではさらに高くなっています。
図 4. 「サンドイッチ度」と「デザート度」の両方でプロットされた食品。

エンベディングは、n 次元空間内の各アイテムを n 浮動小数点数(通常は -1 ~ 1 または 0 ~ 1 の範囲)で表します。図 3 のエンベディングは、1 次元空間の各食品を 1 つの座標で表しています。一方、図 4 は、2 次元空間の各食品を 2 つの座標で表しています。図 4 では、「アップル シュトルーデル」はグラフの右上四分割に位置し、点(0.5、0.3)を割り当てることができます。一方、「ホットドッグ」はグラフの右下四分割に位置し、点(0.2、-0.5)を割り当てることができます。

エンベディングでは、任意の 2 つのアイテム間の距離を数学的に計算でき、それらの 2 つのアイテム間の相対的な類似性の尺度として解釈できます。図 4 の shawarmahot dog のように、互いに近い 2 つの要素は、apple strudelborscht のように互いに離れた 2 つの要素よりも、モデルのデータ表現において密接に関連しています。

また、図 4 の 2 次元空間では、apple strudel は 1 次元空間の場合よりも shawarmahot dog からかなり離れています。これは直感に即しています。apple strudel はホットドッグやシャワルマ同士ほど、ホットドッグやシャワルマに似ていません。

ボルシチは他の食品よりも液体に近い食品です。これは、3 つ目の次元である液体度、つまり食品の液体度を示唆しています。このディメンションを追加すると、アイテムを次のように 3D で可視化できます。

図 5. 前と同じ画像ですが、他の 2 つに直交する液体の 3 番目の軸があり、ボルシチがその軸に沿って大きく移動しています。
図 5. 「サンドイッチ度」、「デザート度」、「液体度」でプロットされた食品。

この 3D 空間のどこに 湯圓 を配置しますか?ボルシチのようなスープや、アップル シュトルーデルのような甘いデザートであり、サンドイッチとはまったく異なります。プレースメントの例を次に示します。

図 6. 前と同じ画像ですが、タンユアンはデザート感と液体感が高い一方、サンドイッチ感は低くなっています。
図 6. 前のイメージにタンユアンを追加しました。「デザート感」と「液体感」が高く、「サンドイッチ感」が低いです。

これらの 3 つのディメンションで表現される情報量に注目してください。4D、5D、それ以上の次元の空間は可視化が難しいですが、肉の量や焼き加減などの追加のディメンションを追加することもできます。

実世界のエンベディング空間

実際のエンベディング空間は d 次元で、d は 3 よりはるかに大きいものの、データの次元よりは小さく、データポイント間の関係は、上記の架空の図のように直感的であるとは限りません。(単語エンベディングの場合、d は通常 256、512、1,024 です。1

実際には、ML 担当者は通常、特定のタスクとエンベディング ディメンションの数を設定します。次に、モデルは、指定されたディメンション数でエンベディング空間内でトレーニング例が近くなるように配置しようとします。d が固定されていない場合は、ディメンション数を調整します。個々のディメンションは、「デザート感」や「液体感」ほどわかりやすいものではありません。場合によっては、その「意味」を推測できますが、必ずしもそうとは限りません。

エンベディングは通常、タスクに固有のものであり、タスクが異なる場合は異なります。たとえば、ベジタリアンと非ベジタリアンの分類モデルによって生成されるエンベディングは、時間帯や季節に基づいて料理を提案するモデルによって生成されるエンベディングとは異なります。たとえば、「シリアル」と「朝食用ソーセージ」は、時間帯モデルのエンベディング空間では近い位置にありますが、ベジタリアンと非ベジタリアンのモデルのエンベディング空間では離れています。

静的エンベディング

エンベディングはタスクによって異なりますが、単語のコンテキストを予測するタスクは一般的な適用性があります。単語のコンテキストを予測するようにトレーニングされたモデルは、類似のコンテキストに出現する単語は意味的に関連していると想定します。たとえば、「They rode a burro down into the Grand Canyon」と「They rode a horse down into the canyon」という文を含むトレーニング データは、「horse」が「burro」と類似したコンテキストで出現することを示唆しています。意味的類似性に基づくエンベディングは、多くの一般的な言語タスクで適切に機能することがわかりました。

word2vec モデルは古い例であり、他のモデルに大きく置き換えられていますが、説明には引き続き有用です。word2vec はドキュメントのコーパスでトレーニングを行い、単語ごとに単一のグローバル エンベディングを取得します。各単語またはデータポイントに単一のエンベディング ベクトルがある場合、これを静的エンベディングと呼びます。次の動画では、word2vec トレーニングの簡略化されたイラストについて説明します。

研究によると、これらの静的エンベディングは、トレーニングが完了すると、ある程度のセマンティック情報をエンコードします。特に、単語間の関係に関連する情報をエンコードします。つまり、類似のコンテキストで使用される単語は、エンベディング空間内で互いに近くなります。生成される特定のエンベディング ベクトルは、トレーニングに使用されるコーパスによって異なります。T. を参照してください。詳細については、Mikolov ら(2013)、「ベクトル空間における単語表現の効率的な推定」をご覧ください。


  1. François Chollet、Deep Learning with Python(Shelter Island、NY: Manning、2017)、6.1.2。