想象你手里摊着一张城市地图:商场、学校、地铁站被整齐地画在纸上,一条条马路把它们连成网络。地图刚印好时精确无比,但三个月后再看呢?那家商场可能已经停业,那条路或许正围挡施工。静态知识图谱就像这张印刷地图——把“谁和谁有关系”固化成永不过期的连线,可真实世界从来不会静止。时序知识图谱则像手机里的实时导航:每一条关系都带着“有效期”标签,记录着“Acme公司在2020至2023年间获得BigL投资”这类的动态事实。于是搜索不再只是“现在谁和谁有关联”,而是“2022年谁与谁发生过关系”“这段关系的热度这几年是怎么走的”。这篇文章会沿着“印刷地图如何进化为实时导航”的故事线,带你读懂时序知识图谱的原理、更新策略与工程挑战。
掌握时序知识图谱,你就能让搜索系统“看见时间”——在金融舆情、医疗指南、新闻检索等强时效场景中,把静态知识库升级为动态决策引擎。这是搜索工程师与知识图谱工程师拉开差距的分水岭技能。
可视化演示
演示时序知识图谱的实体关系时间维度建模、增量更新策略与过期知识处理、时序推理在事件搜索中的应用。
本节配有交互动效(进入视口后自动加载,约 3KB)。
时序知识图谱 实体关系附加时间维度 事实动态演变建模 (h,r,t,τ)∈G_temporal 四元组结构记录事实及其有效时间区间支持时序查询
静态图谱困境
一张印刷地图把所有道路画成永恒存在的直线。但在真实城市里,路会断、桥会拆、店铺会易主。静态知识图谱就是这张“过于理想”的印刷地图:它把世界压缩成一个个三元组——(头实体,关系,尾实体),比如(Acme公司,获得投资,BigL资本)。画成图后,Acme和BigL之间就多了一条永远存在的连线,仿佛这条投资关系永远不会结束。
现实中,这条关系有明确的起止日期。2020年融资到账,2023年投资方套现退出——关系在2023年就结束了。如果只用静态三元组建模,“Acme当前仍然受BigL投资”这个查询就会得到错误答案。这就好比用户问“这条路现在通不通”,印刷地图只会回答“地图上画着呢”。
为了解决这个问题,研究者把时间维度引入知识图谱,提出了四元组结构 (s, r, o, [t_s, t_e]),其中 t_s 是关系成立的起始时刻,t_e 是结束时刻。一个事实只有在 t_s 到 t_e 之间才“有效”。知识图谱从“一幅静态画”变成了一部“有时间轴的电影”。
回到地图的比喻:三元组是“路永远通”,四元组则是给每条路贴上了“允许通行时段”的电子路牌。导航软件之所以不会把你带进废弃小路,是因为它知道每条路的“有效期”。时序知识图谱的核心,正是为知识世界中的每一条关系都装上这样一块电子路牌。
- s, o ∈ Es和o是知识图谱中的实体,可以是人、公司、城市等任何具体事物。
- r ∈ Rr是关系类型,来自预定义的关系集合R,比如“获得投资”“任职于”。
- [t_s, t_e] 区间约束关系有效的时间闭区间,t_s是最早成立时刻,t_e是最晚成立时刻,且t_s不能晚于t_e。
时序事实表示
路过施工路段时,你会看到围挡上写着“2025年3月至6月封闭施工”。这不是一句闲聊,而是给“这条路可以通行”这个事实加上了明确的有效期标签。时序知识图谱干的是同样的事:给每个事实标注“从什么时候开始成立、到什么时候结束”。
实际建模中,时间表达有“时间点”和“时间区间”两种形态。有的关系只关心某个瞬间,比如“某公司于2023年8月1日上市”;有的关系持续一段时间,比如“某高管2021年至2024年任职某公司”。前者是点事件,用单个时间戳表示;后者是区间事件,用[t_s, t_e]表示。两者可以互相转换:一个区间可以压缩成“开始时间点”和“结束时间点”两个点事件。
时间粒度的选择也很关键。新闻搜索需要精确到天甚至小时,而“谁投资了谁”这类企业关系精确到月就够了。为了控制存储开销,通常设置最小时间粒度 τ_min,只有持续时长不小于 τ_min 的事实才被单独建模,过短的事件就合并或丢弃。这就像导航地图只显示“有通行价值的道路”,不会为一条十米长的小巷专门画一条线。
就像导航不会为只持续五分钟的临时管制专门造一条“管制道路”,时序图谱也不会为转瞬即逝的消息浪费节点和边。合适的时间粒度,是“地图既能看到街道,又不会糊成一团”的关键。
- 计算持续时长用结束时刻减去开始时刻,得到事实持续多久。
- 门槛检查只有当持续时间不小于最小粒度 τ_min 时,才把事实存入图里。
时序事实抽取
实时导航之所以“实时”,背后有一群情报采集员在听交管广播、看路况摄像头,把“今早8点,中山西路发生追尾事故,预计两小时恢复”浓缩成一条带时间的路况。时序知识图谱也需要这样的“情报员”:从新闻、公告、维基百科等非结构化文本中,抽取“什么时间、谁和谁、发生了什么事”。
这个环节叫时序事实抽取。一条典型的流水线包含三步:先用命名实体识别找出文本中的实体;再用时间表达式识别找出“2023年”“去年”“上个月”等时间短语;最后做事件抽取,把实体、关系、时间组装成四元组。其中“去年”“三周前”这类相对时间必须经过时间归一化换算成绝对时间才能参与计算,否则“去年获投”永远无法与时间区间对齐。
假设抽取模型对候选事实 f 的置信度为 P_extract(f),时间对齐模型的置信度为 P_align(t),两者相乘得到该事实的整体置信度。低于阈值的候选事实会被丢弃,避免把“听错的新闻”灌进图谱。
就像路况员不仅要听清“事故”两个字,还要确认“是今天早上而不是上周”——时序事实抽取的难点从来不只是“找出来”,更是“放对时间位置”。放错了时间的知识,比没有知识更危险。
- 抽取置信度抽取模型对“实体与关系判断正确”的置信度,比如“Acme真的获得了BigL投资”。
- 对齐置信度时间对齐模型对“该事实确实发生在t时刻”的置信度,比如“获投发生在2020年”。
- 整体置信度两个置信度相乘,任何一个偏低都会拉低最终分数,从而过滤有风险的候选事实。
增量更新策略
印刷地图的更新方式是“重新印一批”,成本高、周期长。实时导航完全不同:它平时只下载“差分更新包”——处理完一条施工信息就更新一条,而不是把整张地图重新下载一遍。知识图谱的更新也面临同样的抉择。
全量重建指每隔一段时间用最新数据重新构建整个图谱,实现简单但成本随规模线性增长。时序场景更常用增量更新,只处理新增、修改、删除的局部事实。增量更新还分成两种节奏:批量刷新,每几小时合并一批变更后写入;流式更新,消息到达即处理,适合股价、突发新闻这类高动态数据。
增量更新的核心是计算“变化量”:用新时刻的图 G_{t+1} 减去旧时刻的图 G_t,得到一组新增和删除的四元组。更新过程还要处理冲突消解——比如新旧数据源对同一关系的有效期判断出现矛盾时,按照数据源时效性评级或人工规则裁决。这就像导航同时收到“前方施工”和“道路已通车”两条矛盾信息,需要一个机制来决定信谁。
用“不重印地图,只贴路况贴纸”的思维去做图谱维护,更新延迟可以从“几天”压缩到“几分钟”。这正是时序知识图谱能在瞬息万变的场景中保持生命力的秘密。
- 相邻快照G_t 与 G_{t+1} 是相邻两个时间点的图谱状态。
- 集合差运算G_{t+1} 中存在而 G_t 中不存在的部分,就是新增或变更的事实集合。
过期知识处理
施工路段总有完工的一天。围挡撤掉,导航里的“封闭施工”提示也会消失,这条路重新恢复为“可通行”。知识图谱里的过期事实同样需要“撤围挡”——但方式很有讲究。
处理过期事实有三种常见策略。物理删除直接把四元组从图中移除,省空间但丢失了历史轨迹;软删除把事实标记为“已失效”,在时间轴上它仍然可见;版本化则保留旧版本快照,供任意时间点回溯查询。多数生产系统采用“软删除+版本化”的组合:日常查询过滤失效事实,历史分析仍能访问完整时间线。
为了让搜索排序感知“新鲜度”,工程上还会给事实计算时效性权重。设事实的结束时刻为 t_e,当前时刻为 t,衰减系数为 λ,那么事实权重随时间的推移呈指数衰减。λ越大,旧事实被遗忘得越快;λ越小,历史知识被保留得越久。搜索引擎可以把这个权重与静态相关性得分融合,实现“既相关又新鲜”的排序。
“撤围挡”不等于“从地图上抹去这条路”。对导航来说,知道“这里以前封过路”能帮助预测下次施工时长;对知识图谱来说,保留历史痕迹,才能既服务当下搜索,又支撑回溯分析。
- 指数衰减结构自然常数 e 让权重平滑地从1向0衰减,不出现跳变。
- 衰减系数 λ控制遗忘速度;λ大则旧事实快速失去权重,λ小则缓慢衰减。
- 权重趋近零当当前时间远大于结束时间时,权重趋近0但不等于0,为历史分析留下线索。
时序推理应用
通勤老司机都有这种经验:周五下午3点打开导航,它提醒“XX路预计拥堵40分钟”。这个预测来自对历史路况的统计——“每个周五下午这条路都堵”。时序知识图谱的推理应用,正是把“谁和谁在何时有关”升级为“这段关系正处于上升还是衰退”。
时序推理体现在两类搜索场景。一类是时序事件搜索,比如“2023年Acme经历了哪些重大事件”——按时间线输出实体在指定窗口内发生的事实;另一类是趋势分析,分析某个关系(如“获得投资”“高管离职”)在不同时间窗内的出现频率变化,回答“这类事件是变多了还是变少了”。
趋势可以用“关系频率变化率”来度量:统计关系 r 在 t1、t2 两个时间窗内出现的有效事实数量 N1、N2,用数量差除以时间差,得到可比较的趋势指标。大于0表示热度上升,小于0表示衰退。搜索排序时,可以把趋势指标与时效性权重融合——一个正在升温的事件,其相关的历史事实也会被排得更靠前。
导航预测拥堵并不是玄学,而是把“这条路过去每个周五都堵”的统计规律讲给用户听。时序知识图谱的趋势分析同理——当用户问“最近这类事件是不是变多了”,图谱把时间维度上的变化娓娓道来,搜索就从“查档案”进化成了“看风向”。
- 有效事实计数N_{t_1} 与 N_{t_2} 是关系 (s, r, o) 在 t1、t2 两个时刻的有效事实数量。
- 数量差t2 比 t1 多的有效事实数,代表该关系在这段时间内新增的价值。
- 归一化变化率除以时间差,把绝对增长量折算成“单位时间的变化率”,使不同时长的窗口可以横向比较。
构建维护挑战
实时导航的流畅体验背后,是遍布大街小巷的采集车、传感器和人工巡检团队——每一张“活地图”都在持续烧钱。时序知识图谱的构建与维护,同样是一笔需要精打细算的账。
构建成本主要来自三块:数据采集成本,包括订阅新闻流、企业公告、数据库许可;标注成本,让标注员或规则引擎确认“事实+时间”是否正确;更新维护成本,包括硬件资源、定时任务、流式管道的持续运行。其中“时间校验”比普通实体标注昂贵得多,因为人必须读原始文本才能确认时间对齐是否正确。
更麻烦的是冷启动问题:早期阶段没有历史积累,无法回填完整时间线。同时,更新频率与质量存在权衡——更新越快,噪声越多;更新越慢,时效性越差。工程上通常对“高动态关系”(如股价、人事变动)用高频流式更新,对“低动态关系”(如公司注册地)用低频批量刷新。此外,增量更新虽然比全量重建省资源,却需要更复杂的冲突消解和版本管理逻辑,这些隐形成本常被低估。
印刷地图的利润来自“一次印刷,多次售卖”;实时导航的竞争力来自“持续运营,实时更新”。时序知识图谱的构建者必须接受一个现实:它不是一次性项目,而是需要长期供血的活体系统。谁能在成本与时效之间找到平衡,谁才真正握有“活地图”的钥匙。
- 采集成本获取多源数据的订阅、爬取与接入成本。
- 标注成本时间标注与事实校验的人工或模型成本。
- 更新维护成本高频增量更新、存储版本与运维监控的持续投入。
AI 应用场景
金融投研事件追踪
阶段:数据采集与知识更新(增量更新 + 时序推理)
解决的问题:传统投研系统用静态知识图谱回答“谁和谁有关”,但投资人真正关心的是“这段关系何时建立、何时结束、当前是否仍有效”。并购传闻、股权质押、高管离职这类事件的价值几乎完全由时间决定。时序知识图谱按时间轴组织事件,让“关系变化”变得可搜索、可排序。
具体案例:某券商智能投研平台把上市公司公告、监管处罚、股权变动等数据建成时序图谱。分析师搜索“某公司2023年重大事件”,系统返回一条结构化时间线:“2023-03 获得B轮融资、2023-08 创始人卸任、2023-11 被监管问询”。系统还能对“融资事件”做趋势统计,提示分析师该行业融资热度正在上升。这就像导航不仅告诉你“这条路现在堵不堵”,还告诉你“这条路在这个时段越来越堵”。
医学知识库的时效性维护
阶段:过期知识处理与软删除
解决的问题:医学指南和药物禁忌更新频繁,一个“推荐使用”的关系可能在一年后变成“慎用”甚至“禁用”。静态图谱会继续展示过时的用药建议,造成医疗风险。时序知识图谱为每条医学事实标注“指南版本有效期”,查询时自动过滤过期版本。
具体案例:某医院临床决策支持系统把“某药对某适应证的有效性”建成带生效日期的四元组。当新指南发布,系统用软删除把旧关系标记为失效,再新增“更新后的推荐关系”。医生搜索旧方案时,系统会提示“该推荐已于2024年3月被替代”,同时展示替代方案的生效时间。这就像导航收到“老路改道”的通知后,既在路线规划中避开老路,又保留“老路曾经怎么走”的历史记录。
Python 演示
import math class TemporalKnowledgeGraph: """极简时序知识图谱:支持带有效期的四元组存储与查询。""" def __init__(self): self.facts = [] # 每个元素: [s, r, o, t_start, t_end] self.entities = set() def add_fact(self, s, r, o, t_start, t_end=None): """添加带时间区间的事实,t_end 为空表示永不过期。""" if t_end is None: t_end = float("inf") self.facts.append([s, r, o, t_start, t_end]) self.entities.add(s) self.entities.add(o) def expire_fact(self, s, r, o, t_end): """软删除:将指定事实的结束时间更新为 t_end。""" for f in self.facts: if f[0] == s and f[1] == r and f[2] == o: f[4] = t_end def query_at(self, t, subject=None, rel=None, obj=None): """查询 t 时刻所有有效的事实,可限定主体/关系/客体。""" result = [] for f in self.facts: if not (f[3] <= t <= f[4]): continue if subject is not None and f[0] != subject: continue if rel is not None and f[1] != rel: continue if obj is not None and f[2] != obj: continue result.append((f[0], f[1], f[2], f[3], f[4])) return result def count_at(self, t, rel): """统计 t 时刻关系 rel 下有效事实的数量。""" return sum(1 for f in self.facts if f[1] == rel and f[3] <= t <= f[4]) def trend(self, rel, t1, t2): """计算关系 rel 在 [t1, t2] 时间窗内的变化趋势。""" count_t1 = self.count_at(t1, rel) count_t2 = self.count_at(t2, rel) return ((count_t2 - count_t1) / max(float(t2 - t1), 1.0)) def weight_at(self, f, t, lam=0.2): """计算事实 f 在 t 时刻的时效性权重(仅对已过期事实衰减)。""" if t <= f[3]: return 1.0 if f[4] == float("inf"): return 1.0 if t <= f[4]: return 1.0 dt = t - f[4] return math.exp(-lam * dt) def main(): kg = TemporalKnowledgeGraph() kg.add_fact("Acme", "funded_by", "BigL", 2020, 2023) kg.add_fact("Exe1", "works_at", "Acme", 2021, 2024) kg.add_fact("Med1", "reports_on", "Acme", 2022, 2025) kg.add_fact("Acme", "located_in", "Shanghai", 2018, None) print("== 2022 年有效事实 ==") for fact in kg.query_at(2022): print(fact) kg.expire_fact("Med1", "reports_on", "Acme", 2023) print("\n== 2024 年仍有报道关系吗?==") print(len(kg.query_at(2024, rel="reports_on")), "条") print("\n== funded_by 趋势(2020->2024) ==") print("Trend =", kg.trend("funded_by", 2020, 2024)) if __name__ == "__main__": main()
self.facts.append([s, r, o, t_start, t_end])每个事实以列表存储,结束时间后续可被软删除修改if not (f[3] <= t <= f[4])时间区间判断,只有落在有效期内的四元组才进入查询结果for f in self.facts: if f[0] == s and f[1] == r and f[2] == o匹配指定事实,将结束时间改为新值,完成软删除return sum(1 for f in self.facts if f[1] == rel and f[3] <= t <= f[4])统计某时刻某关系下的有效事实数量(count_t2 - count_t1) / max(float(t2 - t1), 1.0)数量差除以时间差,得到关系热度的变化趋势
常见误区
误区把时间当成普通属性塞进三元组,比如("Acme“, “获投”, ”BigL", "2022"),查询时做字符串匹配就够了。反正时间也是数据,存进属性表里不就行了?
正解时间应当参与图的结构语义,支持区间查询和时态推理。字符串标签无法回答“2023年中旬这条关系是否有效”这类范围判断问题。就像导航不会把“施工中”当景点标注在地图上,而是作为道路属性的有效期来建模。
为何常见:初学RDF时习惯把一切信息编码为属性值,忽略了时间在时序图谱中是“一等公民”,需要专门的区间表示和索引结构。
误区为了保证数据新鲜,网站每天晚上把整个知识图谱重新构建一遍,这不就是增量更新吗?反正结果都是“最新数据”。
正解全量重建的成本随图规模线性增长,大型图谱每天新增上亿条事实,全量重建需要数小时。真正的增量更新只处理变化的部分,像导航地图只下载差分数据包;更新延迟从“天”压缩到“分钟”,代价是需要更复杂的变更捕获和冲突消解。
为何常见:从批处理思维迁移到流式更新有学习曲线,全量重建实现最简单、最不容易出错,所以被当作默认方案。
误区事实一旦过期就该从图里彻底删除,节省存储空间,还能避免旧数据干扰搜索。留着过期数据只会让图谱越来越脏。
正解直接删除会丢失历史轨迹,导致“当时发生了什么”这类回溯性问题无法回答。正确做法是软删除(标记失效时间),让图谱保留完整时间线,检索时可以过滤过期事实。这就像导航保留已施工路段的历史数据,用于回答“上个月这里为什么绕行”。
为何常见:受传统数据库 DELETE 操作的影响,认为“清理 = 删除记录”。但知识图谱更强调语义完整性,历史本身就是一种有价值的信息资产。
误区时序推理这么高级,肯定得用复杂的深度学习模型,比如时序图神经网络或大模型提示工程,否则做不出效果。
正解很多实际场景用区间查询、时间衰减打分和简单趋势统计就足够。做一个“某关系在某时间窗内出现了多少次”的统计查询,用几个减法就能完成。就像一个导航用加减法算平均车速就能预测路况,不必上大模型。
为何常见:AI 技术文章容易把效果归功于模型复杂度,让初学者误以为“不堆模型就不专业”,忽视了轻量算法在实际工程中的可靠性和可解释性。
面试题
Q1. 时序知识图谱与静态知识图谱最核心的区别是什么?
- A.增加了更多的实体类型
- B.在实体和关系上附加了时间维度← 正确答案
- C.用图数据库替代关系数据库
- D.引入了深度学习推理算法
答案:B。B正确。时序图谱的本质是给“谁和谁有什么关系”加上时间维度,类似印刷地图升级为实时导航。A是实体层面的扩展,C是存储技术,D是推理算法,都不是时序图谱区别于静态图谱的本质特征。
Q2. 四元组 (s, r, o, [t_s, t_e]) 中,[t_s, t_e] 表示什么?
- A.事实的创建和更新时刻
- B.事实的有效起止时间区间← 正确答案
- C.实体的出生和死亡日期
- D.关系的查询缓存窗口
答案:B。B正确。[t_s, t_e] 是关系在现实世界中成立的有效期,比如“Acme在2020至2023年间获得BigL投资”。A是工程维护时间,C描述实体生命周期,D与查询缓存无关。只要关系仍在有效期,它就参与搜索;超过区间就被过滤或衰减。
Q3. “软删除”过期知识的核心思想是什么?
- A.将知识放入回收站等待确认
- B.标记失效时间并保留历史版本← 正确答案
- C.降低过期知识在存储中的优先级
- D.用新知识覆盖旧知识的内容
答案:B。B正确。软删除是把失效时间写入事实(如将结束时间改为昨天),历史版本依然可查询,日常搜索则自动过滤。A是操作系统概念,C只是调整存储层级,D会彻底丢失旧信息。就像导航撤掉施工围挡但保留施工记录,随时可以回看“当时发生了什么”。
Q4. 增量更新相比全量重建的优势有哪些?
- A.节省计算资源和更新时间成本← 正确答案
- B.让图谱始终反映最新的事实变化← 正确答案
- C.完全避免数据冲突和错误
- D.只处理变化部分,扩展性更好← 正确答案
答案:ABD。A、B、D正确。增量更新像导航只下载差分数据包,只处理变化的路段,因此省资源、延迟低、易扩展。C“完全避免冲突”太绝对——增量更新恰恰需要额外的冲突消解机制来处理多数据源矛盾,它减少的是全量重建的计算负担,而非数据质量风险。
Q5. 时间归一化在时序事实抽取中的作用是什么?
- A.统一时间表述为可计算的时间数据← 正确答案
- B.抽取时间短语并解析其数值
- C.识别文本中的地名和机构名
- D.对抽取结果进行降噪处理
答案:A。A正确。时间归一化把“去年”“上个月”这类相对时间换算成绝对时间,才能参与区间计算和存储。B是时间表达式识别本身,C是命名实体识别的任务,D是通用数据清洗。没有归一化,“去年获投”永远无法和图谱中的年份对齐,就像路况员分不清“今天”和“上周”的拥堵。
Q6. 时间衰减函数 w(t)=e^{-λ(t-t_e)} 中,增大 λ 会导致什么?
- A.衰减加快,过期权重下降更陡← 正确答案
- B.衰减减慢,过期知识更晚失效
- C.所有知识的权重整体上升
- D.所有时间区间自动延长
答案:A。A正确。λ是“遗忘速度”旋钮:λ越大,指数中的负号影响越强,过期事实的权重快速趋近于零。B方向反了,C与事实无关,D是混淆项。想象导航中的路况提醒,λ大就像“修路提示三天后就没人再看到”,λ小就像“半年前的老管制还挂在页面上”。
Q7. 时序知识图谱中,事实有效期的“时间粒度”选择需要考虑哪些因素?
- A.场景对时间精度的要求← 正确答案
- B.数据源的更新频率← 正确答案
- C.存储和算力的开销← 正确答案
- D.实体名称的字符长度
答案:ABC。A、B、C正确。时间粒度是“地图的缩放级别”:新闻搜索要精确到天,投资关系精确到月,粒度选择要匹配场景精度、数据更新频率和存储开销。D实体名称字符长度与时间精度毫无关系,属于干扰项。
Q8. 在事件搜索中,时序推理能帮助回答哪类问题?
- A.查找城市中的公园列表
- B.某时间点事实是否有效← 正确答案
- C.投资机构投过哪些公司
- D.判断两家公司同行关系
答案:B。B正确。时序推理的核心是“把事实放在时间轴上判断有效性”,例如“2023年3月Acme是否处于获投有效期内”。A是空间检索,C是静态关系查询,D是行业分类,都不需要时间维度。就像导航的核心能力不是“知道有哪些路”,而是“判断此刻哪条路能走”。
Q9. 时序图谱中“事实有效期”是指什么?
- A.图谱数据的备份保留期限
- B.事实在现实中成立的时间区间← 正确答案
- C.用户访问该事实的会话时长
- D.图谱系统的缓存过期时间
答案:B。B正确。事实有效期描述“这条关系在现实世界中真实成立的时间段”,是语义层面的属性。A是备份策略,C是用户会话,D是系统缓存,都是工程运维概念而非图谱语义概念。施工围挡上“3月至6月封闭”就是事实有效期在生活中的缩影。
Q10. 构建和维护时序知识图谱的主要成本来自哪些环节?
- A.多源异构数据的持续采集← 正确答案
- B.时间标注与事实校验的人工审核← 正确答案
- C.长期高频更新带来的运维投入← 正确答案
- D.离线全量重建的批量计算费用
答案:ABC。A、B、C正确。数据采集、时间标注、持续更新运维是“活地图”三大开销。D离线全量重建恰恰是增量更新要避免的,它不是主要成本来源——即使作为初始化的一次性投入,占比也远低于长期运维。一个持续运营的时序图谱,真正的成本是“每一天都在发生”的高频开销。