SubtractEmbeddings
埋め込みベクトル v1 から v2 を減算して結果を正規化されたベクトルとして返します。
構文
SubtractEmbeddings ( v1 ; v2 )
引数
v1
および v2
- 同じ次元を持つ埋め込みベクトルを含む任意のテキスト式、テキストフィールド、またはオブジェクトフィールド。
戻り値のデータタイプ
テキスト、オブジェクト
起点バージョン
22.0
説明
この関数は 2 つの埋め込みベクトルでベクトルの減算 (v1
- v2
) を実行して結果を正規化されたベクトルとして返します。正規化では結果のベクトルをその規模ではなく意味的な方向に集中させます。これは埋め込みを比較または操作するための標準的な方法です。
この関数を使用してあるベクトル (v2
) の意味を別のベクトル (v1
) から取り除くことで意味的概念を分離または変更できます。たとえば、「冬」のベクトルから「寒さ」のベクトルを減算すると「寒さとは無関係な冬の側面」を表すベクトルになり、「穏やかな冬」や単に「季節」のような概念に傾く可能性があります。よく知られた例は「王」のベクトルから「男性」のベクトルを減算して「女性」のベクトルを加算した結果「女王」に非常に近いベクトルになります。
v1
および v2
がテキストの場合、JSON 配列の形式になっている必要があります。通常、バイナリオブジェクトデータとして埋め込みベクトルを使用するとパフォーマンスが向上します。
メモ
-
互換性とパフォーマンスを確保するために、埋め込みベクトルは同じモデルから生成する必要があります。異なるモデルからの埋め込みベクトルの混在はサポートされていません。
-
次の場合、この関数は「?」を返します:
-
v1
とv2
の次元が異なる場合。 -
または結果がゼロベクトルになる場合 (v1 と v2 が同一の場合に発生する可能性があります)。関数はゼロベクトルを正規化できません。
-
例 1
SubtractEmbeddings ("[1, 2, 3]" ; "[4, 5, 6]")
は [-0.57735026918962573106, -0.57735026918962573106, -0.57735026918962573106] を返します。減算は [1-4, 2-5, 3-6] = [-3, -3, -3] です。次に、関数がこのベクトルを正規化して両方の入力がテキストであるために JSON 配列として返します。
例 2
SubtractEmbeddings (Concepts::Winter_Embedding ; Concepts::Cold_Embedding)
は「寒さ」の概念を取り除いた「冬」の概念を表す正規化されたベクトルを含むオブジェクトを返します。
この例では「Concepts::Winter_Embedding」に「冬」の埋め込みベクトルが含まれ、「Concepts::Cold_Embedding」に「寒さ」の埋め込みベクトルが含まれていると仮定します。結果のベクトルは [セマンティック検索を実行] スクリプトステップを使用して寒さが主要な焦点ではないコンテキスト (冬の流行、冬休みなど) で冬を語るレコードを検索できます。
例 3
「王 - 男性 + 女性 ≈ 女王」のアナロジーを実証するために、SubtractEmbeddings と AddEmbeddings の使用を組み合わせることができます。「Concepts」テーブルに「王」、「男性」、「女性」、「女王」の埋め込みを含む「ConceptName」フィールドおよび「ConceptVector」フィールドがあると仮定します。
変数を設定 [$kingMinusMan ; 値: SubtractEmbeddings (Concepts::King_Embedding ; Concepts::Man_Embedding)]
変数を設定 [$queenAnalogyEmbedding ; 値: AddEmbeddings ($kingMinusMan ; Concepts::Woman_Embedding)]
これで変数 $queenAnalogyEmbedding はアナロジーの計算結果である正規化されたベクトルを持つオブジェクトを保持するようになります。その後、次の関数を使用してアナロジーをテストできます:
CosineSimilarity ($queenAnalogyEmbedding ; Concepts::Vector_Queen)
1 に近い結果であれば使用された埋め込みモデルに対してアナロジーが適切に保持されていることになります。