一些符号定义
知识图谱实体数量:
n
n
n
知识图谱中关系类型数量:
m
m
m
三元组矩阵:
M
∈
{
0
,
1
}
n
×
n
×
m
\textbf{M} \in \{0, 1\}^{n \times n \times m}
M∈{0,1}n×n×m,
M
i
j
k
=
1
M_{ij}^k = 1
Mijk=1则说明实体
i
i
i和实体
j
j
j之间具有关系
k
k
k。
输入问题
q
q
q:输入的问题
初始实体表示向量
e
0
∈
{
0
,
1
}
n
\textbf{e}^0 \in \{0,1\}^n
e0∈{0,1}n,如果输入问题q中存在实体i,则
e
i
0
=
1
e^0_i = 1
ei0=1
分步 图推理模型:Step-by-Step Graph Reasoning Model
第一步:关系评分计算(Relation Score Calculation):计算每一步推理的关系得分
E
n
c
o
d
e
r
Encoder
Encoder:文本编码器,例如bert,利用它得到整段文本的表示
q
\textbf{q}
q和所有字符的表示
h
1
,
.
.
.
,
h
∣
q
∣
h_1, ..., h_{|q|}
h1,...,h∣q∣
f
t
f^{t}
ft:推理第
t
t
t步的编码器(MLP+tanh映射)
q
t
\textbf{q}^t
qt:推理第
t
t
t步的文本表示
R
t
\textbf{R}^t
Rt:推理第
t
t
t步的关系评分
第二步:分步推理(Step-by-Step Reasoning):计算每个实体的评分
根据关系评分为实体之间的权重赋值
W
i
j
t
=
{
R
k
t
M
i
j
k
=
1
0
Otherwise,
W_{ij}^t = \begin{cases} R_k^t & M_{ij}^k = 1 \\ 0 & \text{Otherwise,} \end{cases}
Wijt={Rkt0Mijk=1Otherwise,
根据每一步的实体间权重,从初始实体 e 0 \textbf{e}^0 e0开始,得到每一步推理的实体权重,最后通过注意力机制汇总所有的推理步,得到所有实体的评分 e ˉ \bar{\mathbf{e}} eˉ。
e t = e t − 1 W t β = Softmax ( MLP ( q ) ) , e ˉ = ∑ t = 1 T β t e t , \mathbf{e}^t = \mathbf{e}^{t-1} \mathbf{W}^t \\ \beta = \text{Softmax}(\text{MLP}(\mathbf{q})), \\ \bar{\mathbf{e}} = \sum_{t=1}^T \beta_t \mathbf{e}^t, et=et−1Wtβ=Softmax(MLP(q)),eˉ=t=1∑Tβtet,
第三步:训练
L
=
∥
e
ˉ
−
a
∥
2
.
\mathcal{L} = \|\bar{\textbf{e}} - \textbf{a}\|^2.
L=∥eˉ−a∥2.
其中
a
\textbf{a}
a为候选答案实体。
推理路径生成算法:Reasoning Path Generation Method
步骤1:从知识图谱实体集合中抽取评分(
e
ˉ
\bar{\mathbf{e}}
eˉ)前TopK大(之后有不同K取值的对比实验)的实体集合
E
k
\textbf{E}^k
Ek。
步骤2:从问题q中的实体开始,向外拓展抽取一跳/两跳路径,需要满足
W
i
j
1
,
W
i
j
1
W_{ij}^1,W_{ij}^1
Wij1,Wij1均大于0,并且推理结束实体在
E
k
\textbf{E}^k
Ek集合中。
p
i
j
1
=
⟨
E
i
,
R
e
l
i
j
,
E
j
,
[
W
i
j
1
]
⟩
p
i
k
2
=
⟨
E
i
,
R
e
l
i
j
,
E
j
,
R
e
l
j
k
,
E
k
,
[
W
i
j
1
,
W
i
j
2
]
⟩
p_{ij}^1 = \langle E_i, Rel_{ij}, E_j , [W_{ij}^1] \rangle \\ p_{ik}^2 = \langle E_i, Rel_{ij}, E_j, Rel_{jk}, E_k , [W_{ij}^1,W_{ij}^2] \rangle
pij1=⟨Ei,Relij,Ej,[Wij1]⟩pik2=⟨Ei,Relij,Ej,Reljk,Ek,[Wij1,Wij2]⟩
步骤3:计算路径的平均W分数作为路径分数,对每个结束实体,挑选路径分数前N大(之后有不同N取值的对比实验)的路径作为大模型的提示模版。
联合推理:Joint Reasoning
将推理路径生成算法得到的推理路径转为文本模版,加入大模型提示中,回答问题。
实验
数据集
WebQSP:WebQSP是一个知识密集型的多跳问题回答基准测试。它包含4037个问题,都是基于FreeBase的1跳或2跳问题。基于之前的工作,在问题实体的2跳邻域内检索知识三联体,并生成一个包含1886684个实体、1144个关系和5780246个知识三联体的知识子图。
CompWebQ:CompWebQ是一个多跳的问题回答基准。它包含34,672个问题,有许多跳跃和约束,这使得llm的处理具有挑战性。他们利用[Shi et al.,2021]中检索到的知识子图,并利用原始数据分割进行评估。
Simple Questions:Simple Questions是一个单跳的问题回答基准。问题是基于来自FreeBase的信息而产生的,最终,在本研究中产生了108,442个严重依赖于事实知识的问题。他们随机选择1000个问题,检索问题实体的1跳邻域进行评估。
WebQuestions:WebQuestions是一个具有挑战性的自主领域的问题回答基准。它包含5,810个问题,以自由库作为知识库。对于每个问题,我们检索问题实体的2跳邻域,并利用原始数据分割进行评估。
实验结果
研究不同基座模型对实验效果的影响
对比不同检索器
研究超参数K和超参数N对实验结果的影响
示例
优势:计算更快,节省大模型资源
创新点
提出了一套可训练子图抽取算法,能够结合根据问题得到需要查询关系类型,进而生成许多推理路径。
可能的改进点
-
得到问题 第t步 表示的时候,我认为也需要考虑前t-1步推理路径加入到运算中。
-
该方法适用场景受限,由于第一阶段只是对关系类型进行打分,然后将关系分数分配给实体。如果图谱中关系类型很少,三元组数目很多,那么在第二阶段挑选TopK实体的时候,可能会面临很多实体同分的状况,无法挑选合适的实体。除此以外,从问题中可能抽取多个不同的实体,如果分配相同的下一跳关系权重的话,也是不合适的。