CS224N笔记(十):问答系统

点击上方,选择星标置顶,每天给你送干货CS224N笔记(十):问答系统

阅读大概需要9分钟CS224N笔记(十):问答系统

跟随小博主,每天进步一丢丢CS224N笔记(十):问答系统

来自 | 知乎

地址 | 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,计算 CS224N笔记(十):问答系统 , CS224N笔记(十):问答系统 ,并计算它们的harmonic mean CS224N笔记(十):问答系统 ,然后对所有问题的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提取其特征向量。

CS224N笔记(十):问答系统

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

CS224N笔记(十):问答系统

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

  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: CS224N笔记(十):问答系统 ,其中 CS224N笔记(十):问答系统 代表了段落中单词 CS224N笔记(十):问答系统 与问题中单词 CS224N笔记(十):问答系统 的相似度。

CS224N笔记(十):问答系统

BiDAF

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

CS224N笔记(十):问答系统

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

首先计算similarity matrix

CS224N笔记(十):问答系统

其中 CS224N笔记(十):问答系统 分别代表context vector与query vector。

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

CS224N笔记(十):问答系统

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

CS224N笔记(十):问答系统

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

CS224N笔记(十):问答系统

再对其进行多层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交流群

CS224N笔记(十):问答系统

记得备注呦

CS224N笔记(十):问答系统