|
向量匹配原理本质上是:
把“对象 / 文本 / 图片 / 行为”等转成向量(一串数字),再用数学方法衡量向量之间的相似度,从而判断它们“有多像”。
下面我从 直觉 → 数学 → 工程实现 → 应用场景等多层次给大家系统性的讲清楚。
一、直觉层理解
1️⃣ 向量是什么?
向量 = 对一个对象的“特征编码”
比如一句话:
“LangChain可以构建智能体”
会被编码成类似:
[0.12, -0.33, 0.89, ..., 0.07] (768/1536/3072 维)
这串数字在高维空间中的一个点,代表这句话的语义。
2️⃣ 向量匹配在做什么?
比较两个向量在空间中是否“靠得近”
例如: 地图上两个地点距离越近,越相似(比如同一个商圈)
二、数学层原理(核心公式)
1️⃣ 最常用:余弦相似度(Cosine Similarity)
判断两个向量方向是否一致(不关心长度)
结果范围:[-1, 1]
越接近 1 → 越相似
向量搜索里最常见 ⭐
直觉:
两句话是否“在说同一件事”
2️⃣ 欧氏距离(Euclidean Distance)
越小 → 越相似
更关心“数值差距”
常用于图像、物理空间
3️⃣ 点积(Dot Product)
不做归一化
向量长度会影响结果
某些 ANN 引擎(如 Faiss)内部优化使用
三、工程实现流程
🔁 向量匹配完整链路
文本 ↓Embedding模型 ↓向量(高维) ↓存入向量数据库 ↓相似度计算 ↓Top-K 结果
语义搜索示例:
步骤 1:向量化
query_vec = embed("如何使用 DeepAgents")doc_vec = embed("LangChain DeepAgents 使用指南")
步骤 2:计算相似度
cos_sim(query_vec, doc_vec) = 0.91
→ 判定为高度相关
四、为什么“向量能表示语义”?
1️⃣ Embedding模型的训练方式
Embedding模型通过大量数据学习:
例如训练目标:
“猫” 接近 “小猫”
“数据库” 接近 “SQL”
“吃饭” 远离 “微积分”
2️⃣ 高维空间的优势
五、向量匹配的典型应用场景
1️⃣ 语义搜索(Semantic Search)
解决什么问题
向量匹配怎么用
查询 → 向量
文档 → 向量
Top-K相似度检索
典型场景
企业文档搜索
技术文档 / API文档
知识库搜索
👉 “不是找词一样的,而是找意思一样的”
2️⃣ 问答系统 / 知识库问答
本质
常见形态
工程形态
Question → Embedding → Vector Search → LLM 生成答案
3️⃣ 内容推荐系统
匹配对象
典型应用
👉 “你看过的内容,决定你下一条看到什么”
4️⃣ 用户画像 & 相似用户发现
用户行为 → 向量
找相似用户群体
用于精准营销、A/B测试
5️⃣ RAG(检索增强生成)
为什么必须用向量匹配
LLM无法存私有化数据和实时的事件
需要外部知识支撑
典型流程
用户问题 → 向量化 → 向量数据库检索 → Top-K 文档 → LLM 生成回答
应用
⭐ 这是目前向量匹配最重要的应用之一
六、向量匹配的典型误区
❌ 向量匹配 = 精准判断 ✅ 向量匹配 = 概率相关性
所以工程上一定要:
七、一句话总结
向量匹配 = 把“理解”变成“几何距离”
或者
Embedding把语义映射到空间,相似度函数负责在空间中“找最近的”。
欢迎关注「成为一名架构师」,坚持撰写有价值的IT架构、算法、教程相关文章。用DeepAgents几行代码搞定任务规划、工具调用等复杂任务从项目需求出发:LangChain 1.0 和 LangGraph 1.0的选择策略开源Web代码编辑器Monaco Editor介绍如何让大模型会思考、会规划、还能自我决策执行各类工具
|