点击上方,选择星标或置顶,每天给你送干货!
阅读大概需要6分钟
跟随小博主,每天进步一丢丢
来自 | 知乎
地址 | https://zhuanlan.zhihu.com/p/80905984
作者 | Chevalier
编辑 | 机器学习算法与自然语言处理公众号
本文仅作学术分享,若侵权,请联系后台删文处理
一、Introduction
机器阅读理解(MRC)是一项任务,用于测试机器通过要求机器根据给定的上下文回答问题来理解自然语言的程度。早期的MRC系统是基于规则的,性能非常差。随着深度学习和大规模数据集的兴起,基于深度学习的MRC显著优于基于规则的MRC。常见的MRC任务可以分为四种类型:完形填空、多项选择、片段抽取、自由回答。一般的MRC架构由以下几个模块组成:Embedding、Feature Extraction、Context-Question Interaction、Answer Prediction。另外,考虑到目前方法的局限性,MRC出现了新的任务,比如,knowledge-based MRC, MRC with unanswerable questions, multi-passage MRC,conversational question answering。
二、Tasks & Evaluation Metrics
2.1 Tasks
2.1.1 Cloze Test
给定上下文 ,一个词或实体 被移除,完形填空任务要求模型使用正确的词或实体进行填空,最大化条件概率 。
数据集:CNN & Daily Mail 、CBT、LAMBADA、Who-did-What、CLOTH、CliCR
2.1.2 Multiple Choice
给定上下文 ,问题 ,候选答案列表 ,多项选择任务要求模型从A中选择正确的答案 ,最大化条件概率 。与完形填空任务的区别就是答案不再局限于单词或实体,并且候选答案列表是必须要提供的。
数据集:MCTest、RACE
2.1.3 Span Extraction
尽管完形填空和多项选择一定程度上可以机器阅读理解的能力,但是这两个任务有一定的局限性。首先,单词或实体可能不足以回答问题,需要完整的句子进行回答;其次,在很多情形是没有提供候选答案的。所以片段抽取任务应运而生。
给定上下文 和问题 ,其中 ,片段抽取任务要求模型从C中抽取连续的子序列 作为正确答案,最大化条件概率 。
数据集:SQuAD、NewsQA、TriviaQA、DuoRC
2.1.4 Free Answering
对于答案局限于一段上下文是不现实的,为了回答问题,机器需要在多个上下文中进行推理并总结答案。自由回答任务是四个任务中最复杂的,也更适合现实的应用场景。
给定上下文C和问题Q,在自由回答任务中正确答案可能不是C中的一个子序列, 或 ,自由回答任务需要预测正确答案a,并且最大化条件概率 。
数据集:bAbI、MS MARCO 、SearchQA、NarrativeQA、DuReader
2.2 Evaluation Metrics
Accuracy:完形填空、多项选择
F1:
ROUGE-L
BLEU
三、General Architecture
典型的MRC系统以上下文和问题为输入,然后输入答案,系统包含四个关键模块:Embeddings, Feature Extraction, Context-Question Interaction,Answer Prediction。
Embeddings:将单词映射为对应的词向量,可能还会加上POS、NER、question category等信息;
Feature Extraction:抽取question和context的上下文信息,可以通过CNN、RNN等模型结构;
Context-Question Interaction:context和question之间的相关性在预测答案中起着重要作用。有了这些信息,机器就能够找出context中哪些部分对回答question更为重要。为了实现该目标,在该模块中广泛使用attention机制,单向或双向,以强调与query相关的context的部分。为了充分提取它们的相关性,context和question之间的相互作用有时会执行多跳,这模拟了人类理解的重读过程。
Answer Prediction:基于上述模块获得的信息输出最终答案。因为MRC任务根据答案形式分为了很多种,所以该模块与不同任务相关。对于完形填空,该模块输出context中的一个单词或一个实体;对于多项选择,该模块从候选答案中选择正确答案。
交流学习,进群备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。