Page 273 - 《软件学报》2025年第12期
P. 273
5654 软件学报 2025 年第 36 卷第 12 期
rdf : type 为原点, 经过预设的步数阈值抽取类实例节点序列. 针对类
具体而言, 针对类实例关系视图, 以实例或
层级关系视图, 以类 (原子概念) 或 rdfs : subClassOf 为原点, 抽取类层级关系节点序列. 由于类属性关系视图包含
了对象属性关系和数据属性关系的定义域和值域语义声明, 本文以类、对象属性及数据属性为原点抽取类属性关
系节点序列. 针对实例对象属性视图和实例数据属性视图, 分别以类和对象属性、类和数据属性为原点, 抽取其节
点序列. 另外, 为进一步融合本体语义图谱中的文本标记信息, 本文方法采用实体和属性的 rdfs : label 或 rdfs : comment
等标注属性信息分别替换实体 URIs 和属性 URIs. 例如表 2 中的 helis : FOOD-4001 实例实体可以使用其标注属
性“Blonde Beer”将其替换. 当实体和属性中没有任何的文本标注属性时, 则采用其 URIs 中末尾部分所包含的文本
信息进行代替, URIs 包含的其他非文本部分被丢弃. 例如, 假设表 2 中 helis : AlcoholicBeverages 类实体不存在标
注属性, 那么该类实体将会被表示成“Alcoholic Beverages”. 在最后生成的实体和属性的描述文本中, 所有的单词
都将被转换成小写, 示例的对象属性和类将会分别变为“blonde beer”及“alcoholic beverages”. 表 3 中各语义视图类
别对应的第 2 行示例了对应三元组生成的序列化数据.
表 3 HeLis 各语义视图中的三元组数据与序列化数据转换示例
语义视图类别 示例
三元组: ⟨helis : FOOD-9030,rdf : type,helis : CoffeeAndSubstitutes⟩
类实例
关系视图 序列化数据: “american coffee in cups type coffee and substitutes”
进阶训练数据: “[CLS] american coffee in cups [SEP] type [SEP] coffee and substitutes [SEP]”
三元组: ⟨helis : Beverages,rdfs : subClassOf,helis : BasicFood,rdfs : subClassOf,helis : Food⟩
类层级
关系视图 序列化数据: “berverages subclassof basic food subclassof food”
进阶训练数据: “[CLS] berverages [SEP] subclassof [SEP] basic food [SEP] subclassof [SEP] food [SEP]”
三元组: ⟨helis : Meal,helis : hasConsumedFood,helis : ConsumedFood,helis : hasFood⟩
类属性
关系视图 序列化数据: “meal has consumed food consumed food has food food”
进阶训练数据: “[CLS] meal [SEP] has consumed food [SEP] consumed food [SEP] has food [SEP]”
三元组: ⟨helis : RECIPEFOOD-FOOD-419,helis : hasFood,helis : FOOD-419,helis : hasNutrient⟩
实例对象 序列化数据: “recipefood food 419 has food apples has nutrient protein 020”
属性视图
进阶训练数据: “[CLS] recipefood food 419 [SEP] has food [SEP] apples [SEP] has nutrient [SEP]”
三元组: ⟨helis : ButyricCaproicCaprylicCapricAcid_000,helis : amountOfNutrient,“0.0”⟩
实例数据
属性视图 序列化数据: “butyric caproic caprylic capric acid 000 amount of nutrient 0.0”
进阶训练数据: “[CLS] butyric caproic caprylic capric acid 000 [SEP] amount of nutrient [SEP] 0.0 [SEP]”
2.4.2 PLMs 自监督进阶训练
MSV-KRL 以基于 Transformer 编码器架构的 BERT 模型为基础编码器, 并对其开展基于 MLM 任务的无监
督进阶训练. 首先, 本文将序列化数据中对应的实体或属性都通过 [SEP] 标记进行分割, 以便于模型在进阶训练过
程中能够正确区分不同的实体或属性, 如公式 (14) 所示, 其中 n 表示序列中节点数量, m n 表示第 n 个节点对应的
标注属性字符数. 在语料库中包含了与 5 种视图对应的节点序列, 都将对其采用如上操作, 如表 3 中各类别第 3 行.
1 1 n n
sequence = {[CLS], x ,..., x ,[SEP],...,[SEP], x ,..., x ,[SEP]} (14)
1 m 1 1 m n
sequence 进行 Tokenization, 结果如公式 n p n 个描述文本
随后, 对 (15) 所示, 其中 t 表示第 n 个节点对应的第
p n
Token. 其次, MSV-KRL 以 0.15 的概率随机对公式 (15) 中 Token 进行掩码, 被掩码的 Token 在公式 (16) 中表示为
t [MASK] . 最后, 将其输入至 BERT 模型让其自行预测掩码 Tokens, 以实现预训练模型的自监督进阶训练. MSV-KRL
采用了文献 [60] 的方法开展自监督进阶训练策略, 定义损失函数为交叉熵损失函数, 其真实标签如公式 (17) 所示,
–100 表示不参与损失计算.
1 1 1 n n n
tokens = {t [CLS] ,t ,t ,...,t ,t [SEP] ,...,t [SEP] ,t ,t ,...,t ,t [SEP] } (15)
1 2 p 1 1 2 p n
1 1 n n
tokensMasked = {t [CLS] ,t ,t ,...,t [MASK] ,t [SEP] ,...,t [SEP] ,t ,t [MASK] ,...,t ,t [SEP] } (16)
1 2 1 p n
1 n
labels = {−100,−100,−100,...,t ,−100,...,−100,−100,t ,...,−100,−100} (17)
p 1 2

