P paper2skillsPlaybook
AI 路线图 →

时序知识图谱RAG — 双层时序图增量更新与时间窗口检索

Skill-TG-RAG-Temporal-Knowledge-Graph · 08-知识图谱

causalexperimentragknowledge_graphmulti_agent供应链与补货推荐与搜索知识图谱与RAGMAS与智能体工程WF-A 智能补货WF-D 选品扫描WF-I 智能体工程WF-L 内容营销增长
实现难度⭐⭐⭐⭐☆
业务优先级⭐⭐⭐⭐⭐
业务视角
适用角色选品负责人 / 运营负责人 · 数据分析师 · 供应链负责人
适用平台Amazon 品类体系 · 竞品 ASIN 网络分析
什么情况下用品类很多,不清楚品类间的关联,没法做系统性类目扩张规划;竞品矩阵太复杂,品牌/SKU/渠道理不清
成功是什么样的建立品类知识图谱,清晰看到哪些是入口品/引流品/利润品,指导下一步选品扩张方向
业务痛点
品类太多不知道先做哪个竞品关系理不清楚不知道用户买了奶瓶还会买什么类目扩张没有逻辑

1. 解决的问题

静态知识库的过期答案率高达35%,语义相关不等于时间有效——TG-RAG双层时序图在不重建知识库的前提下实现增量时序更新,过期答案率从35%降至13.3%(2025 arXiv:2510.13590)

2. 核心算法逻辑

反直觉洞察:大多数RAG系统将知识库视为静态快照——一次性摄入,永久使用。但跨境电商的知识具有强时效性:关税税率会变(2025年关税调整),平台政策会变(Amazon更新FBA规则),市场数据会过期(2021年的市场份额数据在2025年无效)。反直觉的是:向静态知识库中加入"同样的事实在不同时间是不同事实"的概念,检索准确率可以翻倍(62%→31%的staleanswer率从35%降至13%)。

3. 业务应用场景

- 业务问题:2025年关税政策频繁变化(Section 301 301多次调整),AI助手使用的是静态知识库,频繁给出过时的税率信息,导致成本测算错误 - TG-RAG方案: 1. 知识库存储格式:`(母婴电器HS8543.70, 关税率, 25%, 2023-09-01 to 2025-05-01)` 2. 新政策发布时增量更新:`(母婴电器HS8543.70, 关税率, 30%, 2025-05-01 to present)` 3. 查询"当前税率"→自动使用最新时间窗口检索;查询"历史税率"→使用全局检索 4. 不重建知识库,增量更新在1分钟内完成 - 预期产出:税率信息过期错误率从3

- **业务问题**:选品AI基于2021-2022年的市场数据给出"婴儿监控品类增速35%"的建议(实际2025年已放缓至8%),导致错误备货 - **TG-RAG方案**:为市场规模/增速/竞品格局添加时间戳,查询时自动使用最近12个月数据;全局摘要提供趋势分析;"过时证据"自动降权 - **预期产出**:市场分析使用的数据新鲜度从平均2年→平均3个月,选品成功率提升25%

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • ROI 预估:跨境电商的知识(关税/平台政策/市场数据)每月变化10-20次,静态RAG的stale-answer率35%导致AI助手每月产生约30次错误决策;TG-RAG将stale-answer降至13.3%,减少约65%的错误决策;以每次错误决策损失$500计,月节省$8750,年化$105000;系统成本$8万,ROI≈131%
  • 实施难度:⭐⭐⭐⭐☆(时序数据模型设计需要额外工作;增量更新逻辑有一定复杂度;开源实现可参考)
  • 优先级:⭐⭐⭐⭐⭐(跨境电商的知识具有极强时效性,时序知识管理是所有知识密集型Agent的必备基础设施)
  • 适用规模:所有需要处理时效性信息的知识库(特别是政策/法规/市场/价格类知识)
  • 数据依赖:历史事实数据含时间戳(大多数结构化数据源天然有时间戳)

7. 代码模板

代码块数量:7 · 路径:未检测到

"""
时序知识图谱RAG系统 (TG-RAG)
功能:双层时序图构建 + 增量更新 + 时间窗口检索 + 冲突解决
基于 arXiv:2510.13590 (2025) + LedgerRAG (2026)
"""
import json
from dataclasses import dataclass, field
from typing import List, Dict, Optional, Tuple, Any
from datetime import datetime, timedelta
from collections import defaultdict
import warnings
warnings.filterwarnings('ignore')


@dataclass
class TemporalFact:
    """时序事实三元组"""
    fact_id: str
    subject: str
    relation: str
    value: Any
    valid_from: datetime
    valid_to: Optional[datetime] = None     # None = 持续有效
    source: str = ""
    confidence: float = 1.0

    @property
    def is_current(self) -> bool:
        """判断事实是否当前有效"""
        now = datetime.now()
        if self.valid_to and self.valid_to < now:
            return False
        return self.valid_from <= now

    @property
    def age_days(self) -> float:
        """事实年龄(天)"""
        return (datetime.now() - self.valid_from).days

    def overlaps_window(self, start: datetime, end: datetime) -> bool:
        """检查是否与时间窗口重叠"""
        fact_end = self.valid_to or datetime.max
        return self.valid_from <= end and fact_end >= start


@dataclass
class TimeNode:
    """时间图节点"""
    time_key: str               # 如 '2025-Q4', '2025-11', '2025-W47'
    granularity: str            # 'year', 'quarter', 'month', 'week', 'day'
    start: datetime
    end: datetime
    summary: str = ""           # 该时间段的知识摘要
    fact_ids: List[str] = field(default_factory=list)
    children_keys: List[str] = field(default_factory=list)
    parent_key: Optional[str] = None


class TemporalKnowledgeGraph:
    """

8. 论文来源

  • 2510.13590