论文浅尝 | 面向单关系事实问题的中文问答模型

640?wx_fmt=png

来源:NLPCC 2017

论文下载地址:http://tcci.ccf.org.cn/conference/2017/papers/2003.pdf

动机

开放领域的QA问题是一个被广泛研究的问题,而且目前这个问题并没有被很好地解决。在中文领域,相关的数据集并不多。而NLPCC开放了一个KBQA比赛,为中文KBQA提供了一个很好的数据集。本文使用了基于特征的方法来完成实体链接,并基于词向量对候选谓词进行初筛。之后,文章采用了深度CNN模型来重排实体-谓词对,从而找到最正确的实体-谓词。


贡献

文章的贡献有:

1)提出了一种基于特征的实体链接方法;

2)提出了一种基于词向量的候选谓词初筛方法;

3)提出了一种基于深度CNN的谓词排序方法。


方法

⒈模型结构

首先人工构建特征,选取可能的实体指称。然后使用非监督的词向量,来选择候选的谓词。当得到实体-谓词对之后,采用deep-CNNs模型来重排它们。最后将所有的中间结果(打分)加权和,就得到最后的谓词,以及答案。另外,这里有个小trick,就是当一个问题经过解析,只有实体名,那么这个问题可能是关于这个实体的介绍,所以实体的谓词就为“introduce”,在知识图谱中得到这个实体的介绍信息并输出为答案。

 

⒉实体链接

NLPCCKB中,实体是类似于“Li Na (Diving Athlete)”这样的,有实体名,也可能有扩展描述信息。实体指称是问题的一个子串,并且指称与实体名相同,或者与实体名的别名相同(NLPCC有文件提供了这个别名)。这里建立特征后,用GBDT去选择问题的所有子串中真正的实体指称子串。

这里首先使用正向最大匹配法(FMMforwardmaximum matching)来进行切词后,再使用逆向最大匹配法(RMMreverse maximum matching)来进行切词。RMM的基本原理与FMM基本相同,不同的是分词的方向与FMM相反。RMM是从待分词句子的末端开始,也就是从右向左开始匹配扫描,每次取末端m个字作为匹配字段,匹配失败,则去掉匹配字段前面的一个字,继续匹配。

当得到一个分词结果之后,句子中每一个分词视为一个候选实体指称,对每一个指称利用规则生成特征,在得到这些特征后,形成数值,并送到GBDT模型进行训练,从而分类出候选指称是黄金指称的概率Smen

 

⒊候选谓词识别

经过特殊分词(找到问句和谓词中所有具有意义的词/词组),利用下式来判断谓词是否能够问句中谓词模式的语义:

640?wx_fmt=png

其中wpi表示谓词中第i个词,wqi表示问题中第i个词,lpi表示wpi的长度。即对谓词中的每个词,找到问题中语义最相近的词,并乘上谓词的某个词的长度,最后求平均。

对于该公式,又做了改进:

640?wx_fmt=png

这里是反过来,对问题中每个词,找到谓词中语义最相近的词(aveq表示所有问题中所有词的平均词向量,这里代表无意义的停用词的词向量),并乘上问题的某个词的长度,最后求平均。

 

⒋深度CNN结构

深度CNN用来重排序实体-谓词对与问题的相似程度,从而进行精确筛选。如下图1所示是deep-CNN的结构。该模型用来计算谓词和问句(去掉实体指称)的语义相似度。模型中采用了两个卷积层,并利用了残差网络进行连接。经过最大池化后,问题的向量和谓词的向量进行按位乘后,再通过一个使用了dropout的全连接层(MLP),来得到最终的相似度。处理问题和谓词的卷积层的参数是共享的。每一个卷积层,卷积宽度不同(256个宽度为1的核、512个宽度为2的核、256个宽度为3的核),并对不同核得到的结果进行拼接。另外,相邻的卷积层之间有残差网络连接。

640?wx_fmt=png

最终得到基于deep-CNN的相似度SCNN。将所有的得分相加,即得到一个实体-谓词对于问题的相似度的最终得分:Sfinal =Smen + Sf + SCNN * 2。最大得分的实体-谓词对应的宾语就是最终答案。


实验

实验用的数据集是NLPCC 2017的比赛用数据集,有知识库和问题-答案对,用于训练。知识图谱中有43MSPO三元组,有14609+9870NLPCC 2016的问题-答案对来训练。在训练CNN时,由于正负例极度不平衡,所以采用动态负采样算法来筛选负例,选择一个样本的概率如下式所示:

640?wx_fmt=png

其中,rankepi表示上一次迭代后(每次训练都会取出一个样本,那么排名会发生变化),一个实体-谓词对的排名,排名越大,说明这个实体-谓词对与问题的相似度越低。这就是一个简单的生成对抗模型(generative adversarialmechanism),因为rank越大,说明这个实体-谓词对越不靠谱,也就是对于模型的分类效果来说提升很小(太容易区分了),所以选中作为负样本的概率越小。这样就有了一个对抗模型的思想在里面。

如图3所示,为模型的实体链接结果,效果与之前的工作差不多(99.04%)。

640?wx_fmt=png

3 实体链接模型性能对比

如图4所示,是候选实体-谓词对的识别情况。由图可见,效果比baseline的系统要好。


640?wx_fmt=png

4 候选实体-谓词对的识别情况

如图5所示,是系统的问答效果,可见集合了所有特征的系统效果最好。

640?wx_fmt=png

5 系统的问答效果

如图6所示,是本文系统与其他基线系统的性能对比。可见本文系统效果最佳。

640?wx_fmt=png

6 各系统在NLPCC KBQA比赛结果对比

总结

本文提出了一种复杂的中文KBQA模型,包含了基于特征的、GBDT分类的实体链接,基于词向量的候选谓词初筛,以及基于deep-CNN的实体-谓词重排序,最终得到了可以回答问题的实体-谓词对。对于CNN训练中的正负例不平衡问题,也提出了具有对抗生成思想的负采样算法。最终,文章提出的系统在NLPCC 2017比赛中获得第一名。文章中的许多方法都是在工程上易于实现的,可以借鉴到实际应用中。未来可以考虑将三元组的宾语的信息一并结合进来,用于实体-谓词的筛选。

 

论文笔记整理:花云程,东南大学博士,研究方向为知识图谱问答、自然语言处理。



OpenKG.CN


中文开放知识图谱(简称OpenKG.CN)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

640?wx_fmt=jpeg

点击阅读原文,进入 OpenKG 博客。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转算法值面试-第五章 -在链表中穿针引线

5-123 数组中可以随机访问,相反链表就不行 leetcode:206 反转一个链表,链表如果没有特别声明,则节点的值不发生改变 一共需要三个指针:current指向当前需要处理的指针 next指向当前需要处理的元素的下一个元素的指针…

论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)

一个有效的基于图卷积神经网络的社交推荐模型 原文链接:SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation, arxiv 原理:在用户-项交互图上应用GNN来学习用户向量的表示,用户向量和项向量内积预测…

POJ 1753 Flip Game(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Wrong Answer代码2.2 Accepted代码1. 题目 1.1 题目链接 http://poj.org/problem?id1753 1.2 题目大意 一个黑白棋子的棋盘,一个反过来周围四个也跟着反过来(如果存在的话),颜色取反…

他读书时挣了五十万,找工作时收获阿里腾讯快手等ssp offer

今天介绍一位dalao,他之前在中科院获取了计算机硕士学位,现在是一名大厂的算法工程师。大多数人的学生生活,是在枯燥的课程和任务中度过的,但他却有所不同,乐于折腾,收获了不一样的精彩。他喜欢去公司实习&…

Java多线程系列(三):Java线程池的使用方式,及核心运行原理

之前谈过多线程相关的4种常用Java线程锁的特点,性能比较、使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点。 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执行,但是如果有大量线程短时间之内…

论文浅尝 | 图神经网络综述:方法及应用

论文链接:https://arxiv.org/pdf/1812.08434.pdfGNN相关论文列表链接:https://github.com/thunlp/GNNPapers近日,清华刘知远老师组在arXiv上发表了一篇关于图神经网络的综述,本次论文浅尝在分享这篇论文的基础上,对图神…

论文笔记(Social Attentional Memory Network:Modeling Aspect- and Friend-level Differences in Recom-)

社交注意记忆网络:模拟面级别和朋友级别的区别 原文链接:Social Attentional Memory Network: Modeling Aspect- and Friend-Level Differences in Recommendation, WSDM’19 1. 摘要 社会中的连接有助于提升推荐系统的性能,但是&#xff…

玩转算法之面试-第六章(栈和队列)

leetcode 20 此时栈顶的左括号和当前遍历的右括号匹配,故将左括号从栈顶pop出。 leetcode 150: leetcode 71 栈和递归的关系 递归算法:二叉树中的算法 、二叉树的前序遍历,中序遍历,后序遍历 前序遍历代码&am…

POJ 1321 棋盘问题(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Accepted 代码1. 题目 1.1 题目链接 http://poj.org/problem?id1321 1.2 题目大意 在一个给定形状的棋盘(只能在#号的位置摆放)上面摆放棋子,棋子没有区别。要求摆放时任…

Java多线程系列(二):线程的五大状态,以及线程之间的通信与协作

在Java面试的时候,经常会问到Java并发编程相关的多线程、线程池、线程锁、线程通信等面试必考点,比如: Java并发编程系列:Java线程池的使用方式,核心运行原理、以及注意事项 Java并发编程系列:4种常用Jav…

负样本为王:评Facebook的向量召回算法

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术有人的地方就会有江湖,就会有鄙视链存在,推荐系统中也不例外。排序、召回,尽管只是革命分工不同,但是我感觉待遇还是相差蛮大的排序排序,特别是精排…

论文浅尝 | TEQUILA: 一种面向时间信息的知识问答方法

来源:CIKM’18链接:http://delivery.acm.org/10.1145/3270000/3269247/p1807-jia.pdf?ip223.3.116.39&id3269247&accACTIVE%20SERVICE&keyBF85BBA5741FDC6E%2EEEBE655830483280%2E4D4702B0C3E38B35%2E4D4702B0C3E38B35&__acm__15478819…

京东2020算法工程师0824笔试题整理

代码题: 1:开心消消乐: #include #include #include #include #include #include #include #define ll long long #define inf 0x3f3f3f3f #define Max 1001 using namespace std; int dir[4][2]{{-1,0},{1,0},{0,-1},{0,1}}; string …

论文笔记(eTrust: Understanding Trust Evolution in an Online World)

eTrust:理解线上信任进化 原文链接:eTrust: Understanding Trust Evolution in an Online World, KDD’12 原理:用户偏好与项的向量内积 用户与朋友相似度权重*朋友对项的时间衰减评分用户对项的评分 摘要 大部分关于线上信任的研究都假设…

技术动态 | 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?

OpenKG 祝各位读者元宵节快乐!本文转载自公众号:机器之心。选自ISWC作者:Baptiste Rocca参与:思源、李亚洲我们知道强大的深度模型需要很多计算力,那你知道创建一个知识图谱的成本到底是多少吗?德国 Mannhe…

Attention模型:我的注意力跟你们人类不一样

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术文 | 小轶背景截至今日,Badanau Attention的原文citation已达1.34w之多。2020年几乎所有主流NLP任务都需要借助attetion来实现。在深度学习全民炼丹的时代,attention是为数不多具有较强…

动态规划算法(Dynamic Programming)之0-1背包问题

文章目录1. 问题引入2. 动态规划求解0-1背包3. 复杂度4. 0-1背包升级版(带价值)5. 0-1背包升级版(带价值)DP解法1. 问题引入 前面讲了0-1背包的回溯解决方法,它是穷举所有可能,复杂度是指数级别的&#xf…

Java多线程系列(一):最全面的Java多线程学习概述

Java并发编程的技能基本涵括以下5方面: 多线程 线程池 线程锁 并发工具类 并发容器 多线程的4种创建方式 继承Thread 实现Runnable接口 实现Callable接口 以及线程池来创建线程 Java线程的生命周期 线程的创建 线程的就绪 线程的运行 线程的阻塞 线程的死…

论文浅尝 | 基于知识库的自然语言理解 01#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

推荐系统图算法实用干货汇总(含论文、代码、样例教程)

Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」,小编目前在电商公司从事推荐系统相关的工作。主要分享关于「推荐系统,图算法,NLP&CV以及求职面试」等内容,欢迎关注一起学习和交流~文末可打包下载…