1. 概念简介
Embedding(嵌入向量) 是一种把文本、图片、音频等数据转换为计算机能理解的数字向量的技术。通过这种方式,计算机可以使用数学运算来比较它们的相似度,进行分类、聚类、搜索等任务。
2. 为什么需要 Embedding?
- 计算机只能处理数字,而文本、图片等数据是非结构化的,无法直接计算。
- Embedding 让计算机能够理解数据的语义信息,相似的内容在“数学空间”中会更接近。
- 通过向量化,计算机可以高效进行搜索、分类、推荐等操作。
3. Embedding 代表什么?
- 语义信息:相似的文本或图片,其向量表示在数学空间中更接近。
- 高维度特征:通常是 128、256、512 或更高维度的向量,每个维度代表某种特征。
- 可计算性:可以用向量距离(如余弦相似度)来衡量相似性。
4. Embedding 的基本流程(以文本为例)
1. 输入文本
"苹果公司今天发布了新产品。"
"Apple 公司刚刚推出了新品。"
2. 文本预处理
- 去除停用词(如“的”、“了”)
- 分词、词干化(如“发布”变成“发布”)
3. 生成向量(模型编码)
- 使用预训练模型(如
text-embedding-ada-002、BERT、Word2Vec) - 生成固定长度的向量(例如 512 维)
# 例子:假设有个 AI 模型可以生成向量
embedding = model.encode("苹果公司今天发布了新产品。")
print(embedding) # 输出 512 维的向量
结果类似:
[0.12, -0.45, 0.87, ..., -0.23] # 512 维向量
4. 存储和计算
- 存入数据库(如 FAISS、Milvus、Weaviate)
- 进行向量搜索,找到相似内容
5. 计算相似度
- 使用 余弦相似度 计算两个向量的相似度:
from sklearn.metrics.pairwise import cosine_similarity
similarity = cosine_similarity([vector1], [vector2])
print(similarity) # 输出 0-1 之间的相似度
6. 应用场景
- 搜索引擎:用户搜索问题 -> 变成向量 -> 找到最匹配的答案
- 推荐系统:用户喜欢的文章 -> 找相似的文章推荐
- AI 问答:用户提问 -> 语义匹配最佳答案
- 情感分析:分析文本的情绪特征
5. 总结
Embedding 是把文本、图片等数据转换成计算机可处理的数字向量,让 AI 通过数学计算理解语义,实现搜索、推荐、分类等智能任务。它是搜索引擎、推荐系统、AI 问答等核心技术之一。