Files
paper-writing/RAG for Spatial Data.md

12 KiB
Raw Permalink Blame History

Mitigating Hallucination in Multi-source Retrieval Augmented Generation for Spatial Data

地理空间推理在人工智能研究中有着长期的作用然而经典的方法——如空间数据库和GIS查询系统——缺乏有效解释用户自然语言问题的能力。另一方面大型语言模型llm表现出强大的语言能力但在空间计算和地理空间接地方面存在困难。最近弥合这一差距的努力主要集中在提示词工程上[18,7]但这些方法严重依赖LLM的内部知识这些知识在泛化和空间推理能力方面仍然有限严重受到地理偏差的影响[5,17,21]并且随着知识的发展而容易过时。一些工作已经探索了空间任务的微调llm[9,18,24]但是得到的模型通常是针对狭窄的应用、受限的数据集或特定的地理域进行定制的。为了填补这一空白研究者将RAG扩展到地理空间信息检索和推理中弥合了空间数据和文本推理之间的差距。

由于空间数据的多样性包括结构化的空间元数据、半结构化的矢量数据Geojson、非结构化数据各种分辨率的遥感影像这些空间RAG系统往往涉及多源空间数据的检索。例如[@yu2025spatialrag],[@amendola2025spatiallyenhanced]研究混合检索,把 Spatial Database 的过滤(如距离筛选)和 Semantic Search文本语义结合起来。[@wen2025rsrag],[@canada2025multimodal]构建数据集和向量空间对齐。目前的空间RAG系统专注于对齐异构模式矢量光栅文本。然而它们忽略了空间数据固有的不一致性和逻辑稀疏性例如过时的POI文本与新的卫星图像与不精确的OSM矢量。这导致了'空间幻觉'其中LLM生成几何上不可能或事实上相互冲突的答案。

最新的研究Multi-source RAG通过多源线图是数据对齐以及多级置信度计算保证准确性。然而Multi-source RAG并不能直接用于多源空间数据原因在于

Multi-source Retrieval Augmented Generation存在的问题没有考虑到空间数据

  1. 拓扑关系的缺失Line Graph 无法编码欧氏空间 MultiRAG 的做法: 它通过实体Entity之间的逻辑边Edge构建线图。它假设关系是离散的A is_a B。 你的场景反例: 用户问“赤道附近的 Dust Devil”。 攻击点 (Theoretical Gap): 空间关系不仅是逻辑连接,更是 连续的拓扑和度量关系 (Continuous Topological & Metric Relations)。 MultiRAG 的图结构无法有效编码 Proximity (邻近性, Tobler's First Law), Direction (方向), 或 Containment (包含)。 如果强行用 Graph 表示空间关系,会遭遇 "Edge Explosion" (边爆炸) 问题因为空间中任何两点都有距离。MultiRAG 的稀疏性优化在这里反而成了劣势,导致空间索引失效。
  2. 多尺度悖论:将“分辨率差异”误判为“信息冲突” MultiRAG 的做法: 通过置信度计算,发现 Source A 和 Source B 内容不一致时,倾向于降低其中一个的权重。 你的场景反例: Source A (CTX, 6m): 显示该区域是“平坦平原”。 Source B (HiRISE, 0.3m): 显示同一坐标点有“大量小型石块”。 攻击点 (The "Scale" Blindness): 这是一个经典的 MAUP (Modifiable Areal Unit Problem) 变种。 在 MultiRAG 的视角下Source A 和 B 的描述在语义上是冲突的(平坦 vs 有石块),它可能会把 Source A 标记为 Hallucination 并过滤掉。 但在你的系统中,这不仅不是幻觉,反而是科研人员最需要的“跨分辨率上下文补全”。 MultiRAG 的 Conflict Resolution Mechanism (冲突消解机制) 在多尺度空间数据上是有害的 (Detrimental)。
  3. 坐标系与实体对齐的模糊性 MultiRAG 的做法: 依赖精确的 Entity Linking实体链接来构建图节点。 你的场景反例: 多源异构数据的坐标偏差Registration Error。 USGS 的 DTM 和 CNSA 的激光高度计数据可能存在几百米的整体偏移。 攻击点 (Fuzzy Spatial Alignment): MultiRAG 假设 Node A (Source 1) 和 Node A' (Source 2) 是同一个实体,只要名字一样。 但在空间域Coordinate is the ID。由于坐标误差MultiRAG 会将本该关联的数据视为无关节点(因为坐标数字不完全匹配),或者将偏移导致的不同地物强行关联。它缺乏一个 "Spatial Fuzzy Alignment Module" (空间模糊对齐模块)。
  4. 时空动态性的忽视:将“地质演变”误判为“过时信息” MultiRAG 的做法: 假设 Knowledge 是相对静态的,或者通过简单的检索时间来排序。 你的场景反例: “祝融号着陆后前三个月”。 Source A (2020年影像): 某沙丘形态。 Source B (2022年影像): 同一位置沙丘移动了5米。 攻击点 (Temporal Rigidity): MultiRAG 缺乏对 Spatio-temporal Semantics (时空语义) 的建模。 它无法理解火星的 "Ls" (Solar Longitude) 周期性。 它会将 Source A 和 B 视为“关于同一地点的冲突描述”试图消除“旧”数据。但对地质学家来说这种差异本身就是答案Change Detection。MultiRAG 会导致模型“看不见”变化,从而产生**“Negative Hallucination” (即漏报真实存在的现象)**。

RAG for Spatial Data存在的问题没有考虑到多源空间数据的可靠性问题

当前RAG for Spatial Data往往针对单一来源[@zhang2025imagerag]:它只处理单一来源(一张大图)。它假设这张图就是真理,不存在“图里显示有房子,但文字报告说房子拆了”这种冲突。它解决的是 Scale (尺度) 问题,不是 Consistency (一致性) 问题。即便涉及了多源、多模态,它们的侧重点也在于"Capability (能力)" —— 即“如何把这些难处理的空间数据(超大图像、异构数据库)塞进 RAG 里让 LLM 读懂”。而并不关注 "Reliability (可靠性)" —— 即“当不同来源的数据打架时,如何防止 LLM 胡说八道”。[@yu2025spatialrag],[@amendola2025spatiallyenhanced]研究Hybrid Retrieval (混合检索)。把 Spatial Database 的过滤(如距离筛选)和 Semantic Search文本语义结合起来。但它们侧重于 Fusion (融合) —— 默认 Spatial Data 和 Text Data 是互补的。如果 Spatial DB 说“这里有路”,但 Text Description 说“路在施工已封闭”,这些框架大概率会产生幻觉或直接忽略冲突。它们没有 Conflict Resolution (冲突消解) 机制。[@wen2025rsrag],[@canada2025multimodal]构建数据集 (Dataset Construction) 和 向量空间对齐 (Alignment)。它们确实是 Multi-source (Image + Text),但主要关注 Representation (表征) —— 如何把图和文映射到同一个向量空间。而无法解决的“稀疏性导致逻辑断层”和“源间冲突”。

目前的空间RAG系统专注于对齐异构模式矢量光栅文本。然而它们忽略了空间数据固有的不一致性和逻辑稀疏性例如过时的POI文本与新的卫星图像与不精确的OSM矢量。这导致了'空间幻觉'其中LLM生成几何上不可能或事实上相互冲突的答案。

我的方法

一、 针对痛点 1拓扑关系的缺失 (Solving Missing Topology)

原论文缺陷分析MultiRAG 使用 Multi-source Line Graph (MLG),其核心是将“实体-关系-实体”的三元组转换为节点。这种结构只能捕捉逻辑连接 (Logical Connectivity)例如“A 是 B 的一部分”。它无法编码欧氏空间 (Euclidean Space) 中的距离、方位和包含关系。对于 LLM 来说,"Near" 和 "Far" 在这种图里只是两个普通的单词标签,失去了度量意义。

我们的解决方案Topo-Semantic Dual Graph (拓扑-语义双层图)我们不使用单一的 Line Graph而是构建一个双层耦合图结构

  1. Layer 1: Semantic Line Graph (逻辑层)继承 MultiRAG 的设计,处理非空间的语义信息(如“祝融号-属于-CNSA”
  2. Layer 2: Metric Hypergraph (度量超图)定义: 这是一个显式的空间索引层。我们将空间离散化(例如使用 H3 六边形网格或 S2 单元),或者利用 Delaunay Triangulation 构建邻接图。创新算子Spatial Edge Encoding (空间边编码)在 MultiRAG 中,两个节点连边是因为它们共享一个实体。在 Geo-MultiRAG 中,我们引入 "Spatial Proximity Edge" (空间邻近边)。如果实体 e_ie_j 在空间投影上的 IoU (Intersection over Union) > 0 或者距离 $dist(e_i, e_j) < \delta$,我们在它们之间建立一条带权重的空间边。

数学形式化 (Formalization for Paper):Let \mathcal{G}_{sem} = (V, E_{sem}) be the semantic graph. We introduce a metric graph \mathcal{G}_{geo} = (V, E_{geo}), where an edge e_{ij} \in E_{geo} exists iff:

\text{SpatialRel}(v_i, v_j) \in \{\text{Contains, Overlaps, Meets, Near}\}

We define a Spatial Encoding Kernel K_{spa}(v_i, v_j) to replace the simple binary connection in MultiRAG:

K_{spa}(v_i, v_j) = \exp(-\frac{\|coord(v_i) - coord(v_j)\|^2}{2\sigma^2}) \cdot \mathbb{I}(\text{Visible})

解释: 这样一来,大模型在检索时,不仅通过语义关联游走,还可以通过“空间核函数”感知到物理上相邻但语义上没直接联系的实体(例如:虽然“沙丘”和“火星车”在语义图没连线,但因为空间距离近,它们的关联被激活)。

二、 针对痛点 2多尺度悖论 (Solving Multi-Scale Paradox)

原论文缺陷分析MultiRAG 使用互信息熵 (Mutual Information Entropy) 来计算置信度 3。公式为$I(v_i, v_j) = \sum \sum p(x,y) \log \frac{p(x,y)}{p(x)p(y)}$。它的假设是:如果两个源的数据“一致”,则置信度高;如果不一致,则置信度低 4。在火星场景下这是致命的 CTX (6m) 说 "Plain" (平原)HiRISE (0.3m) 说 "Rocky" (多石)。这两个描述在文本语义上是不一致的互信息低MultiRAG 会把它们当成冲突 (Hallucination) 从而杀掉其中一个。但实际上,这是多尺度互补 (Multi-scale Complementarity)。

我们的解决方案Resolution-Aware Entailment (分辨率感知蕴含计算)我们提出一个新的置信度计算模块,不再计算“相似性(Similarity)”,而是计算“蕴含性(Entailment)”。引入分辨率因子 (Resolution Factor):为每个数据源 D_k 分配一个分辨率权重 \lambda_k (例如 HiRISE \lambda=1.0, CTX \lambda=0.2)。非对称置信度 (Asymmetric Confidence):传统的 MultiRAG 计算是对称的 $S(v_i, v_j) = S(v_j, v_i)$。我们要改为有向蕴含。定义 Scale-Consistent Scoring Function (尺度一致性评分):如果是同尺度对比,保持 MultiRAG 的做法检查一致性。如果是跨尺度对比Source High vs Source Low我们检查 "Semantic Encompassment" (语义包容)。

数学形式化 (Formalization for Paper):We redefine the confidence score C(v_{high}, v_{low}) not as similarity, but as a conditional probability based on resolution hierarchy:

$$Score(v_{high}, v_{low}) = \begin{cases} \text{Sim}(v_{high}, v_{low}), & \text{if } |\lambda_{high} - \lambda_{low}| < \epsilon \quad (\text{同尺度,查冲突}) \ \text{Entail}(v_{low} \to v_{high}), & \text{if } \lambda_{high} \gg \lambda_{low} \quad (\text{跨尺度,查蕴含}) \end{cases}$$

Where \text{Entail}(\cdot) is a Natural Language Inference (NLI) probability:Does the coarse description (e.g., "Plain") logically permit the existence of the fine description (e.g., "Small Rocks")?"Plain" entails "Small Rocks" ? \rightarrow Yes (High Confidence)."Lake" entails "Dune" ? \rightarrow No (Low Confidence, likely Hallucination).

Impact:通过这种改进,你的模型会说:"Source A says Plain, Source B says Rocks. Since Source B has higher resolution, and plains often contain small rocks, both are kept, and the final answer is enriched: 'A generally flat plain containing localized rocky fields'."