要件:前回、埋め込みモデルの選択とベクトルの取得について記事を書きましたが、埋め込みモデルを呼び出してベクトル値を取得し、ベクトルデータベースに保存した後、ベクトル類似度を計算する際にどのアルゴリズムを使うべきでしょうか?
ベクトル
線形代数において、ベクトルはより抽象的なベクトル空間(線形空間とも呼ばれる)で定義されることが多いです。 ベクトルはベクトル空間の基本的な構成要素です。
(多くの矢印は多くのベクトルを表します)
ベクトル類似性
ベクトル類似度計算のいくつかの方法:
- ユークリッド距離
- コサイン類似度
- ピアソン相関係数(ピアソン)
- 調整余弦
- ハミング距離
- マンハッタン・ディスタンス
- チェビシェフ距離
- ユークリッド距離
コサイン類似度
コサイン類似度は、2つのベクトル間の角度の余弦値を測定することで、2つのベクトル間の類似度を測定します。 0度角の余弦値は1であり、他の角度の余弦値は1を超えません。 そしてその最小値は-1です。 したがって、2つのベクトル間の角度の余弦値が、2つのベクトルがほぼ同じ方向を向いているかどうかを決定します。 2つのベクトルが同じ指向を持つ場合、余弦類似度の値は1です。 2つのベクトル間の角度が90°の場合、余弦類似度の値は0となります。 2つのベクトルが反対方向を指す場合、余弦類似度の値は-1となります。 この結果はベクトルの長さとは無関係で、ベクトルの指向方向のみに依存します。 余弦類似は通常正の空間で用いられるため、与えられた値は-1から1の間です。
余弦類似度は、ベクトル空間における2つのベクトル間の角度の余弦値を、2つの個体間の差の大きさとして用います。 余弦値が1に近づくほど角度は0度に近づき、つまり2つのベクトルはより似ており、これを「余弦類似度」と呼びます。
ピアソン相関係数
2つの確率変数XとYが与えられたとき、ピアソン相関係数は以下の式を用いて両者の相関度を測定できます。
ジャッカール係数
集合 X と Y が二つあると仮定します(ここでの二つはベクトルではないことに注意してください)、計算の式は次の通りです:
ドット積
量的積はスカラー積やドット積とも呼ばれ、ユークリッド空間では内積と呼ばれ、対応する要素を掛け加算することでスカラー量(すなわち数値)が得られます。 これは実数 R 上の2つのベクトルを受け入れ、実数の数値スカラーを返す二項演算を指します。 これはユークリッド空間の標準的な内積です。
共通距離
ミンコフスキ距離
ミンコフスキー距離は複数の距離測定式の一般化された表現であり、p=1の場合、ミンコフスキー距離はマンハッタン距離を表します。 p=2のとき、ミンコフスキー距離はユークリッド距離です。 ミンコフスキー距離はチェビシェフ距離の極限の形をとります。
マンハッタン・ディスタンス
ユークリッド距離
チェビシェフ距離
ハミング距離
情報理論において、二つの等しい文字列間のヘミング距離とは、それぞれに対応する異なる位置にある文字の数を指します。 文字列が2つあると仮定します:x=[x1,x2,...,xn]とy=[y1,y2,...,yn]の場合、両者の距離は次のようになります。
ここで II は指示関数を表し、両者は同じ関数に対して 1 であり、そうでなければ 0 となります。
KL分岐
確率変数Xと2つの確率分布PおよびQが与えられたとき、KL発散を用いて2つの分布の差を次の式で測定できます。
概要
ピップ積距離とコサイン類似度は、ベクトルやテキストデータの類似度を測定するためによく用いられます。 主に、テキストマイニングや自然言語処理における文書類似性、情報検索、推薦システム、その他の分野におけるベクトル類似度の測定に用いられます。 Sentence-BERTのような現代的な埋め込みモデルや他の事前学習モデルを使っている場合、デフォルトの出力は通常正規化されているので、点の累積それが望ましい選択肢です。
参考:
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。 |