【上集】向量數(shù)據(jù)庫(kù)技術(shù)鑒賞

- 引-向量化表示數(shù)據(jù)
- 是什么:比如用(體型大小,毛發(fā)長(zhǎng)短,鼻子長(zhǎng)短)來(lái)表示狗這個(gè)對(duì)象這樣,可以區(qū)分出不同種類的狗狗;如果有些種類難以區(qū)分,還可以繼續(xù)擴(kuò)充向量的維度。世界萬(wàn)物都可以用這種方法表達(dá)。

- 為什么:不僅僅能用于表示和區(qū)分事物,用向量表示事物還有很多美妙的特性,比如概念更接近的事物會(huì)更近,比如在向量表示后 警察 - 小偷 的結(jié)果與 貓 - 老鼠 的結(jié)果相近。

- 怎么用:已經(jīng)有很廣泛的應(yīng)用了,比如把圖片進(jìn)行向量化,就可以根據(jù)搜索相似的向量實(shí)現(xiàn)“以圖搜圖”的功能;類似的把視頻或商品進(jìn)行向量化,也可以實(shí)現(xiàn)相關(guān)推薦的功能;
- 向量化的思路,在自然語(yǔ)言領(lǐng)域的應(yīng)用取得了不錯(cuò)的成績(jī),比如相關(guān)答案的推薦,【詞向量】技術(shù)的使用,也有人使用該方法讓ChatGPT可以處理更長(zhǎng)的上下文。
- 隨著向量化方法表示數(shù)據(jù)大量的應(yīng)用,傳統(tǒng)數(shù)據(jù)庫(kù)已經(jīng)不太適用,所以最近幾年人們開始設(shè)計(jì)專門的向量數(shù)據(jù)庫(kù)
- 向量數(shù)據(jù)庫(kù):與傳統(tǒng)數(shù)據(jù)庫(kù)的區(qū)別:存儲(chǔ)的是向量數(shù)據(jù),查詢操作是找相似的向量。
- 如何搜索相似向量(最近鄰搜索算法)?判斷相似的依據(jù)可以是 向量夾角的大小 或 向量間的歐氏距離。
- 暴力算法:優(yōu)點(diǎn)是搜索質(zhì)量是完美的,缺點(diǎn)是耗時(shí);如果數(shù)據(jù)集小,搜索時(shí)間可以接受,那可以用。
- 優(yōu)化思路:縮小搜索范圍,比如用【聚類算法】(比如k-means),【哈希算法】(位置敏感哈希)等,但不能不能保證是最近鄰的(除了暴搜能保證,其他都不能保證)
- k-means:1 隨機(jī)生成四個(gè)點(diǎn),作為初始的聚類中心點(diǎn),然后根據(jù)與中心點(diǎn)距離的遠(yuǎn)近進(jìn)行分類;2 計(jì)算已有分類的平均點(diǎn),該平均點(diǎn)作為中心點(diǎn)繼續(xù)分類,然后不斷重復(fù)

- 哈希碰撞:由于輸入是固定長(zhǎng)度的數(shù)據(jù),而輸出是固定長(zhǎng)度的哈希值,根據(jù)鴿巢原理,必然會(huì)出現(xiàn)數(shù)據(jù)不同而哈希值相同的情況,這叫碰撞。
- 正常而言,哈希算法要盡可能減少碰撞的發(fā)生,而(對(duì)向量)位置敏感哈希函數(shù)-LSH則相反,盡可能讓位置相近的數(shù)據(jù)發(fā)生碰撞,然后根據(jù)哈希碰撞來(lái)進(jìn)行分組,構(gòu)建方法:隨機(jī)劃出直線分割平面,兩面的點(diǎn)分別增加意味0或1來(lái)表示


--------------------------------
該筆記已整合入個(gè)人知識(shí)體系,詳見 [資料](http://wangc.site/cbrain/share?nodeid=c15cca7dcd8d0e71)
標(biāo)簽: