理解向量

vector 2d coordinates

向量具有維度和方向。例如,下圖描繪了一個二維向量 在笛卡爾座標系中表示為一個箭頭。

向量 的頭部位於點 ,其中 x 座標值為 y 座標值為 。這些座標值也稱為向量的分量。

相似度

有幾種數學公式可以用來確定兩個向量是否相似。其中一種最直觀且易於理解和視覺化的方法是餘弦相似度。考慮以下顯示三組圖表的影像

vector similarity

當向量 指向彼此接近時,它們被認為是相似的,如第一個圖所示。當向量相互垂直時,它們被認為是無關的;當它們指向彼此遠離時,它們被認為是相反的。

它們之間的角度 是衡量它們相似度的良好指標。如何計算角度 呢?

pythagorean triangle

我們都熟悉勾股定理

那麼當 ab 之間的角度不是90度時呢?

引入餘弦定理

餘弦定理

下圖將此方法表示為向量圖:lawofcosines

此向量的大小根據其分量定義為

大小

兩個向量 之間的點積定義為它們的分量之積的和:

點積

用向量大小和點積重寫餘弦定理得到以下結果

向量形式的餘弦定理

替換為 得到以下結果

僅用 $\vec{A}$ 和 $\vec{B}$ 表示的向量形式餘弦定理

展開此式 得到餘弦相似度的公式。

餘弦相似度

此公式適用於高於2或3維的情況,儘管難以視覺化。然而,可以在一定程度上進行視覺化。在AI/ML應用中,向量通常具有數百甚至數千個維度。

在更高維度上使用向量分量的相似度函式如下所示。它使用求和數學符號將之前給出的二維大小和點積定義擴充套件到 N 維。

帶向量分量的餘弦相似度

這是簡單向量儲存實現中使用的關鍵公式,可以在 SimpleVectorStore 實現中找到。