Page 149 - 《软件学报》2025年第9期
P. 149
4060 软件学报 2025 年第 36 卷第 9 期
rs = ReM ((s, p,o),q) (3)
根据相关性分数 rs, 可以将一阶子图 G s 转换成包含对应相关性分数的四元组 T rs :
{ }
T rs = (s,r,o,rs)|s,o ∈ E,r ∈ R, s = e q ∨o = e q (4)
其中, rs 由公式 (3) 计算得到.
最终, 对于给定的问题 q 以及外部知识图谱 , 生成答案 a 的条件概率可以表示为:
G
|a| ∏
P(a|q) = P(y i |y <i ,q,T rs ) (5)
i=1
2.2 模型架构
在垂直领域, 针对 LLM 易产生“幻觉”的问题, 常采用检索增强生成 (retrieval augmented generation, RAG) 的
方式, 通过检索引入外部知识, 作为提示词 (prompt) 的一部分, 以减少“幻觉”现象. 然而, 已有 RAG 方法, 将检索到
的所有知识无差别地输入给 LLM, 常常会导致一些相关性较低的知识也被 LLM 所利用, 进而生成的回复中包含
这部分不相关的内容. 因此, 本文提出基于知识相关性增强垂直领域知识图谱问答的方法. 通过单独训练相关性计
算模型, 计算检索到的知识图谱三元组按照其与问题的相关性, 并有差别地输入 LLM, 以帮助 LLM 更好地判断关
键三元组, 增强其回答问题的准确率.
本文考虑不同三元组对模型回答问题的贡献不同, 提出了基于相关性提示的知识图谱问答方法, 模型框架如
图 2 所示, 主要包括 3 个阶段: (1) 子图检索; (2) 三元组相关性计算; (3) prompt 构建与回复生成. 其中, 子图检索阶
段需要在知识图谱 G 中检索问题中实体对应的一阶子图 . 将 G s 输入下一模块, 通过训练相关性计算模型 ReM,
G s
对 G s 中包含的每一条三元组, 计算其与问题 q 的相关性 rs, 得到包含该分数的四元组集合 T rs . 将 T rs 输入第 3 个
模块, 将四元组与问题构建合适的 prompt, 作为 LLM 的输入, 最终生成问题对应的答案 a. 通过上述流程, 将检索
到的多个三元组通过添加额外信息拓展为四元组的方式, 有序、有差别地构建了提示词. 当提示词输入 LLM 之
后, 与“检索-问答”的范式相比, LLM 可以根据该部分额外信息, 更简单地判断出问题对应的关键知识, 进而生成更
高质量、更准确的答案.
实体 r 1 t 1 问题
检索 一阶子图
问题 实体 实体 r 2 t 2
实体 r n t n 相关性计算模型
] 实体 r 1 t 1 score 1
[实体, r m 1 , t m 1 , score m 1
重排序
]
答案 大语言模型 [实体, r m 2 , t m 2 , score m 2 实体 r 2 t 2 score 2
...
]
[实体, r m n , t m n , score m n 实体 r n t n score n
问题
prompt ܒࡹ
图 2 基于相关性提示的知识图谱问答框架
2.3 相关性计算模块
为了量化三元组与问题之间的相关性, 本文首先对三元组和问题分别进行语义表示, 再计算两者表示的相似
度作为它们的相关性程度. 具体地, 如图 3 所示, 为了将三元组转化为包含语义信息的表示, 需要先将其序列化. 本
文采用线性序列化的方式, 将一个三元组 (s,r,o) 表示为文本形式的 “[s, r, o]”. 接着, 进行关于问题的正负样本对构

