First-Logic
Augmenting Neural Networks with First-order Logics
摘要
这篇论文提出一个新的框架,将外部一阶逻辑知识系统地嵌入到计算图中以增强网络,并且没有额外网络参数和网络二次设计,在三个任务:阅读理解、语言推理和文本分块任务中进行了实验,在小数据量下有效提升了基准模型。
介绍
这篇论文利用公开知识(一阶逻辑形式)来解决网络训练所需要的大量数据。例如,在机器阅读理解任务中,通常使用的是**注意力机制**去匹配单词作为中间步骤,进而找到文本中的答案段。
作者认为实则上不需要这么复杂的注意力机制去*Align*单词,实则上只需要一些简单的规则,例如*ConceptNet*中的方法,如果这种公开的规则能够加入到网络的训练之中,那么自然而然就会减少对数据的依赖。这篇论文主要关注三个问题:
- 能否将公开的规则(外部知识)整合到端到端的网络训练之中?
- 这种规则能够减轻网络对数据的需要?
- 使用外部领域知识这种方法和现在的利用大量数据预训练获得语句表达的方法比起来哪一个更好?
其中第一个问题是这篇论文主要解决的,更重要的是其中规则是不可导的,要将其嵌入到网络之中,就要讲规则转化为可导的,嵌入到网络的计算图中。这篇论文主要做了这些贡献:
- 提出一个新的框架将一阶逻辑整合到网络的训练和预测之中。
- 在三个自然语言处理的任务中进行实验,在小样本训练数据时,都有很大的提高。
ConceptNet
问题定义
神经网络
神经网络可以看作是非循环的计算图$G=(V,E)$,其中的节点$V$有时没有实在的意义,但有时却因为任务的不同节点被嵌入了一些语义,而作者们的目标就是通过公开的规则来增强神经网络中的神经元。
一阶逻辑
$$L \to R$$
可表达为$L$引起了$R$,即若$L$,则$R$。将一阶逻辑嵌入到网络中主要有三个难点:
- 需要将一阶逻辑中的断言映射为神经网络中的神经元节点。
- 逻辑是不可微的,需要将逻辑编码保证可导性,从而使用梯度方法训练。
- 网络计算图是非循环的,而用户定义的规则是可能循环的,所以要解决循环性。
表示
- $a_{i},b_{j}$为计算图节点
- $A_{i},B_{j}$为规则中的断言
循环性
对于如图的神经网络,$A_{1}\land B_{1}\to A_{2} \land B_{2}$是循环的,而$A_{1} \land A_{2} \to B_{1} \land B_{2}$是非循环的。
有时通过一些等价变化可以将循环的断言变成非循环的,这也是一种方法,例如:$B_{1} \to A_{1}$对于上面的图是循环的,而等价的$\neg A_{1} \to \neg B_{1}$是非循环的
整体框架
条件距离函数(Constraints Beget Distance Functions)
假设非循环条件语句
$$Z \to Y$$
定义与$Y$联系的神经元为
$$y=g(Wx)$$
其中$g$代表激活函数,$W$为网络参数,$x$是对$y$的输入。此外,使用向量$z$代表断言$Z$。
限制网络层(Constrained Neural Layers)
作者的目标是去增强$y$的计算,从而无论$Z$何时为真,如果$Y$不是否定的,那么$y$进入激活函数都是增加的。所以定义限制网络层为:
$$y=g(Wx+\rho d(z))$$
其中$d$就是作为距离函数,$\rho \ge 0$。
距离函数的设计
理想中的距离函数如下,
$$d_{i d e a l}(\mathbf{z})=\left\{\begin{array}{ll}{1,} & {\text { if } Z \text { holds }} \\ {0,} & {\text { otherwise }}\end{array}\right.$$
可惜的是它并不可微。所以需要做一些平滑的替代。
作者在论文中使用了自己设计的距离函数,这个函数是由probabilistic soft logic (c.f. Klement et al., 2013) and its use of the Łukasiewicz T-norm and T-conorm所启发的。
上表表现了对于$Z$不同的与或逻辑处理,所使用的不同距离函数$d(z)$。例如对于第一行,当其中一个$Z_{i}$为假,距离函数的值就会变为0。
否定假设
对于$Z \to Y$,前因$Z$和结果$Y$都有可能是否定的。表1的第三和第四行代表了否定的$Z$这种情况,而对于否定的结果$Y$,需要减小神经元$y$进入激活函数前的分数,所以只需要对整个距离函数取负就行。
规划因子$\rho$
- 当$\rho = +\infty$,神经元进入激活函数前的分数将由距离函数所控制,此时就将是有一个硬限制(hard constraint)。
- 当$\rho$很小时,输出结果将取决于$Wx$和距离函数两者,此时叫做软限制,而距离函数更多的是起个建议作用。
普遍的布尔前置
之前只考虑的是与或这两种单一存在的情况,现在考虑更为普遍的情况。假设现在有个断言前置为
$$(\neg A \lor B) \land (C \lor D)$$
首先我们取中间变量将其转化为
$$P \land Q$$
其中$(\neg A \lor B)\leftrightarrow P $,$(C \lor D) \leftrightarrow Q$。要这样做,需要使用辅助神经元来表示$P$和$Q$,并且辅助神经元完全需要被双向限制。
限制辅助层
对于$Z \leftrightarrow Y$,定义辅助层为
$$y=d(z)$$
和之前相比,现在不需要激活函数,因为距离是属于$[0,1]$的,可以直接表示为分数。所以之前的距离函数现在仍然适用。
结构增强网络
依据给的条件语句和计算图可以将框架流程总结为:
- 如果有必要,将语句前置转化为与或逻辑形式
- 将与或形式根据之前的表转化为距离函数
- 根据距离函数去生成限制辅助层或限制网络层去替代原来的网络层。
- 最后使用增强的网络去进行训练和推理。
实验
机器阅读理解
- 使用数据集为SQuAD,外部资源为ConceptNet。
模型
使用的基线模型为BiDAF,另一个为使用ELMo增强的BiDAF。将模型实施步骤简化为如下:
- $\overleftarrow{a}, \overrightarrow{a} = \sigma(layers(p, q))$
其中$p, q$是篇章和问题,$\sigma$代表softmax激活函数,$\overleftarrow{a},\overrightarrow{a}$代表$q$对$p$以及$p$对$q$的双向注意力,$y,z$是输出答案边界的概率。
增强
作者使用ConceptNet来代替上方的步骤二去获得相关单词之间的关系。具体地,使用两条规则来诠释他们框架的灵活。首先有如下定义:
- $K_{i, j}$:单词$p_{i}$在ConceptNet中与单词$q_{i}$有以下联系{Synonym, DistinctFrom, IsA, Related}
- $\overleftarrow{A_{i, j}}$:没有限制的模型对$p_{i}$和$q_{j}$最佳匹配关系的决策。
- $\overleftarrow{A_{i, j}^{‘}}$:有限制的模型对以上关系的决策。
根据以上定义,有以下规则:
其中$R_{1}$代表如果两个单词在ConceptNet中有关系,则这两个单词在模型编码结果应该相aligned
而$R_{2}$代表有限制的模型结果是与两者相关的:不仅是ConceptNet,还有原本的模型结果。
因为$K_{i, j}$不能映射到网络中的一个结点,所以作者创造了一个新结点$k_{i,j}$,它的值是由ConceptNet决定的。
是否提升模型效果,和预训练模型比较?
在数据量更少时,提升更多。$R_{1}$比$R_{2}$效果更好。