生成式引擎时代:GEO与GEM融入MMM因果推断框架的实战指南
发布时间:2026/9/13 5:47:39来源:尧图网络
做营销度量这行快十年了说实话过去两年是我见过行业变化最剧烈的时期。以前我们聊MMMMarketing Mix Modeling核心就两件事媒体渠道花出去的钱怎么摊到销售头上以及下一波预算往哪放。但现在不一样了用户的注意力正在大规模迁往ChatGPT、Perplexity这类生成式引擎消费者在买东西之前可能先去问AI“XX品牌和XX品牌哪个好”。这个变化直接冲击了传统MMM的根基也催生了两个新的概念GEOGenerative Engine Optimization生成式引擎优化和GEMGenerative Engine Marketing生成式引擎营销。这篇文章要讲的就是一套把GEO和GEM纳入传统MMM的因果推断框架。简单说它解决的是这么一个问题当用户通过AI生成的内容来了解你的品牌时你怎么量化这笔账怎么把“AI推荐了你”这件事拆成可以优化、可以投放、可以验证ROI的营销动作这个框架适合品牌方的数据科学家、营销分析团队也适合做增长策略的操盘手参考。内容我会尽量讲得落地从概念拆解、因果推断思路到实操建模和踩坑记录都会覆盖。1. 内容整体设计与思路拆解1.1 为什么说传统MMM在生成式搜索时代“失灵”了先回顾一下传统MMM的基本盘。经典的MMM模型通常长这样销售 f(媒体支出, 价格, 促销, 季节性, 宏观经济变量)其中媒体支出会经过两个关键变换adstock广告库存效应也就是广告投放对后续销售的滞后影响和saturation饱和效应也就是边际收益递减。这套逻辑在传统媒体和搜索广告时代是成立的因为用户的决策路径相对固定看到广告 → 产生印象 → 搜索 → 购买。渠道之间的边界清晰曝光和转化之间可以建立相对稳定的统计关系。但生成式引擎彻底打乱了这个链条。用户在传统搜索引擎里看到的是10个蓝色链接品牌可以通过SEO占位也可以通过SEM买位。但在AI对话里用户只得到一个自然语言答案。品牌没有位置可买只能靠被提及。这意味着两件事第一品牌的可见度不再由广告位决定而是由“AI是否愿意推荐你”决定第二传统MMM里的频道变量TV、搜索、社交媒体无法直接覆盖这种新触点因为它们并不对应一个可购买的广告库存而是一个不可控的生成结果。这就是为什么GEO和GEM必须被单独拉出来看。GEO在你无法直接购买的前提下通过内容优化、结构化数据、品牌语义关联等手段提高品牌在AI答案中的被提及率和推荐质量。GEM则是当生成式引擎本身开放了广告投放能力比如在答案中插入赞助内容或推荐链接品牌可以直接出价购买的营销动作。两者虽然都发生在生成式引擎这个媒介里但花钱方式、优化手段、度量逻辑完全不同混在一起建一个模型必然失真。1.2 这套因果推断框架的核心思路从“算总账”到“拆贡献”传统MMM本质上是个相关模型频道支出和销售走势在时间维度上高度相关我们就认为存在因果。这在媒体渠道比较稳定时问题不大但在GEO/GEM这种新触点里相关性会骗人。举个例子某个品牌的GEO优化做得很好在AI答案里被频繁提及同时这个品牌的内容团队刚好发布了一个新品系列。两个动作同时发生销量涨了到底是GEO的功劳还是新品内容本身的功劳如果没有因果推断的框架模型很容易把所有增长归因到GEO上然后你照着这个结果把预算翻倍结果下个季度什么都没发生。所以这套框架的核心思路是把GEO和GEM视为整个因果链条中的两个独立干预节点用因果图DAG把混杂因素、中介变量和结果变量之间的关系画清楚再选择对应的识别策略来估计它们的独立贡献。GEO的因果效应可以理解为“由于品牌在AI答案中的可见度提升而带来的增量销售”GEM的因果效应则是“由于品牌在生成式引擎上的付费曝光而带来的增量销售”。两者之间有交互、有重叠但通过合适的实验设计和计量方法可以拆开算。这套框架的价值不只是学术上的严谨更在于预算决策的可信度。营销分析做到最后所有人都在问同一句话这个钱花得值不值只有因果推断能给出一个足够硬气的答案。2. 核心细节解析与实操要点2.1 变量体系设计GEO、GEM和业务指标之间到底该怎么连因果推断框架的第一步不是建模而是定义变量。你不可能把AI答案里所有的“提及”都当成一个信号那样模型会学出一堆噪声。在我的项目实践里变量体系分四层。第一层是结果变量Outcome通常直接落地到核心业务指标上。如果是电商场景就是GMV、订单量如果是内容平台就是日活、使用时长如果是SaaS就是注册、试用转付费。这一层不需要多解释就是业务的北极星指标。第二层是干预变量Treatment也就是你要评估效果的GEO/GEM动作。GEO侧的干预变量不能简单地用“是否做了优化”来定义它必须体现为可观测的变化。我常用的做法是把GEO干预拆成三个子变量品牌在AI答案中的曝光量即用户提问中包含品牌相关关键词的答案次数、品牌提及的语境质量即答案中提及品牌时是正面推荐还是中性列举、品牌引用的权威信源占比即答案引用官网/权威媒体次数。GEM侧相对简单就是生成式引擎广告的展示量、点击量、消耗金额这部分数据在投放后台可以拿到。第三层是关键中介变量Mediator。为什么传统MMM在新场景下不够用因为它默认媒体支出直接作用于销售但在生成式引擎里不是这样——GEO先影响品牌在AI答案中的可见度和推荐率再通过这个可见度影响用户的认知和转化。这里的“AI答案中的品牌可见度”就是一个关键的中间变量。理解了这条链路你就不会对上万个AI答案做粗暴的去重计数而是去关注可见度结构的变化。第四层是混杂变量Confounder。这是因果推断的灵魂。在评估GEO/GEM效果时最常见的混杂因素是品牌自身的传播热度。品牌如果刚好有个爆款内容在社媒上火了AI生成引擎也会更频繁地提及它同时销量也在涨。这个时候如果你直接算“可见度和销量的相关性”就会把品牌热度的效应算到GEO头上。我的做法是用全网品牌声量指数、自然搜索趋势、社媒互动量这套组合变量做混杂控制它们能吸收掉大部分“品牌自己火起来”带来的干扰。2.2 数据采集的坑AI答案数据不能靠感觉收集GEO效果的度量最困难的部分是数据采集。传统MMM的数据可以靠广告后台和第三方监测解决但AI生成引擎的答案数据有两个硬伤一是不稳定同一个问题今天问和明天问答案可能完全不一样二是非标准界面你不能像抓普通网页一样直接抓取。我用过的数据采集方案有三种各有适用场景。第一种是最轻量的方式用官方API抽样。比如调用OpenAI、Anthropic、Perplexity等平台的API定时批量灌入一组固定的种子问题比如品牌词、品类词、竞品对比词记录模型返回的答案然后做文本解析判断品牌是否被提及、提及位置、情感倾向。这个方案的优点是稳定可控缺点是成本高而且种子问题的覆盖面有限容易漏掉长尾用户提问。第二种是代理用户进行真实会话招募一批真实用户在不告知的情况下让Ta们日常使用AI搜索时截图或录屏后端识别对话内容。这种方式最接近真实场景但成本昂贵、样本量有限适合做小规模验证不适合做日常监测。第三种是浏览器插件采集对技术力量要求高一些适合在执行团队有工程资源的项目中用。数据频率建议控制在每日一次或每周三次。过于频繁的采集会加剧API成本也没必要——生成式引擎的搜索算法、推荐逻辑变动不会那么剧烈太密的数据反而容易带入波动噪声。配合这些搜集来的数据你还要记录采集时间、引擎版本、问题类型这些元数据否则后期做历史回溯时你根本不知道某段数据是在模型老版本还是新版本下生成的。2.3 模型选型为什么贝叶斯结构时间序列更适合这个场景讲到底层的建模方法选择很多人第一反应是“直接上深度学习”。但我的经验是在营销度量的场景里数据量远远不足以支撑深度学习模型的稳定性。你面对的数据可能是周粒度甚至月粒度最多几百个样本点再加上GEO/GEM这类新触点的数据量级更小硬上深度模型很容易过拟合到一个虚假的模式上。更务实的选择是贝叶斯结构时间序列模型BSTS。这个方法的优势体现在三个方面第一它天然支持干预分析。你可以把GEO优化上线当作一个干预点比较干预前后目标变量的反事实走势和实际走势的差异。BSTS会在训练阶段建立媒体、季节、价格等因素对销售的影响规律然后在干预期用这套规律预测“如果没有GEO优化会怎样”实际值和反事实预测值的差距就是GEO的增量贡献。这种思路和因果推断里的合成控制法非常接近落地性很强。第二它自带不确定性估计。传统MMM给出一个点估计比如“电视渠道的ROI是1.8”但贝叶斯方法输出的是一个分布你可以直接回答“电视渠道ROI有90%的置信区间是1.5到2.1”。在预算决策场景里这个信息太重要了——如果一个渠道的ROI区间跨度太大说明结果还不稳定不应该急着加预算。第三它可以灵活加入领域先验。比如你有证据表明GEM投放的decay速度比传统搜索广告慢因为AI答案会在一段时间内持续被索引你就可以在adstock参数上设一个偏慢的先验分布让模型更快收敛到真实的延迟效应上。这是频率学派模型做不到的。2.4 因果识别的三个策略DAG、工具变量和边界约束有了模型还不够你必须在因果识别的层面给模型“松绑”。贝叶斯模型负责拟合而因果假设决定了它在拟合什么。如果因果方向本来就搞反了拟合得越好错误越严重。在GEO/GEM项目里我依赖三个策略。DAG有向无环图的作用是把变量关系画成图让你逼着自己交代清楚GEO → 品牌在AI答案中的可见度 → 销量品牌声量 → AI答案中的可见度品牌声量 → 销量GEM → AI答案中的可见度GEM → 销量。画完这张图哪些变量该进模型、哪些不该进模型、哪些要分别建模就清楚了。只要有一个箭头的方向画反后文全部白搭。工具变量的使用要格外谨慎但在GEO场景里确实有机会。要找到一个变量只能通过品牌可见度影响销售、而不直接决定销售确实不常见。GEM则更容易找到——平台促销活动的投放折扣、广告库存配额、外层创意素材的AB测试分组这些和销售没有直接因果关系但会影响GEM广告的展示量。用它做工具变量能有效削弱广告支出与销售之间的双向因果干扰。前提是工具变量必须通过相关性检验和排他性检验如果你的IV第一阶段的F统计量低于10就别用了。边界约束是我最后补充的一个策略。在GEO和GEM同时运行的情况下两个干预变量不可能完全正交它们是交叉的、相互影响的。因此我在模型里对它们的贡献设定了业务合理的边界GEO的增量效应在成熟品类里不应该超过整体增长的40%GEM在同样的成熟品类里不应该超过整体增长的60%。这些边界不是拍脑袋而是基于行业benchmark和过去几轮实验的观测结果。有了边界模型不会产生单点数据异动被无限放大。3. 实操过程与核心环节实现3.1 埋点与数据管道建设用因果推断框架的前提是数据管道。你不可能等到项目启动之后才开始收集数据那样基线就缺失了。第一步先把种子问题库建起来。按照品牌词和品类词两种粒度划分品牌词是直接涉及你品牌名称的问法品类词是不含品牌名但用户可能被推荐到你品牌的问法。种子问题的数量不需要太夸张150到300个高质量问题足够覆盖主要场景关键是要覆盖核心购买意图的词比如“推荐一款适合油皮的防晒霜”。第二步写采集脚本。下面这个是我在项目早期用的Python脚本框架核心就两步调API拿到答案再把答案简化为品牌提及记录。import openai import pandas as pd client openai.OpenAI(api_keyyour_key) questions pd.read_csv(seed_questions.csv)[question].tolist() records [] for q in questions: resp client.chat.completions.create( modelgpt-4o, messages[{role: user, content: q}], temperature0.2, # 低温控制输出稳定性 max_tokens800 ) answer resp.choices[0].message.content records.append({ question: q, answer: answer, mentioned: brand_name in answer, ts: pd.Timestamp.now() }) time.sleep(1) # 控制频率 df pd.DataFrame(records) df.to_csv(geo_signals.csv, indexFalse)注意temperature要尽量低否则同样的问题每次答案差异太大你会分不清品牌提及率的变化是优化带来的还是随机性带来的。第三步搭好GEM数据表。GEM侧不用自己做埋点投放平台通常提供API把展示量、点击、消费金额按日汇总拉出来即可。要注意的是拉数范围必须包含未投放的日期因为模型需要对照组的“0值”来估计无投放情况下的基线销售。第四步把这些表合并到一张宽表里。以日期为粒度一列是销售/订单量一列是GEO子指标一列是GEM广告指标剩下的是价格、折扣、节日、竞品投放、品牌声量等混杂变量。这张表就是之后模型训练和因果识别的基础。3.2 建模贝叶斯结构时间序列 GEO/GEM变量在数据就绪之后我们开始搭生成式MMM模型。下面这个代码示例用的是PyMC它是目前Python生态里最常用的概率编程库。import pymc as pm import numpy as np def geometric_adstock(x, rate): 几何衰减库存函数rate越高滞后越强 n len(x) out np.zeros(n) for i in range(n): w np.array([rate**j for j in range(i1)][::-1]) out[i] np.dot(x[:i1], w) return out with pm.Model() as geo_mmm_model: # 媒体库存衰减率 geo_decay pm.Beta(geo_decay, alpha2, beta2) gem_decay pm.Beta(gem_decay, alpha2, beta2) # 广告库存变量 geo_stock geometric_adstock(geo_visible_rate.values, geo_decay) gem_stock geometric_adstock(gem_impressions.values, gem_decay) # 饱和效应Hill函数或简单log变换 geo_sat pm.math.log(1 geo_stock * geo_lambda) gem_sat pm.math.log(1 gem_stock * gem_lambda) # 回归系数 beta_geo pm.HalfNormal(beta_geo, sigma1) beta_gem pm.HalfNormal(beta_gem, sigma1) beta_media pm.Normal(beta_media, mu0.5, sigma0.5, shapemedia_channels.shape[1]) # 基线 intercept pm.Normal(intercept, mu100, sigma20) # 销售模型 mu (intercept beta_geo * geo_sat beta_gem * gem_sat pm.math.dot(media_channels, beta_media) beta_trend * trend beta_season * season) # 噪声 sigma pm.HalfNormal(sigma, sigma5) pm.Normal(sales, mumu, sigmasigma, observedsales) trace pm.sample(2000, tune1000, target_accept0.9, random_seed42)这个模型的思路是先把GEO可见度数据和GEM曝光数据通过adstock函数转成广告库存变量再通过log变换模拟饱和效应最后和传统媒体变量一起回归到销售上。跑出来之后最值得看的不是系数本身而是后验区间。补充一个很实在的点不要忘了给可见度、销售这类指标统一量纲。GEO的可见度可能是0到100的指数而销售是几百万的数值后者的尺度过大会直接影响MCMC采样效率。我的做法是全部做标准化让所有变量的均值近零、标准差接近1。3.3 用反事实对比把GEO/GEM贡献彻底拆清模型跑完之后我们还要做一次反事实推演量化GEO和GEM各自的贡献。为什么非要多做这一步因为回归系数表示的是“相关强度”不代表“如果我把GEO预算停掉销售会掉多少”。后者才是业务决策真正需要的信息。具体操作分三条路径。保留全模型预测full model用训练好的后验分布把GEO和GEM的数据都放进实际区间得到销售预测序列。这是有干预的基准场景。去掉GEO再预测把GEO可见度序列全部置为0或者基线水平其他变量不变重新计算销售预测。然后计算“full model预测值减去无GEO预测值”的差值序列这个差值的均值就是GEO的增量贡献。去掉GEM再预测同理只是替换成把GEM曝光量序列置为0。三条路径跑完你会得到三组预测序列包含全部干预的、去掉GEO的、去掉GEM的。组间两两相减就能算出各自的独立贡献。这个贡献不是概数估算而是每一个时间点、每一个样本都有明确对应的数值。更关键的是贝叶斯方法的附赠品不确定性。模型会把贡献估计的不确定性以分布形式呈现在你面前。如果GEO贡献的90%置信区间是-2%到10%那你就得诚实告诉决策层这是一个还不稳定的渠道。如果GEM贡献的90%置信区间是5%到25%且下限不为负那GEM才是当前值得加码的触点。在预算分配的讨论里置信区间比点估计有用得多。3.4 因果验证实验设计模型终究是对真实世界的近似还原所以因果模型搭建完毕之后还需要用实验去验证它的推断是否站得住脚。这是整个项目中我自己非常看重、且往往被团队忽略的一环。我个人的习惯是做一个“切换轮换实验”。假设你有10个市场州或者城市把它们随机分成两组。第一组先启动GEO优化、关闭GEM投放第二组反过来先启动GEM投放、关闭GEO优化。执行2到4周之后两组动作互换再跑同样时长。这样得到的观测数据兼顾了对比效应和对称性两个干预变量的因果贡献都能获得有效样本比单纯的“实验组vs对照组”更容易在比较短的观测周期内见效。实验期间模型的反事实预测依然在跑。等实验结束后把实验结果和模型贡献预测放在一起对比如果两者方向一致、量级接近说明因果框架的置信度比较高如果差异很大就该回到DAG重新审视是否有没控制的混杂变量。坦白说实验不是每次都能做过因为GEO优化的执行必须涉及内容修改和产品发布配合品牌方不可能为了实验频繁开关内容。但哪怕每年只做一次实验对校准整个模型体系的价值也是巨大的。4. 提出可用的报告框架并解决业务中的沟通难题做完模型和实验最后一步是向业务方沟通结论。这一步如果做得不顺手前面所有技术动作都容易白费。我的报告框架一般切四块第一块是“本季度GEO/GEM整体贡献”。用柱状图展示GEO、GEM、传统媒体、基线四块对销售的贡献占比并标出置信区间。让决策层一眼看到新触点在整个盘子里到底占多大分量。第二块是“边际ROI与预算转移建议”。给出一条预算敏感度曲线在当前支出水平下再增加一单位GEO预算可以带来多少增量销售GEM同理。两个渠道的边际ROI交叉点就是最优预算分配点。这块直接用模型的反事实推演来支撑比任何图表都有说服力。第三块是“Bit张图纠正预期”。一张图把“AI答案中品牌提及率的变化”和“销售变化”的时间序列叠在一起让人直观看到两个信号的领先/滞后关系帮助业务方理解GEO优化更像播种而不是收割——它需要时间发酵效果不可能是立竿见影的。第四块是“实验验证结果”。如果做了对照实验就把实验观测值和模型预测值放在同一页报告上标注一致性和偏差。这套设计传递出来的信息是我们不是一个只拿计算结果说事的团队我们认为这个数值必须能被实验检验。最后分享两个沟通中的小经验。第一不要用“相关系数”“后验分布”这种术语决策层听不懂你要换算成他们关心的语言“如果下季度GEM预算增加20%预计带来X%的增量销售置信区间是Y到Z”。第二不要只报喜也报忧当一个渠道的置信区间太宽你要主动说出来并解释原因——比如“GEO数据维度较短需要再积累4到8周的数据才能收敛”。这样反而会提升整个分析团队在管理层眼中的专业度也为下一次模型迭代争取到合理预期和持续投入。5. 常见问题与排查技巧实录5.1 数据稀疏与冷启动问题新触点的历史数据都很短GEO信号可能只有两三个月的日度数据模型很容易学出过拟合的结果。我的处理方式是两个一是降低数据的聚合粒度从日度改成周度牺牲一些样本量来换取稳定性二是在模型里加入domain prior把GEO的响应系数限制在一个合理范围比如参照搜索渠道的响应弹性设先验不让模型自由发挥。如果数据真的少到建模都没意义就退回到更基础的描述性统计加专家判断用对比分析先把方向跑通。别为了建模而建模数据不够时硬建出来的因果推断反而比不建更有误导性。5.2 生成式引擎版本更新导致度量断层这是所有做GEO的人都会遇到的痛点有一天你会发现品牌提及率突然大幅变动不是你的优化起了效果而是AI引擎调用了新模型。这种版本更新带来的断层会造成伪干预信号。初期的排查方式是记录采集时的模型版本和引擎版本并在数据表里加一列version标记。后续可用的手段是采用事件检测工具在时序里找断点并判断该断点是否与模型版本发布时间吻合。一旦确认是版本切换引入的变化就要对版本前后的数据分别建立基线或者直接丢损坏窗口的数据重新建模。5.3 GEO与GEM之间的自相蚕食这个问题的本质是两种干预会抢同一块品牌可见度。GEO把品牌优化进了AI答案但如果用户问问题时答案底部的GEM广告也展示同一品牌用户点击之后到底算谁的功劳我处理这个问题的方式是定义好归因主导权GEM广告的点击一次就算GEM的功劳但GEO对品牌自然提及的贡献不会因为点击了广告而改变。在模型设计层面两个变量都放进模型让统计关系自动去分配贡献而不是人为设定一个层级。5.4 常见问题速查表问题可能原因排查方案GEO系数后验区间跨零数据不足或混杂因素未控制补充品牌声量变量降低聚合频率GEM广告点击率很高但销售贡献不明显广告触达人群和购买人群错配检查投放人群包和转化漏斗的中间环节模型对历史数据拟合很好但预测差存在结构突变如引擎版本更新检查时序断点分版本建模GEO可视度和销售呈负相关反向因果销量下跌导致品牌减少内容投入用工具变量修正反向因果或引入滞后结构两个渠道的贡献总和超过整体增长存在协同效应或重复计算在DAG中增加交互项并加入边界约束5.5 一些真正的避坑建议第一不要用SEO那套关键词排名思维来做GEO。SEO盯的是排名位置而GEO盯的是“AI如何看待你的品牌”。前者是物理位置后者是语义认知优化方法论完全不同。第二准备一个随时更新的提示词实验室。GEO优化需要频繁测试不同提示词下品牌的表现手动一个个复制会疯掉。我用过一个简单的prompt实验管理表每次记录问题、品牌是否出现、推荐理由一段时间后能看出哪些内容调整真正影响了AI的推荐意愿。这个东西非常轻量但日常实测下来它对内容团队的调整方向很有参考价值。第三也是在项目过程中体会最深的一点别高估AI推荐对短期销售的拉动也别低估它对长期品牌资产的积累。AI引擎的答案会被用户复制、分享、二次询问这种内容具有典型的“飞轮效应”。你现在做的GEO优化可能在三个月后才会集中兑现。如果你的老板期望GEO优化后一周内看到销售数据上有明显变化你要在项目启动前就把这个预期校正掉告诉他这个渠道做的是品牌心智的基础建设。个人实操体会把GEO和GEM纳入因果推断框架远不是写几段建模代码那么简单。它逼着你重新思考一个营销组织最底层的度量逻辑当媒介不再只是一个可购买的广告位而是一种可以被生成、被推荐、被讨论的内容生态预算分配和效果评估的基础到底该立在什么之上。我这两年在这个方向反复实践最大的收获是意识到GEO和GEM不是彼此孤立的渠道而是同一套AI内容生态里可以互相喂养的齿轮。GEO积累的品牌语义资产会拉低GEM投放的获客成本GEM带来的点击信号又会反过来强化品牌与品类关键词的语义关联减少后续GEO的边际成本。单独的模型永远看不到这个循环因果框架里把交互项放进去之后这个正反馈才会显现出来。这也是我把框架和手法写下来的原因——希望别的团队不用再从头趟一遍这些坑。
网站建设高端定制企业官网