向量数据库的学习记录

144 阅读1分钟

概念

向量数据库就是一种将内容(文字、图片等)存储为向量(一组数据,如3维向量表示为[0.76,0.84,0,98]),然后针对向量的存储、查询进行一些算法优化的专门数据库。

应用场景

比如语义识别中,要在数据库中存储一句话,然后给另一句话判断是否和库中的话语义近似。一句话可以由某些语义模型抽取成向量(Word2Vec、fastText、BERT等),拿到另一个句子时,用同样的语义模型转化为向量,比较向量和数据库中的向量和新抽取的向量的相似度来判断是否语义接近。因为向量都是数字,比较好计算他们的相似性,即以二维空间举例,[x1,y1]与[x2,y2]是否相似,则定一个规则是这两个点在二维坐标系下的距离低于某个值即可,这个值就是需要我们给出的判定阈值

普通数据库

理论上普通数据库也能实现上述的应用场景,只是在大数据量和性能上不能达到很好的效果,向量数据库针对这些场景做了优化,它更适合于“模糊匹配”的查询,而普通数据库更适合于“精确匹配”

向量数据库操作

常用的向量数据库有MilvusPineconePGVector等等很多,下面以PGVector的全文搜索为例看一下它的常用操作,有一篇博文写的好直接贴在这里:www.rockdata.net/zh-cn/tutor…