最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

向量數(shù)據(jù)庫(kù)的崛起:從矢量搜索到深度學(xué)習(xí) (二)

2023-07-13 00:21 作者:INFINI-Labs  | 我要投稿


前言

在上一節(jié)中,我們簡(jiǎn)要介紹了向量數(shù)據(jù)庫(kù)的背景以及對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行向量化的方法,即 Embedding。那么我們?nèi)绾螌⑦@些特征向量應(yīng)用于搜索任務(wù)呢?在搜索任務(wù)中,最常見的情況是從數(shù)據(jù)庫(kù)中查找與給定向量最相似的數(shù)據(jù)。因此,我們需要一種能夠衡量向量之間相似程度的算法,這也是本節(jié)將要介紹的內(nèi)容。


繼續(xù)上一節(jié)的例子,在如下詞頻向量中:


極限科技: [ 1 1 1 1 0 0 ]科技公司: [ 0 0 1 1 1 1 ]公司  : [ 0 0 0 0 1 1 ]


我們將尋找與“科技”最相似的單詞。


科技  : [ 0 0 1 1 0 0 ]

歐幾里德距離

歐幾里德距離<sup>[1]</sup>(Euclidean distance)是在歐幾里德空間中衡量?jī)蓚€(gè)點(diǎn)之間距離的一種度量方法。它是最常見和直觀的距離度量方法之一,用于計(jì)算實(shí)數(shù)向量空間中兩個(gè)點(diǎn)之間的直線距離。


對(duì)于給定兩個(gè)向量 xy,歐幾里德距離的計(jì)算公式如下:



我們可以使用如下代碼:


import numpy as np
def distance(x, y): ?return np.sqrt(np.sum(np.square(x - y)))


來(lái)計(jì)算給定兩個(gè)向量的歐幾里德距離,例如,“科技”和“極限科技”之間的距離為 1.41:


distance( ?np.array([1, 1, 1, 1, 0, 0]), ?np.array([0, 0, 1, 1, 0, 0]),)


除此之外,還有:


  • 歐氏距離(Euclidean metric)

  • 曼哈頓距離(Taxicab geometry)

  • 切比雪夫距離(Chebyshev distance)

  • 閔可夫斯基距離(Minkowski distance)


等其它用來(lái)衡量向量之間距離的算法。

范數(shù)

范數(shù)<sup>[2]</sup>(Norm)是一個(gè)將向量映射到非負(fù)實(shí)數(shù)的函數(shù),用于衡量向量的大小或長(zhǎng)度。在線性代數(shù)中,范數(shù)是向量空間中的一種度量,常用于衡量向量的大小、距離和相似性。


在向量空間中,最常見的范數(shù)是 Lp 范數(shù),其定義如下:



不難發(fā)現(xiàn),當(dāng) p=2 時(shí),L2 范數(shù)計(jì)算的是該向量與原點(diǎn)之間的歐幾里德距離,故又稱為歐幾里德范數(shù)。我們可以使用 numpy.linalg.norm 來(lái)計(jì)算給定向量的范數(shù)。

余弦相似度

余弦相似度<sup>[3]</sup>(Cosine similarity)是用于衡量?jī)蓚€(gè)向量之間的方向相似性的算法,余弦相似度衡量的是兩個(gè)向量之間的夾角余弦值。它的取值范圍在?1 到 1 之間,值越接近 1 表示兩個(gè)向量的方向越相似,值越接近 ?1 表示兩個(gè)向量的方向越不相似,值為 0 表示兩個(gè)向量之間沒有方向上的相似性。余弦相似度的計(jì)算公式如下:


其中,x?y 表示向量的點(diǎn)積<sup>[4]</sup>,∣x2 表示向量 x 的歐幾里德范數(shù)。


from numpy.linalg import norm
def cosine_similarity(x, y): ?return np.dot(x, y) / (norm(x) * norm(y))
cosine_similarity( ?[1, 1, 1, 1, 0, 0], # 極限科技 ?[0, 0, 1, 1, 0, 0], # 科技)


通過(guò)以上代碼片段,我們可以計(jì)算出“科技”與“極限科技”的余弦相似度為 0.70,同樣地,我們可以計(jì)算出“科技”與其他幾個(gè)單詞的相似度:


極限科技: 0.70科技公司: 0.70公司  : 0.00


通過(guò)余弦相似度計(jì)算得出的結(jié)果與我們的認(rèn)知是一致的,即在詞頻統(tǒng)計(jì)的向量中,“科技”與“公司”沒有相似度,而與“極限科技”和“科技公司”具有相同的相似度。

總結(jié)

本節(jié)介紹了余弦相似度算法,它可以在向量搜索時(shí)用于查找最相似的數(shù)據(jù)。除此之外,還有其它多種用于衡量候選者與待查找向量相似度(即得分)的算法,例如:


  • 內(nèi)積得分(Dot product)

  • L2 范數(shù)得分(L2 norm score)

  • 層次聚類得分(Hierarchical clustering score)

  • 倒排索引得分(Inverted index score)


這些得分算法應(yīng)根據(jù)具體的應(yīng)用場(chǎng)景和需求選擇使用。

參考資料

  • [1]: https://zh.wikipedia.org/wiki/歐幾里得距離

  • [2]: https://zh.wikipedia.org/wiki/范數(shù)

  • [3]: https://zh.wikipedia.org/wiki/余弦相似性

  • [4]: https://zh.wikipedia.org/wiki/點(diǎn)積


向量數(shù)據(jù)庫(kù)的崛起:從矢量搜索到深度學(xué)習(xí) (二)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
康定县| 临洮县| 安福县| 舞阳县| 吕梁市| 城口县| 罗甸县| 石渠县| 贵南县| 平昌县| 临潭县| 芮城县| 长泰县| 南阳市| 黄大仙区| 南宫市| 南川市| 万安县| 夹江县| 边坝县| 普兰店市| 九江县| 岢岚县| 来凤县| 扎鲁特旗| 新密市| 竹北市| 盐津县| 皋兰县| 莆田市| 阿城市| 金平| 勐海县| 上虞市| 锡林郭勒盟| 阳西县| 清河县| 资溪县| 阿克| 金溪县| 舟山市|