すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ベクトル計算関数

最終更新日:Sep 29, 2024

テキスト、オーディオ、画像、およびビデオをベクトルデータベースにベクトルとして保存して、検索とクエリを容易にすることができます。 Simple Log Serviceはベクトル計算機能をサポートしています。 このトピックでは、ベクトル計算関数の構文について説明します。 このトピックでは、関数の使用方法の例も示します。

ベクトル計算関数

重要

次の関数で使用されるベクトル要素は、特定の形式の文字列として表示されます。 文字列は、括弧 [] または括弧 () で囲まれ、コンマ (,) で区切られた数値のセットです。

関数

構文

説明

戻り値のデータ型

cosine_similarity関数

  • cosine_similarity(array(double) vector1, array(double) vector2)

  • cosine_similarity(varchar vector1, varchar vector2)

2つのベクトルのコサイン類似度を計算します。

コサイン類似度の有効値: [-1, 1] 。

  • 2つのベクトル間のコサイン類似度の値が1である場合、ベクトルは同じ方向にある。

  • 2つのベクトル間のコサイン類似度の値が − 1である場合、ベクトルは反対方向にある。

  • 2つのベクトル間のコサイン類似度の値が0である場合、一方のベクトルは他方のベクトルに対して垂直である。

double

inner_productまたはdot_product関数

  • inner_product(array(double) vector1, array(double) vector2)

  • inner_product(varchar vector1, varchar vector2)

  • dot_product(array(double) vector1, array(double) vector2)

  • dot_product(varchar vector1, varchar vector2)

2つのベクトルの内積を計算します。

double

l2_distanceまたはeuclidean_distance関数

  • eucidean_distance (array(double) vector1, array(double) vector2)

  • eucridean_distance (varchar vector1, varchar vector2)

  • l2_distance(array(double) vector1, array(double) vector2)

  • l2_distance(varchar vector1, varchar vector2)

2つのベクトル間のユークリッド距離を計算します。

double

vector_norm関数

  • vector_norm (配列 (double) vector1)

  • vector_norm (配列 (double) vector1, double p)

  • vector_norm(varchar vector1)

  • vector_norm(varchar vector1, double p)

ベクトルのノルムを計算します。 ベクトルのノルムは、ベクトルの大きさに等しい。

double

vector_sum関数

  • vector_sum (配列 (double) vector1)

  • vector_sum(varchar vector1)

ベクトルのすべての要素の合計を計算します。

double

vector_mean関数

  • vector_mean(array(double) vector1)

  • vector_mean(varchar vector1)

ベクトルの平均を計算します。

double

vector_variance関数

  • vector_variance(array(double) vector1)

  • vector_variance(varchar vector1)

ベクトルの分散を計算します。 分散は、ベクトルの要素の分散を測定する。 分散は、ベクトルの各要素から平均までの距離の2乗の平均です。

double

vector_std_dev関数

  • vector_std_dev (配列 (double) vector1)

  • vector_std_dev(varchar vector1)

ベクトルの標準偏差を計算します。 ベクトルの標準偏差は、その分散の正の平方根である。 分散は、データセット内の各データポイントが平均からどれだけ離れているかを測定します。 高い分散値は、データ点が平均から著しく広がっていることを示す。 低い分散値は、データ点が平均に近いことを示す。

double

vector_add関数

  • vector_add(array(double) vector1, array(double) vector2)

  • vector_add(varchar vector1, varchar vector2)

2つのベクトルの合計を計算します。

ベクトル加算、ベクトル減算、およびベクトルスケーリング関数に基づいて、任意の線形変換を実行できます。

配列 (ダブル)

vector_subtract関数

  • vector_subtract(array(double) vector1, array(double) vector2)

  • vector_subtract(varchar vector1, varchar vector2)

2つのベクトルの差を計算します。

ベクトル加算、ベクトル減算、およびベクトルスケーリング関数に基づいて、任意の線形変換を実行できます。

配列 (ダブル)

vector_scale関数

  • vector_scale(array(double) vector1, double alpha)

  • vector_scale(varchar vector1, double alpha)

ベクトルスケーリングの結果を計算します。 ベクトル加算、ベクトル減算、およびベクトルスケーリング関数に基づいて、任意の線形変換を実行できます。

配列 (ダブル)

vector_multiply関数

  • vector_multiply(array(double) vector1, array(double) vector2)

  • vector_multiply(varchar vector1, varchar vector2)

2つのベクトルの同じ位置にある各要素の積を計算し、結果ベクトルを返します。

配列 (ダブル)

vector_divide関数

  • vector_divide(array(double) vector1, array(double) vector2)

  • vector_divide(varchar vector1, varchar vector2)

2つのベクトルの同じ位置にある各要素の除算を計算し、結果ベクトルを返します。

配列 (ダブル)

vector_add_value関数

  • vector_add_value (配列 (double) vector1、double値)

  • vector_add_value(varchar vector1, double value)

ベクトル内の各要素に定数を追加し、結果ベクトルを返します。

配列 (ダブル)

vector_fill_nan関数

vector_fill_nan(varchar vector1, varchar fill_option)

ベクトル内で空のままの要素の値を指定します。 NaNnullInf、または -Infがベクトルに存在する場合、関連する要素は空と見なされます。

fill_optionには、avgmeanmedianminmaxvalue=0など、さまざまな値を指定できます。 value=0を指定した場合は、0を他の数字に置き換えることができます。

配列 (ダブル)

cosine_similarity関数

cosine_similarity関数は、2つのベクトルのコサイン類似度を計算します。

  • クエリ文

    * | SELECT cosine_similarity(array[1, 2, 3, 4], array[10, 20, 30, 40])

    または

    * | SELECT cosine_similarity('[1, 2, 3, 4]', '[10, 20, 30, 40]')
  • クエリおよび分析の結果

    1

inner_productまたはdot_product関数

inner_productまたはdot_product関数は、2つのベクトルの内積を計算します。

  • クエリ文

    * | SELECT inner_product(array[1, 2, 3, 4], array[10, 20, 30, 40])

    または

    * | SELECT inner_product('[1, 2, 3, 4]', '[10, 20, 30, 40]')
  • クエリおよび分析の結果

    300.0

l2_distanceまたはeuclidean_distance関数

説明

l2_distanceは小文字のlで始まります。

l2_distanceまたはeuclidean_distance関数は、2つのベクトル間のユークリッド距離を計算します。

  • クエリ文

    * | SELECT l2_distance(array[1, 3], array[4, 2])

    または

    * | SELECT l2_distance('[1, 3]', '[4, 2]')
  • クエリおよび分析の結果

    3.16

vector_norm関数

vector_norm関数は、ノルムのタイプに基づいてベクトルのノルムを計算します。 ノルムのタイプはpで指定されます。

  • クエリ文

    * | SELECT vector_norm(array[1, 3], 1)

    * | SELECT vector_norm(array[1, 3], 2)

    * | SELECT vector_norm(array[1, 3], 3)
  • クエリおよび分析の結果

    この関数は、ノルムタイプが1、2、および3の場合、[1,3] ベクトルのノルムを計算します。 ノルム型が1の場合、関数はベクトル要素の絶対値の合計を計算します。 結果は4です。 ノルムタイプが2の場合、関数はベクトル要素の2乗の合計の平方根を計算します。 結果は3.16である。 ノルム型が3の場合、関数はベクトル要素の立方体の合計の立方根を計算します。 結果は3.04である。

vector_sum関数

vector_sum関数は、ベクトルのすべての要素の合計を計算します。

  • クエリ文

    * | SELECT vector_sum(array[1, -3])

    または

    * | SELECT vector_sum('[1, -3]')
  • クエリおよび分析の結果

    -2

vector_mean関数

vector_mean関数は、ベクトルの平均を計算します。

  • クエリ文

    * | SELECT vector_mean(array[1, -3])

    または

    * | SELECT vector_mean('[1, -3]')
  • クエリおよび分析の結果

    -1

vector_分散関数

vector_variance関数は、ベクトルの分散を計算します。 分散は、ベクトルの要素の分散を測定する。

  • クエリ文

    * | SELECT vector_variance(array[1, -3, 8])

    または

    * | SELECT vector_variance('[1, -3, 8]')
  • クエリおよび分析の結果

    ベクトルの平均は2である。 分散は、以下の式 (1 2 + 5 2 + 6 2= 62/3) = 20.67を用いて計算される。

戻り値のデータ型

パラメーター値のデータ型と同じです。

vector_std_dev関数

vector_std_dev関数は、ベクトルの標準偏差を計算します。 ベクトルの標準偏差は、その分散の正の平方根である。

  • クエリ文

    * | SELECT vector_std_dev(array[1, -3, 8])

    または

    * | SELECT vector_std_dev('[1, -3, 8]')
  • クエリおよび分析の結果

    ベクトルの平均は2である。 標準偏差は、以下の式を使用することによって計算される。(1 2 + 5 2 + 6 2= 62/3) 0.5= 20.67 0.5= 4.54

vector_add関数

vector_add関数は、2つのベクトルの合計を計算します。

  • クエリ文

    * | SELECT vector_add(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    または

    * | SELECT vector_add("[1, 2, 3, 4]", "[2, 3, 1, 1.5]")
  • クエリおよび分析の結果

    [3.0、5.0、4.0、5.5]

ベクトル_減算関数

vector_subtract関数は、2つのベクトルの差を計算します。

  • クエリ文

    * | SELECT vector_subtract(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    または

    * | SELECT vector_subtract(array[1, 2, 3, 4], array[2, 3, 1, 1.5])
  • クエリおよび分析の結果

    [-1.0、-1.0、2.0、2.5]

vector_scale関数

vector_scale関数は、ベクトルスケーリングの結果を計算します。

  • クエリ文

    * | SELECT vector_scale(array[1, 2, 3, 4], 5)

    または

    * | SELECT vector_scale('[1, 2, 3, 4]', 5)
  • クエリおよび分析の結果

    [5.0、10.0、15.0、20.0]

vector_multiply関数

vector_multiply関数は、2つのベクトルの同じ位置にある各要素の積を計算します。

  • クエリ文

    * | SELECT vector_multiply(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    または

    * | SELECT vector_multiply('[1,2, 3, 4]', '[2,3, 1, 1.5]')
  • クエリおよび分析の結果

    [2.0、6.0、3.0、6.0]

vector_divide関数

vector_divide関数は、2つのベクトルの同じ位置にある各要素の除算を計算します。

  • クエリ文

    * | SELECT vector_divide(array[1, 2, 3, 4], array[2, 3, 1, 1.5])

    または

    * | SELECT vector_divide('[1,2, 3, 4]', '[2,3, 1, 1.5]')
  • クエリおよび分析の結果

    [0.5、0.6666666666666666、3.0、2.6666666666666667]

vector_add_value関数

vector_add_value関数は、ベクトル内の各要素に定数を追加します。

  • クエリ文

    * | SELECT vector_add_value(array[1, 2, 3, 4], 2.0)

    または

    * | SELECT vector_add_value('[1, 2, 3, 4]', 2.0)
  • クエリおよび分析の結果

    [3.0、4.0、5.0、6.0]

vector_fill_nan関数

vector_fill_nan関数は、ベクトル内で空のままの要素の値を指定します。 NaNnullInf、または -Infがベクトルに存在する場合、関連する要素は空と見なされます。

次のように、fill_optionに異なる値を指定できます。

  • value=0です。 0を他の数字に置き換えることができます。

  • 平均

  • 中央値

  • min

  • max

  • クエリ文

    nullvalue=4に置き換える:

    * | SELECT vector_fill_nan('[1, null, 3,4]', 'value=4 ')

    または、nullを配列の最大値に置き換えます。

    * | SELECT vector_fill_nan('[1, null, 3,4]', 'max')
  • クエリおよび分析の結果

    [1.0、4.0、3.0、4.0]