[COLING 2018] Modeling Semantics with Gated Graph Neural Networks for KBQA 阅读笔记
motivation:
大多数知识库问答方法都是基于语义分析的。在本文中,作者解决了由多个实体和关系组成的复杂语义解析的学习向量表示问题。以前的工作主要集中在为一个问题选择正确的语义关系,而忽略了语义分析的结构:**实体之间的联系和关系的方向。**我们建议使用门控图神经网络(Gated Graph Neural Networks)来编码语义解析的图结构。我们在两个数据集上显示,图形网络优于所有没有明确建模结构的基线模型。错误分析证实,我们的方法可以成功地处理复杂的语义分析。
KBQA任务:
图结构由来自知识库和特殊q−node的实体和关系组成。知识库中任何可以代替q−node的实体都是答案的一部分
本文作者的贡献是:
(i) 我们的分析表明,目前的KB QA解决方案在复杂问题上表现不佳;
(ii)我们在带有标记边的有向图上应用门控图神经网络,并将其用于处理来自KB的大量可能的实体和关系类型。据我们所知,我们是第一个使用ggnn进行语义解析和KB QA的人;
(iii)与强基线相比,我们用于语义解析的门控图神经网络实现提高了在复杂问题上的性能。结果显示,f分数比最佳的非图模型提高了27.4%。
2. Semantic parsing
2.1. Semantic graphs
作者采用图形形式的结构语义表示来编码问题的含义
图形结构由 问题变量节点(q),维基百科实体(Taylor Swift),维基百科关系类型(PERFORMER)和约束(参见图3中带有约束的示例图)。q节点始终存在,表示问题的答案。也就是说,知识库中的所有实体都可以取代它的位置,这样所有的关系和约束都保持不变,这就是问题的答案。
如上图所示,我们把一个图记为一组边E。每个边将q节点链接到一个或两个Wikidata实体(二元或三元边)。边集E是通过维基数据关系和实体定义的。形式上,维基数据可以描述为一个非常大的图
W
=
(
E
,
R
,
I
)
W = ( E , R , I )
W=(E,R,I)
E是实体,R是一组二元关系类型,I是编码为r (e1, e2)的关系实例的集合,r ∈ R, e1 , e2 ∈ E。维基数据中的三元关系实例被存储为一个主关系三元组和一个附加的修饰符,该修饰符本身也是一个二元关系:
r
2
(
r
1
(
e
1
,
e
2
)
,
e
3
)
,
r
1
,
r
2
∈
R
,
e
1
,
e
2
,
e
3
∈
E
r2( r 1 ( e 1 , e 2 ) , e 3 ) , r 1 , r 2 ∈ R , e 1 , e 2 , e 3 ∈ E
r2(r1(e1,e2),e3),r1,r2∈R,e1,e2,e3∈E
然后,语义图的边集E由对应于维基数据关系实例的二元和三元边组成,用q代替其中一个关系参数。对于时序关系,第二个参数可以是argmax或argmin约束。这意味着只有具有该关系的最大值或最小值的实体才被考虑作为答案。这个定义代表了一阶逻辑语义分析的子集,仅限于谓词的连接。这些图也同构于SPARQL查询,可用于根据知识库评估图。
2.2 Semantic graph construction
Yih等人(2015)定义了一种不需要完整语法分析的逐步阶段图生成方法,并在随后的论文中采用(Bao等人,2016;彭等,2017)。我们使用与伊等人(2015)相同的过程来构建语义图,并进行一系列修改,使我们能够构建更具表现力和更复杂的图。
我们定义了一组状态和一组可以应用于每个状态的动作,以扩展当前语义图。状态是一个图和一组自由实体的元组:S = ( G , E ) ,定义F = e ∣ e ∈ E 。自由实体集合F是在问题中被识别但尚未被添加到图中的实体。第一个状态是一个没有边的空图的元组和一组在问题S1=(, F)中标识的所有实体。
设A=ae,ac,am为在当前状态下扩展图形可以采取的一组动作。
- ae: 在状态S t下,自由实体集F出栈e执行ae(add entity)。然后,它查询知识库,并检索实体e的可用关系类型集Re。对于每个关系类型r∈RE,它创建了图的一个新副本,并在关系类型为r的q节点和e节点之间添加了一个新的有向边:
a e ( G , F ) = G ⋃ r ( q , e ) , F − 3 ∣ e ∈ F , r ∈ R e ae(G,F)={G⋃r(q,e),F−3∣e∈F,r∈Re} ae(G,F)=G⋃r(q,e),F−3∣e∈F,r∈Re
。我们允许q节点和实体e之间的两步路径r(q,d)∨r(d,e) - ac: (add constraint) 与ae相同,出栈节点e,但是,它没有添加新的边,而是向图中最后添加的边添加了一个修改器,从而创建了一个三元边:
a c ( G , F ) = G ⋃ r 2 ( r 1 ( q , e 1 ) , e 2 ) , F − e 2 ∣ e 2 ∈ F , r 2 ∈ R e 2 , r 1 ( q , e 1 ) ∈ G ac(G,F)={G⋃r2(r1(q,e1),e2),F−e2∣e2∈F,r2∈Re2,r1(q,e1)∈G} ac(G,F)=G⋃r2(r1(q,e1),e2),F−e2∣e2∈F,r2∈Re2,r1(q,e1)∈G - am: (add argmax/argmin) 将带有argmax或argmin排序约束的新边添加到语义图中:
a m ( G , F ) = G ⋃ r ( q , a r g m a x ) , F ; G ⋃ r ( q , a r g m i n ) , F ∣ r ∈ R d am(G,F)={G⋃r(q,argmax),F;G⋃r(q,argmin),F∣r∈Rd} am(G,F)=G⋃r(q,argmax),F;G⋃r(q,argmin),F∣r∈Rd
,其中Rd是一组允许日期作为值的知识库关系类型。我们的语义图构建过程允许通过在最后状态St上定义的动作A的迭代应用来有效地搜索给定问题的可能图的空间
3 Representation learning
然后我们使用一个简单的奖励函数γ γγ来判断一个语义图是否是输入问题的正确语义解析。下面我们描述我们用来学习问题和图形表示的架构。
3.1 Deep Convolutional Networks
DCNN用在句子级表示是有效的。DCNN架构如图5所示,它用于将输入问题映射到固定大小的向量表示。输入
x
=
<
s
>
,
x
1
,
x
2
,
.
.
.
,
x
n
,
<
f
>
x
=
{
<
s
>
,
x
1
,
x
2
,
.
.
.
,
x
n
,
<
f
>
}
x
=
<
s
>
,
x
1
,
x
2
,
.
.
.
,
x
n
,
<
f
>
x = { < s > , x 1 , x 2 , . . . , x n , < f > } x = \{<s>, x_1, x_2, ..., x_n, <f>\}x={<s>,x1,x2,...,xn,<f>}
x=<s>,x1,x2,...,xn,<f>x={<s>,x1,x2,...,xn,<f>}x=<s>,x1,x2,...,xn,<f>
50维GloVe,embedding加入CNN,池化+全连接+ReLU 获得vq
3.2 Gated Graph Neural Networks
门图神经网络通过基于邻近节点和关系迭代更新图节点的表示来处理图。我们采用GGNNs进行语义解析,学习语义图的向量表示。
对于图G,抽取在图中所有实体V和所有边关系类型R。我们使用维基数据中的标签来计算实体和关系类型的向量(图6)。这使我们能够直接从知识库中整合数百万个实体和数百种关系类型的信息。
对于节点e ∈ V 或边r ∈ R ,我们检索标签并序列号:I = { l 1 , l 2 , . . . , l n },用GloVe映射+全连接层获得:
h
l
=
t
a
n
h
(
W
1
[
∑
n
=
1
∣
l
∣
]
+
b
1
)
h_l=tanh(W_1[∑_{n=1}∣l∣]+b1)
hl=tanh(W1[n=1∑∣l∣]+b1)
。我们用实体的标签向量初始化图节点的隐藏状态:h v ( 1 ) = h l e h_v^{(1)}=h_{le}hv(1)=hle
我们进一步转换关系标签向量以获得关系类型的方向嵌入
在以前的工作中,使用相同的单词嵌入作为输入来构造问题和关系表示已经被证明是成功的
Propagation Model: GGNNs 是一种递归神经网络。循环被展开为固定数量的步骤T,门控机制类似于门控循环单元(Cho et al.,2014)。GGNN的传播模型定义如下:其中σ是逻辑s型函数,是元素级乘法。矩阵a∈R|V|×2|V|存储图的结构:矩阵Av的一行:记录节点v和图中其他节点之间的边(我们区分入边和出边)。第二个矩阵A0∈R|V|×2|R|存储输入边和输出边的关系类型。
我们基于节点隐藏向量h(t−1)v和关系隐藏向量h0r(Eq 1)计算激活a (t) v。Eq 2中的ztv和Eq 3中的rtv都是更新和重置门,它包含了来自节点、关系类型和上一步的信息,以便在每次迭代中更新节点的隐藏状态。我们不更新关系的隐藏向量,而只使用它们将信息传递给节点的隐藏状态。
4. Experiment
本文使用Wikidata通过实验证明,ggnn比以前的方法更能更好地学习语义图的表示。因此,我们选择了两个可以用维基达塔来处理的数据集,将ggnn与其他模型进行比较: WebQSP-WD和QALD-7。
5. Result
我们可以看到,GGNN模型在简单的问题和复杂的问题上都提供了最好的结果,因为它有效地编码了语义图的结构。对于最复杂的问题(边缘的#≥4),模型的性能会下降。对于没有门控机制的GNN模型变体,就不会发生这种情况。我们推测,发生这种情况是因为GGNN比GNN有更多的参数,因此需要更多的数据来学习。通过观察最复杂问题上的模型错误,我们可以看到GGNN倾向于错误地预测图中的其中一个关系,从而导致错误的答案。另一方面,GNN更经常预测所需的关系更少,因此对部分正确的答案得到非零分数。例如,“2011年西班牙首相?”,GNN预测了两个(人类)和政府首脑的关系实例的图表,其中返回了所有西班牙总理的名单。完整正确的图还将包括时间约束。
Error analysis
Conclusion
在这项工作中,作者使用门控图神经网络对KB QA的目标语义解析的结构进行编码。我们已经证明,忽略语义结构会导致对需要复杂语义解析才能获得正确答案的问题的性能下降。我们的GGNN架构能够成功地建模语义解析的结构。我们在两个数据集上将ggnn的性能与之前的工作和非图模型进行了比较,并根据问题的复杂性对结果进行了分解。分析表明,建议的图形架构在复杂问题上的性能没有相同的下降,并产生更好的总体结果。最近,Peng等人(2017)和Yu等人(2017)试图将实体链接纳入一个基于特征的QA模型中。在未来,我们计划跟踪他们的工作,将ggnn与实体连接集成到单个模型中。我们还看到了ggnn在其他语义解析任务上的可能应用,比如文本理解。