内容提要
稀疏嵌入比稠密嵌入更适合电商搜索,能精确匹配型号、容量等关键细节。SPLADE利用Transformer结合对数饱和与最大池化,生成约3万维中仅数百非零的稀疏向量,实现词项加权、同义词扩展和噪声抑制,无需人工规则。在亚马逊ESCI数据集上,微调后nDCG@10达0.389,较BM25提升17%。教程涵盖Modal GPU训练、Qdrant评估、难负样本挖掘及产品化。
延伸解读
稀疏嵌入的电商搜索优势
在电商搜索中,用户查询常包含型号、容量等关键细节,如“iPhone 15 Pro Max 256GB”。稠密嵌入虽擅长语义相似,但会模糊这些细节,可能返回128GB版本。稀疏嵌入将文本映射到高维词汇空间,仅少量维度非零,每个维度对应实际词项,可精确匹配关键属性,且结果可解释,便于排查排序原因。
SPLADE的机制与效果
SPLADE通过Transformer结合对数饱和与最大池化,生成稀疏向量,实现词项加权、同义词扩展和噪声抑制。例如,查询“summer dress”可扩展出“sundress”“floral”等词,匹配BM25可能遗漏的商品。在亚马逊ESCI数据集上,微调后nDCG@10达0.389,较BM25提升17%,但需注意该结果基于子样本,非官方基准。
Qdrant对稀疏向量的支持
Qdrant原生支持稀疏向量,可存储SPLADE的任意学习权重,并支持在查询时添加IDF。其混合搜索功能可在一次请求中结合稀疏与稠密向量,通过RRF融合,无需外部重排序器。此外,Qdrant使用倒排索引,检索精确,无近似最近邻的召回损失,适合大规模电商搜索。
教程系列与后续内容
本教程共五部分,第一部分阐述理论,后续将涵盖在Modal上训练SPLADE、使用Qdrant评估与难负样本挖掘、跨领域评估以及产品化CLI工具。最终目标是构建一个优于BM25的电商搜索系统,并提供在HuggingFace上可用的微调模型,方便读者直接尝试或基于自有数据微调。
Q&A
为什么在电商搜索中稀疏嵌入比稠密嵌入更合适?
稠密嵌入会模糊精确匹配,例如搜索“iPhone 15 Pro Max 256GB”可能返回128GB版本,因为语义相似度高。稀疏嵌入能精确匹配型号、容量等关键细节,且检索结果可解释,每个维度对应词汇表中的词,能看出哪些词被赋予高权重。
SPLADE模型是如何生成稀疏向量的?
SPLADE将文本输入Transformer(如DistilBERT)结合掩码语言模型头,然后应用对数饱和(log(1+ReLU(x)))防止单个词项主导,再通过最大池化得到每个词汇项的单一分数,最终输出约3万维中仅数百非零的稀疏向量。
SPLADE相比BM25在查询扩展方面有什么优势?
BM25只能匹配查询和文档中字面出现的词,而SPLADE能自动添加相关词项,例如查询“summer dress”会扩展出“sundress”、“floral”、“cotton”等,从而匹配到BM25会遗漏的产品,无需人工同义词文件或查询重写规则。
微调后的SPLADE在亚马逊ESCI数据集上取得了怎样的效果?
微调后的SPLADE在亚马逊ESCI数据集上nDCG@10达到0.389,相比BM25的0.333提升了17%,也高于现成SPLADE的0.362。该结果基于10,000个产品和2,000个查询的子样本,仅作为比较信号。
为什么选择Qdrant作为稀疏向量存储?
Qdrant原生支持稀疏向量,能存储SPLADE输出的任意学习权重,并支持在查询时添加IDF。它还能在单个请求中结合稀疏和稠密向量进行混合搜索(通过RRF融合),且使用倒排索引实现精确检索,无近似最近邻的召回损失。
这个教程系列的整体结构是怎样的?
教程共5部分:第1部分解释为何稀疏嵌入优于BM25;第2部分在Modal上训练SPLADE;第3部分评估与难负样本挖掘;第4部分讨论专业化与泛化;第5部分从研究到产品,提供开源CLI和仪表板一键运行整个微调流程。