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.
   250   251   252   253   254   255   256   257   258   259   260