ICLR 2020 | Learn to explain efficient via neural logic inductive learning

本文提出了一种名为NLIL的神经网络逻辑归纳学习框架,旨在解决传统ILP方法在处理模糊和噪声数据时的局限性。NLIL采用分治策略,将搜索空间分解为三个子空间,以提高多跳推理的效率和规则表达性。通过端到端的训练,NLIL能够生成与监督模型预测能力相当且具有解释性的规则。实验表明,NLIL在经典ILP基准任务和视觉基因组数据集上表现出色,证明了其在知识库补全和模型解释方面的潜力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如有理解不当,请指正, 谢谢.

原文链接:https://arxiv.org/pdf/1910.02481v2.pdf

GitHub 源码:https://github.com/gblackout/NLIL

参考:

摘要

        本文提出一个可微分的归纳逻辑推理程序设计 ( Inductive Logic Programming,ILP ) 框架 —— 神经网络逻辑归纳学习 ( Neural Logic Inductive Learning,NLIL ) 来学习一阶逻辑规则 ( 逻辑范式 ) .

Introduction

        深度学习模型在行为和决策过程中缺乏可解释性,并且在训练时需要大量数据支撑. 不过,以一阶逻辑 ( First-order logic ) 形式存在的逻辑程序设计方法可以以显式符号结构发现和表达知识,缓解深度学习可解释性差的问题.

  • 传统的 ILP 方法依赖于硬匹配(hard matching)和离散逻辑(discrete logic),对模糊或噪声数据 0 容忍度. 可微分 ILP 模型将将神经网络与基于逻辑的计算结合起来,如正向链接(forward-chaining)∂ILP 方法,使用预先定义的模板构造规则,采用留出法(held-out set)对模板进行评估. 但一般的 ILP 方法都会涉及到 NP 难问题:

P1: 规则搜索空间会随规则长度的增长而呈指数级增大;

P2:变量绑定(Variable Binding)问题:在分配由谓词共享的逻辑变量时,参数的数量呈指数增长;

P3:评估公式时所需的规则实例化数量随数据大小呈指数增长.

为了缓解 NP 难问题,许多方法限制搜索路径长度在 3 之内,并借助基于模板的变量分配,但这限制了规则的表达性. 且大多数方法都局限于少于 10 个关系和少于 1k 个实体的小规模知识库.

  • 多跳推理(Multi-reasoning)方法可以完成知识库补全任务,如 NeuralLP 方法,可以通过搜索实体间关系路径完成知识推理任务. 这些方法可以利用 ILP 规则进行解释,即实体间的关系路径可以等价为一个类链一阶逻辑规则 ( chain-like first-order rule ). 与基于模板的方法相比,这一类方法可以有效缓解 P2 和 P3. 但仍存在限制:

(1)类链规则被表达成 Horn 子句的子集,难以表示复杂规则; 

(2)学习到的规则仅对特定查询有效,泛化能力较差. 

本文提出的 NLIL 是一种可微分 ILP 方法,扩展了一般用于解决 ILP 问题的多跳推理框架. 利用分治策略 ( divide-and conquer strategy ),将搜索空间分解为同一层次结构的 3 个子空间,每一个子空间都可以用注意力有效完成搜索任务. 通过将训练分为规则生成和规则评估阶段维护规则的全局一致性,其中,在规则生成阶段只考虑全局共享的谓词. 

        同时,NLIL 也适用于监督学习中的模型解释,将其应用于 Visual Genome 数据集中,所学规则在保持可解释性的同时,具有与密集监督模型 ( densely supervised model ) 相当的预测能力. 

Preliminaries ( 准备工作 )

监督学习通常涉及对分类器的学习,分类器将输出目标的分数映射到 [ 0, 1 ] 区间内并进行分类. 但结果却无从解释. 最近关于可解释性的工作集中在生成 heatmaps ( 热图 ) 或自解释分类器的注意力上. 本文认为,更有效的解释是通过分类器之间的联系得出的 ( 通常一个relation是一个分类器 ) .

例如,现在有分类器:Penson ( X ),Car ( X ),Clothing ( X ),Inside ( X , X' ) . 当解释为什么 Person ( X ) 成立时,可以利用其它三个分类器来解释,如 “ X is a person if it's inside a car and wearing clothing ” .

Inductive Logic Programming ( 归纳逻辑程序设计, ILP )

一个典型的一阶逻辑 ( First-order Logic, FOL ) 系统包含三个要素:entity、predicate、formula . 

ILP 在一阶规则学习中引入了函数和逻辑表达式嵌套. 一方面使得机器学习系统具备了更为强大的表达能力;另一方面,ILP 可看作用机器学习技术来解决基于背景知识的逻辑程序 ( Logic Program ) 归纳,使学得的 “规则” 可被 PROLOG 等逻辑程序设计语言直接使用. ILP 采用自底向上的规则生成策略,直接将一个或多个正例所对应的具体事实 ( grouded fact ) 作为初始规则,再结合最小一般泛化与逆归结做进一步学习. 

ILP 通过规则的硬匹配以及遍历的搜索流程去逐步搜索出满足条件的逻辑范式,但效率低下,表达能力差,且对噪音数据的容忍性小。

Predicates ( 谓词 ) 是将实体映射为 0 或 1 的函数, 如 Person : x |→ { 0, 1 }, x ∈ \mathcal{X} . 分类器可以看作是可微分的 Predicates ( soft predicates ) . 

arity : 参数数量

atom : 原子公式, 不含连接词的 FOL 公式, 用于逻辑变量的谓词符号, 用于描述事物的属性或关系, 如  Penson ( X ),  Inside ( X , X' ). 逻辑变量 X 都可以被实例化为 \mathcal{X} 中的任一对象. 

FOL 的公式 : 使用逻辑符号 { ∧, ∨, ¬ } 将原子公式连接起来组合为 FOL 公式. 给出一个谓词集 \mathcal{P} = \left \{ P_{1},\ ...\ ,P_{K} \right \} , 使用一阶逻辑蕴含 ( entailment ) 对谓词 P_{k} 解释为以下规则 :

\forall X , X' \ \exists Y_{1},Y_{2}\ ...\ P_{k}(X,X')\ \leftarrow \ A(X,X',Y_{1},Y_{2}\ ...\ )                              ( 1 )

P_{k}(X,X') 为蕴含头 ( 规则头 ), 表示该条规则的结果; A 为规则体, 是一个通用公式, 表示该条规则的前提条件.

可以解读为 :  对于任意 X, X' 都存在 Y_{1},Y_{2},\ ..., 在满足 A 的同时, 可以推导出 P.

通过引入逻辑变量,使规则更具泛化能力,因为它不再依赖于特定数据. 通过将变量实例化评估公式.

给出一个关系知识库 ( Knowledge Base, KB ) ,包含一组事实:

\left \{ (x_{i},P_{i},x^{'}_{i}) \right \}^{N}_{i=1}

其中,P_{i}\in \mathcal{P}  ,x_{i},x_{i}^{'}\in \mathcal{X} ,以公式 ( 1 ) 形式学习且包含目标谓词 P^{*}\in \mathcal{P} 的一阶逻辑规则任务称为归纳逻辑程序设计.

Multi-hop Reasoning ( 多跳推理 )

在知识图谱中,ILP 问题与多跳推理密切相关,与 ILP 类似,多跳推理在 KB 中执行时也包含谓词集 \mathcal{P} ,事实相对于谓词 P_{k} 进行存储,谓词 P_{k} 表示为二进制 \left | \mathcal{X} \right |\times\left | \mathcal{X} \right | 的邻接矩阵M_{k} ,当且仅当 < x_{i} , P_{k}, x_{j} > 在 KG 中存在时,M_{k}[i,j]=1 ,否则,为 0. 

当给出查询 q = <x,P^{*},x'> ,多跳推理的目标是找到将两个实体 x 和 x' 连接

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值