第三,我们的算法旨在成为知识图谱的有效规则挖掘器。 在知识图谱中,所有事实(也称为三元组)都是由带有常数的二元谓词产生的。 因此,可以将知识图谱分解为一组带有边缘标记的路径。 这就是为什么在没有一元谓词或
n
≥
3
n ≥ 3
n≥3 的
n
n
n 元谓词的情况下关注路径是有意义的主要原因。
知识图谱补全(或链接预测)问题目前主要由将给定知识图谱嵌入潜在特征空间的方法主导。学习一个明确的符号表示很少被提议作为替代本机。这可能与基本假设有关,即仅基于规则的方法不能解决的不仅仅是一个琐碎的子集。例如,参见 [Dettmers et al, 2018] 中提出的逆模型的讨论以及与 FB15k 中的冗余相关的批评 [Toutanova and Chen, 2015]。另一个假设可能是规则学习不能应用于大型数据集。出于这个原因,当前的研究架构关注规则和嵌入的组合(例如,[Guo et al 2018])。我们认为潜在的假设是错误的,并且目前的结果支持我们的主张。特别是,我们提出了一种随时自下而上的学习规则算法,并将我们的方法应用于知识完成任务。我们展示了五个不同数据集的结果。其中三个已被提议作为利用对称性和其他冗余的简单(基于规则)方法的困难案例。我们的方法与最近提出的大多数模型一样好,有时甚至更好。如果我们在短时间内停止算法,我们的方法的结果仍然非常好。此外,与潜在方法所需的资源相比,内存和运行时所需的资源要小得多。
语言偏见
知识图
G
G
G 定义在词汇
<
C
,
R
>
<C,R> 之上,其中
C
C
C 是一组常量,
R
R
R 是一组二元谓词。 因此,
G
=
{
r
(
a
,
b
)
∣
r
∈
R
,
a
,
b
∈
C
}
G = \{r(a, b) | r ∈ R, a, b ∈ C\}
G={r(a,b)∣r∈R,a,b∈C} 是一组基本原子或事实。 二元谓词称为关系,常量(或常量所指的)也称为实体。 下面我们用小写字母表示常量,用大写字母表示变量。 由于我们不学习任意的 Horn 规则,因此对于可以学习什么样的规则存在语言偏见,如下所述。
我们称规则为
h
(
c
0
,
c
1
)
←
b
1
(
c
1
,
c
2
)
,
.
.
.
,
b
n
(
c
n
,
c
n
+
1
)
h(c_0, c_1) ← b_1(c_1, c_2), ..., b_n(c_n, c_{n+1})
h(c0,c1)←b1(c1,c2),...,bn(cn,cn+1) 为长度为
n
n
n 的地面路径规则。 规则的头部是
h
(
.
.
.
)
h(...)
h(...),
b
1
(
.
.
.
)
b_1(...)
b1(...) 到
b
n
(
.
.
.
)
b_n(...)
bn(...) 是它的主体。 如果对于
l
l
l,
c
k
≠
c
l
c_k \not = c_l
ck=cl , 对于
l
≠
k
l \not = k
l=k,
k
∈
{
1
,
.
.
.
,
n
}
k ∈ \{1, ..., n\}
k∈{1,...,n} 并且如果对于
0
<
k
<
n
+
1
0 < k < n + 1
0<k<n+1,
c
0
≠
c
k
c_0 \not = c_k
c0=ck ,我们说基本路径规则是直的。 规则在体内没有循环。 在我们的形式化中,我们从变量的顺序中抽象出来,因为我们也考虑了带有翻转变量的规则,而没有明确地写下来。 直接地路径规则可分为
c
0
=
c
n
+
1
c_0 = c_{n+1}
c0=cn+1 的循环规则和
c
0
≠
c
n
+
1
c_0 \not = c_{n+1}
c0=cn+1 的非循环规则。 我们认为,任何来自长度为
n
n
n 的直线地面路径规则的有用推广,它也不是较短路径规则的推广或非直线路径规则的推广,属于三种类型
A
C
1
{AC}_1
AC1、
A
C
2
AC_2
AC2 或
C
C
C 定义如下。 我们使用
X
X
X 和
Y
Y
Y 表示出现在头部的变量,而
A
i
A_i
Ai是只出现在正文中的变量。
A
C
2
AC_2
AC2 规则是非循环基本路径规则的推广,
C
C
C 规则是循环基本路径规则的推广,而
A
C
1
AC_1
AC1 规则可以从循环
(
c
0
=
c
n
+
1
)
(c_0 = c_{n+1})
(c0=cn+1)和非循环规则
(
c
0
≠
c
n
+
1
)
(c_0 \not = c_{n+1})
(c0=cn+1)推广。
任何比属于这三种类型的规则更具体的规则都必须有一个
k
<
n
+
1
k < n + 1
k<n+1 的常量
c
k
c_k
ck,而不是变量
A
k
A_k
Ak。 关于
A
C
1
AC_1
AC1 和
A
C
2
AC_2
AC2 类型,我们必须区分两种情况: (1) body原子
b
k
(
.
.
.
)
b_k(...)
bk(...) 到
b
n
(
.
.
.
)
b_n(...)
bn(...) 的结合计算为真,因此可以将它们从规则中删除。 在这种情况下,也可以从长度为
k
k
k 的较短路径创建规则。 稍后将澄清我们在整个算法的先前迭代中学习此规则。 (2) 原子
b
k
(
.
.
.
)
b_k(...)
bk(...) 到
b
n
(
.
.
.
)
b_n(...)
bn(...) 的合取总是为 false,这导致规则永远不会触发。