小白首次发笔记,仅供学习参考
1 DILR简介
论文:/.acl-long.343.pdf
DILR(DeepInductiveLogicReasoning)深度感应逻辑推理模型提出了一种基于深度学习的归纳逻辑推理方法,该方法首先提取查询相关(候选相关)信息,然后通过诱导包含目标关系的可行规则对过滤后的信息进行逻辑推理。推理过程是通过具有新的可微逻辑运算符的注意记忆来完成的。
DILR由两个部分组成:1)一个分层的注意阅读器,从给定的文档中过滤与查询相关和候选相关的信息;2)一个多跳推理器,通过仔细选择适当的谓词来形成候选规则,并根据给定的例子进行归纳逻辑推理。
2 DILR推理规则
DILR模拟了一个考虑不同推理步骤数量的多跳推理过程。它是一个端到端由两个组件组成的端到端框架:一个层次注意阅读器和一个多跳推理器。阅读器学会从给定的文档中选择相关信息,以产生查询感知、候选感知和桥接实体表示。这些表示被传递给多跳推理器来实例化逻辑原子,以便生成和计算与查询关系相关的子句。多跳推理器通过attentive memories进行规则归纳,attentive memories选择原子形成新的子句,而新的可微逻辑算子为生成的子句产生概率值。最终的损失可以顺利地反向传播,以更新阅读器为更准确的选择。
层次分析阅读器
为了避免现成的命名实体提取的NER工具带来的不可避免的错误,建议使用attentive 阅读器来提取相关信息。由于每个问题都涉及到多个文档(上下文),因此设计了一个2级层次的注意网络来逐步过滤令牌级和上下文级的信息。具体来说,令牌级注意的目的是在每个上下文中选择与lhop(l=0,...,L)相关的实体。然后,注意力关注每个情境,考虑不同的推理跳数来产生最终的表征。
令牌层注意力
首先,采用主题到上下文的注意来寻找与每个上下文中的主题相似的标记:
,其中ws是一个可学习的变换向量,[;]表示连接。我们通过对每一行αs的softmax操作,获得了主题中的第i个标记和上下文中的第j个标记之间的标准化相似度得分αs ij。
0跳上下文表示的计算公式
其中,βis通过自注意来衡量主题标记的贡献:βs=softmax(¯ws⊤S+bs)。类似地,我们为第j个上下文标记w.r.t.生成一个注意力分数αa ij第i个候选令牌和一个候选感知的上下文表示。用s=βsS和a=βaA分别表示查询主题和候选实体的特征表示
对于(l+1)-跳推理(l≥0),采用上下文到上下文的注意
给定了l-hop表示hl,在其中h0=hs。在Bl+1的每一行上应用一个软max操作符后,我们使用αl+1ij来表示第i个和第j个上下文标记之间的标准化注意分数。使用¯αj0=¯αjs,(l+1)-跳桥接上下文表示将变成
l+1跳上下文表示的计算公式
内容层注意力
有多个上下文可用,使用上下文层注意力来生成最终的l-hop特性表示。当l=0时,模型关注每个上下文,以产生上下文参与的主题表示。
¯hs包含了原始特征和参与信息。类似的程序也适用于每个候选实体来生产¯ha。当l>0时,上下文层注意力的目的是产生每个上下文被选择为桥接实体的概率。
桥接实体概率的计算公式
多跳推理器
多跳推理器的目的是通过进行复杂的推理,首先生成可能的逻辑子句,然后通过实例化从阅读器那里获得的相关上下文的变量来评估每个子句。子句生成过程由注意记忆参数化,注意记忆计算选择每个原子形成相关子句以包含查询关系的概率。
然后,子句计算过程是实例化每个原子中的变量,如查询主题、候选实体或桥接实体。来自阅读器的输出,即¯hs,¯ha和{hlk}的(l>0),可以作为这些常数的特征表示,以计算子句计算和更新的原子分数。
子句生成与评估
子句生成过程分为两个阶段:1)仅使用存在谓词生成定义发明的谓词的子句;2)仅使用发明的谓词生成定义查询关系q的最终子句。通过计算每个谓词的注意权重来表示其出现在子句主体中的概率来参数化这两个阶段(给谓词分配可学习的嵌入来表示其语义)。
谓词注意力权重的计算公式
谓词嵌入矩阵的计算公式
给定目标关系q的嵌入后,使用多头注意机制来计算每个头h的谓词的概率分布,产生最终子句
子句的评估提出新的神经逻辑算子G
神经逻辑算子的计算公式
神经网络谓词概率分布的计算公式
估价函数的公式
3 DILR推理小结
DILR考虑不同推理步骤数量的多跳推理。由一个层次注意阅读器和一个多跳推理器构成,基于深度学习进行逻辑推理。亮点是引入了深度学习的归纳推理方法来细化阅读器和推理器,缺点是计算量大。阅读器部分进行了分层操作,通过多层来学习过滤与查询信息的操作;推理器并行计算多跳的输出结果,然后输入到评估器中,通过评估器选择答案。在评估器中作者提出了一个新的神经逻辑算子作为评估函数的一部分。这个计算成本我都不敢想。
这个框架就是结合了神经网络和阅读器-检索器的架构