来源
EMNLP 2015
斯坦福大学
Kelvin Guu
Stanford University
kguu@stanford.edu
John Miller
Stanford University
millerjp@stanford.edu
Percy Liang
Stanford University
pliang@cs.stanford.edu
背景
知识图谱在推理和问答系统中有非常广泛的应用,但是知识图谱的不完整性限制了系统的性能。向量空间模型丢失了原始知识库支持组合查询的优势,性能受困于级联错误的影响。这篇文章通过组合向量空间模型用于回答路径查询。
模型
路径查询定义: 给定一个起始实体
s
s
s,和一条关系路径
p
p
p,所有从实体
s
s
s出发,经过路径
p
p
p到达的目标实体的集合。
定义一个路径查询的候选集合
C
(
q
)
C(q)
C(q)和不正确的答案
N
(
q
)
N(q)
N(q)
举例说明是如何组合向量空间模型来回答路径查询的,这里以双线性模型为例:
对三元组
(
s
,
r
,
t
)
(s,r,t)
(s,r,t)进行打分
回答查询
q
=
s
/
r
1
/
r
2
/
r
3
.
.
.
r
k
q=s/r_1/r_2/r_3...r_k
q=s/r1/r2/r3...rk,计算得分
结果是
[
[
q
]
]
=
{
t
:
s
c
o
r
e
(
q
,
t
)
>
0
}
[[q]]=\{ t: score(q,t )>0\}
[[q]]={t:score(q,t)>0}
一个通用的组合表示框架,上面的双线性模型是一个特例:
将组合表示框架表示为(7)的形式
训练
组合训练目标函数:
N条路径,长度范围从1-L
参数:
mark:不是所有的模型都可以组合表示,这样的方法不涉及单独表示s / r而没有t的中间向量的方式组合s,r和t
.
本文以TransE模型为例
打分函数:
s
c
o
r
e
(
s
/
r
,
t
)
=
−
∥
x
s
+
w
r
−
x
t
∥
score(s/r,t) = -\|x_s+w_r-x_t\|
score(s/r,t)=−∥xs+wr−xt∥
membership operator:
M
(
v
,
x
t
)
=
−
∥
v
−
x
t
∥
M(v, x_t) = -\|v-x_t\|
M(v,xt)=−∥v−xt∥
traversal operator:
T
r
(
x
s
)
=
x
s
+
w
r
T_r(x_s) = x_s + w_r
Tr(xs)=xs+wr
TransE 函数处理路径查询
q
=
s
/
r
1
/
r
2
/
.
.
.
/
r
k
q=s/r_1/r_2/.../r_k
q=s/r1/r2/.../rk
s
c
o
r
e
(
q
,
t
)
=
−
∥
x
s
+
w
1
+
w
2
+
.
.
.
+
w
k
−
x
t
∥
score(q,t) = -\|x_s + w_1+w_2+...+w_k- x_t\|
score(q,t)=−∥xs+w1+w2+...+wk−xt∥
数据集
基础数据集:WordNet 和 Freebase
mark: 对于一个在边
(
s
,
r
,
t
)
(s, r, t)
(s,r,t)上的查询
q
q
q, 如果
(
s
,
r
−
1
,
t
)
(s, r^{-1}, t)
(s,r−1,t)在训练集中出现,则这个查询很容易得到,在测试的时候,排除类似这样平凡的查询
查询训练数据集“
G
t
r
a
i
n
G_{train}
Gtrain 是训练集知识图谱,只包含训练集中的边。生成路径查询采用随机游走的方式,通过以下步骤产生查询样例:
- 按照均匀分布产生一个开始的实体 s s s,均匀分布的产生一个路径长度 L ∈ { 1 , 2 , . . . , L m a x } L \in \{1,2,...,L_{max}\} L∈{1,2,...,Lmax}
- 从 s s s开始随机游动 L L L步]
- 输出一个查询-答案对
(
q
,
r
)
(q,r)
(q,r),
q
=
s
/
r
1
/
r
2
/
.
.
.
/
r
L
q=s/r_1/r_2/.../r_L
q=s/r1/r2/.../rL,
t
t
t是随机游走到的最终实体
mark: 实际上不采样长度为1的路径,而是直接将 G t r a i n 中 G_{train}中 Gtrain中所有的边加入
测试集:
在 G f u l l G_{full} Gfull 知识图谱上按照上面相同的方法生成查询集合,并删除同时出现在训练集合上的查询,最终得到测试集。
按照上述方法可以得到base和路径分别的训练集和测试集
实验结果
解释一下度量指标
M
Q
MQ
MQ
对预一个查询
q
q
q,一个正确答案
t
t
t的分位数是排序在
t
t
t后面不正确答案的百分比,显然
M
Q
MQ
MQ的范围在0-1之间,如果为1时是最优的。
实验二:
deduction 查询集:对于查询
q
=
s
/
p
q=s/p
q=s/p, 源实体
s
s
s和目标实体集
[
[
q
]
]
[[q]]
[[q]]在
G
t
r
a
i
n
G_{train}
Gtrain中是通过关系
p
p
p是相连的,但是查询
q
q
q不直接出现在训练集中,目的是为了考察模型近似潜在训练图谱和从单边集合中预测路径的能力
induciton集合: 是除去deduction的集合,意味着从源实体到目标实体按照查询关系链
p
p
p的所有路径至少缺少一条边,目的是为了考察模型的泛化能力以及鲁棒性。
分析组合训练对路径查询和知识图谱补全性能提升的影响
级联错误导致single-edge训练的效果不好,single-edge训练鼓励
x
t
x_t
xt更加接近于于
x
s
T
W
r
x^T_sW_r
xsTWr相比预不正确的目标实体
x
t
′
x_{t^\prime}
xt′, 一旦margin为1之后,就不能再接近了。使用重建质量
R
Q
RQ
RQ 这个指标来衡量模型在每一步是如何处理的
当所有正确实体排在不正确实体前边时,
R
Q
=
1
RQ=1
RQ=1
知识图谱补全任务:
在路径上训练提供某种形式的结构化正则,减少级联错误。考虑Horn clause
p
−
>
r
p->r
p−>r,
p
p
p是路径类型,
r
r
r是被预测的关系
为了说明组合训练更能够捕获
p
p
p和
r
r
r的关系,期望
p
r
e
c
(
p
)
prec(p)
prec(p)越大,
d
i
s
t
(
p
,
r
)
dist(p,r)
dist(p,r)收缩越多
建立二者之间的关系