向 ChatGPT 问一个看起来挺简单的问题:"Lasha Talakhadze 之前的奥运举重纪录是多少?"
结果让人哭笑不得——模型能认出这个人是谁,也说得出来他拿过金牌,但给出来的答案却是他现在的纪录,而不是 " 之前 " 的。同理," 第 25 届奥运会期间布达佩斯的市长是谁?" 这种带时间窗口约束的问题,Google 和 ChatGPT 都翻了车。
这不是某个模型的 bug,而是所有基于知识图谱的问答系统共有的结构性问题:它们看得见实体,看不见时间。
北航、复旦、浙大联合团队在 AAAI 上提出的QC-MHM(Question Calibration and Multi-Hop Modeling),用一个三件套方案——问题校准 + 时序嵌入 + 多跳图推理——让模型真正拥有了 " 时间感 "。

作者单位:北京航空航天大学 · 复旦大学 · 浙江大学
发表:AAAI(CCF-A 类顶会,Pages 19332 – 19340)
背景场景与痛点
时序知识图谱问答(Temporal KGQA)的任务是:给定一个带时间约束的自然语言问题,从知识图谱中找到落在正确时间窗口内的答案。
听起来只是在普通 KGQA 上加了个时间字段?实际上差距巨大:

举个例子:(布达佩斯,市长,某人,1992)和(布达佩斯,市长,另一人,2024)在 KG 里是两条不同的事实。传统模型很容易把两条混在一起,问 "92 年谁当市长 " 时给出 2024 年的答案。
现有方法的两大硬伤
学界已经有了 CronKGQA、TMA、TSQA 等一系列时序 KGQA 模型,但这篇 AAAI 论文犀利地指出,它们都没绕过两个坎:
硬伤一:PLM 对时间 " 视而不见 "。Bert 等预训练语言模型编码问题时,注意力天然落在实体名词上(人名、地名),对 " 之前 / 之后 / 期间 " 这类时间词汇缺乏敏感性。结果就是——模型相当于读了一道 " 不带时间约束 " 的问题。
硬伤二:图结构信息被浪费。即使用了知识图谱,多数方法也只把它当作答案查询的索引,没有真正利用其中蕴含的多跳关系结构。遇到需要 " 两步以上跳转 " 的问题就掉链子,而且推理过程完全黑箱。
论文做了什么
QC-MHM 用一个端到端框架把三个模块串起来:
时序感知嵌入:让 KG 中的时间戳知道 " 谁在前、谁在后 "
问题校准:让问题向量主动去 KG 中 " 找时间线索 ",再回来更新自己的表示
多跳 GNN 推理:单层 GNN 一次性访问任意跳邻居,同时输出可解释的推理路径

技术方案模块一:让时间戳 " 懂顺序 " 的 KG 嵌入
KG 里每条事实是(主体,关系,客体,时间)四元组。QC-MHM 选择TComplEx做基础嵌入,评分函数为:

但仅靠 TComplEx,时间戳之间还是 " 散装 " 的——模型不知道 1992 在 2024 之前。为此作者借鉴 Transformer 的 sinusoidal 编码,为每个时间戳叠加位置编码:

进而构造辅助任务——让模型判断 " 时间 m 是否早于时间 n":
总训练损失:。这个辅助任务就像给模型做 " 时间排序 " 的专项训练——嵌入空间里,1992 的向量自然排在 2024 前面。
模块二:问题校准——让问题主动 " 找时间 "
这是 QC-MHM 最具想象力的设计。常规做法是:问题→ PLM 编码→直接查询答案。QC-MHM 在中间加了一步:让问题先去 KG 中检索与时序相关的 SPO(主体 - 关系 - 客体三元组),再回来修正自己的表示。
第一步:候选 SPO 召回。把问题和 KG 中的所有 SPO 分别过 SentenceBERT,用余弦相似度排名,保留 Top-10:

第二步:三注意力多视角匹配。用三种注意力机制同时比较 " 问题词 × SPO 候选 ":

三种视角各看各的:Concat 看 " 这两个向量放一块合理吗 ",Dot 看 " 关键维度上对齐了吗 ",Minus 看 " 哪里不一样 "。
第三步:门控自适应融合。让模型自己决定 " 原始问题语义 " 和 " 从 KG 检索到的时序信息 " 各占多大权重:

经过校准后的问题向量,从此具备了 " 时间感 "。相当于原本的问题是 "XXX 是谁?",校准后变成了 "XXX 在 1992 年是谁?"。
模块三:多跳 GNN 推理——一层看穿整条路径
传统 GNN 的问题是:一层只能看 1 跳邻居,要想看 2 跳需要堆 2 层,看 3 跳得堆 3 层,效率和可解释性都不好。
QC-MHM 的做法是:先把子图裁剪出来,再一次性做多跳注意力聚合。
子图裁剪:以问题中的实体为起点,抽取 k 跳范围内的子图,把搜索空间收窄。
路径打分(注意力矩阵):

一次性多跳聚合:

核心公式在 D:通过加权和把 1 跳、2 跳、…、ℓ跳的注意力矩阵一次性合并,让单层 GNN 就能访问任意跳邻居。经验设置已能取得理想效果。
最终图向量:

注意力权重本身也可以直接可视化,展示模型的 " 思考轨迹 " ——哪条边被高权重激活,推理路径一目了然。
模块四:双通道答案预测
把语义向量(问题校准后的表示)和图向量(GNN 聚合后的表示)拼接,过一层 Transformer 融合:
然后分别投影到实体空间和时间戳空间,用 TComplEx 评分做双通道预测:

两个通道的分数拼接后 softmax,交叉熵优化。这意味着——同一个模型可以同时回答 " 是谁 " 和 " 什么时候 " 两类问题。
实验结果 CronQuestions:逼近性能天花板

复杂多跳问题 Hits@1 绝对提升 5.1%,Hits@10 提升 1.2%
实体型答案与时间型答案两条赛道都打赢
整体 Hits@1 达 0.971 ——再往上提升已经非常困难
TimeQuestions:跨数据集泛化验证

迁移到第二个基准同样 SOTA,说明方法具有可迁移性,不是针对某个数据集的特化方案。
细粒度问题类型拆解

Before-After这种典型时间排序题,QC-MHM 的优势被放大得最明显——这正是 " 问题校准 " 模块的主场:只有显式建模了时间约束,模型才知道 " 之前 " 意味着什么。
消融实验:三件套缺一不可


三个模块互相成就,不是简单的 " 拼盘 ",去掉任何一个都会导致特定类型问题大幅退化。
可视化:" 白盒 " 推理路径

可以清晰地看到模型如何在图中逐跳推进,哪些边被高权重激活——这是过往黑箱模型不具备的能力。

图中高亮的 92%、95% 等数值,正是问题对最相关时序 SPO 高度关注的证据,表明门控机制确实抓住了 " 哪些 SPO 该被重视 "。

梯度分析印证了问题校准模块确实把关键时序事实反映到了问题向量中。
项目价值学术贡献
首创 " 问题校准 " 机制:多视角注意力 + 门控融合,让 PLM 编码的问题向量主动从 KG 中提取时序知识,根治 " 时间盲区 "
单层多跳聚合:用加权组合的方式让单层 GNN 访问任意跳邻居,同时输出可解释推理路径
顺序感知的嵌入辅助任务:以 " 判断时间先后 " 作为额外监督信号,让嵌入空间隐式编码时间序
落地场景
搜索引擎:精准应答带时间限定词的复杂查询(" 之前 "" 期间 "" 最早 ")
金融合规:跨时间维度查询股权变更、监管事件、诉讼时序
医疗药学:追踪疾病演进、用药史、临床试验时间线
档案管理:跨年代事件因果与关联推理
企业 BI:基于时间链路的趋势与因果分析
在 LLM 普遍强调 " 事实可追溯 " 的当下,QC-MHM 所代表的 "PLM × 时序 KG × 多跳 GNN" 思路,是构建可信时序推理系统的关键拼图。
论文(arXiv):https://arxiv.org/abs/2402.13188
代码(GitHub):https://github.com/zhouyan0614-sys/QC-MHM-TKGQA
会议:AAAI(CCF-A),Pages 19332 – 19340
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —
【学术投稿】请在工作日发送邮件至:ai@qbitai.com,标题注明【投稿】,并告诉我们:你是谁,从哪来,投稿内容附上项目 / 主页链接,以及联系方式。
我们会 ( 尽量 ) 及时回复你 : )
点亮星标
科技前沿进展每日见


