人工智能实践(语言智能)
第9讲:GEO

9.3 评估指标与实验设计

掌握 Impression / Citation Metric、位置加权词数、引用忠实性——以及如何设计可重复的 GEO A/B 实验

为什么 GEO 的度量特别棘手

传统 SEO 的度量是标准化的:排名位次、点击率、停留时间都可以直接从 Google Search Console 读取。GEO 的度量则几乎没有标准——Puerto 等人(C-SEO Bench, NeurIPS 2025)明确指出:指标选择本身会改变实质性结论。目前学术界至少同时使用四种不兼容的指标体系,谁是"ground truth"仍无定论。

务必在报告 GEO 实验结果时同时标注三件事:(1) 使用的具体引擎及版本日期;(2) 所采用的指标定义;(3) 查询集的构成。否则数字无法比较、无法复现。

四类评估指标体系

指标 1:Impression Metric(曝光指标,Aggarwal 2024)

Aggarwal 原始论文中提出三种曝光度量:

(1) 词数指标(Word Count):统计来源 SiS_i 中有多少词元 ww 出现在生成答案 yy 中。

WC(Si,y)=wSi1[wy]\text{WC}(S_i, y) = \sum_{w \in S_i} \mathbb{1}[w \in y]

简单但对"何处出现"不敏感。

(2) 位置加权词数(Position-Adjusted Word Count):按词元在 yy 中的位置 pwp_w 的倒数加权。

PAWC(Si,y)=wSiy1pw\text{PAWC}(S_i, y) = \sum_{w \in S_i \cap y} \frac{1}{p_w}

这是 Aggarwal 用来报告 +40% 提升的核心指标——前 50 个词元的权重 ≈ 所有后续词元之和

(3) 主观曝光度(Subjective Impression,LLM-as-Judge):借鉴 G-Eval(Liu et al., 2023),让 GPT-4 从 7 个维度评分:

维度定义
相关性(Relevance)答案是否真的在回答该查询
影响力(Influence)来源内容是否实质影响了答案论调
独特性(Uniqueness)该来源的信息是否是答案独有的
点击概率(Click Prob)用户读完答案后是否可能点击该引用
多样性(Diversity)是否体现了多样视角
主观位置(Subj. Position)引用感知上靠前还是靠后
总体印象(Overall)综合印象分

自偏好警告(self-preference bias):Liu 等人(2023)已指出 LLM 裁判会给 LLM 生成文本打更高分。使用 G-Eval 时,务必人工抽检 ≥ 10% 样本来校准。

指标 2:Citation Metric(引用指标,Liu et al. 2023)

由 Liu、Zhang 和 Liang 在 EMNLP Findings 2023 提出,后成为生产级生成式引擎审计的标准指标。

引用召回率(Citation Recall):生成答案中有多少比例的陈述被引用真正支持

Recall={sy:s 被引用完全支持}{sy}\text{Recall} = \frac{|\{s \in y : s \text{ 被引用完全支持}\}|}{|\{s \in y\}|}

引用精确率(Citation Precision):所引用的来源有多少比例确实支持其对应陈述。

Precision={cy:c 支持其对应陈述 s}{cy}\text{Precision} = \frac{|\{c \in y : c \text{ 支持其对应陈述 } s\}|}{|\{c \in y\}|}

Liu 等人 2023 年在 Bing Chat、NeevaAI、Perplexity、YouChat 上的审计发现:仅 51.5% 的句子被引用完全支持;仅 74.5% 的引用真正支持其陈述。后续研究(Wu et al., Nature Communications 2025)在医学领域发现 50%—90% 回答未被引用完全支持。

指标 3:Faithfulness(忠实性)—— Wallat 等人的关键发现

Wallat 等人(2024/2025,SIGIR ICTIR 2025)发现了一个颠覆性的方法论问题

大约 57% 的 RAG 引用是"事后合理化"(post-rationalized):模型主要凭参数记忆作答,然后附上一个"看起来相关"的引用。

这意味着:仅凭"被引用"来衡量 GEO 成功会严重高估源内容的因果影响。真正的 GEO 评估应该区分:

真实引用 (Grounded)

源内容的词元 / 命题真的进入了答案 → 这是 GEO 真正成功

合理化引用 (Post-rationalized)

答案主要来自参数记忆,引用只是装饰 → 修改源内容对答案几乎无影响

Wallat 的做法是做反事实扰动:把被引来源替换成随机无关文本,如果答案几乎不变,则此引用属于合理化。

指标 4:Attribution Alignment(归属对齐,Choi et al. 2026)

CiteGuard(Choi, Guo, Fung, Wang, ACL 2026)重新定义问题为:LLM 给出的引用是否与人类专家本应附上的参考文献一致

  • ChatGPT-4o 少样本引用判断召回率仅 16%—38%
  • CiteGuard 检索增强代理提升至 65%—68%,接近人类基线 69.2%

这一指标更适用于学术类生成,但对品牌 / 电商类 GEO 意义较小。

GEO A/B 实验设计

现在我们进入实操——如何设计一次严格的 GEO 实验?

实验框架

定义查询集

选择 20—50 个目标查询,覆盖:(a) 你内容的核心主题;(b) 同义查询变体;(c) 长尾查询。记录查询的精确文本。

建立基线

改写之前,对每个查询在目标引擎上发起请求,记录:引用来源列表、你的内容的引用状态(是/否)、词数指标、位置加权词数、引用位次。

实施干预

对同一批内容(或其副本)按一条具体策略改写(如"Cite+Quote+Stats")。关键:不要同时改多条策略,否则无法归因。

后测(保留冷却期)

冷却期 ≥ 7 天(让搜索引擎重新索引)。按相同查询集再次测量。同一查询在同一天内重复测 3 次取平均——LLM 搜索结果非确定性强。

统计检验

配对 t 检验(paired t-test)或 Wilcoxon signed-rank test,报告效应量(Cohen's d)。小样本(< 30 查询)建议使用 bootstrap 置信区间。

实验设计模板

# GEO A/B 实验数据结构
import pandas as pd

experiment = {
    "engine": "秘塔搜索",
    "engine_version_date": "2026-04-22",
    "content_url_pre": "https://myblog.com/post-123",
    "content_url_post": "https://myblog.com/post-123-v2",
    "strategy": "Cite+Quote+Stats",
    "queries": [
        "什么是生成引擎优化",
        "GEO 和 SEO 有什么区别",
        # ... 共 20—50 条
    ],
    "measurements": {
        "pre": [],   # 每条查询的 {cited, wc, pawc, rank} 列表
        "post": [],
    }
}

# 单条查询的原始记录
query_record = {
    "query": "什么是生成引擎优化",
    "timestamp": "2026-04-22T10:00:00",
    "repeat_idx": 1,
    "cited": True,              # 我的内容是否被引用
    "rank": 3,                  # 引用位次(1-based)
    "total_cites": 7,           # 答案总引用数
    "word_count": 42,           # 被引用词数
    "position_weighted_wc": 8.3,
    "answer_full_text": "...",  # 保留完整答案备查
    "all_cited_sources": ["url1", "url2", ...],
}

常见陷阱

陷阱说明对策
非确定性同一 query 多次查询结果不同每条 query 重复 ≥ 3 次取平均
索引延迟改写后引擎未重建索引冷却期 ≥ 7 天
季节/热点漂移新闻热点改变引用生态避开热点时期,延长观察窗口
混淆变量同时改多处难以归因严格单变量;每次只改一条策略
自偏好LLM 裁判偏好 LLM 生成内容人工抽检 ≥ 10%
事后合理化cite 不等于真正被使用做反事实扰动验证

长期效果测量

累积曝光指数

GEO 的效果不是单次查询的引用,而是跨查询、跨时间的累积曝光。建议构建如下综合指标:

Cumulative Impression=qQtTwqPAWC(S,yq,t)rq,t\text{Cumulative Impression} = \sum_{q \in Q} \sum_{t \in T} w_q \cdot \text{PAWC}(S, y_{q,t}) \cdot r_{q,t}

其中:

  • wqw_q:查询 qq 的业务重要性权重
  • rq,tr_{q,t}:时刻 tt 该查询的流量估计
  • TT:观测时段(通常 ≥ 30 天)

跟踪仪表板建议字段

字段类型说明
datedate测量日期
enginestrPerplexity / 秘塔 / ...
query_categorystr按业务领域分组
cite_ratefloat被引率
mean_rankfloat平均引用位次
mean_pawcfloat平均位置加权词数
grounded_ratiofloat真实引用占比(需反事实扰动)
competitor_cite_ratefloat主要竞争内容的被引率

工程实践建议:绝大多数团队低估了数据收集成本。一个完整的 GEO 跟踪系统需要每日自动化:发起查询、解析答案、提取引用、匹配自家 URL、入库。推荐使用无头浏览器(Playwright)+ 解析脚本做起,再逐步引入专用 API。

本节小结

指标家族典型实现适用场景
Impression词数 / 位置加权词数 / G-Eval优化迭代的快速反馈
CitationRecall / Precision生产引擎审计
Faithfulness反事实扰动区分真实引用 vs. 合理化
Attribution AlignmentCiteGuard学术类生成

GEO 评估最重要的一句话不要只报告"被引用了",要报告"被怎么引用、是不是真的被用作证据、在多少 query 上稳定生效"

下一节:我们将把这些指标用到真实案例——学术文章在 Perplexity 上的传播轨迹、品牌方 GEO 正反面实践、中文入口的观察差异。