论文链接:https://aclanthology.org/2024.acl-long.72.pdf
1. 动机
溯因推理是做出有根据的猜测,为观察结果提供解释的过程。虽然知识的应用已经很广泛,但是溯因推理与结构化知识(比如,知识图谱)的结合还没有被充分探索。本文的目标是生成一个复杂的逻辑假设,以此来解释一组观察结果,比如,“如果A和C都发生,并且D没有发生,那么B就会发生”。考虑图1的例子,一个逻辑假设(Hypotheses)可以为观察结果(Observations)提供一段合理的解释(Interpretations)。
图1 观察结果和推断逻辑假设的例子
处理这种推断任务的一种直接的方法就是基于搜索的技术,基于观察到的结果探索潜在的假设。但是这种方法面临两个挑战,
首先,知识图谱中的信息可能不完整。基于搜索的方法严重依赖于数据的完整性,知识图谱边的缺失会对这种方法产生消极影响。
其次,逻辑结构假设的复杂性。当处理候选假设的组合时,基于搜索的方法的搜索空间呈指数增长。
为了克服上述挑战,本文提出在监督学习框架内利用生成模型为给定的观测值生成逻辑假设,并使用教师强制(Teacher-forcing)方法训练基于Transformer的生成模型。经过有监督训练的生成模型可以生成在结构上更符合参考假设的逻辑假设,但是对于未知数据,不能保证模型的性能。因此,本文引入了基于知识图谱的强化学习方法(RLF-KG),使得模型在生成假设时,会根据知识图谱中的信息,调整生成的假设,使得这些假设推导出的结论与实际观察到的结果更加一致,它利用近端策略优化(PPO)来最小化观察到的证据与从生成的假设中得出的结论之间的差异。
2. 贡献
本文的主要贡献有:
(1)介绍了复杂逻辑假设生成任务,这项任务可以被视为与知识图谱进行溯因推理的一种形式。
(2)为了应对知识图谱的不完整性和逻辑假设的复杂性带来的挑战,本文提出了一种生成式方法,提高了生成的假设的质量。
(3)开发了基于知识图谱的强化学习(RLF-KG)技术,最大限度地减少观察结果与所生成假设结论之间的差异。
3. 方法
3.1.问题定义
定义一个知识图谱G=(V,R),V是顶点的集合,R是关系类型的集合,每一个关系类型r∈R都是一个函数:V×V→{true,false},r(u,v)=true表示在图谱中存在从顶点u到顶点v的类型r,反之为false。对于图谱中缺失的边,用unknown代替,而不是false。推理模型只能访问观察到的图谱G,而真实的图谱被隐藏 ,并且包含观察到的图谱G。
一个观察(observation)是V中实体的集合O,一个图谱中的逻辑假设H(hypothesis)被定义为一阶逻辑形式的变量顶点V的谓词,AND,OR,NOT。假设可以被写为联合范式:
表示假设是基于给定的图谱G制定的,这意味着假设中的所有实体和关系都必须在G中,可变顶点的域是G的实体集。
H的结论(conclusion)被表示为 ,是H在G上为true的一组实体:
设O= { }表示一个观察,G是观察到的图谱, 是隐藏的图谱,溯因推理的目标就是在G上找到假设H,其在隐藏图 上的结论 与O最相似,在形式上,使用Jaccard指数对相似性进行量化:
3.2.方法
第一步,从观察到的训练知识图谱中随机抽样假设,首先随机选择一个假设,然后对训练图进行搜索以得出结论,然后将其视为与假设对应的观察结果。将假设和观察结果转换为序列,以输入给生成模型。对于观察,标准化每个元素的顺序,确保同一观测集合的排列产生相同的输出。观察中的每个实体都表示为一个唯一的分词,比如(Apple)和(Phone),并关联到一个嵌入表示。
图2 第一步,对观察-假设对进行采样
图3 第二步,训练假设生成模型
图4 第三步,使用RLF-KG优化假设生成模型
第二步,有监督训练一个假设生成模型。设O表示观察的分词序列,h表示假设,损失函数被定义为:
其中生成模型使用的是标准的Transformer。
第三步,为了解决模型对未知数据的局限性,本文采用强化学习结合知识图谱的反馈来增强训练好的条件生成模型ρ。奖励函数被定义为:
这里的模型ρ被视为参考模型,并用它初始化要优化的模型Π,然后引入KL散度惩罚来修改奖励函数。修改后的奖励为:
4. 实验
实验目的在于通过比较方法过程前后模型的Jaccard验证基于知识图谱的强化学习对增强假设生成模型的有效性。方法中对验证和测试假设做了一定的约束:与训练图 相比,每个验证假设必须在结论中包含额外的实体;与验证图 相比,每一个测试假设必须有额外的实体。数据集基本情况如下表:
表1 数据集统计
文中将构建的测试图视为隐藏图,其中包含10%的边,这些边在训练和评估阶段没有被观察到。给定一个观测值和生成的假设H,使用图搜索算法来确定H的结论:
为了使用ScoreSmatch评估复杂逻辑查询,本文将生成的假设H和引用假设 表示为 ,从而量化H与 对应的图之间的结构相似性。
表2 FB15K-237、WN18RR和DBpedia50上13中假设类型的表现
图5 RLF-KG训练在不同数据集上的奖励值
额外实验:本文还探索了将结构相似性注入PPO训练中使用的奖励函数所带来的好处,将 作为奖励函数中的额外项。
表3 Jaccard和Smatch表现出不同的奖励作用
为了比较基于搜索的方法和生成式方法之间的差异,本文还进行了两种方法的对比试验。
表4 基于搜索的方法和生成式方法效率对比
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。