首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >一个污染页面就能带偏推荐:RAG 消费决策的信任边界该重画了

一个污染页面就能带偏推荐:RAG 消费决策的信任边界该重画了

原创
作者头像
李福春
修改2026-08-25 19:48:45
修改2026-08-25 19:48:45
121
举报

当用户问“哪款儿童座椅更安全”时,他以为模型在比较产品;模型却可能只是在复述搜索结果里写得最像答案的页面。更危险的是,页面不需要攻破模型,也不需要控制整个互联网:只要进入靠前检索位,就可能让一个并不存在的商品得到一本正经的推荐。

我是老李。今天不聊“AI 会不会犯错”这种宽泛问题,而是拆开一个正在进入生产环境的具体风险:检索增强型大模型如何被 GEO 内容污染影响,以及做推荐、导购、客服和采购助手的团队,怎样重新设计自己的信任边界。

01、最危险的不是幻觉,而是有出处的错误

传统幻觉通常没有来源,产品可以通过“必须引用证据”来约束它。RAG 出现后,很多团队因此产生了一种安全感:答案既然来自搜索或知识库,就比模型记忆可靠。但污染攻击恰好利用了这条信任链——它先制造一个看似专业、结构完整、关键词齐全的网页,再让检索系统把网页送进上下文,最后由模型替它完成归纳、背书和说服。

FORGE 基准研究了 225 个真实产品、15 个品类、5 类消费场景,以及 12 个商业或开源模型。结果显示,仅污染排名第一的一页,部分设置下就能产生最高 27% 的受骗率;如果前三条检索结果都被替换,最高升至 73.8%。这不是“偶尔答错”,而是攻击剂量越高,推荐行为越容易系统性偏转。

消费推荐尤其敏感。买一本书答错了,损失可能只有几十元;药品、儿童用品、金融服务或企业采购答错了,后果会穿过价格、隐私、安全和合规多个边界。系统显示了引用,并不等于引用对象可信。

02、先把问题说清:GEO 污染攻击到底改了什么

这里的 GEO 指面向生成式引擎的内容优化。正常 GEO 是让真实内容更容易被模型理解;恶意 GEO 则把虚假产品、伪造口碑或倾向性比较写成模型偏好的证据形态。攻击者不必修改模型参数,只需影响外部信息环境。

一条典型链路如下:

代码语言:txt
复制
用户问题
   |
   v
[查询改写] -> [网页检索] -> [重排/截断] -> [上下文拼装]
                    ^                           |
                    |                           v
             污染页进入 Top-K              [LLM 推理]
                                                |
                                                v
                                        虚假商品被“合理推荐”

它改变的不是一句广告文案,而是模型眼中的“可用事实集合”。污染页常同时具备三种特征:标题精准匹配用户意图,正文大量出现规格与比较项,结尾提供像用户评价一样的社会证明。模型会把格式完整误当成事实完整,把多次出现误当成多源共识,甚至在推理中补出“广受好评”等原文没有的结论。

03、为什么加一句“请谨慎判断”挡不住

第一,模型没有稳定先验时更依赖检索。面对熟悉品牌,它还能用参数记忆发现冲突;面对长尾商品、新型号和本地服务,网页几乎就是全部世界。攻击者最喜欢的正是模型“不知道自己不知道”的区域。

第二,排序信号和真实性不是同一件事。相关度、点击率、页面结构和新鲜度可以帮助检索,却不能证明企业、产品或评价真实存在。把相关度分数直接当可信度分数,是架构层面的类型错误。

第三,简单的怀疑提示不稳定。研究中的“保持怀疑”提示并非总能降低受骗率,有时反而让模型生成更复杂的自我辩护。模型可以描述风险,不代表它能识别精心设计的风险。

第四,多页不等于多源。三篇页面可能来自同一内容农场、同一注册主体或互相转载。若系统只计算 URL 数量,就会把攻击者的复制成本误读成共识强度。

04、架构要重画:把来源信任放在生成之前

正确做法不是给最终提示词继续打补丁,而是在检索、证据和决策之间增加独立的信任控制面。

代码语言:txt
复制
                 +----------------------+
查询 ----------> | 候选召回:相关度      |
                 +----------+-----------+
                            |
                            v
                 +----------------------+
                 | 来源治理:身份/历史   |
                 | 域名/所有权/转载关系  |
                 +----------+-----------+
                            |
                            v
                 +----------------------+
                 | 主张账本:事实拆分    |
                 | 支持/冲突/未知        |
                 +----------+-----------+
                            |
                  可信充分?+----否----> 拒答/人工核验
                            |
                           是
                            v
                 +----------------------+
                 | 受约束生成 + 引用映射 |
                 +----------------------+

召回层回答“像不像用户要找的内容”;来源层回答“谁在说”;主张层回答“具体说了什么、是否被独立证据支持”;决策层才回答“能不能推荐”。四个问题必须由不同信号负责,不能用一个向量相似度包办。

对商品实体还要做存在性校验:品牌主体、官方目录、监管备案、主流渠道 SKU、发布时间和售后信息是否相互一致。对评论类主张则要降权,因为“很多用户认为”很难由单页自证。

05、落地做法:给每个推荐建立一份主张账本

不要让模型直接读完网页就写答案。先把候选答案拆成可核验主张,例如“型号 A 支持某标准”“价格位于某区间”“适合三岁以下儿童”。每条主张记录来源、抓取时间、来源类型、独立性、支持关系和冲突关系。

一个最小策略可以这样定义:高风险推荐至少需要一个一方来源确认实体存在,再由两个所有权独立的来源确认关键参数;涉及安全、医疗和金融的主张,只接受监管机构、标准组织或产品正式文档;纯体验性描述必须标记为意见,不能改写成事实。

然后为每条主张计算“证据覆盖率”,而不是只给整篇回答算相关度。若核心主张覆盖不足,系统应输出“目前无法可靠推荐”,并告诉用户缺少什么证据。拒答不是失败,它是可信系统主动暴露边界。

实现时还要保留引用到句子的映射。用户点击引用后,应看到真正支持该句话的段落,而不是一篇主题相关但并未证明结论的长文。引用正确率需要进入自动评测,而不是仅检查“有没有角标”。

06、别只测准确率:建立污染场景的红队基准

离线评测至少包含四组对照:无污染、单个 Top-1 污染、Top-3 部分污染、Top-3 全污染。每组再按知名品牌、长尾品牌、虚构品牌和高风险品类分层。这样才能看见模型先验、污染剂量和场景风险之间的交互。

关键指标包括:虚假产品推荐率、虚假主张采纳率、引用支持率、正确拒答率、合法商品误杀率、独立来源覆盖率。只追求“过滤越多越安全”也会出问题:共识过滤可能把资料稀少但真实的小品牌排除,形成新的平台偏见。

线上监控则应记录候选来源集中度、短期新域名占比、互相高度相似的页面簇、同一产品突然增加的推荐份额,以及模型生成但证据中不存在的社会证明。异常出现时先切换为比较模式或事实列表模式,暂停强推荐。

07、研发团队本周就能执行的七项动作

第一,盘点所有会给出购买、选择或排序结论的入口,不要只看名称里带“推荐”的接口。第二,标出医疗、儿童、金融、企业大额采购等高风险场景。第三,把 Top-K 结果按注册主体和内容相似度去重。第四,新增商品实体存在性检查。第五,把结论拆成主张并绑定证据。第六,为证据不足设计明确拒答文案。第七,在预发布环境注入虚构产品做回归。

还有两条工程纪律:检索快照和最终上下文必须可追溯,方便事故复盘;规则变化必须版本化,避免今天的回答无法用明天的策略重现。若系统使用实时搜索,还应保存内容哈希和抓取时间,因为污染页可能在曝光后迅速修改。

产品经理也要调整目标:推荐转化率不能独立成为北极星指标。至少用“可信推荐覆盖率 × 用户任务完成率”约束它,否则系统会天然偏好更大胆、更确定、也更容易被操纵的答案。

组织上还要指定信任策略的责任人。搜索团队只优化召回,模型团队只优化表达,业务团队只盯转化时,污染风险会落进三者之间的缝隙。建议由安全、搜索和业务共同维护风险分级表:谁能调整来源白名单,谁审批高风险品类,谁在异常时触发降级,谁负责通知受影响用户,都要写进运行手册。一次污染事件的处置目标也不只是下线页面,还包括冻结证据快照、回放受影响请求、评估错误推荐范围并修正评测集。

最后给降级路径做演练:信任服务超时不能默认放行,高风险入口应退化为不带排序的事实检索或直接提示稍后核验;低风险入口则可展示来源,但关闭确定性推荐。故障时采取什么行为,必须在故障发生前决定。

08、真正的边界:模型负责表达,系统负责相信

这次研究最值得记住的,不是 27% 或 73.8% 两个数字,而是一个职责划分:大模型擅长把给定材料组织成自然语言,却不应该独自决定材料是否值得相信。让模型一边读证据、一边验证证据、一边给出商业推荐,相当于让同一个人同时当销售、审计和裁判。

可信推荐系统应把不确定性保留下来。它可以说“官方参数确认了 A,但耐用性只有单一评测来源”;可以提供比较表而不替用户拍板;可以在关键证据冲突时升级人工。这些看起来会降低回答的爽快程度,却会提高长期信任和事故可控性。

安全从来不是在答案末尾贴一句免责声明。安全是让污染内容即使被召回,也无法越过实体校验、来源独立性、主张覆盖率和高风险决策门槛。

09、资料、概念与复盘清单

研究原文:Minghao Luo、Liang Chen,《One Polluted Page Is Enough: Evaluating Web Content Pollution in Generative Recommenders》,arXiv:2606.13610,https://arxiv.org/abs/2606.13610 。FORGE 是论文提出的虚假产品推荐评测基准。

概念上要区分三件事:RAG 解决“把外部信息带给模型”;GEO 解决“让内容更易被生成式引擎发现和使用”;信任治理解决“哪些内容有资格支持哪些结论”。前两者都不能自动替代第三者。

复盘时只问五个问题:虚假实体为何进入候选?来源之间是否真正独立?哪条主张缺少支持?系统为何没有拒答?同类攻击能否通过自动回归被发现?只要其中一个问题没有可观测答案,信任链就仍有盲区。

代码语言:txt
复制
┌────────── RAG 推荐安全的最小闭环 ──────────┐
│ 召回相关内容                               │
│      ↓                                     │
│ 校验实体与来源独立性                       │
│      ↓                                     │
│ 拆分主张,标记支持 / 冲突 / 未知           │
│      ↓                                     │
│ 证据充分才推荐,否则拒答或转人工           │
│      ↓                                     │
│ 用污染样本回归,用线上异常持续修正规则     │
└────────────────────────────────────────────┘

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 01、最危险的不是幻觉,而是有出处的错误
  • 02、先把问题说清:GEO 污染攻击到底改了什么
  • 03、为什么加一句“请谨慎判断”挡不住
  • 04、架构要重画:把来源信任放在生成之前
  • 05、落地做法:给每个推荐建立一份主张账本
  • 06、别只测准确率:建立污染场景的红队基准
  • 07、研发团队本周就能执行的七项动作
  • 08、真正的边界:模型负责表达,系统负责相信
  • 09、资料、概念与复盘清单
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档