介绍:
ASCII可以编码为计算机可以识别的数据,为什么还需要embedding? 计算机只是对“字母”进行ASCII编码,并没有对词汇的“Word”编码。词汇应该是咱们处理自然语言的最基本的元素,而不是字母。那么世界上有千千万万的Word,咱们具体怎么表示呢?就算找出了一种方式来表示每一个Word,那么这些Word之间的关系如何来表示,毕竟有些词汇在某种维度上是比较相似的,有些词汇在某些维度上的距离则是比较远的,那么咱们如何还找到他们的关系呢?
embedding简单来说,它就是把单词或汉字转换成向量的过程。
向量数据库: 为了快速搜索许多向量,我们建议使用向量数据库
文本向量化工具:
Text2vec:https://github.com/shibing624/text2vec
文本相似度比较算法
余弦相似度(Cosine distance)
欧式距离(L2-Squared distance)
点积距离(Dot Product distance)
汉明距离(Hamming distance)
可用的向量数据库选项包括:
Pinecone,一个完全托管的向量数据库
PGVector,一个免费可用的向量数据库
Weaviate,一个开源矢量搜索引擎
Qdrant,一个矢量搜索引擎
Milvus,专为可扩展相似性搜索而构建的矢量数据库
Chroma,一个开源嵌入存储库
Typesense,快速开源矢量搜索引擎
Zilliz,由 Milvus 提供支持的数据基础设施
https://zhuanlan.zhihu.com/p/644701682
https://zhuanlan.zhihu.com/p/647646322