Neural Logic Reasoning论文阅读

  1. 摘要

近年来,深层神经网络在许多领域取得了成功,大多数神经网络设计背后的基本思想是从数据中学习相似模式进行预测和推理,这缺乏认知推理能力。然而,具体的推理能力是许多理论和实践问题的关键。另外,传统的符号推理方法在进行逻辑推理方面有很好的效果,但他们大多是直接的基于规则的推理,这限制了它们对不同任务的泛化能力,因为不同的任务需要不同的规则。推理和泛化能力对于推荐系统这样的预测任务很重要,推理提供了用户历史和目标物品之间强关联以便精确推测,泛化能够帮助模型在噪声输入下构造健壮的用户画像。本文提出了逻辑集成神经网络(LINN)来集成深度学习和逻辑推理的能力。LINN是一种动态神经网络结构,根据输入的逻辑表达式构建计算图。它学习基本的逻辑运算,例如OR\AND\NOT作为神经模块,并通过网络进行命题逻辑推理。理论任务实验表明,LINN在求解逻辑方程和变量方面有显著的性能。此外,我们通过将推荐任务描述为一个逻辑推理问题,在推荐的实际任务上对我们的方法进行验证。

  1. 引言

虽然神经网络通常对具有相似分布的数据具有良好的泛化能力,但这些方法的设计思想使得神经网络在许多理论和实际问题上很难进行逻辑推理分析,但这些方法的设计思想使得神经网络在许多理论和实际问题上很难进行逻辑推理分析。然而,逻辑推理是一种重要的智能能力,它对许多理论任务,如解决逻辑方程,以及实际任务,如医疗决策支持系统,法律助理,和个性化推荐系统至关重要。

例如,在推荐系统中。推理可以帮助建立用户和项目之间的复杂关系模型(例如:用户喜欢项目a,但是不喜欢项目b->用户喜欢项目c),特别是对于那些罕见的模式,这通常是神经网络难以捕捉的。

进行推理的一种典型方法是通过逻辑推理。事实上,在机器学习方法出现之前,基于符号推理的逻辑推理一直是人工智能的主流方法,它也是传统人工智能中许多专家系统的基础。然而,传统的逻辑推理的符号推理方法大多是基于规则的硬推理,由于规则难以定义,不易适用于现实世界中的许多任务。

例如,在推荐系统中,如果我们把每个物品都看作是一个符号,我们就很难根据手工设计的规则来捕捉物品之间的所有关系。此外,个性化用户偏好带来了各种交互序列,这可能带来冲突推理规则,例如,一个用户可能同时喜欢,而另一个喜欢a的用户可能不喜欢b,数据中的这种噪声使得设计适合于新数据的推荐规则变得非常有挑战性。

为了统一利用深度网络的泛化能力和逻辑推理,提出了逻辑集成神经网络(LINN),基于神经网络进行逻辑推理的神经结构。LINN用向量表示逻辑变量,每个基本逻辑运算(AND\OR\NOT)作为一个基于逻辑正则化的神经模块来学习。由于由同一组变量组成的逻辑表达式可能具有完全不同的逻辑结构,因此捕获逻辑的结构信息对逻辑推理至关重要。为了解决这个问题,LINN根据输入的逻辑表达式动态构造其神经网络结构,这不同于许多固定计算图形的神经网络。通过在神经网络结构中编码逻辑结构信息,LINN可以灵活处理指数级的逻辑表达式。

  1. LINN模型

在LINN中,逻辑表达式中每个逻辑变量都表示为一个向量嵌入,每个基本逻辑运算(例如,AND\OR\NOT)斗学习为一个神经模块。大多数神经网络都是基于独立输入的固定神经结构而开发的,无论是手动设计的还是通过神经结构探索学习的。不同的是,我们的LINN体系结构的计算图是依赖输入的,并根据输入逻辑表达式动态的构建。我们进一步利用正则化(Logic Regulaizers)对神经模块,以保证每个模块进行预期的逻辑操作。

  1. 神经模块的逻辑操作

命题逻辑的表达式由逻辑常量(True或False,标记为T/F)、逻辑变量(v)和基本逻辑运算(否定、合取、析取)组成。在LNN中,逻辑运算被学习为三个神经模块。Leshon等证明了具有非多项式激活函数的多层前馈网络可以逼近任何函数。这为我们利用神经模块学习逻辑操作提供了理论支持。与大多数将输入变量作为向量作为向量表示学习的神经模型类似,T、F和所有逻辑变量都被表示为具有相同维数的向量。给定逻辑表达

及其对应的值:

图下的框显示了LINN如何构造一个逻辑表达式。每个中间向量表示逻辑表达式的一部分,最后得到整个逻辑表达式 e的向量表示。这样,虽然嵌入矩阵的大小随着逻辑变量总数的线性增长,但算子网络中的参数总数保持不变。

此外,由于表达式是按树结构组织的,因此可以从叶子到根递归地计算它。

为了计算表达式的 T/F 值,我们计算了表达式向量和 T/F向量之间的相似度,如上面的框所示。这里 Sim (,)也是一个神经模块,用来计算两个向量之间的相似度,并输出0到1之间的相似度值。

2. 神经模块上的逻辑约束 Logical Regularization

到目前为止只学习了逻辑运算作为神经模块,但没有明确保证这些模块实现预期的逻辑运算。

例如,任何与 False 连接的变量或表达式都应得到F,即 w ∧ F= F,双重否定应该等于本身。

我们使用 w 代替 v,因为 w 既可以是单个变量(例如,vi) ,也可以是计算流程中间的表达式。LINN 应该满足基本的逻辑规则,尽管神经结构可能隐式地从数据中学习逻辑操作,但是如果我们对其加上具体的逻辑约束会更好指导学习逻辑。为了实现这一目标,文中定义了逻辑正则化(Logical Regularization)来规范模块的行为,使它们能够执行一定的逻辑操作。完整的定义如下表所示:

这些规则完备地设定了三种基本逻辑运算的各种运算性质。相应的约束也是建立在LINN定义的特征空间中,而非完整的向量空间中。逻辑正则鼓励LINN 学习神经模块参数,以满足模型中涉及的变量/表达式的推理性质,这比整个向量空间小得多。

3. 长度正则化 Length Regularization over Logic Variables

4. 实现细节

4.原型实验:求解逻辑等式 Solving logical equations

在将 LINN 应用于实际任务之前,我们在一个基于模拟数据的理论任务上进行了实验,以证明 LINN 框架具有进行逻辑推理的能力,这是传统神经网络难以做到的。 给定一定数量的训练逻辑表达式及其 T/F 值,训练 LINN,检验该模型能否求出逻辑变量的 T/F 值,并预测由观测逻辑变量构造的新表达式的值。

我们基于一组已知的 DNFs 训练模型,并期望该模型能够预测新的 DNFs 的 T/F 值,而不需要显式地求解每个逻辑变量的 T/F 值。它保证有一个答案,因为训练方程是基于相同的参数集与已知的 T/F 值。对比结果如下所示:

可以看出在不同的逻辑长度和数据级上,LINN都取得了比通用神经网络显著优秀的效果。其中LINN-Rl表示去除逻辑正则化设置的模型效果。

此外,文中还可视化了训练过程中表达式中变量嵌入的变化过程:

可以看到两类变量随着迭代逐渐区分开来。

5.推荐系统实验

通过模拟数据的实验,验证了 LINN 能够求解逻辑变量和对逻辑方程进行推理。同时也揭示了 LINN 在其他实际任务中的应用前景,只要这些任务可以表达为逻辑表达式。推荐既需要神经网络的泛化能力,又需要逻辑推理的推理能力。

为了将 LINN 应用到推荐任务中,我们首先将其转换为一个逻辑公式化的问题。推荐的关键问题是根据历史交互理解用户偏好。

逻辑表达式可以很容易地用于建模用户历史记录中的物品关系。例如,如果一个用户购买了 iPhone,他/她可能需要一个 iPhone 保护套而不是 Android 数据线,例如,iPhone ∧ iPhone 保护套 = T,而 iPhone ∧ Android 数据线 = F。

这种表达式形式具有两个显著优点:

  1. 模型可以从用户历史筛选掉无关交互。例如,如果 vj1、 vj2、 vj3分别是 iPhone、猫粮和 iPhone 外壳,只要 vj1∧ vj3接近正向量T,不管 vj2∧ vj3的向量是什么样的。

  1. 训练后的模型,给定用户历史和目标物品,该模型不仅预测了用户对物品的偏好程度,而且还通过对表达式中的每个关联项进行评估,找出哪些物品是相关的。这样可以为构建可解释性推荐提供基础。

在构建表达式时,如果用户有更多的历史交互,可能会有更高的阶和更多的关系,上面的表达式中的析取项数量将呈指数增长。 一种解决方案是随机抽样或使用一些设计的抽样策略。

在这项工作中,为了简化模型,只考虑了一阶关系,这足以超越许多最先进的方法。 此外,文中还提到模型的优势:

需要注意的是,上述推荐模型是非个性化的,即我们不学习用于预测和推荐的用户嵌入,而是只依赖于项目关系进行推荐。然而,正如我们将在接下来的实验中所展示的那样,这样一个简单的非个性化模型优于最先进的个性化神经序列推荐模型,这意味着在推荐任务中具有强大的推理能力和潜力。未来将考虑将模型扩展到个性化版本。

6.推荐实验设置

评分数据被转化为0和1,以构成逻辑表达式。等于或高于4的评分定义为1,这意味着积极的态度(like) ,其他的评分定义为0,表示不喜欢。

采用Leave-One-Out方式划分数据集:训练-验证-测试集。按照时间对每个用户的交互进行排序,用户的每个正向交互按照上述方式转化为一个逻辑表达式。我们确保与用户最早的5个正面交互相对应的表达式都在训练集中。对于那些不超过5个正面交互的用户,所有的表达式都在训练集中。对于剩余的数据,每个用户的最后两个正表达式分别分布到验证集和测试集中(如果只有一个用户正表达式,则首选测试集)。所有其他表达式都在训练集中。

没有透露具体怎么测试的,即是从全集物品进行评估,还是采样一部分进行推荐评估。

推荐效果对比如下:使用了HR@1和NDCG@10进行评估

为了更好地理解 LINN 所学到的内容,我们随机选择9部 ML-100k 的电影,并使用 LINN 来预测它们的共现(也就是说,被同一个用户喜欢)。这些电影根据它们在训练集中的受欢迎程度(互动次数)进行排名。 超过30个用户与前3部电影互动,与后3部电影互动的用户不到5个。

使用 LINN 来计算每个条目对的 Sim (vi ∧ vj,t) ,即用户喜欢 vi 时喜欢 vj 的概率。结果如图所示:

虽然我们没有为 AND 或 OR 设计一个对称的网络,但 LINN 成功地发现 vi ∧ vj 接近 vj ∧ vi。热图矩阵中的对称位置具有相似的值,这表明了这一点。

LINN 可以学习到受欢迎的物品组合被同一个用户消费的概率更高。

LINN 可以发现物品之间的潜在关系。例如,第602项是一个流行的歌舞音乐电影,第1144项是一个不受欢迎的戏剧电影,但他们属于类似类型的电影。我们看到 LINN 能够了解到他们被同一个用户喜欢的概率很高(共现概率高)。

7.结论

在这项工作中,我们提出了一个逻辑集成神经网络(LINN)框架,该框架将逻辑推理引入深度神经网络。特别地,我们使用潜在向量来表示逻辑变量,并且逻辑操作被表示为由逻辑规则正则化的神经模块。逻辑推理与神经网络的集成使模型同时具有表示学习和逻辑推理的能力,为深度神经网络的设计提供了一个很有前途的方向。理论实验表明,LINN适用解决逻辑方程和变量等逻辑推理问题。我们进一步将LINN轻松地应用于推荐任务,并取得了显著的性能,显示了LINN在实际任务上的前景。在这项工作中,我们专注于使用神经网络的命题逻辑推理,而在未来,我们将进一步探索基于我们的LINN架构的谓词逻辑推理,它可以通过学习谓词操作作为神经模块来轻松扩展。我们还将探讨基于LINN的知识图推理编码的可能性,这将进一步的合作。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值