图1. 整体框架
(1)检索:从知识图谱中检索和问题相关的子图,从里面抽取得分的最高关系链(这个和后面生成的逻辑表达式很相关)。然后构造微调使用的数据集。(2)生成:进行微调,然后生成问题的逻辑表达式(beam search)。(3)检索:将生成的逻辑表达式中的实体和关系进行替换,具体来说,从知识图谱的实体集和关系集中计算和当前生成的逻辑表达式中的实体和关系相似度最高的topk个实体和关系进行替换,得到候选的逻辑表达式列表。最后遍历候选列表,直到找到可以运行的逻辑表达式。
实验结果
我们在公开的数据集WebQSP和CWQ数据集上面进行了相关的实验。结果如下表所示:
从结果来看,在融入了信息抽取获取得到的信息之后,在进行微调,可以很大程度上提升我们模型的性能。
表2展示了加入不同关系链下的模型性能。w/o SR表示模型在微调的时候,不加入任何信息,random表示从主题实体到答案实体之间的任意关系链,two chains表示加入得分最高的两个关系链参与模型的微调。由表2可以看出,在随机加入关系链之后,相比没有加入的情况比,可能是由于随机引入,加入了噪声,损害模型的性能。而加入了两个得分最高的关系链之后,也可能引入了和当前问题无关的关系链,从而影响模型的性能。
表2. 不同关系链下的消融实验
图2展示了在不同参数量的大模型下的性能对比(a)表示引入得分最高的一条关系链;(b)表示不加入关系链;(3)表示加入两条得分最高的关系链。Llama3的性能要比llama2的性能强很多。但是在我们的框架下,我们发现,在经过微调之后,两者的性能差距是比较小的。其次,llama2在引入最优关系链之后进行微调的性能和llama3不引入外部信息进行微调的性能差距很小,这也反映出我们框架的有效性。
图2. llama2和llama3模型性能对比
表3展示了最后一个检索部分的有效性。
表3. 最后一个检索步骤的消融实验
我们也进行了相关实验来验证最后一个检索阶段的有效性。具体来说,我们去掉最后一个检索步骤,直接使用微调后的大模型生成的结果,去图谱中检索相对应的答案。结果表明,当我们去掉最后一个检索步骤之后,模型的性能有所下降,说明,对于复杂的逻辑表达式来讲,这表明微调后的大模型可以在很大程度上生成逻辑表达式的正确骨架,通过最后一个步骤的实体和关系替换,可以弥补大模型的问题。
参考文献
[2]Haoran Luo, Haihong E, Zichen Tang, Shiyao Peng, Yikai Guo, Wentai Zhang, Chenghao Ma, Guanting Dong, Meina Song, Wei Lin, Yifan Zhu, and Anh Tuan Luu. 2024. ChatKBQA: A Generate-then-Retrieve Framework for Knowledge Base Question Answering with Fine-tuned Large Language Models. In Findings of the Association for Computational Linguistics: ACL 2024, pages 2039–2056, Bangkok, Thailand. Association for Computational Linguistics.
[3]AI@Meta. 2024. Llama 3 model card.