KBQA知识图谱问答(一)SimpleQA

本文介绍了知识图谱问答(KBQA)中的三种方法:AR-SMCNN利用RNN和CNN进行语义和字面匹配;HR-BiLSTM通过不同粒度的关系检测提高问答准确性;TSHCNN采用IR和Siamese网络简化端到端问答。重点探讨了模型如何处理问题和候选答案的向量表示,以及关系检测在KBQA中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这次主要是针对《Question Answering over Freebase via Attentive RNN with Similarity Matrix based CNN》作为入门。其余文章都是通过这篇baseline的引用及被引用来调研。这些论文对于KBQA的解决方案都是从向量建模入手,把问题和候选答案都映射到一个低维空间,得到它们的分布式表达(Distributed Embedding),通过训练数据对该分布式表达进行训练,使得问题向量和它对应的正确答案向量在低维空间的关联得分(通常以点乘为形式)尽量高。当模型训练完成后,则可根据候选答案的向量表达和问题表达的得分进行筛选,找出得分最高的作为最终答案。他们都使用的SimpleQA这个数据集,总量10w条,都是一些单实体一跳的简单问答。这些框架差不多都是两步走,如下图:
在这里插入图片描述

AR-SMCNN

Question Answering over Freebase via Attentive RNN with Similarity Matrix based CNN ACL2018

KBQA业界成熟的做法是先将问题和知识库中的三元组联合编码至统一的向量空间,然后在该向量空间内做问题和候选答案间的相似度计算。该类方法简单有效,可操作性比较强,然而忽视了很多自然语言词面的原始信息。本文的创新点在于AR-SMCNN使用 RNN 的序列建模本质来捕获语义级关联,并使用注意机制同时跟踪实体和关系。同时,文中使用基于 CNN 的相似矩阵和双向池化操作建模数据间空间相关性的强度来计算词语字面的匹配程度。
在这里插入图片描述
KB三元组(subject, relation, object),简写为(s, r, o)描述了一个fact,而KBQA的任务就是给定一个问题,预测(s,r),只要s,r都预测对了,就可以直接得到answer,即o。根据这些推断,KBQA问题可以分成以下两个步骤:
1、给定问题Q,找出entity mention X,然后在KB中找到所有与X一致的实体,组成实体集合E,则E中所有实体都有相同的实体名。
2、KB中所有与E中实体相连的关系组成关系集合R,先把问题Q中的X用 &lt; e &gt; &lt;e&gt; <e> 替换得到question pattern P,然后把P与R中所有关系进行比对并打分,score最高的就视为最终结果。

所以问题的关键就在于每个关系与问题的匹配,模型从字面表达、语义两个层面进行建模,输入是经替换 mention 后的问题模版(pattern)P 和候选关系 r k r^k rk 。模型左边的部分是结合了 attention 机制的 BiGRU,用于从语义层面进行建模,得到P和r的表示之后,就直接相互点乘来得到它们的相似度。右边的部分是CNN上的相似性矩阵M,在这里用的cosine来获取M,用于从字面角度进行建模,最后用一个双向max-pooling层,双向的意思就是分别从feature map的长和宽两个方向进行最大池化。最终将特征 z 1 , z 2 , z 3 , z 4 z^1 ,z^2,z^3,z^4 z1,z2z3z4 连接在一起并通过线性层得到最终的候选关系分数 S ( P , r k ) S(P,r^k) S(P,rk)
其中 p i p_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值