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
   268   269   270   271   272   273   274   275   276   277   278