更新说明(2026年9月23日):本文是历史技术方案记录。当前 MapleBridge 用于采购询价、邀请买家已有的供应商联系人与报价比较,不提供供应商搜索、工厂核验或自动撮合。
B2B 供需匹配为什么不能只靠向量相似度
最近在做一个 B2B 供需匹配系统时,我遇到一个很典型的问题:
LLM 或 embedding 模型有时会把“语义上接近”的内容打成高分,但业务上其实完全不该匹配。
比如:
- 采购 T 恤和 POLO 衫 vs 电子烟代工
- 香薰精油批发 vs 电子烟供应
- 厨具餐具批发 vs 智能戒指 OEM
- 宽泛的电子产品进口需求 vs 某个很窄的美容按摩设备供应商
如果只看文本相似度,模型可能会抓住“消费品”“批发”“OEM”“电子”等词,把它们拉近。
但真实采购里,产品域、产品形态、认证要求、MOQ、目标市场、供应方式都很重要。
我的处理方式
我现在更倾向于把匹配拆成三层:
candidate retrieval -> semantic scoring -> rule guard第一层先召回候选,宁愿多一点。
第二层用 LLM 或 embedding 做语义评分。
第三层必须加规则守门,避免高分误配。
rule guard 检查什么
比较实用的字段包括:
product_domain
product_form
business_model
moq
certification
target_market
logistics_requirement
举个例子:
ifdemand.product_domain=="apparel"andsupply.product_domain=="vape":reject()ifdemand.product_form=="essential_oil"andsupply.product_form=="e_cigarette":reject()ifdemand.business_model=="wholesale"andsupply.business_model=="oem_only":cap_score(7)这里的重点不是规则多复杂,而是要承认:
LLM 负责理解文本,规则层负责控制业务风险。
为什么要保留人工复核
B2B 匹配和普通内容推荐不一样。
一个错误推荐可能带来无效沟通、错误询盘,甚至让买卖双方都误判机会。
所以系统最好保留:
匹配分数
降分原因
拒绝原因
缺失字段
人工审核状态
这样后面调规则时,才知道到底是模型误判、字段缺失,还是业务规则没覆盖。
当前中文采购资源入口(不代表上述历史匹配方案已上线):
https://maplebridge.io/zh/resources