一点关于cloze-style问题的简谈

一个小任务:给出一个问题和诺干个候选句子,从候选句子中选出答案,有没有好的实现方案?

一个小任务:类似于:“中国最大的内陆湖是哪个?”给出候选句子1.”中国最大的内陆湖,就是青海湖”2.“青海湖在中国内陆湖中最大的”等等 这种句子 然后根据句子找出答案 请问有什么实现的方案吗?

写了个答案,算是个科普向的,搬运到专栏

1 从“是什么”说起
这个问答属于传统的question-answer问题,比如例子上的

中国最大的淡水湖是___(转义,并不一定存在填空,但性质相同)

需要的结果,是补全出,青海湖这个结果

在英文中,我们称这种,给予一个query,回答一个词,作为“填空”,来回答的问题,称为“cloze style”的问题,来源于英语中的填字游戏

我们的input是一个query,一篇context,然后从文章中选取一个 存在于文章中的(point) 词,来做一个 填空 问题,将这个词作为output

现在,问题明确了,我们的任务,就是构建这个"端对端"的,input-output系统

2 从“为什么”谈谈

首先想说一说attention这个概念,以此导入后面的介绍

准确的描述请看

@Tao Lei
大神关于attention的回答


我们现在已经确定了两点

第一,我们所要找的"填空"词,必然是context中的一个

第二,判定这个词我们需不需要,主要取决与我们的query,也就是问题

那么很自然的就会想到,如果我们能够对context中的每个词,和这个query都构建一个函数,假设context = {word1,word2......},我们希望有一个量化的函数f(query,word_i) = value,然后我们只需要选择出max的那个词来进行"填空",就完成了

放到题目中,我们假设存在那么一个f

query:中国最大的淡水湖是哪一个?

f(query,青海湖) = 10

f(query,doge) = 1

f(query,野鸭湖) = 5

然后我们就max(),直接获得了青海湖这个答案

3 往"怎么做"说说

现在的问题变成了:

(1) 如何把这些离散的变量纳入函数去计算?

写过相关代码的,说一句embedding足够了,本质上就是用词向量去表达

简单解释一下,词向量就是用向量来把离散化的词来进行另一个形式的表达,比较好的词向量可以model到语义,具体来说就是,v1如果表达"青海湖",v2 表达 "抚仙湖",v3表达"青海".v4表达"云南",我们甚至可以直接做到v3 -v1 = v4-v2的神奇效果

但这显然不够

如果只是model到单个词,很大程度上浪费了文章信息,我们需要尽可能的涵盖上下文的意思,英文capture

我们希望,model出青海湖这个词的向量的时候,能包含"淡水湖,最大"之类的描述信息,这又如何做到呢

LSTM,时序神经网络RNN,一个经典的解决方案,embedding日常

看个热闹的话,这里,我们已经用一个向量表达了青海湖,还包含了一些它的属性信息,当然这个表达,只有计算机看得懂

(2) 如何构建合理的函数f?

第一篇开山的是这个

Teaching Machines to Read and Comprehend (Hermann et al., 2015)

Y. Cui, Z. Chen, S. Wei, S. Wang, T. Liu, G. Hu

蓝红部分做的就是所谓的capture的工作,也就是对词做了一个抽象,也对问题进行了一个抽象,在这个时候,训练了一个权重向量s,也就是attention

计算的思路也是非常清晰的,g就是我们之前试图寻找的那个f,表达的东西是一样的


秉承这个attention的思路,IBM搞出了一个更清晰的完全体,大概是1.0版本和1.1版本的关系,并且github上有完整的实现,能给一个比较好的参考

Text Understanding with the Attention Sum Reader Network (Kadlec et al., 2016)

Y. Cui, Z. Chen, S. Wei, S. Wang, T. Liu, G. Hu

网络的结构和计算非常简单,但是人家就有soa的效果

今年的Squad,stanford的全球性评测当中,科大讯飞andHIT和MSRA的两篇论文我记得第一第二,其中Aoa reader的论文和上两篇可以说是一脉相承的思路,只不过在对attention的利用上更近一层,MSRA的r-net有所不同,都是值得一读的文章,我在此贴一下paper的链接,这算是目前我知道的,这类问题的最好解决方案了

MSRA

aka.ms/rnet

Joint Laboratory of HIT and iFLYTEK Research

[1607.04423] Attention-over-Attention Neural Networks for Reading Comprehension

前一个复杂一些,后一个实现一下不难就是了,不过嘛,谁知道炼丹过程中有什么佐料呢


感谢观看

编辑于 2017-09-21
原文链接:https://zhuanlan.zhihu.com/p/29548295

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

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

相关文章

中文词语概念上下位图谱项目

HyponymyExtraction 项目地址:https://github.com/liuhuanyong/HyponymyExtraction HyponymyExtraction and Graph based on KB Schema, Baike-kb and online text extract, 基于知识概念体系,百科知识库,以及在线搜索结构化方式的词语上下位…

POJ 1007 DNA排序解题

题目链接 http://poj.org/problem?id1007 C代码实现 #include<string> #include<iostream> using namespace std; struct DNAdata //定义结构体 {char name[51];double sum;DNAdata(){sum 0;} }; void swapDNA(DNAdata *a, DNAdata *b) {DNAdata tempDNA;tempDN…

DeepMatch:用于推荐广告的深度召回匹配算法库

一只小狐狸带你解锁 炼丹术&NLP 秘籍前言今天介绍一下我们的一个开源项目DeepMatch&#xff0c;提供了若干主流的深度召回匹配算法的实现&#xff0c;并支持快速导出用户和物品向量进行ANN检索。非常适合同学们进行快速实验和学习&#xff0c;解放算法工程师的双手&#xf…

史上最全Spring面试71题与答案

1.什么是spring? Spring是个java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发&#xff0c;并通过POJO为基础的编程模型促进良好的编程习惯。 2.使用Spring框架的好处…

论文浅尝 | 近期论文精选

本文转载自公众号 PaperWeekly, 对我们近期的论文浅尝进行了精选整理并附上了相应的源码链接&#xff0c;感谢 PaperWeekly&#xff01;TheWebConf 2018■ 链接 | https://www.paperweekly.site/papers/1956■ 解读 | 花云程&#xff0c;东南大学博士&#xff0c;研究方向为自然…

海马体what where记忆推理模型

Generalisation of structural knowledge in theHippocampal-Entorhinal systemhttps://www.groundai.com/project/generalisation-of-structural-knowledge-in-the-hippocampal-entorhinal-system/海马 - 内嗅系统结构知识的泛化 实体概念信息和位置及虚拟位置信息组成记忆保存…

快速排序quicksort算法细节优化(一次申请内存/无额外内存排序)

文章目录1.只申请一次内存&#xff0c;避免多次递归调用时反复的申请和释放内存&#xff0c;提高程序运行效率2.不申请内存&#xff0c;在原数组上直接排序优化比较总结对链接中快速排序进行代码优化 https://blog.csdn.net/qq_21201267/article/details/80993672#t6 1.只申请…

在深度学习顶会ICLR 2020上,Transformer模型有什么新进展?

一只小狐狸带你解锁炼丹术&NLP秘籍大数据文摘出品来源&#xff1a;medium编译&#xff1a;一一、AndyICLR是机器学习社群最喜爱的会议平台之一。如今&#xff0c;机器学习领域的会议已成为预印本里论文质量的标志和焦点。但即使这样&#xff0c;论文的发表数量还是越来越庞…

领域应用 | 人工智能+知识图谱:如何规整海量金融大数据?

本文转载自公众号&#xff1a;恒生技术之眼。21世纪以来&#xff0c;人类社会信息资源的开发范围持续扩大&#xff0c;经济、社会信息随着经济活动加剧得到空前的开发&#xff0c;信息资源总量呈爆炸式增长&#xff0c;我们从最初的“信息匮乏”一步踏入到“信息过量”时代。个…

神经网络不应视为模型,推理过程当为机器学习问题一等公民

首发于论智关注专栏写文章神经网络不应视为模型&#xff0c;推理过程当为机器学习问题一等公民编者按&#xff1a;Microsoft Semantic Machines资深研究科学家、UC Berkeley计算机科学博士Jacob Andreas指出&#xff0c;神经网络不应视为模型&#xff0c;因为神经网络的模型和推…

2019最全BAT资深Java面试题答案合集,建议收藏~

马上进入求职招聘高峰&#xff0c;总结了一份BAT&#xff08;阿里、百度等&#xff09;资深Java相关的面试题答案合集给到大家。 该板块的各面试章节&#xff0c;后续会持续迭代更新最新一线互联网公司的面试题目&#xff0c;建议收藏该页面&#xff0c;不定期更新查看~ Java…

中国古代诗词文本挖掘项目

PoemMining 项目地址&#xff1a;https://github.com/liuhuanyong/PoemMining Chinese Classic Poem Mining Project including corpus buiding by spyder and content analysis by nlp methods, 基于爬虫与nlp的中国古代诗词文本挖掘项目 项目介绍 中国古代诗词文化无疑是…

推荐系统的价值观

一只小狐狸带你解锁炼丹术&NLP秘籍 前言 推荐系统作为满足人类不确定性需求的一种有效工具&#xff0c;是具有极大价值的&#xff0c;这种价值既体现在提升用户体验上&#xff0c;又体现在获取商业利润上。对绝大多数公司来说&#xff0c;提升用户体验的最终目标也是为了获…

POJ1003/1004/1005/1207/3299/2159/1083/3094/2388解题(刷一波水题)

POJ 1003 题目链接 http://poj.org/problem?id1003 大意&#xff1a;长度1/21/3…1/n&#xff0c;给定长度值&#xff0c;求n #include<iostream> using namespace std; int main() {float len 0,sum;int n;while(cin >> len && len ! 0){for(n2,sum0;s…

论文浅尝 | 远程监督关系抽取的生成式对抗训练

动机远程监督关系抽取方法虽然可以使用知识库对齐文本的方法得到大量标注数据&#xff0c;但是其中噪声太多&#xff0c;影响模型的训练效果。基于 bag 建模比基于句子建模能够减少噪声的影响&#xff0c;但是仍然无法克服 bag 全部是错误标注的情形。为了换机噪声标注&#xf…

谷歌最强NLP模型BERT官方代码来了!GitHub一天3000星

新智元报道 来源&#xff1a;GitHub 作者&#xff1a;Google Research 编辑&#xff1a;肖琴 【新智元导读】谷歌AI团队终于开源了最强NLP模型BERT的代码和预训练模型。从论文发布以来&#xff0c;BERT在NLP业内引起巨大反响&#xff0c;被认为开启了NLP的新时代。 BERT的官方…

Java经典基础与高级面试36题和答案

在Java面试的首轮&#xff0c;经常会问很多关于Java面试基础以及高级的问题&#xff0c;今天收集相关Java面试36题和答案分享出来。 1.”static”关键字是什么意思&#xff1f;Java中是否可以覆盖&#xff08;override&#xff09;一个private或者是static的方法&#xff1f; …

论文浅尝 | 问题生成(QG)与答案生成(QA)的结合

本文转载自公众号&#xff1a;徐阿衡。梳理一下 MSRA 3 篇关于 QG 的 paper&#xff1a;Two-Stage Synthesis Networks for Transfer Learning in Machine ComprehensionQuestion Answering and Question Generation as Dual TasksA Joint Model for Question Answering and Qu…

卖萌屋算法岗面试手册上线!通往面试自由之路

一只小狐狸带你解锁 炼丹术&NLP 秘籍作为算法工程师&#xff0c;基础知识的重要性自然不必多说。虽然在有些项目中比较难感受到基础的作用&#xff0c;但扎实的coding能力&#xff0c;对算法本质和适用情况的理解&#xff0c;始终是决定工作效率与未来发展的重要feature。这…

2019头条抖音Java 3面真题,含面试题答案!

一面&#xff1a; hashmap&#xff0c;怎么扩容&#xff0c;怎么处理数据冲突&#xff1f;怎么高效率的实现数据迁移&#xff1f; Linux的共享内存如何实现&#xff0c;大概说了一下。 socket网络编程&#xff0c;说一下TCP的三次握手和四次挥手 同步IO和异步IO的区别&#…