首页 > 其他分享 >UniKGQA Unified Retrieval and Reasoning for Solving Multi-hop Question Answering Over Knowledge Grap

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

时间:2023-10-22 17:35:56浏览次数:40  
标签:Unified Multi langle bm Answering 实体 mathcal rangle bigg

目录

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]

标签:Unified,Multi,langle,bm,Answering,实体,mathcal,rangle,bigg
From: https://www.cnblogs.com/MTandHJ/p/17780722.html

相关文章

  • Open Domain Question Answering Using Early Fusion of Knowledge Bases and Text
    目录概主要内容代码SunH.,DhingraB.,ZaheerM.,MazaitisK.,SalakhutdinovR.andCohenW.W.Opendomainquestionansweringusingearlyfusionofknowledgebasesandtext.EMNLP,2018.概KnowledgeBases+Text的推理.主要内容假设我们有一个不完全的知......
  • 多路径multipath共享磁盘配置
    1. 配置共享磁盘1.1. 主机关机的情况下,添加4块硬盘,每块磁盘设置如下  1.2. 另外一台主机添加上面已经存在的磁盘,同样设置 1.3. 修改两台虚拟机的配置文件(.vmx)disk.locking="FALSE"disk.EnableUUID="TRUE"scsi1:1.SharedBus="Virtual"......
  • 无涯教程-Arduino - Multi-Dimensional Arrays函数
    具有二维的数组(即下标)通常表示由以行和列排列的信息组成的值表。intb[2][2]={{1,2},{3,4}};这些值按大括号按行分组,因此,1和2分别初始化b[0][0]和b[0][1],而3和4分别初始化b[1][0]和b[1][1],如果给定行的初始化程序不足,则将该行的其余元素初始化为0。因此......
  • 论文阅读:A_Multi-Granularity_Scene_Segmentation_Network_for_Human-Robot_Collabora
    A_Multi-Granularity_Scene_Segmentation_Network_for_Human-Robot_Collaboration_Environment_Perception用于人与机器人协作环境感知的多颗粒度场景分割网络摘要人机协作(Human-robotcollaboration,HRC)被认为是未来以人为中心的智能制造的一种有前途的范式,以满足蓬勃发展的大......
  • 论文阅读:Few-Shot Point Cloud Semantic Segmentation via Contrastive Self-Supervis
    Few-ShotPointCloudSemanticSegmentationvia ContrastiveSelf-SupervisionandMulti-ResolutionAttention基于对比自我监督和多分辨率注意力的小样本点云语义分割摘要本文提出了一种适用于现实世界应用的有效的小样本点云语义分割方法。现有的点云小样本分割方法在很大程......
  • 若依springboot 使用MultipartFile 为空
    解决:接口请求参数需要加个入参:@RequestParam("file")代码: postman ......
  • Internet-augmented language models through few-shot prompting for open-domain qu
    Internet-augmentedlanguagemodelsthroughfew-shotpromptingforopen-domainquestionanswering 其实我没怎么正经读过论文,尤其是带实验的,我目前认真读过的(大部头)也就是一些LLM的综述。记录这个文档主要是防止自己读着读着玩手机去了/注意力不集中了跑路了/没记录困惑导......
  • VMware 虚拟机 Ubuntu 系统没有IP地址 解决:UP BROADCAST MULTICAST 问题【转】
    转自:https://blog.csdn.net/a262624/article/details/95792665几周没使用虚拟机,今天打开的时候发现启动网络就是5分钟,然后还没有ip。百度了下找到了解决办法:  在我的VMware 虚拟机软件里面有许多Ubuntu系统的虚拟机,并且它们都是使用一段时间,就会出现没有IP地址的问题。我一......
  • 无涯教程-NumPy - multiply()函数
    此函数执行多个串联。importnumpyasnpprintnp.char.multiply('Hello',3)其输出如下-HelloHelloHello参考链接https://www.learnfk.com/numpy/numpy-char-multiply.html......
  • 在Matplotlib中使用多线程multiprocessing举例
    在Matplotlib中使用多线程Matplotlib提供了一些机制来支持多线程的使用,比如使用matplotlib.pyplot.switch_backend()方法指定可用的图形后端或使用matplotlib.figure.Figure对象的canvas属性来实现绘图。但是,这些机制都需要特别小心地管理和控制,否则会引发线程之间的数据竞争和访......