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)

