什么是向量?
在数学和计算机科学中,向量是一个有方向和大小的量。在机器学习的语境下,我们通常把一个物品、词语、句子或者图片转换成一个数组,这个数组就是向量。
比如,我们可以用一个三维向量来表示一个点的位置:[1.2, 3.5, 2.1]。在机器学习中,向量的维度往往更高,可能是128维、512维甚至更高。
什么是Embedding?
Embedding(嵌入)是一种将离散数据(如文字、图片)转换为连续向量表示的技术。简单来说,就是把人类能看懂的内容,转换成计算机能"理解"的数字。
Embedding的核心思想是:语义相似的物品,在向量空间中应该靠得更近。
词向量(Word Embedding)
最早的Embedding技术是针对文字的。想想看,计算机怎么理解"国王"和"王后"的关系?怎么理解"巴黎"和"法国"的关系?
传统的方法是把每个词变成一个独热编码(One-Hot Encoding),但这样每个词都是独立的,没有任何语义关联。
词向量技术改变了这一点。通过训练,我们可以让语义相似的词在向量空间中靠得更近:
vector("国王") ≈ vector("皇帝")
vector("巴黎") - vector("法国") ≈ vector("东京") - vector("日本")
常见的Embedding模型
- Word2Vec:Google发布的经典词向量模型
- GloVe:斯坦福发布的全局词向量模型
- BERT:Google的预训练语言模型,生成上下文相关的向量
- Sentence-BERT:专门用于句子级别的语义匹配
向量数据库
随着大语言模型的兴起,向量数据库变得越来越重要。它们专门用于存储和检索高维向量。
常见的向量数据库包括:
- Milvus:开源向量数据库
- Pinecone:云端向量数据库服务
- Weaviate:开源向量搜索引擎
- Qdrant:Rust编写的向量数据库
应用场景
Embedding技术在AI领域有着广泛的应用:
- 语义搜索:不仅仅是关键词匹配,而是理解查询的语义
- 推荐系统:计算物品之间的相似度
- RAG(检索增强生成):在LLM中用于知识检索
- 图像/视频检索:以图搜图
结语
Embedding是现代AI的基石技术之一。理解向量和Embedding的概念,对于学习和使用AI技术非常重要。希望这篇文章能帮助你建立起基本的概念。