应用场景
Embedding技术在语义搜索、文本聚类和推荐系统等领域有着广泛应用。
共 3 篇文章·阅读时间:约30分钟
01语义搜索
语义搜索通过理解查询意图而非简单的关键词匹配,提供更精准的搜索结果。
搜索原理
传统搜索 vs 语义搜索
传统搜索(BM25等)
- 基于关键词匹配
- 无法理解同义词
- 无法理解语义关联
语义搜索(Embedding)
- 基于向量相似度
- 理解语义关系
- 支持自然语言查询
实现方法
步骤1:文档向量化
将所有文档通过Embedding模型转换为向量,存储在向量数据库中。
步骤2:查询向量化
将用户查询转换为向量表示。
注意:需要使用与文档相同的Embedding模型。
步骤3:向量检索
计算查询向量与所有文档向量的相似度,
返回Top-K个最相似的文档。
步骤4:重排序(可选)
使用Cross-Encoder对初始检索结果进行精细排序, 进一步提升相关性。
常用向量数据库
- Milvus:开源,分布式支持
- Pinecone:云服务,易用性好
- Qdrant:Rust实现,性能优秀
- Chroma:轻量级,适合实验
02文本聚类
将语义相似的文本自动归为一类,用于主题发现、用户分群等场景。
聚类方法
K-Means
最经典的聚类算法,将数据划分为K个簇。
优点:简单高效;缺点:需要预先指定K值。
层次聚类(Hierarchical)
构建聚类树,支持发现任意形状的簇。
优点:无需预设K值;缺点:计算复杂度高。
DBSCAN
基于密度的聚类算法,能够发现任意形状的簇。
优点:自动发现簇数;缺点:对参数敏感。
聚类流程
- 文本向量化:使用Sentence Embedding将文本转为向量
- 降维处理:如需可视化,可使用UMAP/t-SNE降维
- 确定K值:使用肘部法则或轮廓系数
- 执行聚类:调用聚类算法
- 结果分析:提取每个簇的关键词,理解簇的主题
应用示例
- 新闻分类:自动将新闻归类到财经、体育、科技等类别
- 用户反馈分析:识别用户反馈的主要问题类型
- 文档组织:自动为大量文档生成分类目录
03推荐系统
基于Embedding的推荐系统通过计算用户和物品的向量相似度实现个性化推荐。
推荐原理
核心思想是将用户和物品都表示为同一向量空间中的向量, 然后通过计算用户向量与物品向量的相似度来进行推荐。
协同过滤的Embedding视角
- 用户向量:由用户历史行为(如点击、购买的物品)聚合得到
- 物品向量:由物品的内容特征(如文本描述)编码得到
- 相似度计算:推荐与用户兴趣最相似的物品
实现方案
内容推荐
仅使用物品的内容特征(如标题、描述)生成Embedding。
适合物品冷启动场景。
协同过滤推荐
通过用户-物品交互矩阵学习Embedding。
能够发现内容相似但表面特征不同的物品。
混合推荐
结合内容特征和协同信号。
同时考虑物品相似性和用户行为模式。
推荐流程
- 离线:为所有物品生成Embedding并索引
- 在线:根据用户历史行为计算用户Embedding
- 在线:计算用户Embedding与物品Embedding的相似度
- 返回Top-K物品,混入业务规则(如多样性)后展示