基于核图注意力网络的细粒度事实验证
0. Abstract
事实验证需要细粒度的自然语言推理能力,这种能力可以找到敏感的线索来识别语法和语义正确但没有很好支持的声明。提出了核图注意力网络( Kernel Graph Attention Network,KGAT ),该网络通过基于核注意力进行更细粒度的事实验证。给定一个声明和一组形成证据图的潜在证据语句(给一组句子形成证据图),KGAT为了更好测量证据节点重要性引入节点核,为了在图上执行细粒度证据传播,引入边缘核,以此进行更准确的事实验证。KGAT获得了70.38%的FEVER评分。在事实验证的大规模基准FAVER上,显著优于现有的事实验证模型。我们的分析表明,与点积注意相比,基于核的注意更多地集中在证据图中相关的证据语句和有意义的线索上,这是KGAT有效性的主要来源。
1. Introduction
含有虚假信息的在线内容,如虚假新闻、政治欺骗和在线谣言,在过去几年中显著增长并广泛传播。如何自动“事实核查(fact check)”文本内容的完整性,防止虚假新闻的传播,避免恶意捏造言论的不良社会影响,是我们社会迫切需要解决的问题.
最近的研究将这个问题表述为事实验证任务,其目标是使用可信的语料库自动验证语句的完整性,例如*。例如,如图1所示,系统可以首先从背景语料库中检索相关的证据句子,对这些句子进行联合推理,并聚集信号来验证声明的完整性
事实验证中的证据推理(evidence reasoning)和聚合(aggregation)面临两个挑战
- 没有给出基本的事实证据;证据语句是从不可避免地包含噪声的背景语料库中检索的。
- 另一种是虚假的主张往往是故意捏造的;它们可能语义正确,但不受支持。
这使得事实验证成为一项颇具挑战性的任务,因为它需要细粒度的推理能力来区分真假陈述之间的细微差别
提出了一种新的神经结构推理模型——核图注意网络(KGAT),该模型利用神经匹配核为事实验证提供了更细粒度的证据选择和推理能力。给定检索到的证据片段,KGAT首先构建一个证据图,使用声明和证据作为图节点和完全连通的边。然后,它利用两组核,一组在边缘,有选择地总结线索以获得更细粒度的节点表示,并通过多层图注意力在相邻节点之间传播线索;另一个在节点上,通过将证据与声明更好地匹配来执行更准确的证据选择。这些信号由KGAT组合,在证据图上共同学习和推理,以获得更准确的事实验证。
FEVER得到70.38%优于BERT+GNN。我们的实验证明了TKGA的强大的有效性,特别是在需要多证据推理的事实上:我们基于内核的注意力机制提供了更加离散和集中的注意力模式,这是KGAT测试有效性的主要来源
2. Related Work
FEVER共享任务旨在开发自动事实验证系统,通过从*提取证据来检查人类生成的声明的准确性。最近推出的FEVER共享任务1.0是在Codalab2上举办的一场比赛,有一个盲测试集,引起了NLP社区的极大关注。
现有的事实验证模型通常采用FEVER的官方基线和三步管道系统.文件检索,句子检索和声明验证。
后来使用XLNET+语义级别的图,用于推理获得更好性能。这些基于图的模型建立了节点间的相互作用,以便对几个证据进行联合推理。
许多事实推理任务利用NLI任务验证声明,NLI任务旨在将一对前提和假设之间的关系分为蕴含、矛盾或中性,类似FEVER,尽管后者需要系统自己找到证据,而且往往有多个证据。这部分都是参考文献
3. Kernel Graph Attention Network
KGAT应用在事实验证,首先,KGAT首先使用检索到声明
C
C
C(claim)
的证据语句构建证据图
D
=
{
e
1
,
.
.
.
,
e
p
,
.
.
.
,
e
1
}
D=\{e^1,...,e^p,...,e^1\}
D={e1,...,ep,...,e1}。然后用证据图预测声明的标签
y
y
y(见3.1,3.2)。如图2,推理模型有两个主要部分:
- 边缘核的证据传播
- 基于节点核的证据选择
3.1 Reasoning with Evidence Graph
与以前的研究(周等,2019)类似,KGAT通过将每个claim-evidence
对作为一个节点来构造证据图
G
G
G,并将所有节点对与边连接起来,使其成为具有
l
l
l个节点的完全连接的证据图:
N
=
{
n
1
,
.
.
.
,
n
p
,
.
.
.
n
l
}
N=\{n^1,...,n^p,...n^l\}
N={n1,...,np,...nl}
KGAT统一了多证据和单证据推理场景,并产生了预测声明标签y的概率
P
(
y
∣
c
,
D
)
P(y|c,D)
P(y∣c,D)。与之前的工作(周等人,2019)不同,我们遵循图神经网络中的标准图标签预测设置(V eliˇ ckovi c等人,2017)并将预测分为两个部分:
1)每个节点中的标签预测以整个图为条件
P
(
y
∣
n
p
,
G
)
P(y|n^p, G)
P(y∣np,G)
2)证据选择概率
P
(
n
p
∣
G
)
P(n^p|G)
P(np∣G)
P
(
y
∣
c
,
D
)
=
∑
p
=
1
l
P
(
y
∣
c
,
e
p
,
D
)
P
(
e
p
∣
c
,
D
)
,
(
1
)
P(y|c,D)= \sum_{p=1}^lP(y|c,e^p,D)P(e^p|c,D), \ (1)
P(y∣c,D)=p=1∑lP(y∣c,ep,D)P(ep∣c,D), (1)
或在图表符号中:
P
(
y
∣
G
)
=
∑
p
=
1
l
P
(
y
∣
n
p
,
G
)
P
(
n
p
∣
G
)
.
(
2
)
P(y|G)=\sum_{p=1}^lP(y|n^p,G)P(n^p|G). \ (2)
P(y∣G)=p=1∑lP(y∣np,G)P(np∣G). (2)
联合推理概率
P
(
y
∣
n
p
,
G
)
P(y|n^p,G)
P(y∣np,G)计算多证据的节点标签预测。 读出模块(Knyazev等人,2019)计算概率
P
(
n
p
∣
G
)
P(n^p|G)
P(np∣G),并用注意力组合每个节点的信号进行预测。
本节的其余部分描述了第3.2节中节点 ( n p ) (n^p) (np)表示的初始化。用边核计算每个节点的预测 P ( y ∣ n p , G ) P(y|n^p,G) P(y∣np,G)(3.3)。具有节点核的读出模块 P ( n p ∣ G ) P(n^p|G) P(np∣G)。(3.4).
3.2 Initial Node Representations
通过将句子的声明、文档(维基)标题和证据语句的串联序列馈送到预先训练的BERT模型(Devlin等人,2019)来初始化节点表示。
具体来说,在节点
n
p
n_p
np,声明和证据对应m个token(带[SEP]
)和n个token(带*标题和[SEP]
)。使用BERT编码器,获得节点
n
p
n^p
np隐藏状态
H
p
H^p
Hp:
H
p
=
B
E
R
T
(
n
p
)
(
3
)
H^p=BERT(n^p) \ (3)
Hp=BERT(np) (3)
第一个令牌([CLS]
)的表示被表示为节点
n
p
n^p
np的初始表示:
z
p
=
H
0
p
(
4
)
z^p=H_0^p \ (4)
zp=H0p (4)
剩余的序列
H
1
:
m
+
n
p
H_{1:m+n}^p
H1:m+np表示声明和证据字符:声明字符序列
H
1
:
m
p
H_{1:m}^p
H1:mp和证明字符序列
H
m
+
1
:
m
+
n
p
H_{m+1:m+n}^p
Hm+1:m+np
3.3 Edge Kernel for Evidence Propagation
KGAT中的证据传播和每节点标签预测是由边缘核进行的,边缘核利用核注意力机制在图 G G G中的节点之间沿着边缘传播信息。
具体来说,KGAT使用核注意力机制计算节点
n
p
n^p
np的表示
v
p
v^p
vp,并使用它来产生每个节点的声明预测
y
y
y:
v
p
=
E
d
g
e
−
K
e
r
n
e
l
(
n
p
,
G
)
v^p=Edge-Kernel(n^p,G)
vp=Edge−Kernel(np,G)
P
(
y
∣
n
p
,
G
)
=
s
o
f
t
m
a
x
y
(
L
i
n
e
a
r
(
v
p
)
)
(
5
)
P(y|n^p, G)=softmax_y(Linear(v^p)) \ (5)
P(y∣np,G)=softmaxy(Linear(vp)) (5)
KGAT的边缘核通过一种分层的注意力机制在节点间传播信息。它使用token level attentions预测节点表示并且sentence level attentions沿着边传播信息。
Token Level Attention.
字符级别的注意力使用核获得更细粒度的邻居节点
n
q
n^q
nq的表示
z
^
q
→
p
\widehat{z}^{q\rightarrow p}
z
q→p,根据节点
n
p
n^p
np。内容传播和注意力由核控制。
为了获得在
n
q
n^q
nq的第
i
i
i个字符注意力权重
α
i
q
→
p
\alpha_i^{q\rightarrow p}
αiq→p,我们首先在第q个节点核第p个节点进行转换矩阵
M
q
→
q
M^{q\rightarrow q}
Mq→q,转换矩阵
M
i
j
q
→
q
M^{q\rightarrow q}_{ij}
Mijq→q每个元素在
M
q
→
q
M^{q\rightarrow q}
Mq→q中,是它们对应的token的BERT表示的余弦相似性:
M
i
j
q
→
q
=
cos
(
H
i
q
,
H
j
p
)
(
6
)
M^{q\rightarrow q}_{ij}=\cos(H_i^q, H_j^p) \ (6)
Mijq→q=cos(Hiq,Hjp) (6)
然后从转换矩阵
M
q
→
q
M^{q\rightarrow q}
Mq→q用K核提取匹配特征
K
⃗
(
M
i
q
→
q
)
\vec{K}(M_i^{q\rightarrow q})
K
(Miq→q)
K
⃗
(
M
i
q
→
q
)
=
{
K
1
(
M
i
q
→
q
)
,
.
.
.
,
K
K
(
M
i
q
→
q
)
}
(
7
)
\vec{K}(M_i^{q\rightarrow q}) = \{K_1(M_i^{q\rightarrow q}),...,K_K(M_i^{q\rightarrow q})\} \ (7)
K
(Miq→q)={K1(Miq→q),...,KK(Miq→q)} (7)
每个核函数
K
K
K_K
KK利用高斯核函数提取特征,并总结转换分数以支持多级交互。
K
K
(
M
i
q
→
q
)
=
l
o
g
∑
j
e
x
p
(
−
M
i
j
q
→
q
−
μ
k
2
δ
k
2
)
(
8
)
K_K(M_i^{q\rightarrow q})=log \sum_j exp(-\frac{M_{ij}^{q\rightarrow q} - \mu_k}{2\delta_k^2}) \ (8)
KK(Miq→q)=logj∑exp(−2δk2Mijq→q−μk) (8)
μ
k
\mu_k
μk和
δ
k
\delta_k
δk是均值和卷积核k的宽度,它捕获字符之间的某种级别的交互
然后每个注意力权重
α
i
q
→
p
\alpha_i^{q\rightarrow p}
αiq→p用线性层计算
KaTeX parse error: Expected '}', got 'EOF' at end of input: …rrow q))) \ (9)
注意力权重用于组合字符表示
z
^
q
→
q
\widehat{z}^{q\rightarrow q}
z
q→q:
z
^
q
→
q
=
∑
i
=
1
m
+
n
α
i
q
→
p
×
H
i
q
(
10
)
\widehat{z}^{q\rightarrow q}=\sum_{i=1}^{m+n} \alpha_i^{q\rightarrow p} \times H_i^q \ (10)
z
q→q=i=1∑m+nαiq→p×Hiq (10)
其编码内容信号以从节点
n
q
n^q
nq传播到节点
n
p
n^p
np。
Sentence Level Attention.
句子级注意力将邻居节点信息与节点表示
v
p
v^p
vp相结合。聚合是通过图形注意力机制完成的,与之前的工作相同。
首先根据第p个节点
n
p
n^p
np计算出对节点
n
q
n^q
nq的注意力权重
β
q
→
q
\beta^{q\rightarrow q}
βq→q
β
q
→
q
=
s
o
f
t
m
a
x
q
(
M
L
P
(
z
p
∘
z
^
q
→
q
)
)
(
11
)
\beta^{q\rightarrow q}=softmax_q(MLP(z^p \circ \widehat{z}^{q\rightarrow q})) \ (11)
βq→q=softmaxq(MLP(zp∘z
q→q)) (11)
∘
\circ
∘表示连接操作符,
z
p
z^p
zp表示
n
p
n^p
np节点初始化。
然后,通过将邻居节点表示
z
^
q
→
q
\widehat{z}^{q\rightarrow q}
z
q→q与注意相结合来更新第p个节点的表示:
KaTeX parse error: Expected '}', got 'EOF' at end of input: …circ z^p \ (12)
它用它的邻居更新节点表示,更新的信息首先由字符级别注意力(Eq.9),然后是句子层面的注意力(Eq。11).
3.4 Node Kernel for Evidence Aggregation
通过图神经网络中的“读出”功能来组合每个节点的预测(周等人,2019),其中,KGAT使用节点核来学习每个证据的重要性。
它首先使用节点核来计算每个节点
n
p
n^p
np的读出表示
Ψ
(
n
p
)
\Psi(n^p)
Ψ(np)
Ψ
(
n
p
)
=
N
o
d
e
−
K
e
r
n
e
l
(
n
p
)
.
(
14
)
\Psi(n^p) = Node-Kernel(n^p). \ (14)
Ψ(np)=Node−Kernel(np). (14)
类似于边缘核,我们首先进行一个转换矩阵
M
c
→
e
p
M^{c\rightarrow e^p}
Mc→ep在第p个声明和证据中,使用它们的隐藏状态
H
1
:
m
p
H_{1:m}^p
H1:mp和
H
m
+
1
:
m
+
n
p
H_{m+1:m+n}^p
Hm+1:m+np。在转换矩阵上核匹配特征
K
⃗
(
M
t
c
→
(
e
p
)
)
\vec{K}(M_t^{c \rightarrow(e^p)})
K
(Mtc→(ep))是被组合以产生节点选择表示
Ψ
(
n
p
)
\Psi(n^p)
Ψ(np):
Ψ
(
n
p
)
=
f
r
a
c
1
m
⋅
∑
i
=
1
m
K
⃗
(
M
i
c
→
e
p
)
.
(
15
)
\Psi(n^p)=frac{1}{m} \cdot \sum_{i=1}^m \vec{K}(M_i^{c \rightarrow e^p}). \ (15)
Ψ(np)=frac1m⋅i=1∑mK
(Mic→ep). (15)
该表示在读出中用于计算第p个证据选择概率
P
(
n
p
∣
G
)
P(n^p|G)
P(np∣G):
P
(
n
p
∣
G
)
=
s
o
f
t
m
a
x
p
(
L
i
n
e
a
r
(
Ψ
(
n
p
)
)
)
.
(
16
)
P(n^p|G)=softmax_p(Linear(\Psi(n^p))). \ (16)
P(np∣G)=softmaxp(Linear(Ψ(np))). (16)
利用核多级软匹配能力(熊等人,2017年),根据节点级预测与声明的相关性对证据图中的节点级预测进行加权:
P
(
y
∣
G
)
=
∑
p
=
1
l
P
(
y
∣
n
p
,
G
)
P
(
n
p
∣
G
)
(
17
)
P(y|G)=\sum_{p=1}^l P(y|n^p,G)P(n^p|G) \ (17)
P(y∣G)=p=1∑lP(y∣np,G)P(np∣G) (17)
通过最小化交叉熵损失,对整个模型进行端到端训练:
L
=
C
r
o
s
s
E
n
t
r
o
p
y
(
y
∗
,
P
(
y
∣
G
)
)
L=CrossEntropy(y*, P(y|G))
L=CrossEntropy(y∗,P(y∣G))
使用基本事实验证标签
y
∗
y*
y∗