销售助手-推荐系统架构
明白,我先帮你把整个推荐系统 Step-0 → Step-2 的流程画成逻辑流程图(文本化示意图),突出 双来源(系统事件 + 人工规则),Step-1 / Step-2 的协同关系。
明白了,你是希望我把之前的 文本化形象图(五类触发源头) 的“表格”形式画得整齐对齐,不是普通表格,而是保留箭头和流程感的文本图。下面是重新排版后的版本,保证五类来源整齐对齐:
推荐系统五类触发源头文本图(完整版,整齐版)
┌──────────────────────────────┐
│ 推荐系统入口 │
│ (Trigger Event) │
└──────────────────────────────┘
│
┌─────────────────┬─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│ │ │ │ │ │
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 事件驱动 │ │ 人工规则下发 │ │ 模型预测驱动 │ │ 定时/调度驱动 │ │ 外部数据驱动 │
│ Event-Driven │ │ Rule-Driven │ │ Model-Driven │ │ Scheduled │ │ External │
├──────────────┤ ├──────────────┤ ├──────────────┤ ├──────────────┤ ├──────────────┤
│ - 浏览 │ │ - 节日促销 │ │ - 潜力商品预测 │ │ - 周期性推荐 │ │ - 库存低触发 │
│ - 加购物车 │ │ - 新品上线 │ │ - 流失唤回 │ │ - 节日预热 │ │ - 物流延迟 │
│ - 未下单 │ │ - 库存优先 │ │ - 个性化组合 │ │ - 补货提醒 │ │ - 市场趋势 │
│ - 成交/复购 │ │ - VIP 用户 │ │ - 转化率预测 │ │ │ │ - 汇率/价格变化 │
│ - 投诉/拒收 │ │ - 捆绑促销 │ │ │ │ │ │ │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
│ │ │ │ │
└─────────────────┴─────────────────┴─────────────────┴─────────────────┴─────────────────┘
▼
┌───────────────────────┐
│ Step-1: Gate │
│ Eligibility判断 │
│ - 冷却期 / 频控 │
│ - 黑名单 / 白名单约束 │
└───────────────────────┘
│
▼
┌───────────────────────┐
│ Step-2: Recommendation │
│ Strategy │
│ - 候选商品召回 │
│ - 模型评分排序 │
│ - 人工规则加权/过滤 │
└───────────────────────┘
│
▼
┌───────────────────────┐
│ Step-3: CTA Selection │
│ - 买 / 查看 / 折扣 /提醒 │
└───────────────────────┘
│
▼
┌───────────────────────┐
│ Step-4: Action Executor│
│ - WhatsApp/FB发送消息 │
│ - 状态记录 / 埋点 / AB │
└───────────────────────┘
⚡ 说明
- 五类触发源全部展示,每个来源占据整齐的列,垂直对齐
- 统一汇入 Step-1 → Step-2 → Step-3 / Step-4 流程
- 箭头和边界对齐,可直接复制到 PRD 或文档展示
1 Step-0 来源
五大源头加工(事件驱动 + 人工规则 + 潜力预测 + 营销活动 + 运营/策略)
→ 输出 用户信息 + 商品信息 + 触发上下文
触发上下文(Trigger Context)定义
触发上下文是指 推荐触发时的环境信息,它不属于用户属性,也不属于商品本身,而是用来辅助 Step-1 Gate 判断是否触发 和 Step-2 策略选择 的额外信息。
1️⃣ 典型组成
| 维度 | 描述 | 示例 |
|---|---|---|
| 触发事件类型 | 导致推荐系统被调用的事件 | 用户访问网站、加购未下单、发消息咨询、浏览特定品类 |
| 触发时间 / 时间窗口 | 当前时间或相对时间,用于活动或频控判断 | 早上 10 点、双 11 活动期间、用户最近访问时间 |
| 触发渠道 / 平台 | 用户所在渠道或入口 | WhatsApp、Facebook、独立站网页、APP Push |
| 触发策略标识 | 推荐调用的上下文策略标签 | 节日促销、复购提醒、潜力商品唤回、AB Test 流量分组 |
| 触发来源权重 | 用于策略加权,标记是事件驱动、人工规则还是预测触发 | Event: 浏览 → 权重 1,Rule: 活动 → 权重 0.8 |
2️⃣ 作用
-
Step-1 Gate 判断
-
决定用户是否 Eligible,例如:
- 当前时间是否在冷却期
- 渠道是否允许发送消息
- 活动策略是否针对该用户
-
-
Step-2 推荐策略选择
-
决定召回哪些商品或排序策略,例如:
- 节日促销活动 → 优先召回折扣商品
- 潜力商品预测 → Top-N 排序加权
- AB Test → 使用不同策略模型
-
-
日志/埋点
- 记录触发上下文信息,用于效果分析、策略优化和数据训练
2. Step-1(Gate):
- 决定是否值得推荐(用户维度的门控层)
- 结合用户状态、频控、人工规则
step1的过滤和step2过滤区别
你的疑问很有代表性,这也是很多人在设计推荐系统时容易产生的误解。核心问题是 **Step-1 的 Eligibility Gate 为什么要提前,而不是等 Step-2 计算出 Top-N 后再过滤**。我帮你详细分析一下原因:
---
## 1️⃣ Step-1 早期过滤的作用
**Step-1 的职责**:判断“用户是否值得推荐”,包括:
* 冷却期 / 频控
* 黑名单 / 白名单
* 用户状态(活跃/流失/加购未下单)
**作用**:
1. **节约计算资源**
* Step-2 可能涉及模型预测、候选商品召回、加权排序等复杂计算
* 如果用户在 Step-1 就被判定不 Eligible → 不执行 Step-2,节约计算和调用成本
2. **保护用户体验**
* 如果用户在冷却期或黑名单中,即便 Step-2 计算出 Top-N,也不应发送推荐
* 避免无效或反感推荐
3. **明确流程分层**
* Step-1 = 用户维度门控
* Step-2 = 商品维度策略
* 分层清晰,规则更易管理和维护
---
## 2️⃣ 为什么不等 Step-2 再用 Step-1 过滤
| 方式 | 优点 | 缺点 |
| -------------------- | --------------------------------- | ---------------------------------------------- |
| Step-1 先过滤 | 节约 Step-2 计算资源;避免对黑名单用户做多余处理;流程清晰 | 如果 Gate 规则太严格,可能错过潜在转化用户(可通过软规则优化) |
| Step-2 先计算 Top-N 再过滤 | Top-N 排序更精准,因为只过滤真正不合适的候选商品 | 对所有用户都执行模型召回 + 加权排序 → 无谓计算;黑名单用户仍然浪费资源;逻辑层次不清晰 |
> 本质区别:**Step-1 是“是否触发推荐动作”,Step-2 是“推荐什么”**。
> 如果把 Step-1 推迟到 Step-2 后再过滤,虽然 Top-N 可能更精确,但 **效率和用户体验代价太高**。
---
## 3️⃣ 举例说明
**场景**:
* 用户 A:黑名单用户
* 用户 B:普通用户
### 方案 1:Step-1 先过滤
| 用户 | Step-1 结果 | Step-2 执行 | 消息发送 |
| -- | --------- | --------- | ---- |
| A | BLOCK | 不执行 | 无 |
| B | PASS | Top-3 计算 | 推送 |
### 方案 2:Step-2 先计算 Top-N 再过滤
| 用户 | Step-2 Top-N | Step-1 过滤 | 消息发送 |
| -- | ------------ | --------- | ---- |
| A | Top-3 商品 | BLOCK | 无 |
| B | Top-3 商品 | PASS | 推送 |
**对比**:
* 用户 A 的 Top-N 计算完全浪费资源
* 用户 B 的处理相同
* Step-1 先行判断可以 **节省大量计算**
---
## 4️⃣ 核心结论
1. Step-1 Gate 是 **用户维度的门控层**,决定是否触发推荐
2. Step-2 是 **商品维度的策略层**,决定推荐什么 Top-N 商品
3. 先 Step-1 后 Step-2 的顺序是 **效率 + 用户体验 + 逻辑清晰**的最佳实践
4. Step-1 的规则可以相对严格,而 Step-2 的 Top-N 仍可以利用模型和软规则优化排序
3. Step-2(Recommendation Strategy):
- 决定推荐什么商品 / 策略
- 仍受人工规则约束(策略边界、优先级)
- 整合多来源商品
- 事件驱动、规则下发、模型预测、定时调度、外部数据
- Step-2 会把这些不同来源的商品统一到候选集合中
好的,我们把 Step-2 的规则应用和排序逻辑展开成更详细的流程和示意,明确硬约束、软加权、统一排序、策略决策,以及如何生成 Step-3 可用的 Top-N 商品列表。
Step1 过滤(或拒绝)策略
明白了,你希望 Step-1 只保留用户维度的过滤规则,去掉那些属于商品维度的约束(如已下单商品、价格敏感限制)。我帮你重新整理如下:
Step-1 会拒绝的用户类别(只针对用户)
1️⃣ 黑名单用户
-
原因:历史上有不良行为或明确拒收推荐
-
示例:
- 最近投诉过物流/商品质量
- 连续点击“不感兴趣”或关闭推荐消息 ≥ 3 次
- 用户主动退订营销消息
2️⃣ 冷却期/频率限制用户
-
原因:用户在短时间内已经收到过推荐,为避免刷屏
-
示例:
- 同类商品 24 小时内已推送一次 → 冷却期内不再推
- 当日已收到 ≥ N 条推荐消息 → 暂不触发
3️⃣ 不符合行为状态的用户
-
原因:用户当前状态不适合触发推荐动作
-
示例:
- 流失时间过短 → 新用户刚访问无需唤回
- 正在进行退款/退货流程 → 避免推荐触发反感
- 已完成最近的推荐活动 → 近期无需再次触达
4️⃣ 不符合用户画像/标签的用户
-
原因:用户属性或兴趣不符合推荐触发条件
-
示例:
- 活动目标群体外的用户 → 非目标用户不触发
- 国家/地区限制 → 当地法规或渠道限制不推
- 用户分群/AB Test 不在实验组 → 暂不触发
5️⃣ 活动/运营策略排除的用户
-
原因:运营策略控制推荐触发
-
示例:
- 节日活动仅针对部分用户群 → 非目标用户被 BLOCK
- 流量分配策略 → 非测试组用户不触发新策略
⚡ 小结
- Step-1 只关注用户维度,判断 是否值得触发推荐动作
- 不涉及具体商品的过滤(如已下单、价格敏感、高价商品等)
- 输出结果:PASS / BLOCK / DEFER,决定是否进入 Step-2 商品策略处理
⚡ 总结
Step-1 Gate 拒绝的用户 = “此时此刻不值得推荐的用户”,逻辑重点:
- 黑名单 & 拒收 → 明确不触达
- 冷却期/频率限制 → 控制触达频率
- 行为/状态不符 → 避免无效或反感推荐
- 画像/偏好不符 → 用户体验优化
- 运营/活动策略排除 → 精准流量控制
Step-2: Recommendation Strategy 详细逻辑
1️⃣ 候选商品集合形成
Step-2 会接收来自多个来源的候选商品:
| 来源 | 说明 |
|---|---|
| 人工规则 | 节日促销、库存优先、VIP 优先、捆绑促销等 |
| 模型预测 | 潜力商品预测、流失唤回、个性化推荐 |
| 事件触发 | 用户加购、浏览未下单、复购等行为触发 |
| 定时调度 | 周期推荐、节日预热、补货提醒 |
| 外部数据 | 库存低、物流延迟、市场趋势、汇率变化 |
候选集合 = 多来源商品的并集,保证不同来源商品可以统一处理。
2️⃣ 应用硬约束(Hard Constraints / Filtering)
硬约束是必须遵守的规则,违反直接从候选集合剔除:
| 硬约束类型 | 示例 | 处理 |
|---|---|---|
| 用户画像限制 | 价格敏感用户 → 高价商品 | 删除高价 SKU |
| 黑名单 / 拒收用户 | 连续关闭推荐消息 | 剔除所有推荐商品 |
| 渠道 / 地域限制 | 某国家禁止推特定商品 | 删除违规 SKU |
| 库存 / 活动约束 | 库存为 0 或活动已结束 | 剔除商品 |
目的:保证推荐候选符合用户属性和业务规则,不触发负面体验或违规。
3️⃣ 应用软约束(Soft Constraints / Scoring Adjustments)
软约束是加权或评分调整规则,影响排序但不会剔除商品:
| 软约束类型 | 示例 | 分值调整 |
|---|---|---|
| 库存紧张 | SKU 库存 < 10 | +0.2 分 |
| 活动折扣 | 当前商品有促销 | +0.15 分 |
| 用户兴趣 | 用户浏览过同类商品 | +0.1 分 |
| 潜力商品 | 模型预测兴趣高 | +0.05~0.2 分 |
公式示意:
final_score = model_score + Σ(rule_bias)
model_score:模型预测的商品吸引力分rule_bias:软约束加权- 最终分值用于排序
4️⃣ 统一排序(Ranking)
排序逻辑:按最终得分 + 优先级进行 Top-N 排序
- 对每个候选商品计算
final_score - 考虑业务优先级(Business Priority):新品、毛利率高、库存紧张可进一步调优排序
- 按
final_score降序排列 - 取 Top-N 生成最终推荐集
示例:
| SKU | model_score | rule_bias | final_score | 排序说明 |
|---|---|---|---|---|
| A1 | 0.80 | +0.2 | 1.00 | 库存紧张加权,Top-1 |
| B1 | 0.70 | +0.15 | 0.85 | 活动折扣加权,Top-2 |
| A2 | 0.75 | 0 | 0.75 | 普通商品,Top-3 |
| C1 | 0.85 | - | - | 被硬约束剔除 |
5️⃣ 输出 Step-3 CTA 使用列表
Step-2 输出的是 已加权排序且符合约束的候选商品 Top-N,供 Step-3 使用:
| CTA 类型 | 典型策略 |
|---|---|
| 立即购买 | Top-1 高分商品、库存紧张 |
| 查看折扣 | 活动折扣商品、潜力商品 |
| 提醒 / 浏览更多 | Top-N 其他候选商品、低分但仍可推荐 |
Step-3 可以根据用户偏好、沟通渠道、消息类型选择不同 CTA,保证推荐落地可执行。
6️⃣ 总结逻辑链
候选商品集合
│
▼
硬约束过滤(剔除不合规商品)
│
▼
软约束加权(调整分数)
│
▼
统一排序 + 优先级
│
▼
Top-N 推荐列表 → Step-3 CTA 使用
核心思想:Step-2 是 策略决策层,处理已有候选商品集合,保证最终推荐既符合规则,又优化用户转化。
-
Step-3 / Step-4:
- 选 CTA → 执行推荐动作 → 记录埋点
人工推荐来源
当然可以,我把你提到的人工规则来源拆开,给每个模块举几个跨境电商场景下的具体例子,便于你理解和落地。
1️⃣ 白名单(Whitelist)
作用:确保特定用户总是可以被推荐,即使其他条件可能阻止推荐。
例子:
| 类型 | 描述 | 场景示例 |
|---|---|---|
| VIP 用户 | 高价值客户,不受冷却期限制 | LTV > 1000 美元的老客户,总是能收到新品推荐 |
| 活跃用户 | 最近 7 天登录 ≥ 3 次 | 高频访问用户可直接推折扣新品 |
| 测试用户 | 运营 AB Test 的样本 | 指定小部分用户总是收到推荐消息以测试策略效果 |
2️⃣ 黑名单(Blacklist)
作用:禁止向特定用户推荐,避免骚扰或风险。
例子:
| 类型 | 描述 | 场景示例 |
|---|---|---|
| 投诉用户 | 最近有投诉/差评 | 用户最近投诉过包裹延迟,不再推折扣信息 |
| 高频拒收用户 | 多次点击“不感兴趣” | 用户连续 3 次关闭推荐消息 → 禁止推荐一周 |
| 渠道限制用户 | 特定国家或渠道禁止 | FB 用户所在地区不允许推特定促销产品 |
3️⃣ 商业优先级(Business Priority)
作用:决定在有多个候选推荐商品或机会时的优先顺序。
例子:
| 类型 | 描述 | 场景示例 |
|---|---|---|
| 库存紧张产品 | 高优先级推送 | 某SKU库存低于 10 件 → 优先向潜在客户推荐 |
| 高毛利产品 | 提高 ROI | 毛利率 > 50% 的产品 → 优先推荐给意向客户 |
| 新品 | 运营策略 | 新品上市前 7 天 → 高优先级推送给特定客户群 |
4️⃣ 活动规则(Promotion / Campaign Rules)
作用:结合营销活动或折扣策略控制推荐。
例子:
| 类型 | 描述 | 场景示例 |
|---|---|---|
| 满减活动 | 满额可享折扣 | 订单金额 ≥ $200 → 推荐加购凑满减商品 |
| 限时折扣 | 时间窗口内推送 | 双 12 限时折扣期间 → 推荐折扣商品给浏览过该品类的用户 |
| 捆绑促销 | 配套推荐 | 购买 A 产品 → 推荐 B 产品做捆绑套装折扣 |
⚡ 小结
- 白名单 / 黑名单 → “谁可以 / 谁不能收到推荐”
- 商业优先级 → “在候选推荐中谁先推”
- 活动规则 → “按营销策略 / 活动调整推荐行为”
这些人工规则 可以同时影响 Step-1(Gate)和 Step-2(推荐策略):
- Step-1:黑名单 → BLOCK;白名单 → PASS
- Step-2:商业优先级 & 活动规则 → 调整推荐商品顺序或过滤候选集
人工规则和 推荐系统step2融合案例
好的,我给你做一个完整例子,展示 Step-2 默认推荐策略 + 人工规则融合 的逻辑和效果。这个例子会用具体 SKU、用户画像和规则来说明。
场景设定
-
用户:老客,价格敏感,活跃在 WhatsApp
-
用户行为:比价 A vs B,Step-1 已 PASS
-
推荐系统默认规则(Step-2):
- 推荐同类产品(A 类)
- 优先推荐模型预测分高的 Top-3 商品
- 默认排序只考虑模型得分
model_score
-
人工规则:
- 商业优先级:SKU-A 库存 < 10 → +0.2 分
- 活动规则:当前折扣活动 B SKU → +0.15 分
- 用户画像约束:价格敏感 → 禁止推荐高价 SKU-C
Step-2 默认处理(无人工规则)
| SKU | model_score | 备注 |
|---|---|---|
| A1 | 0.80 | 同类高评分 |
| A2 | 0.75 | 同类中等评分 |
| B1 | 0.70 | 不同类,模型预测一般 |
| C1 | 0.85 | 高价 SKU |
默认排序 Top-3:C1 (0.85), A1 (0.80), A2 (0.75)
问题:价格敏感用户可能会看到高价 SKU-C1,不理想
Step-2 + 人工规则融合处理
1️⃣ 过滤候选集(硬约束/用户画像)
- 价格敏感 → 禁止推荐高价 SKU-C1 → 剔除
2️⃣ 软约束加权(评分调整)
| SKU | model_score | rule_bias | final_score | 说明 |
|---|---|---|---|---|
| A1 | 0.80 | +0.2 | 1.00 | 库存紧张加权 |
| A2 | 0.75 | 0 | 0.75 | 无额外规则加权 |
| B1 | 0.70 | +0.15 | 0.85 | 活动折扣加权 |
| C1 | 0.85 | - | - | 被规则剔除 |
3️⃣ 排序 Top-N
- 排序后:A1 (1.00), B1 (0.85), A2 (0.75)
4️⃣ CTA 决策
- A1 → “立即购买 / 查看库存”
- B1 → “查看折扣 / 推荐组合”
- A2 → “提醒 / 浏览更多选项”
⚡ 总结
完全理解你的疑问,你抓住了核心点:Step-2 的“召回”逻辑”和“人工规则加权”之间的关系。我帮你理清这个逻辑。
一、Step-2 默认流程
-
候选集召回(Candidate Recall)
-
Step-2 默认规则会根据模型、同类强化、用户偏好等召回一批商品
-
在你的例子里:
- 用户对比 A vs B
- Step-2 默认召回 A 类同类商品 + B 类商品 + 其他 Top-N 模型推荐
-
-
人工规则的作用
-
硬约束:会在召回后直接过滤掉不合适的商品(比如价格敏感 → 禁止推荐高价 SKU-C)
-
软约束 / 权重调整:会对候选商品打分或加权,影响排序
- 比如库存紧张 SKU-A → +0.2 分
- 活动折扣 SKU-B → +0.15 分
-
注意:软约束不会“召回新商品”,只调整已经召回候选的优先级
-
二、总结
-
Step-2 召回 = 默认规则负责
-
人工规则:
- 硬约束 → 过滤掉不合适候选
- 软约束 → 调整候选权重 / 排序
-
人工规则不会主动增加新候选,它作用于 已有召回商品集合
换句话说,人工规则是 Step-2 的“策略调整层”,不改变召回逻辑,只改变输出排序和可见性。

浙公网安备 33010602011771号