SCP Domain 规则映射系统
可确定性、可扩展的多层 Domain 路由架构
版本:1.0
状态:生产级架构总结
一、目标
设计一套具备以下能力的 Domain 映射系统:
- 支持 100M+ 全局 Attribute
- 支持单 Domain 千万级 Attribute
- 支持几十个 Domain
- 结果完全可重现(deterministic)
- 规则可版本化治理
核心问题:
给定一组字段,如何稳定、可解释、可扩展地确定其所属 Domain?
二、分层架构
最终系统包含五层:
L1 -- Source 映射
L2 -- Schema / 核心特征匹配
L3 -- AC 自动机关键词匹配
L4 -- 字段共现模式(结构规则)
L5 -- Tie-break Embedding(语义平局裁决)
决策方式:
置信度模型 + 加权投票 + 语义兜底
三、L1 -- Source 映射(强绑定层)
source_type → domain
特点:
- O(1) 复杂度
- 优先级最高
- 完全确定性
适用于 SDK / Connector 已声明数据类型的场景。
四、L2 -- Schema / 核心特征匹配
不是完整字段集合 hash。
而是:
核心字段子集匹配。
例如:
实现方式:
- 核心字段集合
- 子集判断
- 或 MinHash 相似度
作用:
快速缩小候选 Domain 范围。
五、L3 -- AC 自动机(关键词层)
作用:
单字段特征识别。
实现:
- Aho-Corasick 自动机
- 字段 → Domain 权重表
- 投票机制
输出:
domain_score_L3
优点:
- 快速
- 可解释
- 成本低
缺点:
- 仅基于单字段特征,判别能力有限
六、L4 -- 字段共现模式(结构层)
核心思想:
高频字段组合 → 高 Domain 纯度
规则不是人工编写,而是从 CanonicalRecord 数据中自动挖掘。
生成规则条件:
- support ≥ 阈值
- lift ≥ 阈值
- purity ≥ 阈值
- 字段数量 ≤ 3
示例:
{account_number, balance} → finance
运行逻辑:
if rule.required_fields ⊆ input_fields: return domain(高置信度)
特点:
- 判别能力强
- 规则数量少
- 可版本化
- 抗误判能力强
七、规则置信度模型 + 加权投票
每层输出:
(domain, confidence_score)
例如:
L3 → commerce (0.55)
L4 → finance (0.82)
最终得分:
FinalScore(domain) = α * L3_score + β * L4_score + γ * Schema_score + δ * Source_score
其中:
α + β + γ + δ = 1
建议:
L4 权重大于 L3。
八、Tie-break Embedding(语义平局裁决)
仅在以下情况触发:
|Top1_score - Top2_score| < epsilon
流程:
- 生成当前字段的 embedding
- 计算与 Domain centroid 的余弦相似度
- 选择最大者
Embedding 不是主分类器,仅用于解决规则层分数接近时的平局问题。
九、完整决策流程
1️⃣ Source 绑定
2️⃣ 核心字段匹配
3️⃣ 强 L4 规则检查
4️⃣ 计算 L3 分数
5️⃣ 计算 L4 置信度
6️⃣ 加权融合
7️⃣ 若分差过小 → 执行 Embedding
8️⃣ 返回最终 Domain
十、可扩展性分析
为何可支持 100M 规模?
- L4 规则数量极少(每 Domain 10--50 条)
- L3 复杂度与字段数成正比
- Embedding 仅在冲突时触发
- Domain 分区避免全局扫描
十一、安全与稳定性
防污染设计:
- L4 规则必须高 purity
- 规则集版本化
- 时间稳定性检测
- Embedding 模型固定版本
- 禁止在线模型依赖
十二、总结
该规则映射系统融合:
- 确定性规则引擎
- 统计共现模式挖掘
- 基于置信度的专家投票
- 语义 Embedding 平局裁决
实现:
- 稳定
- 可扩展
- 可解释
- 可治理升级
- 支持 100M+ Attribute 规模
文档结束