CS224N笔记(十):问答系统

2020 年 6 月 3 日 深度学习自然语言处理

点击上方,选择星标置顶,每天给你送干货

阅读大概需要9分钟

跟随小博主,每天进步一丢丢


来自 | 知乎

地址 | https://zhuanlan.zhihu.com/p/67214500

作者 | 川陀学者

编辑 | 机器学习算法与自然语言处理公众号

本文仅作学术分享,若侵权,请联系后台删文处理



问答系统(Question Answering)实际需求很多,比如我们常用的谷歌搜索就可看做是问答系统。通常我们可以将问答系统看做两部分:从海量的文件中,找到与问题相关的可能包含回答的文件,这一过程是传统的information retrieval;从文件或段落中找到相关的答案,这一过程也被称作Reading Comprehension阅读理解,也是这一讲关注的重点。

SQuAD

Reading Comprehension需要数据是Passage即文字段落,Question问题以及相应的Answer回答。SQuAD(Stanford Question Answering Dataset)就是这样的数据集。对于每个问题都有人类提供的三个标准答案,为了评估问答模型,有两个metric:

  1. Exact Match,即模型回答与任意一个标准答案匹配即计数为1,否则为零。统计整体的准确率。

  2. F1,即将模型答案与标准答案当做bag of words,计算  ,  ,并计算它们的harmonic mean  ,然后对所有问题的F1求平均值。

通常F1 score被当做是更可靠的metric。

SQuAD 1.0版本中所有问题的答案都包含在段落中,而2.0版本中引入了一些问题在段落中是没有答案的,对于这类问题,当模型输出没有答案时得分1,否则为0。

当然SQuAD存在其局限性:1.答案需直接截取自段落中的文字,没有是非判断、计数等问题。2.问题的选择依赖于段落,可能与实际中的信息获取需求不同那个。3.几乎没有跨句子之间的理解与推断。

Stanford Attentive Reader

接下来讲的是Manning组的关于QA的模型Stanford Attentive Reader。

其思路是对于Question,先利用Bidirectional LSTM提取其特征向量。

再对Passage中的每个单词进行Bidirectional LSTM提取其特征向量, 并对每个单词对应的特征向量与问题的特征向量进行Attention操作,分别得到推测答案起始位置与终止位置的attention score,损失函数为  。

之后还在该模型基础上进行了改进:

  1. 对于question部分,不仅仅是LSTM最后的输出,而是用了类似于self-attention的weighted sum来表示,并且增多了BiLSTM的层数。

  2. 对于passage的encoding,除了利用Glove得到的word embedding之外,还加入了一些语言学的特征,如POS(part of speech)和NER(named entity recognition) tag以及term frequency。另外还加入了比较简单的特征如段落中单词是否出现在问题中的binary feature,对于这种match,又分为三种即exact match, uncased match(不区分大小写), lemma match(如drive和driving)。更进一步,还引入了aligned question embedding, 与exact match相比,这可以看做是对于相似却不完全相同的单词(如car与vehicle)的soft alignment:  ,其中  代表了段落中单词  与问题中单词  的相似度。

BiDAF

另一个比较重要的QA模型是BiDAF(Bi-Directional Attention Flow),其模型结构如下。

其核心思想是Attention应该是双向的,既有从Context(即passage)到Query(即Question)的attention,又有从Query到Context的attention。

首先计算similarity matrix

其中  分别代表context vector与query vector。

对于Context2Query Attention,我们想要知道对于每个context word,哪些query word比较重要,因此得到attention score及weighted vector:

而对于Query2Context Attention,我们想要知道对于query,哪些context words与任意一个query words相似度较高,我们得到对于query来说最关键的context words的加权求和:

由此,我们得到了Attention Flow Layer 的输出

再对其进行多层LSTM与Softmax得到相应的输出。

更近期的发展基本上是更复杂的结构以及attention的各种结合。对于embedding的提取方面,也更多采用contextual embedding,收到了很好的效果,关于contextual embedding如Elmo,BERT等会在第13讲详细讲解。


参考资料

第十讲讲义web.stanford.edu/class/

补充材料web.stanford.edu/class/

第十讲视频youtu.be/yIdF-17HwSk

论文

A Thorough Examination of the CNN/Daily Mail Reading Comprehension Task

Reading Wikipedia to Answer Open-Domain Questions

Bidirectional Attention Flow for Machine Comprehension


添加个人微信,备注: 昵称-学校(公司)-方向 即可获得
1. 快速学习深度学习五件套资料
2. 进入高手如云DL&NLP交流群
记得备注呦


登录查看更多
0

相关内容

自动问答(Question Answering, QA)是指利用计算机自动回答用户所提出的问题以满足用户知识需求的任务。不同于现有搜索引擎,问答系统是信息服务的一种高级形式,系统返回用户的不再是基于关键词匹配排序的文档列表,而是精准的自然语言答案。近年来,随着人工智能的飞速发展,自动问答已经成为倍受关注且发展前景广泛的研究方向。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
斯坦福大学经典《自然语言处理cs224n》2020课件合集
专知会员服务
94+阅读 · 2020年5月25日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
117+阅读 · 2020年5月6日
【IJCAI2020-CMU】结构注意力的神经抽象摘要
专知会员服务
21+阅读 · 2020年4月23日
【课程】浙大陈华钧教授《知识图谱导论》课程系列PPT
专知会员服务
165+阅读 · 2019年10月29日
学习自然语言处理路线图
专知会员服务
133+阅读 · 2019年9月24日
【论文笔记】基于LSTM的问答对排序
专知
12+阅读 · 2019年9月7日
学习 | word2vec的前世今生
菜鸟的机器学习
14+阅读 · 2018年3月21日
资源 | Github项目:斯坦福大学CS-224n课程中深度NLP模型的PyTorch实现
黑龙江大学自然语言处理实验室
10+阅读 · 2017年11月13日
基于Wikipedia知识源的开放领域问答系统(读书报告)
科技创新与创业
9+阅读 · 2017年11月7日
推荐|CS224n研究热点:自动组合神经网络做问答系统!
全球人工智能
3+阅读 · 2017年9月27日
Python 自然语言处理(NLP)工具库汇总
数据挖掘入门与实战
7+阅读 · 2017年9月25日
Question Generation by Transformers
Arxiv
5+阅读 · 2019年9月14日
Arxiv
16+阅读 · 2018年4月2日
Arxiv
5+阅读 · 2018年3月16日
VIP会员
相关资讯
【论文笔记】基于LSTM的问答对排序
专知
12+阅读 · 2019年9月7日
学习 | word2vec的前世今生
菜鸟的机器学习
14+阅读 · 2018年3月21日
资源 | Github项目:斯坦福大学CS-224n课程中深度NLP模型的PyTorch实现
黑龙江大学自然语言处理实验室
10+阅读 · 2017年11月13日
基于Wikipedia知识源的开放领域问答系统(读书报告)
科技创新与创业
9+阅读 · 2017年11月7日
推荐|CS224n研究热点:自动组合神经网络做问答系统!
全球人工智能
3+阅读 · 2017年9月27日
Python 自然语言处理(NLP)工具库汇总
数据挖掘入门与实战
7+阅读 · 2017年9月25日
Top
微信扫码咨询专知VIP会员