【免费下载链接】oransim
Causal Digital Twin for Marketing at Scale · Predict any marketing decision before you spend a dollar.
Oransim 是一个面向营销决策的开源**因果数字孪生(Causal Digital Twin)**平台,核心口号是"在花一分钱之前,先预测你的投放 ROI"。而它最硬核的部分,是一张由领域专家手工设计的64 节点、117 条边的结构因果模型(SCM)图:从宏观环境、投放决策、算法分发,一直到点击、转化、复购,再到品牌记忆与长期品牌资产,每个节点、每条因果边都写在代码里,任何一条营销预测都能沿着这张图逐层追溯、透明可审计。
本文将带你完整拆解这张 Oransim 64 节点因果图的 8 层结构、"曝光 → 品牌记忆"的关键路径,以及它如何用do()反事实运算支撑投放决策 🎯
为什么营销预测需要一张因果图?
大多数营销预测工具(MMM 营销组合模型、AutoML、甚至 LLM"拍脑袋预测 ROI")给出的都是一个没有推导过程的数字:
- MMM只拟合总营收曲线,无法回答"24 个素材 × 达人 × 预算组合中,哪一组 ROI 最高";
- DMP / 观测型数据平台只汇报"已经发生了什么",无法推演"如果第 3 天换掉 2 个达人会怎样";
- 黑盒模型连 SHAP 都替代不了真正的因果图——归因解释 ≠ 因果路径。
Oransim 的思路是:与其让模型自己"学"出一条隐式因果链,不如把营销领域的因果知识显式建模成一张图,让预测引擎沿着图上的边做推理。这样每个输出数字都可以回答一个问题——"它是怎么算出来的?"
64节点、117条边:8层因果图全景
这张图定义在 backend/oransim/causal/scm.py 中,共8 个层次(L1–L8),完整覆盖"外生环境 → 品牌存量 → 投放决策 → 算法分发 → 用户状态 → 群体话语 → 转化漏斗 → 商业产出"的营销因果链:
| 层 | 名称 | 节点数 | 代表节点 | 说明 |
|---|---|---|---|---|
| L1 | 宏观/外生 | 9 | 天气、节假日、竞品动作、全民舆情 | 你无法控制、但会改变结果的环境变量 |
| L2 | 品牌存量 | 6 | 品牌认知度、品牌回忆、品牌好感、品牌资产 | 长期累积的"隐藏变量" |
| L3 | 投放决策 | 12 | 总预算、平台分配、达人选择、文案/视觉、出价策略 | 唯一可干预(intervenable)的层 |
| L4 | 算法分发 | 8 | ECPM 竞价、曝光分发、曝光频次、自然扩散 | 平台推荐系统如何放大你的投放 |
| L5 | 用户状态 | 5 | 注意力、用户疲劳、情绪、信息理解度 | 用户"此刻"的心理状态 |
| L6 | 群体话语 | 5 | 评论情绪、群聊共识、群体极化、病毒系数 | 社交传播的第二波传播中介 |
| L7 | 漏斗 | 9 | 点击、互动、品牌搜索增量、加购、转化、复购 | 经典转化漏斗 |
| L8 | 产出 | 10 | 直接 GMV、ROAS、ROI、品牌 lift、NPS 变化 | 最终的商业指标 |
几个值得注意的设计点:
- 12 个 L3 决策节点是唯一的干预入口。你想"调预算"、"换达人"、"改文案",本质都是在这 12 个节点上施加
do()干预; - 图是有环的(cyclic)。比如
复购 → 品牌资产 → ECPM竞价 → 下一周期曝光分发这样的长期反馈回路是故意的——真实营销就是这么滚雪球的,强行删边反而失真; - 节点还标注了
time_varying(时变)与computed_by(由哪个模块真实计算,如brand_memory.py、hawkes.py),让"图"和"代码"一一对应。
从曝光到品牌记忆:一条主链的路径追踪
以"曝光 → 点击 → 品牌记忆"这条最有代表性的路径为例,沿着图上的边一步步走:
总预算 → ECPM竞价 → 曝光分发 → 曝光次数 → 广告回忆 → 点击 → 互动 ↓ ↓ 品牌回忆 品牌好感- 曝光侧:
总预算 → ECPM竞价 → 曝光分发,再经算法放大(冷启破圈)与自然扩散(Hawkes 二次曝光)影响实际曝光次数与唯一覆盖; - 点击侧:
曝光次数 → 广告回忆 → 点击,同时受注意力、用户疲劳、人群匹配度、达人信任等多条边共同调制——所以同样的曝光量,点不点得出,图上都有对应的因果解释; - 品牌记忆侧:
广告回忆 → 品牌回忆(ad_recall → brand_recall)、互动 → 品牌好感(engagement → brand_favor),最终汇入 L2 的品牌资产,并在 L8 形成品牌认知 lift / 好感 lift等长期产出——投放的短期 ROI 和长期品牌记忆,第一次被放在同一张图里统一计算。
品牌回忆等长期状态的具体实现位于 backend/oransim/agents/brand_memory.py,图中通过节点的computed_by字段可以直接跳转到对应源码,这也是"可审计"的微观体现:每个图节点都能指到一段真实代码 📖
反事实预测:do() 算子的三步评估
有了图,"如果第 3 天把达人 A 换成 B,ROI 会怎么变?"这类问题就变成了标准的因果干预。Oransim 按 Pearl 三步法(abduction → action → prediction)实现,代码位于 backend/oransim/causal/ 目录:
- Abduction(溯因):在代理层复用基线采样噪声,在图层冻结各节点残差——保证"同一个虚拟世界";
- Action(干预):对
do(kol=swap_A_for_B)这类干预节点固定取值、零化入边; - Prediction(预测):对无环部分按拓扑序前向计算,对反馈环部分用数值迭代求不动点。
由于图里有环(严格说环上的 Pearl 溯因未定义),Oransim 采用了 Bongers et al. 2021 的带环 SCM 推广:把图中 25 个节点的反馈强连通分量(SCC)当作一个整体求不动点,实测 2–3 次迭代即收敛。
如果下游需要严格无环的 DAG(例如教科书式 Pearl 三步、DAG 注意力掩码),OSS 版也提供了时间展开投影dag_dict_unrolled(n_steps=K):n_steps=2时,64 节点 + 117 边的有环图会展开成128 节点 + 220 边的严格 DAG,14 条反馈边通过 DFS 回边分析自动检测、并跨时间片复制(src_t0 → dst_t1)。
透明可审计:把因果图当 API 来查
"可审计"不是一句口号,Oransim 把因果图做成了可查询的接口和可回归的测试:
| 审计手段 | 位置 | 能回答什么 |
|---|---|---|
GET /api/dag | backend/oransim/api_routers/predict.py | 完整图结构 + 哪些节点可干预 |
GET /api/graph/inspect | backend/oransim/api_routers/analysis.py | 图的分层统计、节点元信息(JSON) |
audit_traceSchema | docs/en/schemas/ | 单次预测中"哪些代理、哪些路径、哪些权重"参与了这个数字 |
| 不变量测试 | tests/test_causal_invariants.py | CI 中硬性断言 64 节点 / 117 边与环结构,防止图被悄悄改坏 |
也就是说,/api/predict返回的 14–19 类结构化输出中,audit_trace是专门给"审计"用的:它解释这个 ROI 数字来自哪条因果路径、哪些虚拟用户的行为,而不是一句"模型说如此"。这正是 README 里那句"No 'trust us, it's ML' — every prediction is decomposable"的工程落地 ✅
支撑因果图的"百万人社会"
图上的节点是"变量",而变量背后的取值来自一个100 万规模的可扩展虚拟消费者社会:通过 IPF(迭代比例拟合)按真实中国人口分布(年龄 × 性别 × 地域 × 收入 × 平台)校准生成,每个虚拟用户携带人口属性、兴趣亲和向量、分平台互动先验,其中高显著性个体升级为 LLM 驱动的 Soul 人格,直接"阅读"你的真实素材并给出反应。
因果图回答"路径怎么算",虚拟社会回答"值从哪来",两者组合起来,才是一次完整、可复核的营销因果预测。
60 秒跑起来:亲自查看这张图
git clone https://gitcode.com/gh_mirrors/or/oransim cd oransim && pip install -e '.[dev]' # mock 模式启动后端(无需 API Key) LLM_MODE=mock python -m uvicorn oransim.api:app --port 8001 # 直接拿到 64 节点因果图的 JSON curl http://localhost:8001/api/graph/inspect前端启动后(python -m http.server 8090 --directory frontend),左侧面板可配置素材与预算,下方"反事实沙盘"直接拖动滑杆做do()干预——比如把预算从抖音挪到小红书,立即看到 14 天扩散曲线与原方案的差异:
想深入读代码?按这个顺序
| 想搞懂什么 | 看哪里 |
|---|---|
| 64 节点、117 边的完整定义与 8 层分组 | backend/oransim/causal/scm.py |
| do() 干预、带环不动点求解、CATE 分层效应 | backend/oransim/causal/ |
| 品牌记忆 / 品牌资产的长期状态更新 | backend/oransim/agents/brand_memory.py |
| 14 天干预感知扩散曲线(Hawkes) | backend/oransim/diffusion/ |
| 输出 Schema 与 audit_trace 定义 | docs/en/schemas/ |
| 总体架构设计 | docs/en/architecture.md |
| 中文完整文档 | README.zh-CN.md |
总结:这张图给营销预测带来了什么
- 透明:64 个节点全部人工标注语义(中文标签 + 计算模块),预测路径可逐边解释;
- 可审计:
/api/dag+audit_trace+ CI 不变量测试,图结构与预测归因双重可查; - 可干预:12 个 L3 决策节点对应真实投放动作,
do()反事实让"换达人、调预算、换平台"从拍脑袋变成可计算的假设检验; - 长期视角:曝光 → 品牌记忆 → 品牌资产的反馈环让短期 ROI 与长期品牌资产在同一模型中互相约束。
对营销人而言,这不再是一个"预测黑盒",而是一台可以打开盖子的营销因果数字孪生引擎 🚀
【免费下载链接】oransim
Causal Digital Twin for Marketing at Scale · Predict any marketing decision before you spend a dollar.
相关推荐
揭秘智能配置革命:如何用OpCore-Simplify一键生成完美Hackintosh EFI
揭秘智能配置革命:如何用OpCore Simplify一键生成完美Hackintosh EFI 在Hackintosh配置的复杂世界中,无数开发者曾深陷硬件兼容
开发工具CLItsParticles数字营销:提升品牌曝光的创新手段
tsParticles数字营销:提升品牌曝光的创新手段 在数字营销竞争白热化的今天,静态页面和传统交互已难以吸引用户注意力。tsParticles(TypeSc
前端透明化设计拆解:BrewUI 怎么做到「每次点击都等价于一条 brew 命令」
透明化设计拆解:BrewUI 怎么做到「每次点击都等价于一条 brew 命令」 图形化包管理工具的最大争议从来不是"好不好用",而是"它到底替我干了什么"。大多
桌面应用开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考