Page 274 - 《软件学报》2025年第12期
P. 274

杨建喜 等: 多语义视图驱动的        OWL  知识图谱表示学习方法                                          5655


                  2.5   面向多语义视图的多任务联合表示学习

                    MSV-KRL  多任务联合表示学习以第         1 阶段生成的多语义视图三元组         ⟨s, p,o⟩ 为数据输入, 并使用经过进阶训练
                 参数微调后的模型为编码器, 用于获取初始嵌入. 具体而言, 首先将                   URIs 定义的各个三元组头实体、关系和尾实
                 体用第   2.4.1 节中标注属性替换策略替换为文本序列, 并使用             [SEP] 标签对其进行分隔, 最后对其进行         Tokenization,
                 得到如公式    (18) 所示的三元组    Token  序列  X.

                                        X = {t [CLS] ,t x 1,...,t x 1,t [SEP] ,t x 2,...,t x 2,t [SEP] ,t x 3,...,t x 3,t [SEP] }  (18)
                                                 1    i     1    j     1    k
                       X  输入到进阶训练后的模型       PT_BERT  进行编码, 并输出所有     Encoder 层  (隐藏层) 的编码结果. 设   PT_BERT
                    将
                 中  Encoder 层数为   n, 嵌入维度为   d, 且其中某一层的编码结果为      V, 如公式  (19), 其中  V ∈ R (i+ j+k+4)×d ,  v ∈ R 1×d  i ,  、  j、
                 k 分别表示当前三元组头实体、关系和尾实体对应                Token  数量.

                                                                     3
                                                                3
                                                          2
                                                      2
                                               1
                                  V = {v [CLS] ,v ,...,v ,v [SEP] ,v ,...,v ,v [SEP] ,v ,...,v ,v [SEP] } ← PT_BERT(X)  (19)
                                           1
                                                      1
                                                                1
                                               i
                                           1
                                                          j
                                                                     k
                    然后, 依据公式     (20)–公式  (22) 以均值池化的方式, 分别获取所有编码层中头实体嵌入               h s 、关系嵌入   h p  和尾
                                                                                   2
                 实体嵌入   h o , 其中  v 1   表示头实体在第  a 层  Encoder 中第  b 个  Token  对应的嵌入向量,  v 、 v 3   同理.
                                a,b                                                a,b  a,b
                                                            ∑    ∑
                                                               n   i
                                                  h s = (1/(n×i))    v 1                             (20)
                                                               a=1  b=1  a,b

                                                             ∑   ∑
                                                               n    j
                                                 h p = (1/(n× j))    v 2 a,b                         (21)
                                                               a=1  b=1

                                                             ∑ n  ∑ k
                                                 h o = (1/(n×k))     v 3 a,b                         (22)
                                                               a=1  b=1
                    由于同一实体或关系可能存在于多个语义视图和多个三元组中, 例如, 表                    3 中  ⟨helis : Beer,rdfs : subClassOf,helis :
                 AlcoholicBeverages⟩、 ⟨helis : Beer,helis : hasNutrient,helis : AsparticAcid⟩  同时包含了  helis : Beer  实体, 因此本文
                 依据公式    (23) 对在不同三元组中的相同实体的所有嵌入做均值池化, 得到嵌入结果                      h 、  h  与  h , 将该结果作为
                                                                                            ′
                                                                                       ′
                                                                                    ′
                                                                                    s
                                                                                       p
                                                                                            o
                 实体和属性的初始嵌入结果.

                                                         ∑
                                                           l
                                                              k
                                                 h = (1/l)   h , q ∈ {s, p,o}                        (23)
                                                  ′
                                                  q           q
                                                           k=1
                    在公式   (23) 中,  h ∈ R 1×d  l ,   表示包含当前实体或属性的三元组数量. 最后本文将包含所有实体的嵌入矩阵定
                                  ′
                                  q
                      e
                                                              r
                 义为  H ∈ R (|C|+|I|+|D|)×d  , 将包含所有关系的嵌入矩阵定义为  H ∈ R |R|×d  .
                    其次, 面向映射生成的       5  种语义视图, MSV-KRL   设计了相应的预测任务用于学习不同语义上下文中的实体
                 和关系嵌入. 这    5  种预测任务分别是类实例关系预测任务             T t 、类层级关系预测任务  、类属性关系预测任务  、
                                                                                  T s
                                                                                                      T c
                 实例对象属性关系预测任务          T o  以及实例数据属性关系预测任务  . 所有任务统一采用多层感知机                    (multi-layer
                                                                    T d
                 perception, MLP) 作为分类器, 使用二分类交叉熵损失函数作为单个任务的损失函数, 如公式                   (24) 所示.

                                                           p
                                                                 g
                                                                         p
                                                      g
                                              L BCE = −(y log(y )+(1−y )log(1−y ))                   (24)
                                             p
                                                             g
                 其中,  L BCE  表示某一任务的损失值,     y  表示模型预测值,    y  表示真实标签. 同时, 在每一个分类器中的线性层后使
                 用  ReLU  激活函数, 且在其最后使用      Sigmoid  函数将模型输出值映射到      0–1  之间.
                    针对任务    T t , 给定一个类实例关系三元组       (i,r t ,c) 作为正例, 其中  i ∈ I, c ∈ C, r t ∈ R 表示  rdf : type, 同时通过将
                                                          ′
                              ′      ′                (i,r t ,c ), 从而保证新生成的负例从未在数据集中出现过. 两种三元
                 尾实体   c 替换为  c ∈ C  且  c , c 构造负例三元组
                          y t ∈ {0,1}, 其中正例三元组对应标签为     1, 负例三元组标签为      0,  T t  的任务目标就是让模型能够区分正
                           g
                 组的标签为
                                                    (i,r t ,c) 中  3              h i 、   h c , 将其按序拼接在
                 确和错误的类实例关系三元组. 令正例三元组                       个元素对应的嵌入分别为             h r t   与
                 一起为一个向量作为模型输入, 如公式            (25) 所示, 其中   h i , h c ∈ H , h r t  ∈ H , x ∈ R . 其次, 将向量  x 输入至分类器
                                                                               3d
                                                                          r
                                                                   e
                 得到模型预测值概率  , 如公式         (26) 所示, 其中  W t  表示当前任务分类器的权重,      b t  则表示偏置量. 最后, 依据模型
                                  p
                                 y t
                       p            g                         t
                 预测值  y t   以及真实标签  y t   计算二分类交叉熵损失函数值      L   , 如公式  (27) 所示.
                                                              BCE

                                                               , h c ]                               (25)
                                                       x = [h i , h r t

                                                  p
                                                 y t = Sigmoid(ReLU(W t x+b t ))                     (26)
   269   270   271   272   273   274   275   276   277   278   279