论文基本信息

  • 题目: Detect-Then-Resolve: Enhancing Knowledge Graph Conflict Resolution with Large Language Model (先检测后解决:利用大型语言模型增强知识图谱冲突消解)
  • 作者: Huang Peng, Pengfei Zhang, Jiuyang Tang, Hao Xu, Weixin Zeng
  • 机构: 国防科技大学大数据与决策实验室、信息系统工程国家重点实验室
  • 发表地点与年份: Mathematics, 2024, 12(15), 2318
  • 关键词术语与定义:
    • Knowledge Graph (KG): 知识图谱。
    • Conflict Resolution: 冲突消解,在知识融合过程中,检测并纠正多个知识源之间的不一致或矛盾,以保持融合后知识图谱的准确性。
    • Large Language Model (LLM): 大型语言模型。
    • Unseen Entities: 未见实体,指在外部知识源中出现,但不存在于当前知识图谱中的实体。

摘要(详细复述)

  • 背景: 知识图谱的冲突消解是知识融合中的关键技术,旨在解决现有 KG 与外部知识之间的冲突。然而,现有方法在处理包含未见实体的外部三元组时常常因知识有限而遇到困难。此外,这些方法通常在解决冲突前“忽略了冲突检测这一关键步骤”,影响了事实推断的准确性。
  • 方案概述: 论文提出了一种名为 CRDL 的创新方法,该方法利用冲突检测大型语言模型 (LLMs) 来识别事实。CRDL 的核心思想是“先检测后解决”:
    1. 通过冲突检测,对不同类型的关系和属性实施精确的过滤策略。
    2. 通过精心设计的提示词 (prompts) 并向 LLM 注入相关信息,来识别包含未见实体的三元组。
  • 主要结果/提升: 实验结果表明,CRDL 的性能优于所有基线方法。具体而言,与 SOTA 方法相比,CRDL 的召回率提升了 56.4%F1 分数提升了 68.2%
  • 结论与意义: 这些结果清晰地展示了 CRDL 方法的有效性和卓越性能。消融实验和进一步的分析也证实了 CRDL 框架中各个组件的重要性。

研究背景与动机

  • 学术/应用场景与痛点:
    知识图谱因其不完备性,需要不断从外部源(如其他 KG 或开放文本)进行知识融合。然而,融合过程不可避免地会引入与现有知识相冲突的信息,例如,一个 KG 中记录 (Himalayas, located_in, Asia),而外部源提供 (Himalayas, located_in, Africa)。如果不解决这类冲突,KG 的准确性将受到严重损害。

  • 主流路线与局限:
    当前冲突消解方法主要面临两大挑战:

    1. 处理未见实体的能力有限: 传统方法(无论是基于迭代、优化还是概率图模型)和多数开放知识图谱补全 (Open KGC) 方法都严重依赖 KG 内部已有的知识和嵌入表示。当外部三元组包含 KG 中从未见过的实体时,这些方法“几乎无法处理”。
    2. 普遍忽略冲突检测: 现有研究“据我们所知,没有一个考虑了冲突检测”。它们要么假设一个事实只有一个真值,从而可能“忽略潜在的真理”;要么假设所有候选者都可能是真值,从而“冒着引入错误三元组的风险”。实际上,冲突的性质与关系的类型密切相关。例如,located_in 关系通常是 1-to-1 的(一个地点只有一个地理归属),而 student_of 关系则是 non-1-to-1 的(一个导师可以有多个学生)。对这两种关系不加区分地处理是不精确的。

LLMs 的出现为解决这些问题提供了新机遇。LLMs 内部蕴含了海量的常识知识,有潜力识别和处理未见实体。本文的动机正是要设计一个框架,首次将冲突检测机制与 LLM 的强大知识能力相结合,提出一个“先检测,后解决”的新范式。

问题定义(形式化)

  • 输入:
    • 一个已有的知识图谱 KG={E,R,A,V,Tr,Ta}KG = \{E, R, A, V, T_r, T_a\}KG={E,R,A,V,Tr,Ta},其中 E,R,A,VE, R, A, VE,R,A,V 分别代表实体、关系、属性和值的集合,Tr,TaT_r, T_aTr,Ta 是关系三元组和属性三元组的集合。
    • 一个从开放源抽取的声明 (claims) 集合 C={(h,r,t)∣h∈E,r∈R∪A}C = \{(h, r, t) | h \in E, r \in R \cup A\}C={(h,r,t)hE,rRA}。这些声明的头实体 hhh 和关系/属性 rrr 存在于 KG 中,但尾实体/值 ttt 可能是未见的。
  • 输出:
    • 一个事实 (truths) 集合 C∗⊆CC^* \subseteq CCC,即 CCC 中所有正确的声明。
  • 目标: 识别出 CCC 中的所有事实 C∗C^*C

创新点

  1. “先检测后解决”的新范式: 首次将冲突检测作为知识图谱冲突消解流程中的一个独立且前置的步骤。通过区分 1-to-1non-1-to-1 关系,该框架能够对不同类型的冲突采取不同的、更精确的处理策略,避免了以往方法“一刀切”的局限性。
  2. LLM 与 KGE 的混合推理: 创新地结合了知识图谱嵌入 (KGE) 的定量评分能力和 LLM 的开放世界知识与推理能力。KGE 用于计算三元组的“困惑度 (perplexity)”进行初步筛选,而 LLM 则用于处理更复杂的、包含未见实体的 non-1-to-1 关系三元组。
  3. 三段式提示工程 (Prompt Engineering): 为有效激发 LLM 的能力,设计了一种包含三个核心部分的提示词模板:
    • 任务声明 (Task declaration): 明确告知 LLM 任务目标。
    • 示例 (Demonstrations): 提供与待判断实体相关的、从 KG 中采样的已知事实,并将其“翻译”成自然语言,为 LLM 提供上下文。
    • 输入声明 (Input claims): 提供待判断的候选三元组。

方法与核心思路

整体框架

CRDL 的核心流程是一个两阶段的过滤系统,它根据关系的类型来决定使用何种策略。

其核心工作流程(依据论文 Figure 1)如下:

graph TD
    subgraph "A. 预处理与嵌入"
        A[知识图谱 KG] --> B[KG 嵌入 KGE];
        B -- TransE --> C[实体/关系嵌入];
        A --> D{关系类型分类};
        D -- 统计 --> E[1-to-1 关系 O];
        D -- 统计 --> F[non-1-to-1 关系 O'];
    end
    
    subgraph "B. 推理阶段 (先检测后解决)"
        G[外部声明 C] --> H{分组};
        H -- 按 (h, r) 分组 --> I[声明组 C_hr];
        I --> J{冲突检测};
        J -- "关系 r 是 1-to-1" --> K[最低困惑度选择];
        J -- "关系 r 是 non-1-to-1" --> L[困惑度初筛 + LLM 精筛];
        K --> M[事实 C*];
        L --> M;
    end

步骤分解与模块详解
1. KG 嵌入与困惑度定义
  • KG 嵌入: 使用 TransE 模型来学习 KG 中所有实体、关系和属性的嵌入向量。TransE 的评分函数为:
    fr(h,r,t)=∣∣h+r−t∣∣1 f_r(h, r, t) = ||\mathbf{h} + \mathbf{r} - \mathbf{t}||_1 fr(h,r,t)=∣∣h+rt1
    对于属性三元组 (e,a,v)(e, a, v)(e,a,v),评分函数为:
    fa(e,a,v)=∣eTa−v∣ f_a(e, a, v) = |\mathbf{e}^T\mathbf{a} - v| fa(e,a,v)=eTav
    这个分数被定义为三元组的困惑度 (perplexity),分值越低,表示三元组为真的可能性越高。
  • 训练: 模型的损失函数旨在最小化正确三元组的分数,同时最大化错误三元组(通过随机替换尾实体生成)的分数:
    L=∑(h,r,t)∈Tr∪Ta∑(h,r,t′)∈Tr′∪Ta′[γ+f(h,r,t)−f(h,r,t′)]+ \mathcal{L} = \sum_{(h,r,t) \in T_r \cup T_a} \sum_{(h,r,t') \in T'_r \cup T'_a} [\gamma + f(h,r,t) - f(h,r,t')]_+ L=(h,r,t)TrTa(h,r,t)TrTa[γ+f(h,r,t)f(h,r,t)]+
2. 冲突检测
  • 核心思想: 区分关系是 1-to-1 还是 non-1-to-1。
  • 1-to-1 关系定义: 统计 KG 中所有关系/属性,如果某个关系 rrr 对于任意头实体 hhh,都只连接到一个唯一的尾实体 ttt,那么 rrr 就被归类为 1-to-1 关系,并放入集合 O\mathcal{O}O
    O={r∣∀h∈E,#{t′∣(h,r,t′)∈Tr∪Ta}=1} \mathcal{O} = \{r | \forall h \in E, \#\{t' | (h, r, t') \in T_r \cup T_a\} = 1\} O={r∣∀hE,#{t(h,r,t)TrTa}=1}
  • 其他所有关系则被归为 non-1-to-1 关系,放入集合 O′\mathcal{O}'O
3. 冲突解决

在推理阶段,对于每个声明组 Ch,rC_{h,r}Ch,r(即具有相同头实体 hhh 和关系 rrr 的所有声明),根据 rrr 的类型执行不同策略:

  • 策略一:针对 1-to-1 关系 (r∈Or \in \mathcal{O}rO)

    • 方法: 直接选择该组中困惑度最低的那个声明作为唯一的事实。
    • 原理: 由于该关系只有一个正确答案,困惑度最低的候选者最可能为真。这个过程无需 LLM 介入,速度快且精确。
    • 公式:
      CO∗={(h,r,t)∣r∈O,(h,r,t)=arg⁡min⁡c∈Ch,rf(c)} C^*_{\mathcal{O}} = \{(h,r,t) | r \in \mathcal{O}, (h,r,t) = \arg\min_{c \in C_{h,r}} f(c) \} CO={(h,r,t)rO,(h,r,t)=argcCh,rminf(c)}
  • 策略二:针对 non-1-to-1 关系 (r∈O′r \in \mathcal{O}'rO)

    • 这是一个两步过滤过程:
      1. 困惑度初筛: 首先,保留所有困惑度低于某个阈值 α\alphaα 的声明。这步可以过滤掉明显错误的候选者。
      2. LLM 精筛: 将通过初筛的声明,连同精心设计的提示词,一起输入给 LLM 进行最终判断。
    • 提示词设计 (Figure 3):
      • 任务声明: 告知 LLM 其任务是“在给定的三元组中识别出正确的事实”。
      • 示例: 为了让 LLM 更好地理解头实体 eee 的上下文,从 KG 中随机采样 kkk 个与 eee 相关的已知事实,并使用 LLM 将这些三元组**“翻译”成自然语言段落**。例如,三元组 (Spring Harbor Hospital, located in, Portland metro area)(Spring Harbor Hospital, function, Healthcare) 被翻译成:“Spring Harbor Hospital is a healthcare facility located within the Portland metro area…”。
      • 输入声明: 将待判断的候选声明列表输入。
    • LLM 对每个输入声明输出 “True” 或 “False” 的判断。
伪代码 (Algorithm 1)
// 训练阶段
1: 初始化实体/关系嵌入
2: for epoch in 1 to EPOCHS do
3:   计算 TransE 损失 L
4:   更新嵌入参数
5: end for

// 推理阶段
6: 根据 KG 统计数据,将所有关系分类为 1-to-1 (O) 和 non-1-to-1 (O')
7: 初始化事实集合 C* = ∅
8: for each 声明组 C_hr in C do
9:   if r in O then // 1-to-1 关系
10:    c_truth = argmin(f(c) for c in C_hr)
11:    C* = C* U {c_truth}
12:  else // non-1-to-1 关系
13:    C_filtered = {c in C_hr | f(c) < α}
14:    构建 LLM 提示 (包含任务声明、示例、C_filtered)
15:    LLM_judgments = LLM(prompt)
16:    for c, judgment in zip(C_filtered, LLM_judgments) do
17:      if judgment == "True" then
18:        C* = C* U {c}
19:      end if
20:    end for
21:  end if
22: end for
23: return C*

这段伪代码清晰地展示了 CRDL 的核心逻辑:首先通过 KGE 训练获得评分函数,然后在推理时根据关系类型选择不同的解决策略——对于 1-to-1 关系使用确定性的最低困惑度选择,对于 non-1-to-1 关系则采用“KGE初筛 + LLM精筛”的混合模式。

实验设置

  • 数据集: 使用 OKELE 数据集,该数据集包含从 Freebase 衍生的10个实体类别的 191,759 个三元组。部分三元组作为已知的 KG,其余作为待验证的声明。
  • 对比基线:
    • 传统冲突消解方法: TruthFinder, LCA, LTM, MBM, OKELE。
    • 开放 KGC 方法: OWE, ConMask, KnowledgeVault, TKGC。
    • 简单 LLM 基线: 直接向 ChatGPT 提问“三元组是否为真”,不使用任何提示工程。
  • 评价指标: Precision, Recall, F1-Score。
  • 实现细节:
    • KGE 模型: TransE,实体嵌入维度 de=768d_e=768de=768 (来自预训练的 BERT)。
    • LLM: GPT-3.5-turbo API。
    • 超参数: 边际 γ=5\gamma=5γ=5,困惑度阈值 α=0.5\alpha=0.5α=0.5,示例数量 k=5k=5k=5

实验结果与分析

主结果表

表2: 总体性能对比

模型 Precision Recall F1-Score
OKELE (传统 SOTA) 0.459 0.485 0.472
TKGC (开放 KGC SOTA) 0.524 0.491 0.507
ChatGPT (简单基线) 0.417 0.477 0.445
CRDL (本文方法) 0.959 0.768 0.853
结果分析
  • 总体性能: CRDL 在所有指标上都远超所有基线方法。其 F1 分数 (0.853) 相较于 TKGC (0.507) 实现了 68.2% 的巨大提升。这充分证明了“先检测后解决”范式与 LLM 结合的有效性。
  • 消融实验 (RQ2):
    • 移除 LLM (CRDL w/o LLM): 该变体仅使用冲突检测和 KGE 评分。其召回率大幅下降至 0.271。这表明,对于 non-1-to-1 关系和未见实体,仅靠 KGE 评分是远远不够的,LLM 的开放世界知识起到了至关重要的作用。
    • 移除冲突检测 (CRDL w/o CD): 该变体将所有关系都视为 non-1-to-1 处理。其精确率下降了 0.039。这说明,为 1-to-1 关系设计的确定性选择策略能够有效提升结果的精确性。
  • K-Shot 示例分析: 实验发现,提供示例(demonstrations)能显著提升召回率(从 0-shot 的 0.715 提升到 1-shot 的 0.754)。最佳性能出现在 k=5k=5k=5 时。当示例过多(k=7k=7k=7)时,性能反而开始下降,可能是因为过多的信息引入了噪声,干扰了 LLM 的判断。

复现性清单

  • 代码/数据:
    • 数据集来自公开的 OKELE 仓库:https://github.com/nju-websoft/OKELE
  • 实现细节: 论文提供了详细的超参数设置(γ=5,α=0.5,k=5,lr=0.01\gamma=5, \alpha=0.5, k=5, lr=0.01γ=5,α=0.5,k=5,lr=0.01 等),便于复现。
  • 提示模板: 论文通过图示(Figure 3, 4)和文字描述,清晰地展示了提示词的结构和内容,透明度高。

结论与未来工作

  • 结论:
    本文提出的 CRDL 框架,通过创新地整合冲突检测大型语言模型,在知识图谱冲突消解任务上取得了突破性进展。实验证明,该方法能够有效且准确地处理包含未见实体的外部三元组,在保持 KG 准确性和可靠性方面具有巨大潜力,可广泛应用于问答、推理等下游 KG 应用。

  • 未来工作:

    1. 处理长尾实体: 利用 LLM 识别目前信息不足、模型不熟悉的长尾实体。
    2. 扩展到时序和动态 KG: 将 CRDL 扩展以处理随时间变化的知识。
    3. 结合其他知识融合过程: 将冲突消解与实体对齐等其他融合任务结合,实现协同增益。
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐