UniKGQA Unified Retrieval and Reasoning for Solving Multi-hop Question Answering Over Knowledge Graph

发布时间 2023-10-22 17:25:13作者: 馒头and花卷

Jiang J., Zhou K., Zhao W. and Wen J. UniKGQA: Unified retrieval and reasoning for solving multi-hop question answering over knowledge graph. ICLR, 2023.

统一: 从知识图谱中检索出相关的子图, 并在子图中进行推理.

主要内容

  • 我们有知识图谱 \(\mathcal{G} = \{\langle e, r, e' \rangle| e, e' \in \mathcal{E}, r \in \mathcal{R}\}\), 其中 triple \(\langle e, r, e' \rangle\) 表示存在关系 \(r\) 于头实体 \(e\) 和尾实体 \(e'\) 之间.

  • 我们的任务是给定问题 \(q\), 然后根据只是图谱找到相应的答案 \(\{e\}\) (即, 答案是某些实体).

  • 之前的方法是:

    1. 先从知识图谱中采样一个和问题 \(q\) 相关的子图 \(\mathcal{G}_q\);
    2. 在子图 \(\mathcal{G}_q\) 上进行推理.
  • 由于两个模块的独立性, 导致训练并不充分, 所以作者希望将二者耦合在一起, 仅有部分参数不同.

  • 首先, 将 \(\mathcal{G}\) 转换为 abstract graph \(\tilde{\mathcal{G}}\):

    • 对于头实体 \(e\) 和关系 \(r\), 可能有多个尾实体 \(e'\) 满足 \(\langle e, r, e' \rangle\), 将他们融合为一个点:

      \[\tilde{e} = \{e'| \langle e, r, e' \rangle \in \mathcal{G}\}; \]

    • 对于关系 \(r\) 和尾实体 \(e'\), 类似融合头实体;
    • 下面是一个例子:
  • 现在, 假设们有一个和 \(q\) 相关的子图 \(\mathcal{G}_g\) (对于 retrieval 阶段 \(\mathcal{G}_g\) 为 abstract graph, 对于 reasoning 阶段为从检索阶段得到的子图), 我们做如下推理:

  • Semantic Matching: 利用 PLM (预训练模型) 去编码 \(q, r\) 上的 texts:

    \[\bm{h}_q = \text{PLM}(q), \quad \bm{h}_r = \text{PLM}(r). \]

    然后, 计算 triple 的特征 (但是似乎和 \(e, e'\) 无关):

    \[\bm{m}_{\langle e', r, e \rangle}^{(t)} = \sigma(\bm{h}_q \bm{W}_Q^{(t)} \odot \bm{h}_r \bm{W}_R^{(t)}). \]

  • Matching Information Propagation: 通过一般的 GNN 对结点进行更新:

    \[\bm{e}^{(t)} = \bm{W}_E^{(t)} \bigg(\bigg[ \bm{e}^{(t-1)}; \sum_{\langle e', r, e \rangle \in \mathcal{N}_e} s_{e'}^{(t-1)} \cdot \bm{m}_{\langle e', r, e\rangle}^{(t)} \bigg]\bigg), \\ \bm{s}^{(t)} = \text{softmax}({\bm{E}^{(t)}}^T \bm{v}). \]

    其中 \(\bm{s} = [s_{e}]\) 为每个结点的 score (越高和问题的相关度越好).

  • 注: 还有一些初始化和训练的东西, 这里就不讲了. 总而言之, 这篇论文的推理还是需要检索的, 只是两个阶段的训练变得互相影响了.

代码

[official]