面向电商的稠密检索与语义排序
Skill-Dense-Retrieval-Ecommerce-Semantic-Search · 08-知识图谱
causalexperimentrecommendationragknowledge_graphpricing客服与VOC推荐与搜索知识图谱与RAG定价与利润WF-C 客服分诊WF-D 选品扫描WF-F 动态定价
实现难度⭐⭐⭐☆☆
业务优先级⭐⭐⭐☆☆
业务视角
适用角色选品负责人 / 运营负责人 · 数据分析师 · 供应链负责人
适用平台Amazon 品类体系 · 竞品 ASIN 网络分析
什么情况下用品类很多,不清楚品类间的关联,没法做系统性类目扩张规划;竞品矩阵太复杂,品牌/SKU/渠道理不清
成功是什么样的建立品类知识图谱,清晰看到哪些是入口品/引流品/利润品,指导下一步选品扩张方向
业务痛点
1. 解决的问题
传统电商搜索基于 BM25/TF-IDF 关键词匹配,无法理解语义。例如用户搜"缓解涨奶 pain",关键词系统只能匹配包含"pain"或"涨奶"字样的商品,无法召回"吸奶器"、"冷敷贴"等语义相关但关键词不匹配的商品。
2. 核心算法逻辑
传统电商搜索基于 BM25/TFIDF 关键词匹配,无法理解语义。例如用户搜"缓解涨奶 pain",关键词系统只能匹配包含"pain"或"涨奶"字样的商品,无法召回"吸奶器"、"冷敷贴"等语义相关但关键词不匹配的商品。
3. 业务应用场景
业务问题: 母婴出海电商的商品搜索系统基于关键词匹配。用户搜索"新生儿防胀气"时,系统只能匹配标题中含"anti-colic"或"gas"的商品,但无法召回"Dr. Brown 奶瓶"(其描述强调"vent system reduces gas")。语义理解缺失导致搜索召回率低、用户体验差。
数据要求: - 商品描述文本(标题 + Bullet Points + 描述) - 结构化属性表:价格、评分、品牌、适用年龄、材质等 - 用户搜索日志(用于微调 embedding 模型)
预期产出: - 语义召回提升: - 结构化过滤:
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
- 数据要求:需要商品描述文本和结构化属性,门槛低
- 技术门槛:中等,核心依赖预训练 embedding 模型和 FAISS
- 工程复杂度:中,四阶段流水线需要模块化设计
- 维护成本:低,embedding 模型更新频率低,索引增量更新即可
- 直接填补技术缺口:GraphRAG 当前仅用字符串匹配做语义相似度,本 Skill 提供真正的稠密向量检索
- 业务价值明确:搜索/推荐是电商核心场景,语义理解直接提升转化
7. 代码模板
代码块数量:6 · 路径:未检测到
"""
面向电商的稠密检索与语义排序系统
基于 arXiv:2601.16492 (Siddiqui et al., 2026)
功能:
1. 双编码器稠密检索(Bi-encoder + FAISS)
2. 结构化约束提取与过滤
3. 交叉编码器重排序(Cross-encoder reranking)
4. 母婴商品语义搜索演示
Author: paper2skills
Date: 2026-05-01
"""
import numpy as np
from typing import List, Dict, Tuple, Optional, Any
from dataclasses import dataclass
from collections import defaultdict
import json
import re
# ============================================================
# 数据模型
# ============================================================
@dataclass
class Product:
"""商品"""
product_id: str
title: str
description: str
price: float
rating: float
brand: str
category: str
attributes: Dict[str, Any] = None
def full_text(self) -> str:
return f"{self.title}. {self.description}"
@dataclass
class SearchQuery:
"""搜索查询"""
raw_query: str
intent: str = ""
constraints: Dict[str, Any] = None
@dataclass
class SearchResult:
"""搜索结果"""
product: Product
dense_score: float
rerank_score: float = 0.0
final_score: float = 0.0
match_reason: str = ""
8. 论文来源
- 2510.14321
- 2601.16492
- 2602.16299
- 2603.25248