Page 255 - 《软件学报》2025年第12期
P. 255
5636 软件学报 2025 年第 36 卷第 12 期
4.2 打分解码器
本节介绍打分解码器, 它的目标是基于多视角编码器所习得的实体表示对三元组打分. 给定多视角编码器产
生的实体表示 E, 可训练的关系表示 R 和一个三元组 (h,r,t), 打分解码器的目标是在该三元组是正确的情况下, 赋
予它一个尽可能高的分数, 否则赋予一个尽可能低的分数.
本文使用一个先进的、基于转移的模型 RotatE [11] , 作为打分解码器. 具体来说, 本文将 h 和 的表示分别标记
t
e t r
为 e h 和 , 的表示标记为 r ∈ R. 打分解码器的计算过程如下所示:
ϕ(h,r,t) = γ −||e h ◦ r−e t || (16)
其中, “ ◦ ”指哈达玛积, 它代表着复数空间中通过旋转进行平移的操作; γ 是间隔超参数.
4.3 模型训练与推断
本节详细介绍本文框架的模型训练和推断过程. 本文使用对比学习来训练模型, 期望最大化正确三元组的分
数, 同时最小化错误三元组的分数. 本文将知识图谱中已有的三元组视作正样本. 然后, 对于每个正样本, 本文通过
(h,r,t), 本文通过从训练实体
破坏它的头实体或尾实体, 采样新的三元组作为负样本. 具体而言, 给定一个正样本
t
′ ′ ′ (h,r,t ) 不会出现在训练图
′
集中随机采样 h 或 , 替代它的头实体或尾实体, 并且确保破坏后的三元组 (h ,r,t) 或
[6]
G train 中. 除此之外, 根据 SimKGC , 对于尾实体预测 (h,r,?) 来说, 基于文本的方法往往由于头实体 h 和查询的文本
高度重叠, 而给头实体自身一个很高的分数, 但这却导致一个错误的预测. 因此, 本文使用一种自身负样本, 即在尾
实体预测时使用头实体 h, 在头实体预测时使用尾实体 t, 作为难负例. 最终, 本文对于尾实体预测可以获得负样本集
′
−
− ′ D = {(h ,r,t) < G train ∪(t,r,t) < G train }.
合 D = {(h,r,t ) < G train ∪(h,r,h) < G train }, 而对于头实体预测可以获得负样本集合
之后, 可以使用 InfoNCE [29] 损失来训练模型. 具体计算方式如公式 (17), 其中, τ 表示温度超参数.
e ϕ(h,r,t)/τ
L = −log ∑ (17)
e ϕ(h,r,t)/τ + e ϕ(h ′ ,r ′ ,t ′ )/τ
(h ′ ,r ′ ,t ′ )∈D −
(?,r,t) 的过程也是相似的. 本文计算以每个实体
在模型推断时, 本文以尾实体预测 (h,r,?) 为例. 头实体预测
t i ∈ E 为尾实体时, 所有三元组的分数, 并将得分最高的尾实体作为输出. 该过程表示如下, ϕ(·,·,·) 表示打分解码器
RotatE:
argmaxϕ(h,r,t i ), t i ∈ E (18)
5 实 验
本节进行充分的实验来评估所提出的框架. 首先, 介绍本文的实验设置; 然后, 介绍本文方法的整体效果及其
与现有方法的对比; 最后, 对本文方法进行消融实验, 并对各个模块进行详细的分析.
5.1 实验设置
5.1.1 数据集
本文使用 3 个基于 Freebase [30] 的数据集来评估本文的方法. 它们代表了 3 种不同的知识图谱补全的任务设定.
FB15k-237 [31] 是 Freebase 的一个子集, 它包含了大量现实世界的事实知识. 它代表着直推式设定, 意味着一个测试
′
′ ′ (h ∈ E train )∧(t ∈ E train ). Daza 等人 [4] 构建了一个
′
三元组 (h ,r,t ) 中的所有实体在训练中都被模型见过, 即满足
FB15k-237 的归纳式版本, 称作 FB15k-237-Ind. 它代表着半归纳式或动态式设定, 意味着一个测试三元组 (h ,r,t )
′
′
(h < E train )∨(t < E train ). Teru 等人 [22] 提出了另一个归纳式版本的
′
′
中至少有一个实体是在训练中未见过的, 即满足
FB15k-237. 它代表着全归纳式或迁移式设定, 意味着测试三元组中的头实体和尾实体都没有在训练图中出现过,
′
′
即满足 (h < E train )∧(t < E train ). 由于 Teru 等人 [22] 提出了 4 个版本的归纳式数据集, 本文按照文献 [7] 选择了其中一
个子集 (v4). 需要注意的是, 本文主要关注于归纳式的设定, 但是本文依然引入了直推式设定下的数据集来更全面
地评估本文的方法. 数据集的统计数据可以见表 1.

