Welcome to chendq-thesis-ZH’s documentation!¶
这里是我对陈丹琦博士的博士论文的翻译结果,因为都是在课余时间进行翻译的,所以很多地方可能翻译错误。在未来的时候,我会抽时间进行详细的解读,或者抽时间进行实验的复现。
Neural Reading Comprehension and Beyond
https://www.cs.princeton.edu/~danqic/papers/thesis.pdf
神经阅读理解与超越
陈丹琦
2018年12月
\(\sigma_{1}\)
Preface 译者 注¶
关于这片论文的中文翻译在这里:https://chendq-thesis-zh.readthedocs.io/en/latest/
我一直觉得阅读一本优秀的博士毕业论文是最快了解一个领域的方式。论文中会介绍它的研究的前因后果以及最近和未来的发展趋势,并且,这里面会引用大量的参考文献,这都是宝贵的经过整理的学习资料。
其次,我们可以从行文思路中学习到作者的思维方式,从其发表文章的先后顺序和年代,看到作者的成长,可以借此学习到作者的思维和学习方式。我没有翻译作者的Acknowledgment,但是我强烈建议大家去读一下,了解一下作者的学习心态。
坦白说,中西方的思维方式【我觉得会反应在语系上】会略有不同,在读硕士研究生的期间,在最初的时候和导师以及一些拉丁语系母语同学的沟通的时候,我会比较难跟上。但是和中国人或者不是英语native speaker的人沟通的时候会比较容易一些,按照乔姆斯基的理论来说,我们都在作为“外人”努力学习英语的generative rules,然后使用英文沟通学习。所以能找到一篇优秀的“中国造”英文博士论文也是很幸运的。希望我们都可以从中学习到很多有意义的东西,欢迎一起讨论一起进步。
同时我强烈推荐phD Grind这篇文章,也是讲述了斯坦福大学的博士生的学习心路历程。推荐理由引用其中的一段话:有些人可以通过博士的学习生涯学习到一种思维方式,有的人没有通过博士的学习生涯,但是通过别的方式同样达到了这样的高度。
NLP领域逐渐进入人们的视野,从word2vec到BERT再到后来提出的一些模型,都是在dig预训练这个环节。
在未来,有时间的情况话,我会对文中提到的一些有代表性的论文进行解读。部分论文会进行复现。
才疏学浅,有不足之处,还望指出。谢谢。可以直接提出issue或者通过邮件联系:4ljy@163.com。
本文翻译已经咨询过原作者。
本文仅供学习交流所用,一切权利由原作者及单位保留,译者不承担法律责任。
原文地址:
https://www.cs.princeton.edu/~danqic/papers/thesis.pdf
陈丹琦博士个人主页:
https://www.cs.princeton.edu/~danqic/
Duke Lee
2019年
摘要¶
教机器理解人类语言文档是人工智能领域最难以捉摸和长期存在的挑战之一。本文探讨了阅读理解的问题:如何构建计算机系统来阅读一篇文章并回答理解问题。一方面,我们认为阅读理解是评估计算机系统理解人类语言能力的一项重要任务。另一方面,如果我们能够构建高性能的阅读理解系统,它们将成为问答和对话系统等应用的关键技术。
本文主要研究了基于深度神经网络的阅读理解模型。与传统的稀疏的、手工设计的基于特征的模型相比,这些端到端神经模型被证明在学习丰富的语言现象方面更有效,并在很大程度上提高了所有现代阅读理解基准的性能。
本文由两部分组成。第一部分,我们的目标是涵盖神经阅读理解的本质,并介绍我们在构建有效的神经阅读压缩模型方面所做的努力,更重要的是了解神经阅读理解模型实际学习了什么,以及解决当前任务需要多大的语言理解深度。我们还总结了该领域的最新进展,并讨论了该领域未来的发展方向和有待解决的问题。
在本文的第二部分,我们探讨了如何基于最近神经阅读理解的成功构建实际应用。特别是,我们开创了两个新的研究方向:1)如何将信息检索技术与神经阅读理解相结合,解决大规模开放领域的问题回答;和2)如何从现有的单轮、基于斯潘语言的阅读理解模型中构建会话问答系统。我们在DRQA和COQA项目中实现了这些想法,并证明了这些方法的有效性。我们相信它们对未来的语言技术有着巨大的前景。
Acknowledgements¶
The past six years at Stanford have been an unforgettable and invaluable experience to me. When I first started my PhD in 2012, I could barely speak fluent English (I was required to take five English courses at Stanford), knew little about this country and had never heard of the term “natural language processing”. It is unbelievable that over the following years I have actually been doing research about language and training computer systems to understand human languages (English in most cases), as well as training myself to speak and write in English. At the same time, 2012 is the year that deep neural networks (also called deep learning) started to take off and dominate almost all the AI applications we are seeing today. I witnessed how fast Artificial Intelligence has been developing from the beginning of the journey and feel quite excited —– and occasionally panicked —– to be a part of this trend. I would not have been able to make this journey without the help and support of many, many people and I feel deeply indebted to them.
First and foremost, my greatest thanks go to my advisor Christopher Manning. I really didn’t know Chris when I first came to Stanford — only after a couple of years that I worked with him and learned about NLP, did I realize how privileged I am to get to work with one of the most brilliant minds in our field. He always has a very insightful, high- level view about the field while he is also uncommonly detail oriented and understands the nature of the problems very well. More importantly, Chris is an extremely kind, caring and supportive advisor that I could not have asked for more. He is like an older friend of mine (if he doesn’t mind me saying so) and I can talk with him about everything. He always believes in me even though I am not always that confident about myself. I am forever grateful to him and I have already started to miss him.
I would like to thank Dan Jurafsky and Percy Liang — the other two giants of the Stanford NLP group — for being on my thesis committee and for a lot of guidance and help throughout my PhD studies. Dan is an extremely charming, enthusiastic and knowl- edgeable person and I always feel my passion getting ignited after talking to him. Percy is a superman and a role model for all the NLP PhD students (at least myself). I never understand how one can accomplish so many things at the same time and a big part of this dissertation is built on top of his research. I want to thank Chris, Dan and Percy, for setting up the Stanford NLP Group, my home at Stanford, and I will always be proud to be a part of this family.
It is also my great honor to have Luke Zettlemoyer on my thesis committee. The work presented in this dissertation is very relevant to his research and I learned a lot from his papers. I look forward to working with him in the near future. I also would like to thank Yinyu Ye for his time chairing my thesis defense.
During my PhD, I have done two wonderful internships at Microsoft Research and Facebook AI Research. I thank my mentors Kristina Toutanova, Antoine Bordes and Jason Weston when I worked at these places. My internship project at Facebook eventually leads to the DRQA project and a part of this dissertation. I also would like to thank Microsoft and Facebook for providing me with fellowships.
Collaboration is a big lesson that I learned, and also a fun part of graduate school. I thank my fellow collaborators: Gabor Angeli, Jason Bolton, Arun Chaganty, Adam Fisch, Jon Gauthier, Shayne Longpre, Jesse Mu, Siva Reddy, Richard Socher, Yuhao Zhang, Vic- tor Zhong, and others. In particular, Richard — with him I finished my first paper in graduate school. He had very clear sense about how to define an impactful research project while I had little experience at the time. Adam and Siva — with them I finished the DRQA and COQA projects respectively. Not only am I proud of these two projects, but also I greatly enjoyed the collaborations. We have become good friends afterwards. The KBP team, especially Yuhao, Gabor and Arun — I enjoyed the teamwork during those two sum- mers. Jon, Victor, Shayne and Jesse, the younger people that I got to work with, although I wish I could have done a better job. I also want to thank the two teaching teams (7 and 25 people respectively) for the NLP class that I’ve worked on and that was a very unique and rewarding experience for me.
I thank the whole Stanford NLP Group, especially Sida Wang, Will Monroe, Angel Chang, Gabor Angeli, Siva Reddy, Arun Chaganty, Yuhao Zhang, Peng Qi, Jacob Stein- hardt, Jiwei Li, He He, Robin Jia and Ziang Xie, who gave me a lot of support at various times. I am even not sure if there could be another research group in the world better than our group (I hope I can create a similar one in the future). The NLP retreat, NLP BBQ and those paper swap nights were among my most vivid memories in graduate school.
Outside of the NLP group, I have been extremely lucky to be surrounded by many great friends. Just to name a few (and forgive me for not being able to list all of them): Yanting Zhao, my close friend for many years, who keeps pulling me out from my stressful PhD life, and I share a lot of joyous moments with her. Xueqing Liu, my classmate and roommate in college who started her PhD at UIUC in the same year and she is the person that I can keep talking to and exchanging my feelings and thoughts with, especially on those bad days. Tao Lei, a brilliant NLP PhD and my algorithms “teacher” in high school and I keep learning from him and getting inspired from every discussion. Thanh-Vy Hua, my mentor and “elder sister” who always makes sure that I am still on the right track of my life and taught me many meta-skills to survive this journey (even though we have only met 3 times in the real world). Everyone in the “caˇo yu ́” group, I am so happy that I have spent many Friday evenings with you.
During the past year, I visited a great number of U.S. universities seeking an academic job position. There are so many people I want to thank for assistance along the way —– I either received great help and advice from them, or I felt extremely welcomed during my visit —– including Sanjeev Arora, Yoav Artzi, Regina Barzilay, Chris Callison-Burch, Kai-Wei Chang, Kyunghyun Cho, William Cohen, Michael Collins, Chris Dyer, Jacob Eisenstein, Julia Hirschberg, Julia Hockenmaier, Tengyu Ma, Andrew McCallum, Kathy McKeown, Rada Mihalcea, Tom Mitchell, Ray Mooney, Karthik Narasimhan, Graham Neubig, Christos Papadimitriou, Nanyun Peng, Drago Radev, Sasha Rush, Fei Sha, Yulia Tsvetkov, Luke Zettlemoyer and many others. These people are really a big part of the reasons that I love our research community so much, therefore I want to follow their paths and dedicate myself to an academic career. I hope to continue to contribute to our research community in the future.
A special thanks to Andrew Chi-Chih Yao for creating the Special Pilot CS Class where I did my undergraduate studies. I am super proud of being a part of the “Yao class” family. I also thank Weizhu Chen, Qiang Yang and Haixun Wang, with them I received my very first research experience. With their support, I was very fortunate to have the opportunity to come to Stanford for my PhD.
I thank my parents: Zhi Chen and Hongmei Wang. Like most Chinese students in my generation, I am the only child of my family and I have a very close relationship with them — even if they are living 16 (or 15) hours ahead of me and I can only spare 2–3 weeks staying with them every year. My parents made me who I am today and I never know how to pay them back. I hope that they are at least a little proud of me for what I have been through so far.
Lastly, I would like to thank Huacheng for his love and support (we got married 4 months before this dissertation was submitted). I was fifteen when I first met Huacheng and we have been experiencing almost everything together since then: from high-school programming competitions, to our wonderful college time at Tsinghua University and we both made it to the Stanford CS PhD program in 2012. For over ten years in the past, he is not only my partner, my classmate, my best friend, but also the person I admire most, for his modesty, intelligence, concentration and hard work. Without him, I would not have come to Stanford. Without him, I would also not have taken the job at Princeton. I thank him for everything he has done for me.
To my parents and Huacheng, for their unconditional love.
Chapter 1 Introduction¶
1.1 Motivation¶
教机器理解人类语言文档是人工智能领域最难以捉摸和长期存在的挑战之一。在我们继续往下读之前,我们必须搞清楚,理解人类语言意味着什么?图1.1展示了MCTEST数据集中的一个儿童故事(Richardson et al.,2013),这个故事仅仅使用了简单的词汇和语法。为了处理这样一段文本,NLP社区花了几十年的时间来解决文本理解各个方面的不同任务,包括:
- 词性标注(part-of-speech tagging)。这需要我们的机器理解文本中的单词词性。例如,第一句话中Alyssa got to the beach after a long trip。其中Alyssa是一个专有名词(proper noun),beach和trip是常见名词(common noun),got是动词的过去式(verb in its past tense),long是形容词(adjective),after是介词(preposition)。
- 命名实体识别(named entity recognition)。我们的机器也应该明白,故事中是Alyssa、Ellen、Kristen人物的名字,而Charlotte、Atlanta和Miami是地点的名字。
- 语法解析(syntactic parsing)。为了理解每个句子的意思,我们的机器还需要理解单词之间的关系,或者语法(grammatical)结构。还是用故事中的第一句话举例:Alyssa got to the beach after a long trip,,机器应该理解Alyssa是主语,beach是动词got的宾语,而after a long trip作为一个整体是一个介词短语,它描述了动词与时间的关系。
- 指代消解。此外,我们的机器甚至需要理解句子之间的关系。例如,She ‘s now in Miami这句话中提到的She指的是第一句中提到的Alyssa,而提到的The girls指的是前面句子中提到的Alyssa、Ellen、Kristen和Rachel。
F1.1.png
Figure1.1: A sample story and comprehension questions from the MCTEST dataset (Richardson et al., 2013).
是否有一种综合评价可以检验所有这些方面,并探索更深层次的理解?我们认为,阅读理解的任务——在一篇文章中回答理解性问题——是一种恰当而重要的方法。就像我们使用阅读理解测试来衡量一个人对一段文字的理解程度一样,我们相信它也可以在评估计算机系统对人类语言的理解程度方面发挥同样的作用。【译者注,这个和我们利用阅读理解来判定一个人的语言水平是类似的思想,所以高考的阅读理解是很有意义的】
让我们仔细看看同一篇文章中提出的一些理解性问题(Figure 1.1):
- 为了回答第一个问题:Alyssa在哪个城市?,我们的机器需要找出she is now in Miami,并解决指代消解的问题,即she在这里指的是Alyssa,最后给出正确答案Miami。
- 对于第二个问题,What did Alyssa eat at the restaurant? , 首先,他们需要找到这两句话:The restaurant had a special on catfish(鲶鱼). 以及 Alyssa enjoyed the restaurant’s special. 并且理解Alyssa在第二句话中所enjoyed的special是第一句话中的special。而基于catfish修饰special,所以答案就是catfish。
- 最后一个问题特别具有挑战性。为了得到正确的答案,机器必须记住文本中提到的所有人的名字和他们之间的关系,进行一些算术推理(计数),最后给出一个答案。
正如我们所看到的,我们的计算机系统必须理解文本的各个方面来正确地回答这些问题。由于问题可以被设计成问询我们关心的方面,所以阅读理解可能是评估语言理解最合适的任务(reading comprehension could be the most suitable task for evaluating language understanding)。这是本文的中心主题。
在本文中,我们研究了阅读理解的问题:我们如何构建计算机系统来阅读一篇文章并回答这些理解性问题?我们特别关注神经阅读理解(neural reading comprehension),这是一种使用深度神经网络建立的阅读理解模型,它已经被证明比非神经(网络)的、基于特征的模型更有效。
阅读理解这个领域有着悠久的历史——早在20世纪70年代,研究者就已经认识到它是测试计算机程序语言理解能力的重要方法(Lehnert, 1977)。然而,这个领域已经被忽视了几十年。直到最近,它才得到了大量的关注,并取得了快速的进展(参见Figure 1.2作为一个例子),包括我们将在本文中详细介绍的我们付出的努力。最近阅读理解的成功可以归因于两个原因:1)以(文章、问题、答案)三元组的形式的大规模监督数据集创建;2)神经阅读理解模型的建立。
F1.2.png
Figure 1.2: A search result on GOOGLE. It not only returns a list of search documents but gives more precise answers within the documents.
在这篇论文中,我们将涵盖现代神经阅读理解的本质:问题的形成,系统的构建模块和关键成分,以及理解当前的神经阅读理解系统在哪些方面可以做得更好,哪些方面仍然落后。
本文的第二个中心主题是,我们深信,如果我们能够构建出高性能的阅读理解系统,它们将成为问答和对话系统等应用的关键技术(they would be a crucial technology for applications such as question answering and dialogue systems)。事实上,这些语言技术已经与我们的日常生活息息相关。例如,如果我们今天在谷歌中输入一个搜索查询“how many people work at stanford univerisity?””(Figure 1.2),谷歌不仅返回搜索文档列表,还尝试读取这些Web文档,最后突出显示最可信的答案,并将它们显示在搜索结果的顶部。我们相信这正是阅读理解可以起作用的地方,因此可以促进更智能的搜索引擎。此外,随着亚马逊(Amazon)的ALEXA、苹果(Apple)的SIRI、谷歌ASSISTANT或微软(Microsoft)的小娜(CORTANA)等数字个人助理的发展,越来越多的用户通过询问有关信息的问题来参与到这些设备(的建设中)[^1]。我们相信,建造能够阅读和理解文本的机器将会极大的改善这些个人助理的能力。
因此,在本文中,我们也对从最近神经阅读理解的成功中构建实际应用感兴趣。我们探索了两个以神经阅读理解为核心的研究方向:
开放领域的问答(Open-domain question answering)结合了来自信息检索和阅读理解的挑战,旨在回答来自Web或大型百科全书(如Wikipedia)的一般问题。
会话形式问答(Conversational question answering)结合了来自对话和阅读理解的挑战,解决了在一段文本中进行多轮问答的问题,比如用户如何与会话代理进行交互。Figure 1.3展示了来自COQA数据集的一个示例(Reddy et al.,2019)。在这个例子中,一个人可以基于一篇CNN的文章问出一系列的互相关联的问题。
[^1]: A recent study https://www.stonetemple.com/digital-personal-assistants-study/ reported that asking general questions is indeed the number one use for such digital personal assistants.
1.2 Thesis Outline¶
根据我们刚刚讨论的两个中心主题,本文由两部分组成:第一部分神经阅读理解基础(PART I NEURAL READING COMPREHENSION: FOUNDATIONS)和第二部分神经阅读理解应用(PART II NEURAL READING COMPREHENSION: APPLICATIONS)。
【译者注: excruciatingly: 难以忍受地; allegedly:据说】
F1.3.png
Figure1.3: AconversationfromCOQAbasedonanCNNarticle.
第一部分(PART 1)侧重于阅读理解的任务,强调仔细阅读一小段,使计算机系统能够回答理解性问题。
第二章首先概述了阅读理解的发展历史和现状。接下来,我们正式定义了问题的表达式及其表达式的主要类别。然后简要讨论了阅读理解和一般问答(问题)的差异。最后,我们认为最近神经阅读理解的成功是由大规模数据集和神经模型(一起)驱动的。
在第三章中,我们介绍了神经阅读理解模型家族。我们首先描述非神经的,基于特征的分类器,并讨论他们如何不同于端到端神经方法。然后我们介绍了一种我们提出的名叫THE STANFORD ATTENTIVE READER的神经方法,并且描述了它的基本构建模块和扩展。我们在CNN/DAILY MAIL和SQUAD这两个代表性的阅读理解数据集上展示了实验结果。更重要的是,我们对神经模型进行了深入的分析,以理解这些模型实际上学到了什么(译者注:我觉得这是一个重点)。最后,总结了近年来神经阅读理解模型在不同方面的研究进展。本章基于我们的工作(Chen et al.,2016)和(Chen et al.,2017)。
在第四章中,我们讨论了该领域未来的工作和有待解决的问题。我们首先研究现有模型的错误case,尽管模型在当前基准上的准确性很高。然后,我们根据数据集和模型讨论未来的方向。最后,我们对这一领域的几个重要研究问题进行了复盘,这些问题仍然是悬而未决的,有待未来进一步的研究。
第二部分认为阅读理解是实际应用的一个重要组成部分,如问答系统和会话智能体。详情如下:
开放领域的问答
第五章将开放领域的问答当作是阅读理解的一个应用。探讨了如何将高性能的神经阅读理解系统与有效的信息检索技术相结合,构建新一代的开放领域的问答系统。我们描述了我们构建的一个名为DRQA的系统:它的关键组件以及我们如何为它创建训练数据,然后我们对多个问答(系统)基准进行了综合评估。最后我们讨论了这个系统目前的局限性以及未来的工作。本章基于我们的工作(Chen et al.,2017)。
在第六章中,我们研究了会话问答,即机器必须理解一篇文章,并回答会话中出现的一系列问题。本文首先简要回顾了有关对话的文献,认为会话问答是构建信息检索对话智能体的关键。本文介绍了一种用于构建会话问答系统(Conversational Question Answering)的新数据集COQA,它由127k个问题和答案组成,这些问题和答案来自于8k个关于文本段落的讨论。我们对数据集进行了深入的分析,并在会话和神经阅读理解模型的基础上建立了若干竞争模型,并给出了实验结果。最后讨论了未来在这方面的工作。本章基于我们的工作(Reddy et al., 2019)。
我们最后将在第七章进行总结。
1.3 Contributions¶
本文的贡献总结如下:
- 我们是最早研究神经阅读理解的团队之一。特别地,我们提出了STANFORD ATTENTIVE READER 模型,该模型在各种现代阅读理解任务中都表现出了优异的表现。
- 我们努力更好地理解神经阅读理解模式实际上学到了什么,以及解决当前任务需要多大的语言理解深度。我们的结论是,与传统的基于特征的分类器相比,神经模型更善于学习词汇匹配和释义,而现有系统的推理能力仍然相当有限。
- 我们开创了将神经阅读理解作为开放领域问题回答的核心组成部分的研究方向,并研究了如何通用化这个案例的模型。特别的,我们在DRQA系统中实现了这个想法,这是一个大型的、基于英语维基百科的真实问题回答系统。
- 最后,我们着手解决会话问答问题。其中计算机系统需要在对话的上下文(背景)中回答理解性问题,所以每个问题都需要根据它的对话历史来理解。为了解决这个问题,我们提出了COQA challenge,并建立了适合这个问题的神经阅读理解模型。我们认为这是构建会话QA智能体的第一步,也是重要的一步。
PART I Neural Reading Comprehension: Foundations
Chapter 2 An Overview of Reading Comprehension¶
When a person understands a story, he can demonstrate his understanding by answering questions about the story. Since questions can be devised to query any aspect of text comprehension, the ability to answer questions is the strongest possible demonstration of understanding. If a computer is said to understand a story, we must demand of the computer the same demonstration of understanding that we require of people. Until such demands are met, we have no way of evaluating text understanding programs.
(当一个人理解一个故事的时候,他可以通过回答关于这个故事的问题来表明他的理解(程度)。因为问题可以提问文本理解的任何方面,那么回答问题的能力就是对理解程度的最可能的表示。如果说一台电脑理解了一个故事,我们必须像要求人类一样要求电脑。在这样的要求满足之前,我们无法衡量任何文本理解系统。)
Wendy Lehnert, 1977
在这一章,我们的目的是为读者提供一个阅读理解的概述。我们从阅读理解的历史开始(2.1节),从上世纪70年代开发的早期系统,到为这项任务建立机器学习模型的尝试,再到最近神经(深度学习)方法的复兴。这一领域已经完全被神经阅读理解所重塑,并且取得了令人兴奋的进展。
然后,我们在2.2节中正式将阅读理解任务定义为一个监督学习问题,并根据答案类型描述了四个不同的类别。最后,我们将讨论它们的评估指标。
接下来我们简要讨论一下阅读理解和问答(QA)的区别,特别是它们的最终目标(2.3节)。最后,我们会在2.4节中讨论大规模数据集和神经模型的相互作用是如何促进现代阅读理解的发展的。
2.1 History¶
2.1.1 Early Systems¶
建立自动阅读理解系统的历史可以追溯到四十多年前。在20世纪70年代,研究人员已经认识到把阅读理解作为一种方法来测试计算机程序对语言的理解能力的重要性。
最著名的早期作品之一是Lehnert(1977)中详细描述的QUALM。基于脚本和计划框架,Lehnert(1977)设计了一个问答的理论,并且专注于语用问题和故事上下文在问答中的重要性,来作为对人类阅读理解的建模(Schank and Abelson, 1977)。这个早期工作为语言理解设置了一个强大的愿景,但是当时构建的实际系统非常小,仅限于手工编码的脚本,并且很难推广到更广泛的领域。
由于问题的复杂性,这方面的研究在20世纪80年代和90年代大多被忽视。在20世纪90年代末,人们对阅读理解的兴趣有了一些小小的复苏,例如Hirschman等人(1999)创建了一个阅读理解数据集,以及随后在ANLP/NAACL 2000年举办了一个关于阅读理解测试作为基于计算机的理解系统评估的研讨会。数据集包括60个用于开发的故事和60个用于测试的三至六年级的故事,附有一些简单的who,what,when,where,why这样的简单问题。它只需要系统返回包含正确答案的句子。这一阶段开发的系统主要是基于规则的词包方法。例如DEEP READ 系统(Hirschman et al. 1999)中进行词干分析、语义类识别和代词解析等浅层语言处理,或者像是QUARC系统(Riloff and THElen,2000)中手动生成基于词汇和语义对应的规则或者是以上两个的组合体(Charnizak et al., 2000)。这些系统在检索正确句子时达到了30%-40%的准确率。
2.1.2 Machine Learning Approaches¶
在2013年至2015年之间,(人们)在将阅读理解定义为一种supervised learning问题方面做出了显著的努力。研究员以(文章,问题,回答)三元组的形式收集人类标注好的训练例子,希望我们可以训练统计模型来学习将一段话和问题形成的对映射到他们相对应的答案上面去:f(passage, question)–>answer。
在此期间,两个值得注意的数据集是MCTEST (Richardson et al., 2013)和PROCESSBANK (Berant et al., 2014)。MCTEST收集660个虚构的故事,每个故事有4个多选题(每个问题有4个假设答案,其中一个是正确的)(Table 2.1 (b))。PROCESSBANK旨在回答描述生物过程的段落中的二选择问题,并要求理解过程中实体和事件之间的关系。数据集由585个问题组成,分布在200段中。
在最初的MCTEST paper中,Richardson等人(2013)在没有利用任何训练数据的情况下,提出了几个基于规则的基线(baseline)。一种是启发式滑动窗口方法,它测量问题、答案和滑动窗口中单词之间的加权单词重叠/距离信息;另一种方法是通过将每个问答对转换为一个语句来运行现成的文本蕴涵系统。这个数据集后来启发了一系列机器学习模型(Sachan et al., 2015;Narasimhan和Barzilay, 2015;Wang et al., 2015)。这些模型大多建立在一个简单的max-margin学习框架之上,该框架具有丰富的手工设计的语言特性,包括句法依赖、语义框架、指代消解、篇章关系和单词嵌入。MC500的性能从63%略微提高到70%左右。在PROCESSBANK数据集上,Berant等人(2014)提出了一种统计模型,该模型首先学会预测流程结构,然后将问题映射到可以针对该结构执行的正式查询。同样,模型结合了大量的手工特征,最终在二分类任务上获得了66.7%的准确率。
image-20190703075018343

Table 2.1: A few examples from representative reading comprehension datasets: (a) CNN/DAILY MAIL (Hermann et al., 2015), (b) MCTEST (Richardson et al., 2013), (c) SQUAD (Rajpurkar et al., 2016) and (d) NARRATIVEQA (Kocˇisky` et al., 2018).
与早期基于规则的启发式方法相比,这些机器学习模型取得了一定的进步。然而,它们的改进仍然相当有限,其缺点总结如下:
- 这些模型严重依赖于现有的语言工具,如依赖依存解析和语义角色标记(SRL)系统。然而,这些语言表示任务还远远没有解决,现成的工具通常是从单个领域(的文章)(例如,newswire文章)训练而来,在实际使用中存在泛化问题。因此,利用现有的语言注释作为特性有时会在这些基于特性的机器学习模型中增加噪音,而更高级别的注释(例如,篇章关系与词性标记),会让情况变得更糟糕。
- 模拟人类水平的理解是一个难以捉摸的挑战,而且总是很难从当前的语言表征中构建有效的特征。例如,对于图1.1中的第三个问题:How many friends does Alyssa have in this story?,当证据散布在整个文章中,基本不可能构建出一个有效特征的。
- 尽管我们可以从人类标记的阅读理解示例中训练模型,这确实激励人心,但这些数据集仍然太小,无法支持表达性统计模型。例如,用于训练依存解析器的English Penn Treebank数据集包含39,832个示例,而在MCTEST中,用于训练的示例仅为1480个——更不用说阅读理解了,作为一项综合性的语言理解任务,阅读理解更加复杂,并且需要不同的推理能力。
2.1.3 A Resurgence: The Deep Learning Era¶
这个领域的转折点出现在2015年。DeepMind研究人员Hermann等人(2015)提出了一种新颖而廉价的方案,用于为学习阅读理解模型创建大规模监督训练数据。他们还提出了一个神经网络模型——一个基于attention机制的LSTM模型,命名为THE ATTENTIVE READER——并证明它在很大程度上优于符号NLP方法。在实验中,在CNN数据集中,THE ATTENTIVE READER获得63.8%的准确率,而符号NLP系统最多获得50.9%的准确率。数据创建的思想如下:CNN和《每日邮报》附有一些要点,总结了文章中所包含的信息。他们将一篇新闻文章作为passage,通过使用一个placeholder 来替换一个实体(entity)的方式将其中的一个要点转换为一个完形填空式的问题,而答案就是这个被替换的实体。为了确保这个系统需要真正的理解文章来完成这个任务,而不是使用世界知识(译者,知识库,即符号系统)或者语言模型来回答问题,他们运行了实体识别和指代消解系统,并且将所有在指代链中提到的每个实体替换为一个抽象的实体标记(例如:@entity6,可以在Table2.1(a)中看到例子)。最后,他们几乎没有任何成本地收集了近100万个数据示例。
【译者:Obviously,研究怎么生成训练集也是一门学问。但我一直很好奇,致力于研究数据集来促进模型的发展,是不是就像是致力于研究更好的教材来让学生学习的更好一个道理。。。】
更进一步,我们的工作(Chen et al., 2016)研究了这个有史以来第一个大型的阅读理解数据集,并证明了一个简单、精心设计的神经网络模型(第3.2节)能够将CNN数据集的性能提升到72.4%,这是另一个8.6%的绝对提升。更重要的是,与传统的基于特征的分类器相比,神经网络模型能够更好地识别词汇匹配和其释义。然而,尽管这个半合成的数据集为训练有效的统计模型提供了一个理想的方法,但我们的结论是,由于数据的创建方法和指代误差,该数据集似乎是有噪声的,并且对于进一步的推动相关进展的帮助是有限的。
为了解决这些限制,Rajpurkar等人(2016)收集了一个名为STANFORD QUESTION ANSWER DATASET(SQUAD)的新数据集。数据集包含了536篇维基百科文章中的107,785对问答对,这些问题都是由群体工作者提出的,每个问题的答案对应相应的文章中的一段文本 (表2.1 (c))。SQUAD是第一个具有自然问题的大规模阅读理解数据集。由于其高质量和可靠的自动评估,该数据集引起了NLP社区的极大兴趣,并成为该领域的中心基准。这反过来启发了一系列新的阅读理解模型(Wang and Jiang, 2017; Seo et al., 2017; Chen et al., 2017; Wang et al., 2017; Yu et al., 2018) 并且研究的进展十分迅速,截至2018年10月,表现最好的单一的系统实现了91.8%的F1得分(Devlin et al ., 2018),而这个已经超过91.2%,我们预期的人类表现,而最初的作者在2016年构建的基于特征的分类器只获得了51.0%的F1值,如图2.1所示。
Figure 2.1: The progress on SQUAD 1.1 (single model) since the dataset was released in
June 2016. The data points are taken from the leaderboard at http://stanford-qa.com/.
目前所有在SQUAD上面表现最好的系统都是建立在端到端神经网络或深度学习模型上的(end-to-end neural networks, or deep learning models)。这些模型往往会先从将文章和问题中的每一个单词表示为一个稠密向量开始(例如,300维)。经过几次建模或者交互层,最后进行预测。所有的参数可以使用梯度下降算法或者它的变种一起进行优化。这一类模型可以被称为神经阅读理解(neural reading comprehension),我们将会在第三章详细的阐述他。不同于基于特征的分类起,神经阅读理解模型有几个优点。
他们不依赖于任何下游的语言学特征(比如,依存分析或者指代消解),并且所有的特征是在一个统一的端到端的的框架中独立学习来的。这避免了语言学标注的噪音,并且也在可用的特征空间中提供了更好的了灵活性。
传统的符号NLP系统受困于一个严重的问题:特征通常非常稀疏,并且泛化性非常差。例如,为了回答一个问题:
- How many individual libraries make up the main school library?
而文章中的相关内容如下
“… Harvard Library, which is the world’s largest academic and private library system, comprsing 79 individual libraries with over 18 million volumes”
所以一个系统必须基于标记好的特征来学习comprising与make up的一致性,例如下面的特征: $$ pw_i = comprising ∧ qw_j = make ∧ qw_{j+1} = up. $$ 这里并没有足够的数据来给这些特征赋予正确的权重。这在所有的非神经NLP模型中是一个共有的问题。利用低维,稠密的词向量共享相似词语之间在统计上的强度,可以有效的缓解稀疏性。
这些模型从从构建大量手工特征的劳动中解脱出来。因此,神经模型在概念上更简单,(研究)重点可以转移到神经结构的设计(译者注:可以从构建手工特征中解放,转而研究神经网络结构)。由于现代深度学习框架如TENSORFLOW和PYTORCH的发展,已经取得了很大的进步,现在开发新的模型又快又容易。
毫无疑问,在SQUAD上面达到人类表现程度是不可思议,并且可以说是我们在过去几年在NLP社区中看到的最大成果之一。然而,解决SQUAD任务并不能等于解决机器阅读理解。我们需要承认SQUAD是有限的。因为问题必须用文章中的一段文本来回答,而且大多数SQUAD的例子相对非常简单,并且不需要复杂的推理。
这个领域还在进一步发展。围绕着创建大规模、更具挑战性的阅读理解数据集这一主题,近年来出现了大量的数据集:TRIVIAQA (Joshi et al., 2017), RACE (Lai et al., 2017), QANGAROO (Welbl et al., 2018), NARRATIVEQA (Kocˇisky` et al., 2018), MULTIRC (Khashabi et al., 2018), SQuAD 2.0 (Rajpurkar et al., 2018), HOTPOTQA (Yang et al., 2018)等。这些数据从各种来源收集(Wikipedia, newswire articles, fictional stories or other Web resources),并且以不同的方式构建。他们的目的是应对许多之前没有被解决的挑战:独立于段落的问题,需要多个句子甚至多个文档来回答的问题,基于长文档(比如一本书)的问题,或者不能从段落中回答的问题。在撰写本文时,这些数据集大多还没有得到解决,并且最先进的方法和人类的水平之间仍然存在很大的差距。阅读理解已成为当今自然语言处理中最活跃的领域之一,仍有许多待解决的问题。我们将在4.2节中更详细地讨论阅读理解数据集的最新发展。
2.2 Task Definition¶
2.2.1 Problem Formulation¶
阅读理解的任务可以表述为一个监督学习问题:
给定一组训练实例$${(p_i, q_i, a_i)}^n_{i=1}$$ ,目标是学习一个预测器f,它以一段文本p和一个相应的问题q作为输入,给出答案a作为输出。
f:(p, q) →a (2.1)
令$$p=(p_1,p_2, … , p_{l_p})$$,$$q = (q_1,q_2,…,q_{l_q})$$,其中$$l_p$$和$$l_q$$分别表示文本(passage)和问题(question)的长度。V为预定义词汇表,则对于i=1,。。。。,$$l_p$$,$$p_i∈V$$,且i=1,。。。。,$$l_q$$,$$q_i∈V$$。在这里,我们只把文本p看作一个由lp单词序列表示的短段落。将其扩展到多段形式(Clark and Gardner, 2018)非常简单,其中p是一组段落,或者将其分解为更小的语言单元,如句子。
根据答案类型的不同,答案a可以采取完全不同的形式。一般来说,我们可以把现有的阅读理解任务分为四类:
完形填空类型(Cloze style):问题包含一个placeholder(占位符)。例如:
RTottenham manager Juande Ramos has hinted he will allow _____ to leave if the Bulgaria striker makes it clear he is unhappy.
在这些任务中,系统必须基于文本来猜测哪些词或实体来完善句子(问题)。并且答案要么是选择从一组预定义的候选集中选择要么是从一个完整的词汇表中选择。比如说,,在WHO-DID-WHAT数据集中 (Onishi et al ., 2016),答案必须是文本中的一个人名,而其候选集的大小平均为3.5。
多项选择类型(Multiple choice):在这个类别下,正确答案从k个假设答案中选择(比如:k=4) A={a1, …, ak} where ak = (ak,1,ak,2,…ak,la,k),ak,I < V
正确的答案可以是一个单词,一个短语或者是一句话。给出的假设答案中有一个是正确的,所以a必须从{a1,…ak}中选择。
范围预测类型(Span prediction):这个类别也被称为抽取式问答(extractive question answering)并且答案必须是文本中的一个范围。因此,答案可以表示为(a_start, a_end),其中1<=a_start<=a_end<=lp。并且答案对英语pastart,…paend。
自由形式回答类型(Free-form answer):最后一种类型允许答案是任何形式的文本(即,任意长度的单词序列),形式上:a∈V。
表2.1给出了每个类型的问题所属典型数据集的示例:CNN/DAILY MAIL (Hermann et al., 2015) (cloze style), MCTEST (Richardson et al., 2013) (multiple choice), SQUAD (Rajpurkar et al., 2016) (span prediction) and NARRA- TIVEQA (Kocˇisky` et al., 2018) (free-form answer).
2.2.2 Evaluation¶
我们已经正式定义了四种不同类别的阅读理解任务,接下来我们将讨论它们的评估指标。
【译者 注:对于任何任务来说,衡量结果的好坏都是非常重要的一件事。如果有量化的机制来评估好坏,可以更好帮助我们作出正确的决策】
对于多项选择题或完形填空题,评估准确性非常简单:系统给出正确答案的问题的百分比,因为答案是从一小组假设答案中选择的。
对于范围预测任务,我们需要将预测的答案与正确答案进行比较。通常,我们使用Rajpurkar等人(2016)提出的两种评估指标,即精确匹配和部分得分:
精准匹配(Exact match,EM)如果预测的答案等于正确答案,则精确匹配(EM)将分配满分1.0分,否则将分配满分0.0分。
F1得分(F1 score)计算预测答案和正确答案之间的平均单词重叠。预测答案和正确答案被看作一堆token,所以token-level的F1得分计算如下:
F1 = 2×Precision×Recall/(Precision+Recall)
Rajpurkar等人(2016)(提出评估指标之后)之后,在评估中所有标点符号都被忽略,对于英语文章,a, an,以及the也被忽略。
为了使评估更可靠,收集每个问题的多个正确答案也很常见。因此,精确的匹配分数只需要匹配任何一个正确答案,而F1分数是计算所有正确答案的最大值,然后对所有问题求平均值。
最后,对于自由形式的回答阅读理解任务,目前还没有最理想的评价标准。一种常见的方法是使用在自然语言生成(NLG)任务中使用的标准评估指标,如机器翻译或摘要,包括BLEU (Papineni et al., 2002)、Meteor (Banerjee和Lavie, 2005)和ROUGE (Lin, 2004)。
2.3 Reading Comprehension vs. Question Answering¶
阅读理解与问答有着密切的关系。我们可以把阅读理解看作是问答的一个实例,因为它很本质上是基于一篇短文的问答问题。然而,尽管阅读理解和一般的问答问题在问题的形成、方法和评价上有许多共同的特点,但我们认为它们最终目标强调了不同的东西:
- 问答的最终目标是建立一个能够自动回答人类提出的问题计算机系统,系统可以依赖任何资源。这些资源可以是结构化的知识库、非结构化的文本集合(百科全书、词典、新闻专线文章和一般Web文档)、半结构化的表,甚至是其他模式。为了提高QA系统的性能,人们在(1)如何搜索和识别相关资源,(2)如何集成来自不同信息片段的答案,甚至(3)研究人类在现实世界中通常会问哪些类型的问题上进行了大量的工作。
- 然而,阅读理解(reading comprehension)强调的是文本理解(text understanding)和一些被认为是衡量语言理解程度的尖锐问题。因此,要回答这个问题,需要对给定的段落有深刻的理解。由于这一关键的区别,这一领域的早期作品大多集中在虚构的故事(Lehnert, 1977)(后来扩展到Wikipedia或Web文档),所以所有回答理解问题的信息都来自文章本身,而不是任何世界知识。这些问题也是专门为测试文本理解的不同方面而设计的。这种区别类似于人们通常在搜索引擎上问的问题与在人类阅读理解测试中通常会提出的问题。
类似地,早期的工作(Mitchell et al.,2009)使用术语微观阅读(micro-reading)和宏观阅读(macro-reading)来区分这两种情况。微阅读侧重于阅读单个文本文档,旨在提取该文档的完整信息内容(类似于我们的阅读理解设定),而宏观阅读则采用大文本集合(如Web)作为输入,提取文本中表达的事实而形成一个很大的集合,而不需要提取每一个事实。尽管宏观阅读则需要考察语言理解的更深层次,但是宏观阅读可以通过分析文本中事实的简单措辞,有效地利用跨文档的信息冗余。
本文主要研究阅读理解。在第五章,我们将回到更一般的问题回答,讨论其相关工作,并证明阅读理解也可以帮助建立问题回答系统。
2.4 Datasets and Models¶
从2.1.3节可以看出,近年来阅读理解的成功主要是由两个关键部分驱动的:大型阅读理解数据集和端到端神经阅读理解模型。他们共同努力推进这一领域的发展,并推动建立更好阅读理解系统的边界:
一方面,大规模阅读理解数据集的创建使得训练神经模型成为可能,同时也展示了它们相对于符号NLP系统的竞争力。这些数据集的可用性进一步吸引了我们研究社区的大量关注,并激发了一系列建模创新。受益于所有这些努力,已经取得了巨大的进展。
另一方面,了解现有模型的性能有助于进一步认识现有数据集的局限性。这促使我们寻求更好的方法来构建更具挑战性的数据集,以实现文本的机器压缩的最终目标。
Figure 2.2: The recent development of datasets (black) and models (blue) in neural read-
ing comprehension. For the timeline, we use the date that the corresponding papers were
published, except BERT (Devlin et al., 2018).
图2.2:最近神经阅读理解领域的数据集(黑色)和模型(蓝色)的发展。对于时间轴,除了BERT (Devlin et al., 2018),我们使用了相应论文发表的日期。
图2.2显示了2016年以来关键数据集和模型的最新开发时间轴。正如所看到的,尽管只有三年的时间,这个领域已经取得了惊人的进展。在建立更好的数据集和更有效的模型方面的创新交替出现,并对该领域的发展作出了贡献。在未来,我们认为继续发展这两个部分都同样重要。
在下一章中,我们将主要关注建模方面,并会使用我们前面描述的两个表示数据集:CNN/DAILY MAIL和SQUAD。在第4章,我们将讨论更多关于数据集和模型的进展和未来的工作。
Chapter 3 Neural Reading Comprehension Models¶
在本章中,我们将介绍神经网络模型的本质:从基本构建模块,到最近的进展。
在深入研究神经模型的细节之前,我们在3.1节简要介绍了用于阅读理解的基于特征的非神经模型。特别地,我们描述了我们在Chen et al.(2016)中构建的一个模型。我们希望这能让读者更好地理解这两种方法的本质区别。
在3.2节中,我们提出了一种用于阅读理解的神经方法,称为THE STANFORD ATTENTIVE READER,这在Chen et al.(2016)中针对完形填空式阅读理解任务被首次提出,之后又将其应用于SQUAD的范围预测问题(Chen et al.,2017)。我们首先简要回顾了现代神经NLP模型的基本构建模块,然后描述了我们的模型是如何建立在这些模块之上的。最后,我们将其扩展到其他类型的阅读理解问题。
接下来,我们将在CNN/DAILY MAIL和SQUAD数据集中展示我们模型的实证结果,并在3.3节中提供更多的实现细节。我们进一步仔细地分析了错误,以帮助我们更好地理解:1)哪些组件对最终性能最重要;2)在经验上,神经模型优于非神经特征模型。
最后,我们在第3.4节中总结了神经阅读理解的最新进展。
3.1 Previous Approaches:Feature-based Models¶
我们首先描述了在Chen et al.(2016)这篇论文中针对完形填空风格问题构建的一个强大的基于特征的模型,主要是针对CNN/DAILY MAIL数据集(Hermann等人,2015)。然后,我们将讨论为多项选择和范围预测问题建立的类似模型。
对于完形填空式问题,任务表述为预测正确的实体a∈E,该实体a∈E可以根据阅读短文p来填补问题q的空白(表2.1中有一个例子),其中E表示候选实体集。传统的线性、基于特征的分类器通常需要为每个候选实体e∈$$\epsilon$$构造一个特征向量fp,q(e)∈Rd,并学习一个权向量w∈Rd,使得正确答案a的排名要高于所有其他候选实体:
$$w^Tf_{p,q}(a) > w^Tf_{p,q}(e), ∀e ∈ \epsilon \ {a},$$
【译者注:变成了一个排序问题。我猜测在深度学习那边,思路是一致的,只是在特征构造的时候不一样,我们之后验证一下】
在为每个实体e构造好所有特征向量后,我们就可以应用任何流行的机器学习算法(如logistic回归或SVM)。在Chen等人(2016)中,我们选择使用LAMBDAMART (Wu等人,2010),因为它是一个自然的排序问题,而近来应用boost的决策树森林非常成功。
剩下的关键问题是我们如何从文章p,问题q和每个实体e中构建有用的特征向量?表3.1列出了我们为CNN/DAILY MAIL任务提出的8组特性。如表所示,这些特征被很好地设计并描述了实体的信息(例如,频率、位置以及它是否是一个问题/短文词),以及它们如何与短文/短文对齐(例如,共现、距离、线性和句法匹配)。一些特性(#6和#8)还依赖于语言工具,比如依赖关系解析和词性标记(决定一个单词是否是动词)。一般来说,对于非神经模型,如何构造一组有用的特征始终是一个挑战。有用的特征必须是有意义的,并且能够很好地适应特定的任务,同时又不能过于稀疏而不能很好地从训练集中概括出来。我们在之前的2.1.2节中已经讨论过,这在大多数基于特征的模型中是一个常见的问题。此外,使用现成的语言工具使模型更加昂贵,它们的最终性能取决于这些(语言工具的)注释的准确性。【译者:同时也添加了潜在的噪声。】
Table 3.1: Features used in our entity-centric classifier in Chen et al. (2016).
Table 3.1
Rajpurkar等人(2016)和Joshi等人(2017)也尝试分别为SQUAD和TRIVIAQA数据集构建基于特征的模型。除了范围预测任务,这些模型在本质上与我们的相似,他们需要首先确定一组可能的答案。对于SQUAD, Rajpurkar et al.(2016)将Stanford CoreNLP(Manning et al., 2014)生成的parses中的所有成分作为候选答案;而对于TRIVIAQA, Joshi et al.(2017)考虑所有出现在句子中的n-gram(1≤n≤5),其中至少包含一个与问题相同的单词。他们还试图从选民分析中添加更多的词汇化特性和标签。对MCTEST数据集的多项选择问题也进行了其他尝试,如(Wang et al., 2015),并使用了丰富的特性集,包括语义框架、单词嵌入和指代消解。
我们将展示这些基于特征的分类器的经验结果,并在3.3节与神经模型进行比较。
3.2 A Neural Approach: The Stanford Attentive Reader¶
3.2.1 Preliminaries¶
下面,我们将概述构成现代神经NLP模型基础的最少要素和关键思想。更多细节,请参考(Cho, 2015; Goldberg, 2017)。
Word embeddings 【在cs224n的课程中,第一时间讲的就是这个方面,可以参考我在这门课的笔记:https://github.com/DukeEnglish/cs224n_learning_note】
第一个关键思想是将单词表示为低维(例如,300)真实值向量。在前深度学习时代,常见的是,把单词用一个词汇表中的索引来代表,这是一个使用一个one-hot向量符号变体:每个单词都被表示为一个高维、稀疏向量,只有代表这个单词的地方是1,其他地方都是0:
$$V_{car}=[0, 0, … 0, 0, 1, 0, … 0]^T$$
$$V_{vehicle}=[0, 1, … 0, 0, 0, 0, … 0]^T$$
这些稀疏向量最大的问题是它们在单词之间没有任何语义相似性,即,对于任意一对不同的单词a, b, cos(v_a, v_b) = 0。低维单词嵌入有效地解决了这一问题,相似的单词可以在几何空间中编码为相似的向量:cos(v_car, v_vechicle) < cos(v_car, v_man)。【使用cos的值来反映两个向量的相似度】
这些单词嵌入可以有效地从大型无标记文本语料库中学习,这是基于单词出现在相似的上下文中往往具有相似的含义这一假设(也称为分布假设)。的确,从文本中学习单词嵌入有悠久的历史,最近的scalable算法和发布的预先训练的单词嵌入集,如WORD2VEC (Mikolov et al., 2013)、GLOVE (Pennington et al., 2014)和FASTTEXT (Bojanowski et al., 2017),最终使从文本中学习单词嵌入得到了普及。它们已成为现代NLP系统的中流砥柱。
Recurrent neural networks
第二个重要的思想是使用递归神经网络(RNNs)对自然语言处理中的时态或段落进行建模。递归神经网络是一类适合处理变长序列的神经网络。更具体地说,它们递归地对序列x1……xn应用一个参数化函数:
$$h_t=f(h_{t-1},x_t; \theta)$$
对于NLP应用程序,我们将句子或段落表示为单词序列,其中每个单词都转换为向量(通常通过预先训练的单词嵌入):x = x1,x2,…,xn∈R^d和h_t∈R^h可以对x1:t的上下文信息进行建模。
Vanilla的RNNs采用下列的形式:
$$h_t=tanh(W^{hh}h_{t-1}+W^{hx}x_t+b)$$
其中Whh∈Rh×h,Whx∈Rh×d, b∈Rh为待学习参数。为了简化优化,提出了许多RNNs的变体。其中,长短时记忆网络(LSTMs) (Hochreiter and Schmidhuber, 1997)和门控循环单元(GRUs) (Cho et al., 2014)是常用的一种。可以说,LSTM仍然是当今NLP应用中最有竞争力的RNN变体,也是我们将描述的神经模型的默认选择。在数学上,LSTMs可以表示为:
【公式…写论文好辛苦,我就不重新敲lstm的公式了,如果对lstm有问题的话,欢迎查看网络博客:】image-20190704070606369
其中所有的W和b都是待学习参数。
最后,RNN中一个有用的东西是bidirectional RNN:想法很简单:对于一个句子或者一个段落来说:x=x1,….xn,一个前向RNN从左到右学习,另一个反过来学习。
image-20190704070906479
最后,我们定义h_t是将公式中的两个h做拼接得到的结果。这些表示可以有效编码左边和右边的上下文,并且适用于多种NLP任务的通用可训练特征提取组件。
Attention mechanism
第三个重要的组件是attention机制。这个机制首次在sequence-to-sequence模型(Sutskever et al., 2014)中被提出为神经机器翻译提出(Bahdanau et al., 2015; Luong et al., 2015)并且之后被延伸应用到别的NLP任务中。
关键的想法是,如果我们想要预测一句话的情感(sentiment),或者从一种语言的一句话翻译到另外一种语言,我们通常使用recurrent neural networks来对一句话做编码(encode):h1, h2, …hn并且使用最后一个time step的hn来预测最后的情感标签或者是目标语言的第一个word:
$$P(Y = y) = exp(W_yh_n) / \sum_{y’}exp(W_{y’}h_n)$$
这要求模型可以压缩一句话的所有信息到一个固定长度的向量中,这会导致在提升性能上的信息瓶颈。注意力机制(attention)就是设计来解决这个问题的:与其将所有的信息都压缩在最后一个隐藏向量中,我们监督每一个time step,并且自适应地选择这些向量的子集:
$$\alpha_i= exp(g(h_i, w; \Theta_g)) / \sum_{i’=1}^n exp(g(h_{i’}, w; \Theta_g))$$
$$c= \sum_{i=1}^n \alpha_ih_i$$
这里的w可以是在训练过程中针对任务学习出来的向量,或者当作机器翻译中现在的目标隐藏状态,g是一个可以以多种不同方式选择的参数,比如说点乘,bilinear product或者是MLP的一个隐藏层:
$$g_{dot}(h_i, w) = h_i^Tw$$
$$g_{bilinear}(h_i, w) = h_i^TWw$$
$$g_{MLP}(h_i, w) = v^Ttanh(W^hh_i + W^ww)$$
简单来说,注意力机制对每一个$h_i$ 计算一个相似度分数,之后使用一个softmax方程来为每一个time step返回一个离散概率分布。因此$\alpha$本质上捕获的句子的哪些部分确实是相关,而c聚合了所有time step的信息,可用于最终的预测。我们不会在这里讨论更多细节,感兴趣的读者可以参考Bahdanau等人(2015);Luong等(2015)。
注意力机制已经被证明在大量的应用是有广泛的影响力,并且成为神经NLP模型的一个组成部分。最近,Parikn等人(2016)和Vaswani等人(2017)推测注意力机制并不一定非要和RNN一起使用,并且可以单纯得基于word embeddings和前向神经网络建立,同时提供最小的序列信息。这类方法通常需要更少的参数,并且更加容易并行和规模变化。特别的,Vaswani等人在2017年的论文中提出的transformer已经变成了最近的趋势,我们会在Section3.4.3中讨论它。
Figure 3.1: A full model of STANFORD ATTENTIVE READER. Image courtesy:Let’s consider the algorithm in detail, following closely the description in Chen https://web.stanford.edu/ jurafsky/slp3/23.pdf.
3.2.2 The Model¶
目前,我们已经具备了所有的构建模块。我们如何利用他们为阅读理解建立有效的神经模型呢?关键成分是什么?接下来我们会介绍我们的模型:STANFORD ATTENTIVE READER。我们的模型受到Hermann et al.(2015)中描述的ATTENTIVE READER以及其他同一时期工作的启发,并且满怀着让模型简单高效的目标。我们首先描述了模型解决范围预测问题的全形式(我们在Chen et al(2017)中预测了),之后我们讨论了其他的变种。
让我们首先回顾一下基于范围的预测阅读理解问题的设定:给定一个passage p,由l_p个tokens(p1,p2,…pl_p)组成,以及一个问题q,有l_q个token(q1, q2, …ql_q)组成,目标是预测一个范围(a_start, a_end),其中1<=a_start<=a_end<=l_p,所以对应的字符串:p_{a_start}, p_{a_start+1}, … , p_{a_end}就是问题的答案。
整个模型如图3.1所示。纵观整个模型,模型首先为问题构建一个向量表示,并为文章中的每个token构建一个向量来表示。然后计算上下文中问题及其短文词之间的相似度函数,然后使用问题-短文相似度评分来决定答案跨度的起始和结束位置。该模型建立在文章和问题中每个单词的低维、预先训练的单词嵌入的基础上(可以选择使用语言学标注)。对文章/问题编码的所有参数和相似度函数进行联合优化,实现最终的答案预测。让我们进一步了解每个组件的细节:
Question encoding
问题编码相对简单:我们首先将问题中的每个单词qi映射到它相应的embedding上,之后我们在他们上面应用一个Bi-LSTM模型,最后获得
$$q_1 ,q_2 ,…,q_{l_q} = BiLSTM(E(q_1 ),E(q_2 ),…,E(q_{l_q} );Θ^{(q)}) ∈ R^h$$(3.18)
之后我们通过attention层聚合这些隐藏单元到一个向量中。
$$b_j= exp(w^{qT}q_j) / \sum_{j} exp(w^{qT}q_{j’})$$ (3.19)
$$q= \sum_{j}^n b_jq_i$$ (3.20)
bj衡量question中的每一个单词的重要性,而$w^q∈ R^h$ 是一个要学习的权重向量。因此,$q∈ R^h$ 是最终的问题的向量表示。事实上,将双向LSTMs最后的隐层向量拼接来代表q既简单又常见。然而,基于经验,我们发现添加attention层是有帮助的,因为它对更相关的问题中的单词添加了更多的权重。
Passage encoding
篇章编码类似,因此我们也是先为文章中的每个单词形成一个输入表示,然后将他们通过另一个Bi-LSTM:
$$p_1 ,p_2 ,…,p_{l_p} = BiLSTMp_1 ̃ ,p_2 ̃ ,…,p_{l_p} ̃ ;Θ(p) ∈ Rh$$
输入表示p可以被分成两个类别:一个是编码每个单词本身的属性,另一个编码它和问题的相关属性。
对第一类,除了word embedding外,我们也添加了一些手动特征来反映一个单词在上下文中的属性,包括POS、NER和它normalized之后的TF:f = (POS,NER,TF)。对于POS和NER的标签,我们运行现成的工具,并将其转换为一个one-hot表示,因为标签集很小。TF特征是一个真实的数字,衡量了单词在文章中出现的次数除以总单词数量。
对于第二个类型,我们考虑了两种表示:
- Exact match: $f_{exact_match}(p_i) = I(p_i ∈ q) ∈ R$事实上,我们使用了三个简单的二进制特征,表明p是否与一个问题中的单词q精确匹配,不管是原始形式,小写或者是词根。
- **Aligned question embeddings:**exact match特征在问题单词和篇章单词中编码了硬指向指向问题嵌入目标是编码一个在词嵌入空间中指向的软标记,所以相似的单词,例如:car和vehicle,也可以被指向。具体地,我们用:
$$f_{align}(p_i) = \sum_j a_{ij}E(q_j)$$【3.22】
ai,j是注意力权重,它捕捉了pi和每一个问题单词qj的相似性以及$E(q_j)∈ R^d$ 是问题中的每一个单词的word embedding。aij通过word embeddings的非线性映射之间的点乘(dot)计算得到:
$$a_{i,j} = exp(MLP(E(p_i))^T MLP(E(q_j))) / \sum_{j^i}exp(MLP(E(p_i))^T MLP(E(q_{j’})))$$
$MLP(x)=max(0, W_{MLP}x + b_{MLP})$ 是一个单一稠密层,带有ReLU的非线性变化,其中WMLP ∈ Rd×d and bMLP ∈ Rd.
最后,我们简单的拼接四个组件,并形成输入表示。
$$ p ̃i = (femb(pi), ftoken(pi), fexact match(pi), falign(pi)) ∈ Rd ̃$$
Answer prediction
我们有了篇章p1,2,,,p的表示,以及问题q和目标来预测更像是正确答案的范围。我们应用了attention机制的想法,并且分别训练了两个分类起,一个用来预测范围的开始位置,另一个用来预测结束为止。更准确地说,我们用了一个双线性乘积来捕捉两者之间的相似性(p和q)
image-20190727212823679
Training and inference
最后的训练目标方程是最小化交叉墒损失:
image-20190727212858363
image-20190727212913604
3.2.3 Extensions¶
在接下来的内容中,我们将为其他类型的阅读理解问题提供一些STANFORD READER的变体。所有这些模型都遵循上述的篇章编码和问题编码过程,因此我们有p1、p2、……, plp∈Rh, q∈Rh。我们只讨论了答案预测部分和训练目标。
Cloze style。类似的,我们可以用问题对文章中所有单词的双线性乘积来计算注意力函数,然后计算一个输出向量o,它对所有段落表示形式进行加权和:
image-20190727213311325
Multiple choice。在这个设定中,k个假设的答案被给定,我们可以通过应用第三个BiLSTM(类似于我们的问题编码步骤)将它们编码到一个向量ai中。然后我们可以计算输出向量o(如式3.29所示),并通过另一个相似度函数,使用双线性乘积将其与每个假设的答案向量ai进行比较:
$$P(Y = i | p, q) = exp(a_iW^(a)o) / \sum_{i’}exp(a_{i’}W^(a)o)$$ (3.31)
交叉墒损失也会被用来做训练。这个模型已经在RACE数据集上做了研究(Lai et al.(2017))
Free-form answer。对于这类问题,答案不局限于文章中的一个实体或一个范围,可以取任何单词序列,最常见的解决方案是将LSTM序列解码器合并到当前框架中。更详细地,假设答案字符串是a = (a1, a2,…ala)和一个特殊的“end-of-sequence” token⟨eos⟩添加到每个答案。我们可以再次计算输出向量o,如式3.29所示。解码器每次生成一个单词,因此条件概率可以分解为:
image-20190727213635218
这类模型已经在MS MARCO (Nguyen et al., 2016)和NARRATIVEQA (Kocˇisky et al ., 2018)数据集上面研究过了。然而,由于自由形式的答题阅读理解问题更加复杂,也更难评估,我们认为这些方法与其他类型的问题相比还没有得到充分的探索。最后,我们认为提出了一种用于总结任务(summarization tasks)的copy mechanism(复制机制)(Gu et al.,2016;See et al. 2017)它允许解码器选择从源文本中复制一个单词,或者从词汇表中生成一个单词,这对于阅读理解任务也非常有用,因为答案单词仍然可能出现在段落或问题中。我们将在第6.3节中讨论一个具有复制机制的模型。
3.3 Experiments¶
3.3.1 Datasets¶
我们在CNN/DAILY MAIL (Hermann et al., 2015)和SQUAD (Raj- purkar et al., 2016)上评估了我们的模型。我们在之前的2.1.3节中已经描述过数据集的构建方式以及它们在神经阅读理解发展中的重要性。现在我们简要回顾一下这些数据集和统计数据。
CNN /DAILYMAIL 是使用CNN和Daily Mail里面的文章及其要点摘要进行构建的。一个要点被转换成一个问题,一个实体被一个占位符替换,答案就是这个实体。文本已经通过谷歌NLP pipeline运行。Tokenized,小写化以及命名实体识别和指代消歧已经被运行过了。对于每个包含至少一个命名实体的coreference链,链中的所有项都用@entityn标记替换,以表示不同的索引n(Table 2.1 (a))。平均而言,CNN和DAILY MAIL在文章中都包含了26.2个不同的实体。训练、开发和测试示例是从不同时期的新闻文章中收集的。评估使用准确度(预测正确实体的实例的百分比)这个指标。
Table 3.2: Data statistics of CNN/DAILY MAIL and SQUAD. The average numbers of tokens are computed based on the training set.
SQUAD数据集是根据维基百科上的文章收集的。抽取了536篇高质量的维基百科文章作为样本,众包工人根据每一段创建问题(删除长度小于500个字符的段落),并且要求答案必须在每一段中突出显示(表2.1 (c))。训练/开发/测试数据的由文章随机划分获得(80% vs. 10% vs. 10%)。为了评估人类的表现并使评估更可靠,他们为每个问题收集了一些额外的答案(开发集中的每个问题平均有3.3个答案)。如2.2.2节所述,我们使用精确匹配和宏观平均F1分数进行评估。请注意,SQUAD 2.0 (Rajpurkar et al., 2018)是最近提出的,它在原始数据集中添加了53,775个无法回答的问题,我们将在第4.2节中讨论它。在本论文的大部分内容中,除非另有说明,否则“SQUAD”指的是“SQUAD1.1”。
表3.2给出了更详细的数据集统计。如图所示,由于数据集的构造方式,CNN/DAILY MAIL的数据集比SQUAD大得多(几乎大一个数量级)。CNN/DAILY MAIL中使用的段落也要长得多,CNN和DAILY MAIL分别是761.8和813.1token,而SQUAD是134.4token。最后,SQUAD的答案平均只有3.1个令牌,这反映了小队的问题大部分都是陈述型,大部分的答案都是常见的名词或命名实体。
3.3.2 Implementation Details¶
除了不同体系结构的模型设计,实现细节对这些神经阅读理解系统的最终性能也起着至关重要的作用。在接下来的文章中,我们将重点介绍一些我们还没有涉及到的重要方面,最后给出我们在这两个数据集中使用的模型规范。
Stacked BiLSTMs。一个简单的方法是增加用于问题和篇章编码的双向LSTMs的深度。它计算ht = [ht;ht]∈R2h,然后将ht作为下一层的输入xt,传递给另一层BiLSTM,以此类推。结果表明,堆叠的BiLSTM比单层的BiLSTM效果好。在SQUAD实验中,我们使用了3层。
Dropout。在神经网络正则化中,Dropout是一种有效且应用广泛的方法。简单地说,dropout是指在训练过程中随机屏蔽掉一些单元。对于我们的模型,可以将dropout添加到每个LSTM层的嵌入、输入向量和隐藏向量中。最后,dropout的变种方法 (Gal和Ghahramani, 2016)已经被证明在RNNs规范化方面比标准dropout更好。这个想法是应用相同的dropout掩盖在每一个时间步骤的输入,输出和重复层,例如,在每一个time step中会drop相同的单位。我们建议读者在实践中使用这种变体。
Handling word embedding。常用处理字嵌入的方法之一(也是我们的默认选择)是在训练集中保持最常见的K(如K = 500、000年)种word并将所有其他word映射到一个⟨unk⟩令牌,然后使用pre-trained字嵌入的初始化K个word。通常,当训练集足够大时,我们对所有单词embeddings进行微调;当训练集相对较小时(例如,SQUAD),我们通常将所有嵌入的单词都固定为静态特性。在Chen等人(2017)的研究中,我们发现对最常见的疑问词进行微调是有帮助的,因为这些关键词的表征,如what, how, which可能对阅读理解至关重要系统。(Dhingra et al., 2017a)等研究表明,对预训练的词嵌入和对集合外单词的应对方式会对阅读理解任务的性能有很大的影响。
Model specifications。对于所有需要语言学标注的实验(lemma,part-of-speech tags,named entity tags, dependency parses),我们使用Stanford CoreNLP toolkit (Manning et al., 2014)进行预处理。为了训练所有的神经模型,我们按照它的篇章长度对所有的示例进行排序,并为每次(weights的)update随机抽取大小为32的小批样本。
对于CNN/DAILY MAIL的结果,我们使用在Wikipedia和Gi- gaword上训练过的小写的、100维的预训练好的GLOVE 词嵌入 (Pennington et al., 2014)进行初始化。Attention和输出(层)的参数使用均匀分布初始化,LSTM权值由高斯分布N(0,0.1)初始化。我们使用一个隐藏大小为h = 128的1层BiLSTM用于CNN, h = 256用于DAILY MAIL。采用vanilla stochastic gradient descent (SGD)进行优化,固定学习率为0.1。当梯度范数超过10时,我们还将概率为0.2的dropout应用于嵌入层和梯度裁剪。
对于SQUAD的结果,我们使用隐藏单元h = 128的的3层BiLSTMs对段落和问题进行编码。我们使用ADAMAX进行优化,如(Kingma和Ba, 2014)所述。约0.3的Dropout应用于word嵌入和LSTMs的所有隐藏单元。我们使用从840B Web抓取数据中训练的300维GLOVE词嵌入进行初始化,只微调了1000个最常见的问题词。
其他的实现细节可以在以下的两个github的仓库中找到:
- https://github.com/danqi/rc-cnn-dailymail for our experiments in Chen et al. (2016).
- https://github.com/facebookresearch/DrQAforourexperimentsinChenetal.(2017).
我们也想提醒读者,我们的实验结果发表在了2016年和2017年的两篇论文中,并且在很多地方有所不同。一个关键的区别是,我们在CNN /英国《每日邮报》的结果不包括手动特征 f token(π),精确匹配特性fexact匹配(pi),对齐问题嵌入falign (pi)和p̃,仅仅需要词嵌入E (pi)。另一个不同之处在于,我们之前没有涉及编码问题的attention层,而只是在两个方向上连接LSTMs的最后一个隐藏向量。我们相信这些补充在CNN/DAILY MAIL和其他完形填空任务中也很有用,但我们没有进一步研究。
Table 3.3: Accuracy of all models on the CNN and DAILY MAIL datasets. Results marked
† are from Hermann et al. (2015) and results marked ‡ are from Hill et al. (2016). The
numbers marked with ∗ indicate that the results are from ensemble models.
3.3.3 Experimental Results¶
3.3.3.1 Results on CNN/DAILY MAIL¶
表3.3给出了我们在Chen et al.(2016)中报告的结果。我们用不同的随机种子分别运行我们的神经模型5次,并报告了每次运行的平均性能。我们还报告了综合结果,平均了5个模型的预测概率。我们还展示了我们在3.1节中描述的基于特征的分类器的结果。
Baselines。我们是最早研究这第一个大规模阅读理解数据集的小组之一。当时,Hermann et al.(2015)和Hill et al.(2016)为这项任务提出了一些基线,包括符号方法和神经模型。基线包括:
- Hermann et al.(2015)中的框架语义模型,他们运行一个最先进的语义解析器,从问题和文章中提取表示为(e1, V, e2)的实体谓词三元组,并尝试使用一些启发式规则匹配正确的实体。
- 赫尔曼等人(2015)的单词距离模型,其中他们将问题的位置持有者与每个可能的实体对齐,并计算问题与对齐实体周围的通道之间的距离度量。
- 几个基于lstm的神经模型(Hermann等人)(2015),分别命名为deep LSTM READER、attention READER和READER。深层LSTM阅读器使用深层LSTM(无注意机制)将问题和文章作为一个序列进行处理,并在最后进行预测。ATTENTIVE READER与我们的模型在本质上是相似的,因为它计算了问题向量与所有文章向量之间的注意函数是-;而IMPATIENT READER则为所有的问题词计算一个注意力函数,并在模型读取每个问题词时递归地积累信息。
- Hill等人(2016)提出的(WINDOW-BASED MEMORY NETWORKS)基于windows的内存网络是基于内存网络架构的(Weston等人,2015)。我们认为这个模型也与我们类似,最大的不同是他们的编码通道方式:他们只使用5-word上下文窗口在评估候选实体和它们使用位置编码上下文embedding。如果一个窗口包含5个单词x1,x2,…,然后将其编码为Ei(xi),得到5个独立的嵌入矩阵进行学习。它们以类似的方式编码围绕占位符的5个单词的窗口,并且忽略问题文本中的所有其他单词。此外,他们只是使用点积来计算问题和上下文嵌入之间的“相关性”。
如表3.3所示,我们的基于特征的分类器在CNN测试集上的准确率为67.9%,在DAILY MAIL测试集上的准确率为68.3%,显著优于Hermann et al.(2015)所报道的任何符号方法。我们认为它们的框架语义模型不适合这些任务,因为解析器的覆盖率很低,并且不能代表一个简单的NLP系统可以实现什么。事实上,框架语义模型甚至明显低于单词距离模型。令我们惊讶的是,我们的基于特征的分类器甚至比Hermann et al.(2015)和Hill et al.(2016)中所有的神经网络系统都表现得更好。此外,我们的单模型神经网络大大超过了之前的结果(超过5%),将最先进的精度分别提高到72.7%和76.0%。5个模型的组合始终带来进一步的2-4%的收益。
3.3.3.2 Results on SQUAD¶
表3.4给出了我们对开发和测试集的评估结果。自创建以来,SQUAD一直是一个非常有竞争力的基准,我们只列出了一些代表性的模式和单模式的表现。众所周知,集成模型可以进一步提高性能的几个点。我们还包括了逻辑回归基线的结果。(Rajpurkar et al., 2016)。
我们的系统可以在测试集上达到70.0%的精确匹配和79.0%的F1成绩,超过了所有已发表的结果,并且与我们的论文中SQUAD排行榜上最好的性能相匹配 (Chen et al., 2017)。此外,我们认为我们的模型在概念上比大多数现有系统更简单。与logistic回归基线F1 = 51.0相比,该模型已经接近30%的绝对改进,对于神经模型来说是一个巨大的胜利。
Table 3.4: Evaluation results on the SQUAD dataset(single model only). The results below "our model" were released after we finished the paper in Feb 2017. We only list representative models and report the results from the published papers. For a fair comparison, we didn't include the results which use other training resouces (e.g. TriviaQA) or data augmentation techniques, except pre-trained language models, but we will discuss them in Secion 3.4
此后,SQUAD受到了极大的关注,在这个数据集上取得了很大的进步,如表3.4所示。最近的进展包括用于初始化的预训练语言模型、更细粒度的注意机制、数据增强技术技巧,甚至更好的训练目标。我们将在第3.4节中讨论它们。
3.3.3.3 Ablation studies¶
image-20190727214642871
Chen等(2017)对通道表征成分进行消融分析。如表3.5所示,所有组件都对最终系统的性能有贡献。我们发现,没有对齐的问题嵌入(只有word嵌入和一些手动特性),我们的系统仍然能够实现F1超过77%。精确匹配特征的有效性还表明,该数据集上的文章和问题之间存在大量的单词重叠。更有趣的是,如果我们同时去掉伪匹配和非精确匹配,性能会显著下降,因此我们得出结论,这两个特征在特征表示方面发挥着相似但互补的作用,比如问句和短文词之间的硬对齐和软对齐。
3.3.4 Analysis: What Have the Models Learned?¶
在Chen et al.(2016)中,我们试图更好地理解这些模型实际学到了什么,以及解决这些问题需要多大的语言理解深度。我们通过对CNN数据集开发集中的100个随机抽样示例进行仔细的手工分析来实现这一点。
我们大致将其分为以下几类(如果一个例子满足一个以上的类别,我们将其分为前面的类别):
Exact match 占位符周围最近的单词也可以在围绕实体标记的段落中找到;答案不言自明。
Sentence-level paraphrasing 问题在篇章中作为一句话的结尾或者是一句话的转述,所以答案一定可以从那句话中找出来
Partial clue 在许多情况下,即使我们不能在问题文本和一些句子之间找到一个完全的语义匹配,我们仍然能够通过部分线索来推断答案,比如一些单词/概念重叠。
Multiple sentences 多句话必须被处理才能推测正确答案
Coreference errors 数据集中不可避免地存在许多指代错误。这一类别包括对出现在问题中的答案实体或关键实体具有关键共参考错误的示例。基本上,我们把这个类别视为“不可回答的”。
Ambiguous or hard 这个类别包括那些我们认为人类肯定不能获取正确答案的例子
image-20190727214725059
表3.6给出了每个类别的百分比估计值,图3.2给出了每个类别的一个代表性示例。我们观察到改写(paraphrasing)占41%的例子和19%的例子属于partial clue(部分线索)类别。加上最简单的Exact match精确匹配类别,我们假设大部分示例(这个子集中73%)能够通过识别最相关的(单个)句子并根据它推断出答案。此外,只有两个例子需要多个句子进行推理。这比我们预期的要低,这表明数据集需要的推理比之前认为的要少。令我们惊讶的是,根据我们的手工分析,“共参错误”和“模糊/困难”的情况占这个样本集的25%,这对于准确率远远高于75%的训练模型来说肯定是一个障碍(当然,模型有时可能会做出幸运的猜测)。事实上,我们的集成神经网络模型在开发集上已经能够达到76.5%,我们认为在这个数据集上进一步改进的前景是很小的。
在上述分类的基础上,我们进一步研究神经网络和基于特征的分类器的分类性能。如图3.3所示,我们得到以下观察结果:(i)精确匹配的情况非常简单,两个系统的tems都得到100%的正确。(ii)对于模糊/硬连接和实体连接错误的情况,符合我们的预期,这两个系统的性能都很差。(三)两种系统主要不同之处在于释义的情况,以及部分“部分线索”的情况。这清楚地显示了神经网络能够更好地学习语义匹配,包括释义或两个句子之间的词汇变化。(4)我们认为神经网络模型在所有的单句和明确的情况下都已经达到了近乎最优的性能。
image-20190727214807415
image-20190727214750973
综上所述,我们发现与传统的基于特征的模型相比,神经网络在识别词汇匹配和释义方面无疑更强大;虽然目前还不清楚他们是否也搞定了需要更复杂的文本推理的例子,因为目前在这方面的数据集仍然非常有限。
3.4 Further Advances¶
在本节中,我们总结了神经阅读理解的最新进展。我们将它们分为以下四类:单词表示、注意机制、LSTMs的变体以及其他(如训练目标、数据扩充)。最后对其重要性进行了总结和讨论。
3.4.1 Word Representations¶
第一类是对疑问词和短文词的更好的单词表示,因此神经模型是建立在更好的基础上的。(译者注:原文有笔误,大意是神经模型是建立在word representations的基础上的)。从文本中学习更好的分布式单词表示或者为特定任务发现更好的词嵌入集合依然是一个活跃的研究话题。例如,Mikolov等人(2017)发现在我们的模型中将GLOVE与训练向量使用最新的FASTTEXT 向量(Bojanowski等人 2017)可以早SQUAD上面取得1个百分点的提升。不仅如此,有两个关键的想法已经被证明(非常)有用:
Character embeddings
第一个想法是使用字符级嵌入来表示单词,这对于罕见的或词汇表外的单词尤其有用。现有的研究大多采用了一种能够有效利用n-gram字符表面模式的卷积神经网络(CNN)。更具体地说,设C为字符的词汇表,每个单词类型x都可以表示为字符序列(c1,…c | x |)∀ci∈c。我们首先将C中的每个字符映射到一个dc维度的向量,所以单词x可以表示成c1,…, c |x |。
接下来,我们对宽度为w∈Rdc×w的滤波器应用卷积层,表示ci:i+j为ci,ci+1,…,ci+j的级联。因此,对于i = 1,…,|x| - w + 1,我们可以应用这个滤波器w,然后我们添加一个偏置b,应用非线性tanh如下:
$$f_i = tanh(w^Tc_{i:i+w-1} + b)$$
最后,我们可以在f1上应用一个最大池操作,f1…, f|x| - w+1,得到一个标量特征:
$$f = max_i{f_i}$$
这个特性本质上选择一个字符n-gram,其中n-gram 对应过滤器的宽度w。我们可以重复上面的过程,方法是重复d个不同的过滤器w1,…wd∗。因此,我们可以获得每个单词类型Ec(x)∈Rd的基于字符的单词表示。所有的字符嵌入,过滤器权重{w}和偏差{b}都是在训练中学习的。更多细节可以在Kim(2014)中找到。实际上,字符嵌入dc的维数通常取一个小值(例如20),宽度w通常取3 - 5,而100是d的一个典型值。
Contextualized word embeddings
另一个重要的概念是上下文的单词嵌入。与传统的单词嵌入(每个单词类型都映射到一个向量)不同,上下文化的单词嵌入将每个单词作为整个输入语句的函数分配给一个向量。这些词的嵌入可以更好地模拟单词使用的复杂特性(例如,语法和语义),以及这些用法如何在不同的语言环境中变化(例如,一词多义)。
ELMO在Peters et al.(2018)中详细介绍了一个具体的实现:它们的上下文单词嵌入是一个深层双向语言模型的内部状态的学习函数,该模型是在一个大型文本语料库上预先训练的。基本上,给定一个单词序列(x1, x2,…,它们运行l层正向LSTM,序列概率模型为:
image-20190727215110588
这些上下文的单词嵌入通常与传统的单词类型嵌入和字符嵌入一起使用。事实证明,这种在非常大的文本语料库上(例如1B词库标记(Chelba et al., 2014))预训练的上下文词嵌入是非常有效的。Peters et al.(2018)证明,在现有的竞争模型中添加ELMo embeddings (L = 2个biLSTM图层,包含4096个单元和512个维度投影)可以直接将F1成绩从81.1提高到85.8,绝对提高4.7分。
在ELMO之前,McCann等人(2017)提出了COVE,该方法在神经机器翻译框架中学习上下文化的单词嵌入,得到的编码器可以作为单词嵌入的补充。他们也展示了4.3分的绝对进步。
最近,Radford et al。(2018)和Devlin et al。(2018)发现这些上下文词潜入不仅可以用在一个特定任务的神经结构中作为一个词表示的特征 (阅读理解模式的上下文),而且我们可以调整深层语言模型直接并进行最小修改来执行下游任务。这在我写这篇论文的时候确实是一个非常惊人的结果,我们将在第4.4.2节对此进行更多的讨论,在未来还有很多问题需要回答。此外,Devlin et al.(2018)提出了一种训练双向语言模型的聪明方法:他们在输入层随机屏蔽一些单词,而不是总是往一个方向叠加LSTMs并预测下一个单词,将双向层叠加,并在顶层预测这些被屏蔽的单词。他们发现这种训练策略在经验上非常有用。
3.4.2 Attention Mechanisms¶
针对神经阅读理解模型,已经提出了许多注意力机制的变种,它们的目的是在不同层次、不同粒度或分层的方式上捕捉问题和文章之间的语义相似性。在(Huang et al., 2018b)处可以找到这个方向的典型复合例子。据我们所知,目前还没有一个结论说存在一个变种是十分突出的。我们的STANFORD ATTENTIVE READER 采用了最简单的注意力形式(图3.4是不同层的attention的概览图)。除此以外,我们认为有两个想法可以在通常意义上进一步提升这些系统的性能。
image-20190727215148650
Bidirectional attention
Seo等(2017)首次提出了双向注意力机制的概念。除了我们已经拥有的(特性),关键的区别是他们有问题到段落的注意力,这表示了着哪些段落单词与每个问题单词最相似。在实践中,这可以实现为:对于问题中的每个单词,我们可以计算出所有短文单词的注意图,类似于我们在方程3.22和3.23中所做的,但方向相反:
$$f_{q-align(q_i)} = \sum_jb_{i,j}E(p_I)$$ 公式3.39
之后,我们可以简单的将fq-align输入到问题编码器的输入层。
Seo等人(2017)的注意机制比较复杂,但我们认为是相似的。我们还认为,在这个方向上的注意力功能没有那么有用,Seo等人(2017)也证明了这一点。这是因为问题通常很短(平均10- 20个单词),使用一个LSTM进行问题编码(无需额外的注意力)通常就足够了。
Self-attention over passage
第二种观点是对段落词的自我关注,最早出现在Wang等人(2017)的文章中。直观的感觉是,文章中的单词可以与其他文章中的单词对齐,希望它可以解决相互参照的问题,并从文章中的多个地方收集(同一实体的)信息。
Wang等(2017)首先计算了这篇文章的隐藏向量:p1, p2,它们通过MLP的一个隐含层(式3.17)对p1 p2施加一个注意函数:
$$a_{i,j} = exp(g_{MLP}(p_i, p_j)) / \sum_{j’}exp(g_{MLP}(p_i, p_{j’}))$$
$$c_i = \sum_j(a_{i,j}p_j)$$
之后ci和pi被连接起来,并且输入到另一个bilstm中:$h_i^{(p)} = BiLSTM(h^{(p)}_{i-1}, [p_i, c_i])$, 并且可以被用作最终的篇章表示。
3.4.3 Alternative to LSTMs¶
目前我们讨论的所有模型都是基于递归神经网络(RNNs)的。众所周知,增加神经网络的深度可以提高模型的容量,并带来性能的提高(He et al., 2016)。我们之前还讨论了3或4层的深层BiLSTM,这通常比单层BiLSTM性能更好(第3.3.2节)。然而,随着LSTM模型深度的进一步提高,我们面临着两个挑战:1)由于梯度消失问题,优化变得更加困难;2)可扩展性成为一个问题,因为随着层数的增加,训练/推理时间呈线性增长。众所周知,由于LSTMs的顺序性,它很难并行化,因此伸缩性(scale)很差。
一方面,有一些工作尝试在层与层之间添加高速连接(Srivastava et al., 2015)或残差连接(He et al., 2016),从而简化优化过程,能够训练更多层的LSTMs。另一方面,人们开始寻找LSTMs的替代品,在消除重复结构的同时,性能仍然类似甚至更好。
这方面最值得注意的工作是谷歌研究人员提出的TRANSFORMER模型(Vaswani et al., 2017)。TRANSFORMER只构建在word嵌入和简单的位置编码之上,这些位置编码具有堆叠的自我关注层和位置明智的完全连接层。通过残差连接,该模型能够在多个层次上快速训练。它首先在L = 6层的机器翻译任务(每层由一个自我注意和一个完全连接的前馈网络组成)上表现出优越的性能,然后被Yu等人(2018)改编用于阅读理解。
该模型名为QANET (Yu et al., 2018),它堆叠了多个卷积层,以自我关注和完全连接层为中心,作为问题和段落编码的构建块,以及在最终预测之前堆叠的几个层。该模型显示了当时最先进的性能(表3.4),同时显示了显著的加速。
Lei等人(2018)的另一项研究工作提出了一种轻量级的递归单元,称为简单递归单元(SIMPLE unit, SRU),它简化了LSTM公式,同时支持cuda级优化以实现高并行化。研究结果表明,简化递归模型通过层堆积保持了较强的建模能力。他们还证明了用SRU单元替换我们模型中的LSTMs可以提高F1成绩2分,同时训练和推理速度更快。
3.4.4 Others¶
训练目标:通过改进训练目标也有可能取得进一步进展。对于完形填空或多项选择题,通常直接使用交叉熵或最大边际损失。然而,对于跨度预测问题,Xiong等(2018)认为预测答案两个端点的交叉熵损失与最终的评价指标存在差异,这涉及到gold answer与ground truth之间的单词重叠。例如:
- passage: Some believe that the Golden State Warriors team of 2017 is one of the greatest teams in NBA history …
- question: Which team is considered to be one of the greatest teams in NBA history?
- ground truth answer: the Golden State Warriors team of 2017
范围“Worriors”也是一个正确的答案,但是从跨熵训练的角度来看,它并不比跨度“历史”更好。熊等人(2018)提出了一种混合训练目标,将位置交叉熵损失和训练后的单词重叠量与强化学习相结合。基本上,他们使用经过交叉entroy loss训练的$P^{(start)}_ {(i)}$和$P^{(end)}_ {(i)}$来采样答案的开始和结束位置,然后使用F1分数作为奖励函数。
对于阅读理解问题的自由形式回答,近年来在训练更好的SEQ2SEQ模型方面取得了许多进展,尤其是在神经ma- chine翻译环境下,如句子水平训练(Ranzato et al., 2016)和最小风险训练(Shen et al., 2016)。然而,我们在阅读理解问题上还没有看到很多这样的应用。
数据增加。数据增强是一种非常成功的image识别方法,但在NLP问题中研究较少。Yu等(2018)提出了一种为阅读理解模型创建更多训练数据的简单技术。技术称为backtranslation——基本上就是他们利用两个最先进的神经机器翻译模型:一个模型从英语到法语和其他模型从法语,英语,和解释文章中的每一句话贯穿两个模型(如果需要一些修改答案)。在F1值上,他们通过在SQUAD上这样做获得了2分。Devlin等(2018)也发现,SQUAD与TRIVIAQA联合训练(Joshi等,2017)可以适度提高SQUAD上的性能。【译者注,用这种方式,理论上可以共享大多数语言的数据集】
3.4.5 Summary¶
到目前为止,我们已经讨论了不同方面的最新进展,总而言之,这些进展有助于当前阅读理解基准(尤其是SQUAD)的最新进展。哪些组件比其他组件更重要?我们需要把这些都加起来吗?这些最新的进展是否可以推广到其他阅读理解任务?它们如何与不同的语言理解能力相关联?我们认为这些问题中的大多数还没有一个明确的答案,仍然需要大量的调查。
image-20190727215817716
我们在表3.7中编制了对SQUAD不同组件的改进。我们想提醒读者,这些数字并不是直接可比较的,因为它们是建立在不同的模型架构和不同的实现之上的。我们希望这个表格至少反映了一些关于这些组件在SQUAD数据集中重要性的想法。正如所看到的,所有这些组件或多或少都会对最终的性能做出贡献。最重要的创新可能是使用上下文的单词嵌入(例如ELMO),而注意力函数的制定也很重要。研究这些进步是否可以推广到未来的其他阅读理解任务,将是非常重要的。
Chapter 4 The Future of Reading Comprehension¶
在前一章中,我们描述了神经阅读理解模型如何在当前的阅读理解基准测试中取得成功,以及它们的关键见解。尽管其发展迅速,但要达到真正的人的阅读理解水平还有很长的路要走。在这一章,我们将讨论未来的工作和开放的问题。
我们首先在第4.1节中检查了现有模型的错误情况,并得出结论,尽管它们的平均准确率很高,但在“简单”或“琐碎”的情况下,它们仍然会失败。
正如我们前面所讨论的,最近阅读理解的成功归功于大规模数据集的创建和神经阅读理解模型的开发。在未来,我们相信这两个组成部分仍然同样重要。我们将在4.2节和4.3节分别讨论数据集和模型的未来工作。现有的数据集和模型中还缺少什么?我们该怎么做呢?
最后,我们在第4.4节中回顾了这一领域的几个重要研究问题。
4.1 Is SQuAD Solved Yet?¶
尽管我们已经在SQUAD数据机上达到了超人的性能,这能说明我们的阅读理解模型已经能够解决所有的SQUAD例子或者其他同等难度的例子么?
图4.1展示了我们在3.2节中描述的STANFORD ATTENTIVE READER模型的一些失败案例。正如我们所看到的,该模型完美地预测了所有这些例子的答案类型:它预测了问题的一个数字,即……吗?人口是多少……吗?哪支球队赢得了超级碗50强?然而,该模型无法理解文本中表达的微妙之处,也无法区分候选答案。细节如下,
(a) The number 2*,400 modifies professors,* lecturers*,* and instructors while 7*,*200 modi- fies undergraduates. However, the system failed to identify that and we believe that linguistic structures (e.g., syntactic parsing) can help resolve this case.
(b) Both teams Denver Broncos and Carolina Panthers are modified by the word cham- pion, but the system failed to infer that “X defeated Y” so “X won”.
(c) The system predicted 100*,*000 probably because it is closer to the word population. However, to answer the question correctly, the system has to identify that 3.7 million is the population of Los Angles, and 1.3 million is the population of San Diego and compare the two numbers and infer that 1.3 million is the answer because it is second largest. This is a difficult example and probably beyond the scope of all the existing systems.
我们还仔细研究了迄今为止最佳阵容模型的预测,7个BERT模型的集合(Devlin et al., 2018)。如图4.2所示,我们可以看到这个强大的模型仍然会犯一些人类几乎不会犯的简单错误。可以推测,这些模型一直在进行非常复杂的文本匹配,但它们仍然难以理解实体和文本中所表达的事件之间的内在结构。
最后,Jia和Liang(2017)发现,如果我们在文章末尾添加一个让人分心的句子(见图4.3中的例子),目前阅读理解系统的平均性能将会从75.4%大幅下降到36.4%。这些让人分心的时态与问题有词汇重叠,但实际上并不与正确答案相矛盾,也不会误导人类的理解。如果允许分散注意力的句子添加不符合语法的单词序列,那么效果会更糟。这些结果表明,1)目前的模型在很大程度上依赖于文章和问题之间的词汇线索。这就是为什么分散注意力的句子会如此具有破坏性;2)虽然模型在原始开发集上取得了很高的精度,但对于对抗性的例子,它们的鲁棒性并不强。这是标准监督学习范式的一个关键问题,它使得现有的模型难以在现实世界中部署。我们将在第4.3节中更多地讨论鲁棒性的特性。
综上所述,我们认为,目前的模型虽然在SQUAD数据集上已经获得了很高的精度,但目前的模型只关注文本的表层信息,在理解的(稍微)更深层次上仍然存在简单的错误。另一方面,高准确度也表明,大多数球队的例子是相当容易的,需要很少的理解。有一些困难的例子需要在SQUAD中进行复杂的推理(例如,图4.1中的(c)),但是由于它们的稀缺性,它们的准确性并没有真正反映在平均度量中。此外,高accu- racies只有在训练和发展来自同一分布时才成立,当它们不同时仍然是一个严重的问题。在接下来的两部分中,我们将讨论创建更具挑战性的数据集和构建更有效模型的可能性。
image-20190727220644149
4.2 Future Work: Datasets¶
我们主要关注的是CNN/DAILY MAIL和SQUAD,并证明了以下两点:
1、神经模型在这两种数据集上都能够实现比人类更好的效果或者达到目前的上限;
2、虽然这些数据集非常有用,但大多数例子都很简单,还不需要太多推理。
这些数据集中还缺少哪些需要的属性?接下来我们应该处理什么样的数据集?如何收集更好的数据集?
我们认为像SQUAD这样的数据集主要有以下的局限性:
- 这些问题是根据这篇文章提出的。也就是说,如果一个提问者在提问时看着这篇文章,他们很可能会模仿句子结构,重复使用相同的单词。这减轻了回答问题的难度,因为许多问题的单词与文章中的单词重叠。
- 它只允许文章中一个跨度可以回答的问题。这不仅意味着所有的问题都是可回答的,而且还排除了许多可能提出的问题,如是/否、计算问题。正如我们之前所讨论的,大部分的问题都是真实的问题,并且答案通常都很简短(平均3.1个token)。因此,数据集中也很少有为什么(因果关系)和如何(过程)的问题。
- 大多数问题的答案只有一个句子,不需要多句推理。Rajpurkar等(2016)估计只有13.6%的例子需要多句推理。其中,我们认为大多数的案例都是指代消解,可以通过一个指代消解系统来解决。
为了解决这些局限性,最近出现了一些新的数据集。他们和SQUAD有类似的地方,但以不同的方式构建。表4.1给出了一些代表性数据集的概述。正如我们所看到的,这些数据集具有相似的数量级(范围从33k到529k的训练示例),并且在最先进的性能和人类性能之间仍然存在差距(尽管有些差距比其他差距更大)。下面,我们将详细描述这些数据集,并讨论它们如何解决上述限制及其优缺点:
TriviaQA (Joshi等,2017)。这个数据集的关键思想是在构建相应的段落之前收集问题/答案对。更具体地说,他们从琐事和测验联盟网站上收集了95k对问答对,并收集了包含答案的虚拟证据,这些答案要么来自网络搜索结果,要么来自与问题中提到的实体对应的维基百科页面。结果,他们总共收集了650k(短文,问题,答案)的三倍。该范式有效地解决了问题依赖于文章的问题,并且更容易廉价地构建大型数据集。值得注意的是,该数据集中使用的段落大多是长文档(平均文档长度为2895个单词,是SQUAD的20倍),并且对现有模型的可拓展性也提出了挑战。然而,它有一个类似于CNN/DAILY MAIL数据集的问题——由于数据集是启发式地整理的,因此不能保证文章真正提供了问题的答案,这影响了训练数据的质量。
RACE (Lai等,2017)。人的标准化测试是评价汉语阅读理解能力的一种有效方法。RACE是一个多选题数据集,收集了12-18岁中国中学生和高中生的英语考试数据。所有的问题和答案选项都是由专家创建的。因此,该数据集比大多数现有数据集更加困难,据估计,26%的问题需要多句推理。最先进的性能只是59%(每个问题有4个候选答案)。
NarrativeQA (Kocˇisky et al., 2018)。这是一个具有挑战性的数据集,它要求工作人员根据维基百科上一本书或一部电影的情节摘要提出问题。答案是自由形式的人类生成的文本,特别是,在交互界面上,标注者被鼓励使用自己的语言,并且不允许复制。情节总结通常比新闻文章或维基百科的段落包含更多的人物和事件,而且更复杂。数据集包含两个设置:一个是基于摘要回答问题(平均659个令牌),这更接近于SQUAD;另一个是基于完整的书籍或电影脚本回答问题(平均62528个token)。第二个设置尤其困难,因为它要求IR组件在长文档中定位相关信息。这个数据集的一个问题是,由于其自由形式的答案形式,人类的一致性很低,因此很难评估。
SQUAD2.0 (Rajpurkar等,2018)。SQUAD2.0提出在原有SQUAD数据集中增加53,775个反面例子。这些问题不能从文章中得到答案,但是看起来和积极的问题很相似(相关的,文章中有一个可信的答案)。为好地处理数据集,系统不仅需要回答问题,还需要确定段落中什么时候不支持回答,并避免回答。这是实际应用中的一个重要方面,但在以前的数据集中被忽略了。
HotpotQA (Yang et al., 2018)。该数据集旨在构造需要多个支持文档才能回答的问题。为了达到这个目的,众包工作者被要求根据维基百科的两个相关段落提问(一篇文章的第一段到另一篇文章有一个超链接)。它还提供了一种新的仿真陈述比较问题,系统需要在一些共享属性上比较两个实体。该数据集由两个评估设置组成——一个称为干扰设置,其中每个问题都提供10个段落,包括用于构建问题的两个段落和从Wikipedia检索到的8个干扰段落;第二个设置是使用完整的Wikipedia来回答这个问题。
与SQUAD相比,这些数据集要么需要更复杂的跨时态或文档推理,要么需要处理更长的文档,要么需要生成自由形式的答案而不是提取单个跨度,要么需要预测文章中何时没有答案。它们带来了新的挑战,许多挑战仍然超出了现有模型的范围。我们相信这些数据集将在未来进一步激发一系列的建模创新。当我们的模型达到下一个性能级别后,我们将需要开始构建更加困难的数据集来解决。
4.3 Future Work: Models¶
接下来,我们转向未来工作模型的研究方向。我们首先描述了阅读理解模型的期望。现有的大部分工作只注重准确性,给定一个标准train/dev/test数据集分割,主要目标是得到最好的测试准确性分数。但是,我们认为还有其他重要的方面被忽视了,我们需要工作在未来,包括速度和可扩展性、鲁棒性和可解释性。最后,我们讨论了在目前的模型中还缺少哪些重要的元素,以解决更多的阅读理解难题。
4.3.1 Desiderata¶
除了准确性(在标准数据集上获得更好的性能分数),以下的需求对未来的工作也非常重要:
Speed and Scalability。如何构建更快的模型(用于训练和推理),以及如何扩展到更长的文档,这些都是需要研究的重要方向。建立更快的训练模型可以降低实验的周转时间,还可以使我们在更大的数据集上进行训练。在实际应用中部署模型时,为推理构建更快的模型非常有用。此外,用RNN编码一个很长的文档(例如TRIVIAQA)甚至是一本书(例如NARRATIVEQA)都是不现实的,这仍然是一个严峻的挑战。例如,TRIVIAQA的平均文档长度为2,895个token,为了可伸缩性,作者将文档缩减为前800个token。NARRATIVEQA的平均文档长度为62,528个token,作者必须首先使用IR系统从故事中检索少量相关段落。
现有的对这些问题的解决方法如下:
- 如我们在3.4.3节中讨论的,用transformer(Vaswani et al., 2017)或更轻的non-recurrent模型(Lei et al., 2018)取代LSTMs。
- 训练学习跳过部分文档的模型,这样他们就不需要阅读所有内容。这些模型可以运行得更快,同时仍然保持类似的性能。该领域的代表作品有Yu等(2017)和Seo等(2018)。
- 优化算法的选择也会极大地影响收敛速度。多gpu训练和硬件性能也是需要考虑的重要方面,但超出了本文的研究范围。Coleman等人(2017)提供了一个基准(https://dawn.cs.stanford.edu/benchmark/),用于测量端到端训练和推理时间,以实现对包括SQUAD在内的广泛任务的最先进的准确性水平。
Robustness。我们在4.1节中讨论了现有的模型对于对抗性例子来说是非常脆弱的,这将成为我们在现实世界中部署这些模型时所面临的一个严重问题。此外,目前的大多数工作都遵循标准范例:对一个数据集的分割进行培训和评估。众所周知,如果我们在一个数据集上训练我们的模型,并在另一个数据集上进行评估,由于它们的文本来源和构造方法不同,性能将显著下降。对于今后的工作,我们需要考虑:
- 如何创造更好的对抗训练示例并且将它们加入到训练过程中
- 对迁移学习和多任务学习进行更多深入的研究,建立跨数据集的高性能模型。
- 我们可能需要打破监督学习的标准范式,并考虑如何创建更好的方法来评估我们当前的模型,以便构建更健壮的模型。
Interpretability。最后一个重要的方面是可解释性,在目前的系统中,可解释性一直是被忽略的。我们未来的系统不仅应该能够提供最终的答案,而且还应该提供预测背后的理由,这样用户就可以决定是否可以信任输出并利用它们。神经网络尤其臭名昭著的一个事实是,端到端训练范式使这些模型像一个黑匣子,很难解释它们的预测。如果我们想将这些系统应用到医疗或法律领域,这一点尤其重要。
可解释性可以有不同的定义。在我们的背景下,我们认为有几种方法可以解决这个问题:
- 最简单的方法是要求模型学会从文档中提取输入片段作为支持证据。这在以前(e.g., (Lei et al., 2016))对于句子分类问题已有研究,但在阅读理解问题中还没有。
- 更复杂的方法是,这些模型确实能够生成理论依据。模型需要解释这些部分是如何连接的,并最终得到答案,而不是只突出显示文章中相关的部分。以图4.1 (c)为例,系统需要解释两个城市是最大的两个,以及因为370万大于130万,所以它是第二大城市。我们认为这种需求非常重要,但远远超出了当前模型的范围。
- 最后,需要考虑的另一个重要方面是,我们可以获得哪些培训资源来达到这种可解释性水平。从最终答案中推断出理论依据是可行的,但相当困难。我们应该考虑收集人类的解释作为未来培训理论的监督(标签)。
4.3.2 Structures and Modules¶
在这个章节,我们会讨论如果我们想要解决更多困难的阅读理解问题的话,目前模型中缺失的元素。
首先,当前的模型要么建立在序列模型的基础上,要么对称地处理所有单词对(例如TRANSFORMER),并且忽略了语言的固有结构。一方面,这迫使我们的模型从头开始学习所有相关的语言信息,这使得我们的模型的学习更加困难。另一方面,NLP社区多年来投入了大量精力研究语言表示任务(例如语法解析、指代)并且构建许多语言资源和工具。语言按照单词序列上的层次结构和嵌套结构对意义进行编码。在我们的阅读理解模型中更明确地编码语言结构是否仍然有用?
Figure 4.4 表明了CORENLP在SQUAD中输出的几个例子。我们相信在合格结构信息会是有意义的:
- 2400是教授的数字修饰符应该可以帮助我们回答What is the total number of professors**, instructors*,* and lecturers at Harvard*?*
- 指代信息,it代表Harvard应该可以帮助回答问题:Starting in what year has Harvard topped the Academic Rankings of World Universities*?*.
因此,我们认为这些语言知识/结构仍然是对现有模型的有益补充。剩下的我们需要回答的问题是:1)将这些结构合并到序列模型中的最佳方法是什么?2)我们是想将结构建模为潜在变量,还是依赖现成的语言工具?对于后一种情况,当前的工具是否足够好,使模型能够获得更多的好处(而不是遭受噪声)?我们能进一步提高这些代表任务的性能吗?
我们认为,大多数现有模型仍然缺少的另一个方面是模块(modules)。阅读理解的任务本质上是非常复杂的,不同类型的例子需要不同类型的推理能力。如果我们想通过一个巨大的神经网络来学习所有的东西,这仍然是一个巨大的挑战(这让人想起为什么提出注意力机制,因为我们不想把一个句子或一段话的意思压缩成一个向量!)我们相信,如果我们想达到更深层次的阅读理解,我们未来的模型将更加结构化,模块化,解决一个综合任务可以分解成许多子问题,我们可以单独解决每一个规模较小的子问题(例如,每个推理类型)并组合它们。
modules的思想以前已经在神经模块网络(NMN)中实现过(Andreas et al., 2016)。它们首先对问题进行依赖解析,然后根据解析结构将回答问题分解为几个“模块”。他们在视觉问答(VQA)任务中使用的一个例子是:一个问题“鸟是什么颜色的?”可以分解为两个模块。一个模块用于检测给定图像中的鸟,另一个模块用于检测发现区域(鸟)的颜色。我们相信这种方法有望回答诸如加州第二大城市的人口是多少之类的问题。(图4.1 (c))。然而,迄今为止,NMN只在视觉问答或小知识库问题上进行了研究,由于语言变异和问题类型的灵活性,将其应用于阅读理解问题可能更具挑战性。
4.4 Research Questions¶
在最后一个小节中,我们讨论一些这个领域的中心研究问题,这些依然是open的,并且等待在未来被回答。
4.4.1 How to Measure Progress?¶
第一个问题是:How can we measure the progress of this field?
评估指标无疑是衡量我们阅读理解水平进步的清晰指标。这是否意味着我们在阅读理解上取得了真正的进步?我们如何判断一个基准上的一些进展是否可以推广到其他基准上?如果模型A在一个数据集上比模型B工作得更好,而模型B在另一个数据集上工作得更好呢?如何判断这些计算机系统与真正的人类阅读理解水平之间的差距?
一方面,我们认为参加人的标准化考试可以作为评价机器阅读理解系统性能的一个好策略。这些问题通常是精心策划和设计的,以测试人类阅读理解能力的不同水平。在构建自然语言理解系统时,使计算机系统与人类测量系统保持一致是一种正确的方法。
另一方面,我们认为在未来,我们需要将许多阅读理解数据集集成为一个测试套件进行评估,而不是只在一个数据集上进行测试。这将帮助我们更好地区分什么是阅读理解的真正进步,什么可能只是对一个特定数据集的过度拟合。
更重要的是,我们需要更好地理解我们现有的数据集:描述它们的质量和回答问题所需的技能。这将是构建更具挑战性的数据集和分析模型行为的重要一步。Sugawara等人(2017)在分析Chen et al.(2016)的CNN/DAILY MAIL例子的基础上,尝试将阅读理解技能分为两个不同的部分:前提技能和可读性。前提技能测量不同类型的推理和回答问题所需的知识,并定义了13个技能:对象跟踪、数学推理、指代解析、逻辑推理、类比、因果关系、时空关系、省略、搭桥、精化、元知识、示意性从句关系和标点符号。可读性度量“文本处理的易用性”,并使用了广泛的语言特性/人类可读性度量。作者的结论是,这两个集合是弱相关的,从易于阅读的上下文中设计难的问题是可能的。这些研究表明,我们可以分别基于这些属性构建数据集和开发模型。
此外,Sugawara等人(2018)设计了一些简单的过滤启发式算法,并将许多现有数据集中的例子划分为一个硬子集和一个简单子集,这是基于1)是否可以只用头几个单词来回答问题;2)答案是否包含在文章中最相似的句子中。他们发现,与整个数据集相比,硬子集的基线性能显著下降。此外,Kaushik和Lipton(2018)使用仅传递或仅提问的信息分析了现有模型的性能,发现这些模型有时可以工作得惊人地好,因此在一些现有数据集中存在注释构件。
综上所述,我们认为,如果我们想在今后的阅读理解中取得平稳的进步,我们必须首先回答这些关于例题难度的基本问题。了解数据集需要什么,我们当前的系统能做什么和不能做什么,这将帮助我们识别我们面临的挑战,并衡量进展。
4.4.2 Representations vs. Architecture: Which is More Important?¶
第二个重要的问题是理解表示和架构在对阅读理解模型性能影响上的角色。自SQUAD建立以来,最近出现了一种增加神经结构复杂性的趋势。特别是,人们提出了越来越复杂的注意力机制来捕捉文章和问题之间的相似性(第3.4.2节)。然而,最近的研究(Radford et al., 2018;Devlin et al ., 2018)提出,如果我们能在大型文本语料库上预训练深度语言模型,一个拼接问题和篇章的简单模型,并且不需要在这两者(问题和篇章)之间建立任何直接互动,都可以在SQUAD和RACE这辆的阅读理解数据集上表现十分良好。 (见表3.4和表4.1)。
如图4.5所示,第一个类的模型(左)基于顶层的在未标记文本上预训练的词嵌入(每个单词类型有一个向量表示)构建,而所有其余的参数(包括所有的权重来计算各种注意力功能)需要从有限的训练数据学习。第二类模型(右)使模型体系结构非常简单,它只将问题和篇章建模为单个序列。对整个模型进行预训练,保留所有参数。只增加了几个新的参数(如预测SQUAD起始和结束位置的参数),其他参数将在阅读理解任务的训练集上进行微调。
我们认为这两类模型表明了两个极端。一方面,它确实展示了非监督表示的不可思议的力量。由于我们有一个从大量文本中预先训练的强大的语言模型,该模型已经编码了大量关于语言的属性,而一个连接篇章和问题的简单模型足以学习两者之间的依赖关系。另一方面,当只给出单词嵌入时,似乎对文章和问题之间的交互进行建模(或者为模型提供更多的先验知识)会有所帮助。在未来,我们怀疑我们需要将两者结合起来,像BERT这样的模型太粗糙,无法处理需要复杂推理的例子。
4.4.3 How Many Training Examples Are Needed?¶
第三个问题是实际需要多少个训练实例?我们已经多次讨论过神经阅读理解的成功是由大规模的数据集驱动的。我们一直在积极研究的所有数据集都包含至少50,000个示例。我们能否始终保持数据的丰富性,并进一步提高系统的性能?是否有可能训练一个只有几百个注释例子的神经阅读理解模型?
我们认为目前还没有一个明确的答案。一方面,有明确的证据表明,拥有更多的数据会有所帮助。Bajgar et al.(2016)证明,使用相同的模型,膨胀通过古登堡计划(project Gutenberg)从书籍中构建的完形填空(cloze-style)的训练数据可以在CHILDREN BOOK TEST(CBT)数据集合(Hill et al., 2016)。我们之前讨论过使用数据增强技术(Yu et al.2018)或使用TRIVIAQA增强训练数据可以帮助提高在SQUAD上的性能(# training examples = 87,599)。
另一方面,预训练(语言)模型(Radford等,2018;Devlin et al., 2018)可以帮助我们减少对大规模数据集的依赖。在这些模型中,大部分参数已经在大量的未标记数据上进行了预训练,并且只会在训练过程中进行微调。
在未来,我们应该鼓励更多在非监督学习和迁移学习上的研究。利用非标注数据(例如text)或者别的廉价的资源或者监督(例如CNN/DAILY MAIL这样的数据集)会将我们从收集昂贵的标注数据中解放出来。我们也应该寻找更好和更加便宜的方式来收集监督数据。
II Neural Reading Comprehension: Applications
Chapter 5 Open Domain Question Answering¶
在PART 1 中,我们描述了阅读理解的任务:它在最近这些年的形成和发展,神经阅读理解的关键组件,以及未来的研究方向。然而,阅读理解究竟只是用来衡量语言理解能力的一个任务还是可以赋能一些有用的应用依然不清晰。在PART II中,我们将回答这个问题,并且讨论我们在构建利用渗井阅读理解作为核心组件的应用。
在这章中,我们把open domain question answering看作一个阅读理解的应用。开放领域的问答在NLP的历史上有一个长期存在的问题。开放领域的问答的目标是建立自动化的计算机系统,能够回答任意种类(虚构)的人类可能会问的问题。而这个系统的建立是基于一个大的非结构话的自然语言文档,结构化数据(例如:知识库),半监督数据(例如:表格)或者其他形式的数据例如图片和视频。
我们是第一个在开放领域的QA框架里测试神经阅读理解方法的性能的。我们相信,当组和有效的信息提取技术结合的时候,这些系统的高性能会是构建新一代开放领域问答系统的关键要素。
这章的组织架构如下:
1、我们首先给出了open domain 问答以及历史上著名的系统的概览
2、我们介绍了一个我们构建的open-domain question answering system,DRQA,这个是设计来回答English Wikipedia的问题。它本质上组合了一个信息提取模块和我们在section3.2中描述的高性能神经阅读理解模块。
3、我们更进一步讨论了我们要如何改善系统,通过从检索模块创建distantly-supervised 训练示例。接着,我们提出了一个理解评估,在多个不同的问答benchmarks.
4、最后,我们讨论了现在的局限性,接下来的工作以及未来的方向。
5.1 A Brief History of Open-domain QA¶
问答系统是20世纪60年代NLP系统最早的任务之一。一个早期的系统是PROTOSYNTHEX 系统(Simmons et al., 19644),预示了现在基于文本的问答系统。系统首先基于问题中的单词形成一个query,然后根据与问题重叠的频率加权项检索候选答案句,最终实现依存解析匹配到最终答案。另一个著名的系统MURAX(Kupiec, 1993),被设计来回答GROLIER在线百科全书上的一般知识问题,使用浅层语言处理和信息检索(IR)技术。
自1999年QA赛道首次作为年度TREC竞赛的一部分被纳入以来,人们对开放领域问答的兴趣有所增加。该任务最初是这样定义的:系统检索包含开放领域问题答案的文本片段。它刺激了广泛的QA系统发展。大多数的系统包括两个阶段:一个IR系统用于选择和从问题中产生的query相匹配的文档或者篇章的topn,并且一个窗口词评分系统用于查明可能的答案。更多细节请参考(Voorhees, 1999;Moldovan等,2000)。
最近,随着知识库的发展(KBs)如FREEBASE(波尔-拉克尔et al ., 2008)和DBPEDIA(奥尔et al ., 2007),在基于KBs的问答系统下,许多创新和资源的创建出现,例如基于FREEBASE的WEBQUESTIONS(Berant et al.,2013)和SIMPLEQUESTIONS(Bordes et al., 2015),或者基于KBs自动提取的OpenIE triples 和NELL(FADER et al.,)。基于知识的问题回答已经取得了很大的进展,主要的方法要么是基于语义分析,要么是基于信息提取技术(Yao et al., 2014)。然而,KBs有固有的局限性(不完整和固定的模式),这促使研究人员最近回到原始文本回答的原始设置。
image-20190727223543707
也有一些高开发度的使用无数资源的完整管道QA方法,包括文本集合(Web页面、Wikipedia、newswire文章)和结构化知识库(FREEBASE、DBPEDIA等)。一些著名的系统——包含微软ASKMSR(布里尔et al ., 2002), IBM的DEEPQA(费鲁奇et al ., 2010)和YODAQA (Baudisˇ,2015)——后者是开源的,因此复现作为对比使用。ASKMSR是一个基于搜索引擎的QA系统,它依赖于“数据冗余,而不是对问题或候选答案进行复杂的语言分析”。DEEPQA是最具代表性的现代问答系统,它在电视游戏节目《危险边缘》(JEOPARDY!)2011年受到了广泛关注。它是一个非常复杂的系统,由管道中的许多不同部分组成,它依赖于非结构化信息和结构化数据来生成候选答案或对证据进行投票。概览结构如图5.1所示。YODAQA是一个模仿DEEPQA的开源系统,类似地结合了网站、数据库和Wikipedia。与这些方法相比,(YODAQA)为性能的“上限”基准测试提供了一个有用的数据点。
最后,还有其他基于不同资源类型的问题回答类型,包括Web表格(Pasupat和Liang, 2015)、图像(Antol等,2015)、图表(Kembhavi等,2017),甚至视频(Tapaswi等,2016)。由于我们的工作重点是基于文本的问题回答,所以我们不会深入讨论更多细节。
我们的DRQA系统(章节5.2)侧重于使用Wikipedia作为唯一的知识来源来回答问题,例如在百科全书中寻找答案时使用Wikipedia。使用Wikipedia作为资源的QA以前已经被探索过。Ryu等人(2014)使用基于wiki的知识模型执行开放域QA。它们将文章内容与基于不同类型的半结构化知识(如信息框、文章结构、类别结构和定义)的多个其他答案匹配模块相结合。类似地, Ahn et al.(2004)也将Wikipedia作为文本资源与其他资源相结合,在本例中是与其他文档的信息检索相结合的。Buscaldi和Rosso(2006)也从Wikipedia中为QA挖掘知识。他们不把它用作寻找问题答案的资源,而是专注于验证QA系统返回的答案,并使用Wikipedia分类确定一组应该与预期答案相匹配的模式。在我们的工作中,我们只考虑文本的理解,并使用维基百科文本文档作为唯一的资源,以强调阅读理解的任务。我们相信增加其他的知识来源或信息将进一步提高我们系统的性能。
5.2 Our System: DRQA¶
5.2.1 An Overview¶
在接下来的文章中,我们将描述我们的系统DRQA,它专注于使用英文维基百科作为文档的唯一知识来源来回答问题。我们感兴趣的是建立一个通用知识的问题回答系统,它可以回答任何类型的虚构性问题,其中的答案包含在维基百科中,并可以从维基百科中提取。
我们选择使用维基百科有以下几个原因:1)维基百科是一个不断发展的大型、丰富、详细的信息来源,可以为智能机器提供便利。与诸如FREEBASE或DBPEDIA之类的知识库(KBs)不同的是,Wikipedia包含了人类感兴趣的最新知识。许多阅读理解数据集(例如,SQUARD)都是建立在维基百科上的,这样我们就可以充分利用这些资源,我们很快就会对其进行描述。3)一般来说,维基百科的文章干净、高质量、格式良好,对开放领域的问题回答来说是非常有用的资源。
利用维基百科的文章作为知识来源,导致问答题的任务结合大规模开放领域QA和文本机器理解的挑战。要回答任何问题,首先必须从500多万项中检索出少数相关的文章,然后仔细扫描它们以确定答案。这让我们想起了经典的TREC QA系统是如何工作的,但是我们相信神经阅读理解模型将在阅读检索到的文章/段落以获得最终答案时发挥至关重要的作用。如图5.2所示,我们的系统基本上由两个组件组成:(1)用于查找相关文章的文档检索模块(DOCUMENT RETRIEVER module)和(2)用于从单个文档或少量文档集合中提取答案的阅读理解模型DOCUMENT READER。
我们的系统把维基百科当作一个文章的集合,不依赖于它的内部图结构。因此,我们的方法是通用的,可以切换到其他文档、书籍甚至每日更新的报纸集合。接下来,我们将详细介绍这两个组件。
5.2.2 Document Retriever¶
遵循经典的QA系统,我们使用一个高效的(非机器学习)文档检索系统,首先缩小搜索空间,只阅读可能相关的文章。相对于内建的基于弹性搜索的Wikipedia搜索API (Gormley and Tong, 2015),一个简单的倒排索引查找,然后是术语向量模型评分,在许多问题类型上都能很好地完成这项任务。将文章和问题作为TF-IDF加权bag-of-word向量进行比较。
我们进一步完善了该系统,采用n-gram特征考虑了局部语序。我们性能最好的系统使用了bigram计数,同时通过使用hashing of (Weinberger et al., 2009)将bigram映射到224个带有unsigned murmur3 hash的桶(bin),从而保持了速度和内存效率。
我们使用DOCUMENT RETRIEVER作为完整模型的第一部分,将其设置为返回给定问题的5篇Wikipedia文章。然后文档阅读器(Document Reader)处理这些文章。
image-20190727224157366
5.2.3 Document Reader¶
Document Reader阅读维基百科前5篇文章,旨在阅读所有的段落图,并从中提取可能的答案。这正是我们在基于西班牙语的阅读理解问题中所做的设置,我们在第3.2节中描述的STANFORD ATTENTION READER模型可以直接插入到这个管道中。
我们将训练好的Document Reader应用于出现在维基百科前5篇文章中的每一段,它会预测出一个置信度得分的答案跨度。为了使一个或多个检索到的文档的段落之间的分数兼容,我们使用非标准化指数,并在所有考虑的段落跨度上使用argmax作为最终预测。这只是一个非常简单的启发式方法,还有更好的方法聚合不同段落的证据。我们将在第5.4节中讨论未来的工作。
5.2.4 Distant Supervision¶
我们建立了一个完整的管道,集成了经典检索模块和我们之前的神经阅读理解组件。剩下的关键问题是我们如何训练这个阅读理解模块用于开放式的问题回答设置。
最直接的方法是重用SQUAD数据集(Rajpurkar et al., 2016)作为训练语料库,该语料库也是建立在Wikipedia段落之上的。但是,这种方法在以下方面受到限制:
- 正如我们之前在4.2节中所讨论的,SQUAD中的问题是被众包的,在标注者看到段落之后,要确保这些问题可以通过段落中的跨度得到回答。这种分布是非常具体的,与现实世界中的,当人们首先想到一个问题,并试图从网络或其他资源中找到答案时的问答不同。。
- 许多SQUAD的问题确实与背景有关。例如,在维基百科上哈佛大学的一篇文章中,一个问题what individual is the school named after?或者另一个根据一段描述马丁·路德的文章的问题是What did Luther call these donations?。基本上,这些问题本身无法理解,因此对于开放领域的QA 问题毫无用处。Clark和Gardner(2018)估计,SQUAD中约有32.6%的问题依赖于文件或篇章。
- 最后,SQUAD的规模是相当小的(80k训练的例子)。如果我们能够收集到更多的训练实例,它应该就可以进一步提高系统性能。
为了克服这些问题,我们提出了一个过程,从其他问题回答资源自动创建额外的训练示例。这个想法是为了重用我们建立的有效的信息检索模块:如果我们已经有了一个问答对(q,a)并且检索模块可以帮助我们找到一个与问题q相关的段落以及答案片段a出现的段落,那么我们可以创建一个形如(p,q,a)三元组的distantly-supervised训练示例,提供给阅读理解模块进行训练。
$$f : (q,a) =⇒ (p,q,a)$$(5.1)
if p ∈ Document Retriever (q) and a appears in p
这一想法与使用远程监督 (DS)提取关系的流行方法类似(Mintz et al., 2009) 2。尽管这些例子可能在某种程度上是有噪声的,但它提供了一个廉价的解决方案来创建远程监督的例子,可以用于开放领域的问题回答,并将是一个有用的补充SQUAD的例子。我们将在第5.3节中描述这些远程监督示例的有效性。
5.3 Evaluation¶
我们有了DRQA系统的所有基本元素,让我们来看看评估。
5.3.1 Question Answering Datasets¶
第一个问题是我们应该评估哪些问题回答数据集。正如我们所讨论的,SQUAD是目前可用来回答问题的最大的通用QA数据集之一,但它与开放域QA设置有很大的不同。我们认为在别的为开放领域QA的开发的数据集上训练和评估我们的系统的话,需要以不同的方式构建(这些数据集)。因此,我们采用以下三个数据集:
TREC 这个数据集是基于TREC的基准测试任务,策划了Baudisˇ和Sˇedivy”(2015)。我们使用大的版本,其中包含从TREC 1999、2000、2001和2002.3的数据集中提取的总共2180个问题。关于问题:when is fashion week in NYC?因此,Sept(ember)?|Feb(ruary)?的答案都被认为是正确的。
WebQustions Berant等人(2013)介绍的网络问题,这个数据集是为了回答来自Freebase知识库的问题而构建的。它是通过在谷歌SUGGEST API中爬取问题创建的,然后使用Amazon Mechanical Turk获得答案。我们使用实体名称将每个答案转换为文本,这样数据集就不会引用Freebase id,而完全由纯文本问答对组成。
**WikiMovies ** 这个数据集是Miller等人(2016)引入的,包含电影领域的96k个问答对。这些示例最初是从OMDB和MOVIE- LENS数据库创建的,所以这些例子还可以使用Wikipedia的子集作为知识源(电影领域的标题和文章的第一部分)进行回答。
我们想强调的是,这些数据集不一定收集在基于Wikipedia的回答上下文中。TREC数据集主要用于基于文本的问答(主要的TREC文档集主要由newswire的文章组成),而WEBQUESTIONS和WIKIMOVIES主要用于基于知识的问答。我们将所有这些资源放在一个统一的框架中,并测试我们的系统在回答所有的问题是表现如何——希望它能够反映通用知识QA的性能。
表5.1和图5.3给出了这些QA数据集的详细统计。正如我们所看到的,SQUAD样本的分布与其他QA数据集有很大的不同。由于建造方法的原因,小队有更长的问题(平均10.4个toekns对6.7-7.5个toekns)。此外,所有这些数据集都有简短的答案(尽管在小队中的答案稍微长一些),而且大多数都是虚构的。
请注意,这些QA数据集中的许多问题可能有多个答案(参见表5.1中的# answers列)。例如,对于what language do people speak in Pakistan,有两个有效的答案:英语和乌尔都语。WEBQUESTIONS。由于我们的系统设计为返回一个答案,所以我们的评估认为,如果预测给出了任何黄金答案(正确答案),那么预测都是正确的。
image-20190727224530168
image-20190727224547134
5.3.2 Implementation Details¶
5.3.2.1 Processing Wikipedia¶
我们使用2016-12-21 转存的英文Wikipedia作为我们所有完整实验的用于问答知识的来源。对于每个页面,我们仅仅提取纯文本,并且所有的结构化数据片段例如表格和图片都被剥离了。在消除内部歧义、列表、索引和大纲之后,我们保留了5,075,182篇文章,其中包含9,008,962种独特的无大小写toekn类型。
5.3.2.2 Distantly-supervised data¶
我们对来自每个数据集的训练部分的每个问答对使用以下过程来构建我们的远程监督训练示例。首先,我们对问题运行DOCUMENT RETRIEVER来检索维基百科前5篇文章。那些文章中没有与已知答案精确匹配的所有段落将直接被丢弃。所有短于25或长于1500个字符的段落也将被过滤掉。如果在问题中检测到任何命名实体,我们将删除完全不包含它们的任何段落。对于检索到的每个页面中的每个剩余段落,我们使用问题与20个toekn窗口之间的unigram和bigram重叠对匹配答案的所有位置进行评分,以保持与重叠最多的前5个段落一致。如果没有非零重叠的段落,则丢弃该示例;否则,我们将每个找到的对添加到DS训练数据集中。图5.4显示了一些示例,表5.1(列# DS Train)给出了我们为培训创建的远程监督示例的数量。
image-20190727224609767
5.3.3 Document Retriever Performance¶
我们首先检查检索模块在所有QA数据集上的性能。表5.2将第5.2.2节中描述的两种方法的性能与Wikipedia搜索引擎在查找包含给定问题答案的文章方面的性能进行了比较。
具体地说,我们计算每个系统返回的前5个相关页面中,任何相关答案的文本跨度至少出现在其中一个页面中的问题的比例。在所有数据集上的结果表明,我们的简单方法比Wikipedia搜索更出色,特别是在bigram哈希的情况下。我们还比较了用Okapi BM25进行检索,或者在单词embeddings空间中使用余弦距离(将问题和文章编码为bag-of-embeddings),我们发现这两种方法的性能都更差。
image-20190727224637771
5.3.4 Final Results¶
最后,我们使用所有这些数据集对全系统DRQA进行性能评估,让其作答开放域问题。我们比较了三个版本的DRQA,它们评估了在提供给DOCUMENT READER的训练资源上使用远程监督和多任务学习的影响(在每种情况下DOCUMENT RETRIEVER保持相同)
- SQUAD:只在SQUAD训练集上训练单一的DOCUMENT READER模型,并用于所有的评估集。我们使用了我们在5.2节中描述的模型(在SQUAD的测试集上,F1的成绩是79.0%)。
- Fine-tune(DS):DOCUMENT READER模型在SQUAD上进行预训练,然后使用其远程监督(DS)训练对每个数据集进行独立的微调
- 多任务(DS):在SQUAD训练集和所有的远程监督例子上联合训练一个单一的DOCUMENT READER。
对于全维基百科设置,我们使用一个流模型而不使用CORENLP解析ftoken特征,或者辅助引理fexact_match。我们发现尽管在SQUAD中有这些更加精确的匹配段落阅读,并不能在全设置下提升结果。额外的,WEBQUESTIONS 和 WIKIMOVIES提供了候选答案的一个列表(WEBQUESTIONS的1.6百万的freebase实体串和WIKIMOVIES的76k电影相关实体),并且在预测的时候,我们限制了答案范围必须在这些列表中。
image-20190727224649606
表格5.3呈现出了结果。我们仅仅考虑top 1,精准匹配的准确度,这是非常严苛和具有挑战性的设置。在原始paper(Chen et al., 2017)中,我们也评估了SQUAD中的quesiton/answer对。我们在这里忽略了他们因为至少有三分之一的问题是上下文相关的并且不适合于开放领域的QA。
尽管和阅读理解任务(给定正确的段落)和没有限制的QA任务(使用冗余资源)相比,这个任务很困难,DRQA依然在所有的四个数据集上表现出了可观的性能。
我们对能够利用Wikipedia回答任何问题的,单一的,全系统感兴趣。仅仅在SQUAD上面训练的单一模型在所有的数据集上都优于使用远程监督的多任务模型。然而,仅仅在SQUAD上面单独训练,性能也并不差,说明存在任务迁移的情况。然而,从SQUAD到多任务(DS)学习的主要提升,可能不是来自任务转换,因为仅使用DS对每个数据集进行微调也会带来改进,这表明在同一领域引入额外的数据会有所帮助。然而,我们能找到的最好的单一模型是我们的总体目标,即多任务系统。
给定之前在TREC和WEBQUESTIONS上面的结果,我们和系统YODAQA进行比较 (Baudisˇ,2015)(一个利用冗余资源的无约束QA系统)。尽管任务难度在增加,但是我们的性能并没有太落后于TREC(31.3 VS 25.4),这一点让我们松了一口气。在WEBQUESTIONS上的差距稍微大一些,可能是因为这个数据集是由YODAQA直接使用的FREEBASE的特定结构创建的。
我们也包括了我们的模型DRQA*增强版本的结果,该模型已在Raison等人(2018)中提出。最大的变化是这种阅读理解模型是直接在维基百科文章上训练和评估的,而不是在段落上(文档平均比单个段落大40倍)。正如我们所看到的,所有数据集的性能都得到了一致的提高,因此与YODAQA的差距进一步缩小。
image-20190727224707214
image-20190727224717709
最近,我们的DRQA系统已经在github(https://github.com/facebookresearch/DrQA
,部署了多任务(DS)系统)上进行开源。就像看到的,我们的系统能够针对这些虚构问题返回一个精准的答案并且回答一些比较困难的问题:
(a) It is not trivial to identify that a computer science discipline within the fields of infor- mation retrieval and natural language processing is the complete noun phrase and the correct answer although the question is pretty simple.
. (b) Our system finds the answer in another Wikipedia article Stanford Memorial Church, and gives the exactly correct answer California as the state (instead of Stanford or United States).
. (c) To get the correct answer, the system needs to understand the syntactic structure of the question and the context Who invented LSTM*?* and a deep learning method called Long short-term memory (LSTM), a recurrent neural network published by Sepp Hochreiter & Ju ̈rgen Schmidhuber in 1997.
从概念上讲,我们的系统简单而优雅,并且不依赖于任何附加语言分析或外部或手工编码的资源(如字典)。我们认为这种方法对于新一代开放领域的问题回答系统具有很大的前景。在下一节中,我们将讨论当前的限制和进一步改进的可能方向。
5.4 Future Work¶
研究结果表明,信息检索与神经阅读压缩相结合是一种有效的开放式问题回答方法。我们希望我们的工作在这个研究方向上迈出第一步。然而,我们的系统还处于早期阶段,许多实现细节还有待进一步完善。
我们认为以下的研究方向将(大大)改善我们的DRQA系统,并应作为未来的工作进行。事实上,在我们发布了我们的DRQA系统之后,其中的一些想法已经在接下来的一年里得到了应用,我们也将在本节中详细描述它们。
Aggregating evidence from multiple paragraphs。我们的系统采用了最简单和直接的方法:我们对所有检索到的文章的非标准化分数使用argmax。这并不理想,因为1)这意味着每一篇文章都必须包含正确的答案(例如班例),因此我们的系统将为每一篇文章输出一个且仅一个答案。这确实不是大多数检索到的段落的情况。2)我们目前的培训模式并不能保证不同篇章的分数具有可比性,导致培训与评估过程存在差距。
对完整的Wikipedia文章进行培训是缓解这个问题的一种解决方案(参见表5.3中的DRQA*结果),但是,这些模型运行缓慢,难以并行化。Clark和Gardner(2018)提出采用修改后的训练目标进行多段训练,其中跨度开始和结束分数在从相同上下文中采样的所有段图中进行标准化。他们证明,这比单独训练单独的段落效果要好得多。同样,Wang et al. (2018a)和Wang et al. (2018b)提出对检索到的文章训练一个显式的段落重新排序组件:Wang et al. (2018a)将其实现在一个强化学习框架中,从而共同训练重新排序组件和答案提取组件;Wang等人(2018b)提出了一种基于强度的重新排序和基于覆盖度的重新排序,更直接地从多个段落中挖掘证据。
Using more and better training data。第二个影响很大的方面是培训数据。我们的DRQA系统只收集了来自TREC、WEBQUESTIONS和WIKIMOVIES的44k个远程监督的培训示例,我们在5.3.4节中演示了它们的有效性。如果我们能够利用来自TRIVIAQA (Joshi et al., 2017)或来自其他QA资源的更多数据生成更多的监督培训数据,那么系统应该得到进一步的改进。此外,这些远距离监督的例子不可避免地会遇到噪音问题(即Lin等人(2018)提出了一种去噪的解决方案,对这些远程监督的例子进行了去噪处理,并证明了在评估中取得的效果。
我们还认为,添加负面示例可以显著提高系统的性能。我们可以使用完整的管道创建一些负面示例:我们可以利用文档检索模块帮助我们找到相关段落,而这些段落不包含正确的答案。我们还可以将现有的资源,如SQUAD 2.0 (Rajpurkar et al., 2018),纳入我们的培训过程,其中包含精心策划的高质量负面例子。
Making the DOCUMENT RETRIEVER trainable。第三个尚未完全研究的有希望的方向是为文档检索模块使用机器学习方法。我们的系统采用了一个直观的、非机器学习的模型,检索性能的进一步提高(表5.2)将对整个系统进行改进。可以从其他资源或QA数据(例如,使用文章是否包含问题的答案作为标签)收集文档检索程序compo- nent的培训语料库。文档检索和文档阅读器组件的联合培训将是未来工作的一个非常理想和有前景的方向。
与此相关,Clark和Gardner(2018)还在搜索引擎(Bing web search)的基础上构建了一个开放领域的问题回答系统9,并证明了与我们相比性能优越。我们认为结果是不可直接比较的,这两种方法(使用商业搜索引擎或构建独立的IR组件)都有优缺点。构建我们自己的IR组件可以摆脱现有的API调用,运行速度更快,更容易适应新的领域。
Better DOCUMENT READER module。在我们的DRQA系统中,我们使用了神经阅读理解模型,在1.1班的测试集上达到了79.0%的F1。随着最近神经阅读理解模型的发展(第3.4节),我们确信,如果我们用最先进的模型替换当前的文档阅读器模型(Devlin et al., 2018),我们整个系统的性能也将得到改善。
More analysis is needed。另一项重要的缺失工作是对我们当前的系统进行深入分析:了解哪些问题他们可以回答,哪些不能。我们认为,在相同的条件下,将我们的现代系统与早期的TREC QA结果进行比较是很重要的。它将帮助我们了解我们在哪里取得了真正的进步,以及我们还可以使用哪些前深度学习时代的技术,以便在未来构建更好的答疑系统。
在我们工作的同时,也有一些与我们类似的工作,包括SEARCHQA (Dunn et al.,2017)和QUASAR-T (Dhingra et al.,2017b),它们都为JEOPARDY提供了相关的文档。questions——前者使用LUCENE索引从CLUEWEB检索文档,后者使用谷歌搜索。TRIVIAQA (Joshi et al., 2017)也有一个开放域设置,其中保存所有从Bing web搜索中检索到的文档。然而,这些数据集仍然关注从检索到的文档中回答问题的任务,而我们更感兴趣的是构建端到端的QA系统。
Chapter 6 Conversational Question Ansering¶
在最后一章,我们讨论了如何从神经阅读理解中构建一个通用知识的问答系统。然而,大多数现在的QA系统被限制于回答独立的问题,例如,每次我们问一个问题,系统返回一个结果而不具备考虑上下文的能力。在这一章中,我们打算处理另一个具有挑战性的问题Conversational Question Answering。在这个问题下,机器必须理解一个文本篇章并且回答一系列出现在对话中的问题。
人类通过一系列相互关联的问题和答案的对话来收集信息。因此,为了帮助机器收集信息,有必要使它们能够回答会话问题。图6.1显示了正在阅读一篇文章的两个人之间的对话,一个充当提问者,另一个充当回答者。在这个对话中,第一个问题之后的每个问题都依赖于对话的历史。例如,Q5 who?只有一个词,不知道已经说了些什么是不可能回答的。提出简短的问题是一种有效的人类对话策略,但是对于机器来说,这些问题确实很难解析。因此,会话问答结合了对话和阅读理解的挑战。
我们相信建造一个能够回答这样的对话问题的系统能够在我们未来的对话AI系统中扮演一个重要的角色。为了解决这个问题,我们需要建造有效的datasets以及对话QA模型,并且我们将会在这一章中描述它们二者。
image-20190727225457740
本章组织如下。我们首先在第6.1节讨论相关工作,然后在第6.2节中介绍COQA (Reddy et al., 2019),这是一个会话性的问题回答挑战,用于测量机器参与问答式对话的能力。我们的数据集包括127k问题以及答案,来自七个不同领域的8k个文本段落对话。我们定义任务并描述数据集收集过程。我们还对数据集进行了深入的分析,发现会话问题具有现有阅读理解数据集中不存在的挑战性现象,如指代和语用推理。接下来,我们将描述我们在6.3节中为COQA构建的几个强大的会话和阅读理解模型,并在6.4节中给出实验结果。最后,我们讨论会话问答的未来工作(6.5节)。
6.2 CoQA: A Conversational QA Challenge¶
在这个小节,我们介绍COQA,用于建造Conversional Question Answering systems的新数据集。我们开发COQA有三个主要目标。第一个是关注人类对话中问题的本质。就像在图6.1中可以看到的一个例子,在这个对话中,第一个问腿之后的每一个问题都依赖于对话历史。现在,没有大型阅读理解数据集包含依赖于对话数据集的问题并且这个是COQA开发的主要目的。
第二个目标是保证对话中的回答的自然性。就像我们在之前的章节中讨论过的,大多数现存的阅读理解数据集要么将答案限制在给定篇章的一个连续范围内,要么就允许存在不太像人类说出的自由形式的答案(e.g. NARRATIVEQA)。我们的愿望是1)答案不应该只基于范围获取,这样任何问题都可以问,对话也可以自然进行。例如,对于Q4 How many?如图6.1所示。2)仍然支持具有强力人类性能的可靠的自动评估。因此,我们提出答案可以是自由形式的文本(抽象的答案),而提取范围作为实际答案的依据。因此,Q4的答案就是简单的Three,而它的基本原理是跨越多个句子的。
COQA的第三个目标是支持构建性能可靠的跨领域QA系统。目前的阅读理解数据集主要集中在单一领域,难以对现有模型的泛化能力进行测试。因此,我们从七个不同的领域收集数据——儿童故事、文学、初中和高中英语考试、新闻、维基百科、科学文章和Reddit。最后两个用于域外评估。
6.2.1 Task Definition¶
我们首先正式的定义我们的任务。给定一个段落P,对话由n个回合组成,每个回合由(Qi, Ai, Ri), i = 1,…n,其中Qi和Ai表示第i个回合的问题和答案,Ri是支持答案Ai的基本原理,并且必须是文章的单个跨度。这个任务被定义为根据到目前为止的对话回答下一个问题Qi: Q1, A1,…Qi−1 Ai−1。值得注意的是,我们收集Ri的目的是希望它们能够帮助理解答案是如何产生的,并改进我们的模型的培训,而在评估过程中没有提供这些模型。
对于图6.3中的示例,对话以问题Q1开始。根据文章中的证据R1,我们用A1回答Q1。在这个例子中,回答者只写了Governor作为答案,但选择了一个更长的理由,The Virginia governor’s race。当我们讲到Q2时where?,我们必须回顾谈话的历史,否则它的答案可能是Virginia or Richmond。在我们的任务中,会话历史对于回答许多问题是必不可少的。我们使用会话历史Q1和A1来回答Q2和A2基于证据R2。对于一个无法回答的问题,我们给出unkonwn作为最终答案,不强调任何理由。
image-20190727232350596
在这个例子中,我们观察到焦点的实体随着谈话的进展而变化。提问者在Q4中用his代表Terry,在Q5中用he代表Ken。如果不能正确地解决这些问题,我们将得到不正确的答案。问题的会话性质要求我们从多个句子中推理(当前的问题和之前的问题或答案,以及文章中的句子)。常见的情况是,一个问题可能需要跨越多个句子的基本原理(例如图6.1的Q1 Q4和Q5 )。我们在6.2.3中描述了附加的问答类型。
6.2.2 Dataset Collection¶
我们将数据集收集过程详细描述如下。每段对话都有两个注释者,一个提问者和一个回答者。这种设置比使用一个注释器同时充当提问者和回答者有几个优点:1)当两个注释器谈论一篇文章时,他们的对话流与自言自语相比是自然的;2)当一个注释者回答一个模糊的问题或一个不正确的答案时,另一个注释者可以升起一个标志,我们用它来识别坏工人;3)当两个注释者有不同意见时,他们可以通过单独的聊天窗口讨论指导方针。这些措施有助于防止垃圾邮件,并获得高协议数据
我们使用Amazon Mechanical Turk (AMT)对通道a上的工人进行配对,并使用ParlAI Mturk API (Miller et al., 2017)。平均来说,每一篇文章需要3.6美元用于收集对话,另外4.5美元用于为开发和测试数据收集另外三个答案。
Collection interface。我们为提问者和回答者提供了不同的界面(图6.4和图6.5)。提问者的角色是提出问题,而回答者的角色是除了强调基本原理之外,还要回答问题。为了增加词汇的多样性,我们希望提问者避免在文章中使用精确的词汇。当他们输入一个已经出现在文章中的单词时,我们提醒他们如果可能的话重新解释问题。对于答案,我们希望答题者坚持使用文章中的词汇,以限制可能答案的数量。我们鼓励这一点,自动复制突出显示的文本到答案框中,并允许他们编辑复制的文本,以生成一个自然的答案。我们发现78%的答案至少有一次修改,比如改变一个单词的大小写或添加标点符号。
image-20190727233055468
image-20190727233125305
Passage selection。我们从七个不同的领域选择段落:儿童故事从mct(理查森et al ., 2013),文学从项目Gutenberg4,初中和高中英语考试从种族(赖et al ., 2017),从CNN新闻文章(Hermann et al ., 2015),从维基百科的文章,文章从AI2科学问题(Welbl et al ., 2017)和Reddit的文章写作提示数据集(风扇et al ., 2018)。
并不是所有这些领域的文章都适合生成有趣的转换。只有一个实体的文章常常会引发完全集中在那个实体上的问题。我们选择了包含多个实体、事件和代词引用的段落——ing Stanford CORENLP (Manning et al., 2014)。我们把长篇大论的文章截短到前几段,大约有200个字。
表6.1显示了域的分布。我们保留科学和Reddit做的主要领域外的评估。对于每个在域的数据集,我们分手有100个通道的数据(在开发集,100通道的测试集,训练集,其余的。相比之下,对于每个范围之外的数据集,我们只有100个篇章测试集没有任何training或者developing set。
Collecting multiple answers:COQA中的一些问题可能有多个有效答案。例如,图6.3中Q4的另一个答案是共和党候选人。为了解释答案的变化,我们为开发和测试数据中的所有问题收集了三个额外的答案。由于我们的数据是对话式的,问题影响答案,答案又影响后续问题。在前面的例子中,如果最初的答案是共和党候选人,那么下面的问题是他属于哪个党派?一开始就不会发生。当我们将已有对话中的问题展示给新回答者时,很可能会偏离原来的答案,从而使对话变得不连贯。因此,重要的是使它们与最初的答案达成共识。
我们通过将收集答案的任务转换为预测原始答案的游戏来实现这一点。首先,我们向新回答者显示一个问题,当她回答时,我们显示原始答案,并要求她验证她的答案是否与原始答案匹配。对于下一个问题,我们让她猜出最初的答案,并再次验证。我们重复这个过程,直到对话结束。在我们的实验中,当我们使用这个验证设置时,人类F1得分增加了5.4%。
6.2.3 Dataset Analysis¶
什么使得COQA数据集与现有的阅读理解数据集(如SQUAD)相比更具会话性?对话是如何从一个转到另一个的?COQA中的问题表现出什么样的语言现象?我们在下面回答这些问题。
Comparison with SQUAD 2.0: 下面,我们将对COQA和SQUAD 2.0进行深入比较(Rajpurkar等,2018)。图6.6显示了fre- quent三元组前缀的分布。虽然在SQUAD 2.0中不存在COQA的引用,但是COQA的几乎每个部分都包含COQA的引用(他、他、她、it、他们),这表明COQA是高度可会话的。由于答案的自由形式,我们期望在COQA中有比SQUAD 2.0更丰富的问题。尽管有近一半的SQUAD 2.0问题由什么问题主导,但是COQA的分布分布在多个问题类型中。前缀did、was、is、does和does在COQA中经常出现,但在SQUAD 2.0中完全没有。
image-20190727233159345
因为一个对话散布在多轮中,我们期望对话的问答能够被缩短到一个独立的交互中。事实上,COQA的问题能够备用一两个单词构造(Who? When? Why?)。就像在Table6.2中看到的,COQA中的为问题长度平均为5.5个单词,但是SQUAD的平均长度为10.1。而COQA中的答案通常比SQUAD中的短2.0。
表6.3提供了关于SQUAD 2.0和COQA中答案类型的见解。尽管SQUAD2.0的原始版本并没有任何不可回答的问题,SQUAD单一地集中在获取他们以导致了比COQA中更高的频率。SQUAD2.0中全部都是提取答案,而COQA中有66.8%的答案可以在忽略标点和大小写之后可以被提取。这高于我们的预期。我们的猜想是人类因为工资这样的人为因素会影响工人提出的能够通过选择文本更快回答的问题值得注意的是,COQA有11.1%以及8.7%的问题是yes或者no这样的答案,而SQUAD2.0一个都没有。这两个数据集都有大量的命名实体和名词短语作为答案。
image-20190727233220008
Conversation flow:连贯的谈话必须有平稳的转折。我们希望文章的叙述结构能影响我们的对话流。我们将文章分成10个统一的块,并根据基本原理的跨度来确定某个转弯的兴趣块及其转换。
图6.7描绘了前10个回合的对话流。开始的时候,人们往往会把注意力集中在开始的几句话上,随着谈话的进行,注意力会转移到后面的几句话上。此外,转弯过渡是平滑的,焦点通常保持在同一块或移动到相邻块。最频繁的转换发生在第一个和最后一个块上,同样,这些块也有不同的外部转换。【译者:看起来我们可以通过一个window来圈定上下文的范围】
image-20190727233248789
Linguistic phemnomena。我们进一步分析了它们与篇章和会话历史的关系问题。我们在开发集中抽取了150个问题,并对各种现象进行了注释,如表6.4所示。
image-20190727233300785
如果一个问题至少包含一个出现在文章中的实义词,我们将其归类为lexical match(词汇匹配)。这些问题约占问题总数的29.8%。如果没有词汇匹配,而是对rational的释义,我们将其归类为paraphrasing(释义)。这些问题包括同义、反义、下义、否定等现象。这些构成了43.0%的问题。剩下的27.2%的问题,不是词汇匹配,我们将他们归类到prgmatics(实际的实用的)这些包括常识类现象和假定现象。例如,问题was he loud and boisterous? 并不是he dropped his feet with the lithe softness of a cat的背后原理的直接转述,但是组成这个世界知识的原理可以回答这个问题。
对于一个问题和它的会话历史之间的关系,我们将问题分为依赖于会话历史还是独立于会话历史。如果不确定,则询问是否包含显式标记。
因此,约有30.5%的问题不依赖于与会话历史的相互参照,而是可以自己回答。几乎一半的问题(49.7%)包含明确的共同参照标记,如he, she, it。它们要么引用对话中引入的实体,要么引用对话中引入的事件。其余19.8%没有显式的协引用标记,而是隐式地引用实体或事件。
image-20190727233328873
6.3 Models¶
给出一个段落p,对话历史{q1, a1,…qi - 1, ai - 1} and a question qi, the task is to predict the answer ai。我们的任务可以建模为会话响应生成问题或阅读理解问题。我们评估来自每一类模型的强基线,以及COQA上这两种模型的组合。
6.3.1 Conversational Models¶
会话模型的基本目标是根据会话历史预测下一个话语。序列到序列(seq2seq)模型(Sutskever et al., 2014)在生成会话响应方面显示出了良好的结果(Vinyals和Le, 2015;李等,2016;张等,2018)。由于他们的成功,我们使用了一个标准的序列到序列模型,其中包含一个生成答案的注意机制。我们附加了段落、会话历史(最后n轮的问题/答案对)和当前的问题,p qi−n ai−n…
qi−1 ai−1
qi,并将其输入一个双向LSTM编码器,其中
和是用作分隔符的特殊令牌。然后,我们使用LSTM解码器生成答案,该解码器负责处理编码器的状态。
此外,由于答案很可能出现在原文中,我们在解码器中采用了一种复制机制,用于总结任务(Gu et al., 2016;See et al., 2017),它允许(可选地)从文章和对话历史中复制一个单词。我们将这个模型称为Pointer-Generator网络(See et al., 2017), PGNET。图6.8展示了PGNET的完整模型。正式说来,我们用 {h̃i}表示编码器隐藏向量,ht表示在timestep t时候的解码器状态,以及Xt作为输入向量,注意力方程给予 {h̃i}、ht和α来计算(equation 3.13)。上下文向量用公式3.14计算:$c = \sum_i\alpha_ih̃_i$
对于复制机制,它首先计算生成概率pgen∈[0,1],pgen∈[0,1]控制从完整词汇表V(而不是复制一个单词)生成单词的概率:
$$ p_{gen} = σ (w_{(c)}^Tc + w{(x)}^Tx_t + w{(h)}^Th_t + b ). $$ (6.1)
生成单词w的最后概率分布计算如下:
$$P(w)=p_{gen}P_{vocab}(w)+(1−p_{gen}) \sum_{i:w_i=w} \alpha_i$$ (6.2)
where Pvocab(w) is the original probability distribution (computed based on c and ht) and {wi} refers to all the words in the passage and the dialogue history. For more details, we refer readers to (See et al., 2017).
6.3.2 Reading Comprehension Models¶
我们评估的第二类模型是神经阅读理解模型。特别是跨预测问题的模型不能直接应用,因为大部分COQA问题在文中没有一个跨作为答案,如图6.1中的Q3、Q4、Q5。因此,我们针对这个问题修改了我们在3.2节中描述的STANFORD细心读者模型。由于模型在训练过程中需要文本跨度作为答案,所以我们选择了词汇重叠程度最高的跨度(F1分)作为黄金答案。如果答案在故事中出现多次,我们就用基本原理找到正确的答案。如果在文章中没有出现任何答案,我们就回到另一个未知的标记作为答案(大约17%)。我们在每个问题前加上过去的问题和答案,以说明会话历史,类似于会话模型。
6.3.3 A Hybrid Model¶
最后一个模型是一个混合模型,结合了上述两种模型的优点。阅读理解模型可以预测一个答案的文本跨度,但不能生成与文章不重叠的答案。因此,我们将斯坦福大学的细心读者与PGNET相结合来解决这个问题,因为PGNET可以有效地生成自由形式的答案。在这个混合模型中,我们使用阅读理解模型首先指向文本中的答案证据,然后PGNET nat- uralize将证据转化为最终答案。例如,对于图6.1中的Q5,我们期望阅读理解模型首先预测出她的孙女Annie下午过来的原因,Jessica非常高兴见到她。她的女儿媚兰和媚兰的丈夫约什也要来。,然后PGNET从R5生成A5 Annie, Melanie和Josh。
我们基于经验表现对这两个模型进行了一些更改。对于STANFORD ATTENTIVE READER模型,我们只使用基本原理作为非抽取答案的问题的答案。对于PGNET,我们只提供当前的问题和斯坦福关注读者模型的跨度预测作为编码器的输入。在培训期间,我们将oracle span输入PGNET。
6.4 Experiments¶
6.4.1 Setup¶
对于SEQ2SEQ和PGNET实验,我们使用OPENNMT工具包(Klein et al., 2017)。在阅读理解实验中,我们使用了与SQUAD相同的实现(Chen et al., 2017)。我们对开发数据调优超参数:会话历史中使用的轮数、层数、每层包含的单元数和dropout比率。我们使用GLOVE (Pennington et al., 2014)对会话模型初始化单词映射矩阵,使用基于经验性能的FASTTEXT (Bojanowski et al., 2017)对阅读理解模型初始化单词投影矩阵。我们在训练期间更新映射矩阵,以便学习分隔符(如)的嵌入。
在SEQ2SEQ和PGNET的所有实验中,我们都使用了OPEN- NMT的默认设置:两层LSTMs,编码器和解码器都有500个隐藏单元。利用SGD对模型进行优化,初始学习率为1.0,衰减率为0.5。所有层的dropout比率为0.3。
在所有的阅读理解实验中,我们发现最好的配置是3层LSTMs,每层包含300个隐藏单元。所有LSTM层的dropout率为0.4,word嵌入层的dropout率为0.5。
6.4.2 Experimental Results¶
表6.5给出了模型在开发和测试数据上的结果。参照测试集的结果,SEQ2SEQ模型表现最差,不管这些答案是否出现在文章中,都会生成频繁出现的答案,这是会话模型的一个众所周知的行为(Li et al., 2016)。PGNET通过关注文章中的词汇量来缓解频繁应答问题,并且性能优于SEQ2SEQ17.8分。然而,它仍然落后于STANFORD ATTENTIVE READER 8.5分。原因之一可能是PGNET在回答问题之前必须记住整篇文章,这是STANFORD ATTENTIVE READER避免的巨大开销。但STANFORD ATTENTIVE READER在回答自由形式的问题时却不幸地失败了(参见表格6.6中的Abstractive)。当STANFORD ATTENTIVE READER 送入PGNET的时候,我们增强了STANFORD ATTENTIVE READER和PGNET——STANFORD ATTENTIVE READER在产生自由形式的答案方面,PGNET在关注篇章背后的原理方面。这个组合要优于PGNET和STANFORD ATTENTIVE READER分别21.0以及12.5分。
image-20190727233626211
Models vs. Human:测试数据的人为性能为88.8 F1,很好地说明COQA的问题有具体的答案。我们最好的模型比人类落后23.7分,这表明用目前的模型很难完成这项任务。我们预计,使用最先进的阅读理解模型 (Devlin et al., 2018) 可能会将结果提高几个百分点。
In-domain vs Out-of-domain:与域内数据集相比,所有模型在域外数据集上的性能都更差。最好的模型下降了6.6点。对于领域内的研究,最好的模型和人类都发现文学领域比其他领域更难,因为文学词汇要求精通英语。对于域外结果,Reddit域显然更困难。这可能是因为Reddit需要对较长的段落进行推理(参见表6.1)。
image-20190727233640836
虽然人类在儿童故事方面取得了很高的成绩,但模型的表现却很差,这可能是因为与其他领域相比,该领域的训练例子较少。人类和模型都觉得维基百科很简单。【译者,这就很扯淡了,,,很明显high-level 的读者应该向下兼容,然而在这里模型却不是这样,说明并没有“学会”语言,只是在“模仿”。想象一下,看得懂NLP paper的人,不一定看得懂英语童话故事。似乎也有一定的合理性。。。比如,dog day基本不会出现在学术论文中,虽然NLP的论文确实有可能在分析语言现象,但是小孩子的读本就有可能了】
6.4.3 Error Analysis¶
表6.6给出了开发集中模型和人员的细粒度结果。我们观察到,在无法回答的问题上,人类的分歧最大。有时,即使文章中没有给出答案,人们也会猜测答案,例如,图6.1中Annie的年龄可以根据她祖母的年龄来猜测。人类对抽象答案的认同低于对提取式答案的认同。这是符合预期的,因为我们的评估指标是基于单词重叠而不是单词的含义。例如,Did Jenny like her new room? 人类的答案,she loved it 以及yes都是可以被接受的答案。
为抽象的回答寻找完美的评价指标仍然是一个具有挑战性的问题(Liu et al., 2016),超出了我们的工作范围。对于我们的模型的性能,SEQ2SEQ和PGNET在抽象答案的问题上表现良好,而STANFORD ATTENTIVE READER由于各自的设计,在抽取答案的问题上表现良好。组合模型对这两种类型都进行了改进。
在词法问题类别上,人类发现词汇匹配且伴随着解释的问题是最容易的,而涉及到语用学的问题是最难的——这是符合预期的,因为涉及词汇匹配以及解释的问题和篇章之间有相似性,因为使得回答他们要比语用问题相对简单。最好的模型也遵循同样的趋势。虽然人类发现没有指代性的问题比那些有指代性的问题(显式或隐式)更容易,但是模型的行为是断断续续的。目前还不清楚为什么人类发现隐式引用比显式引用更容易。有一种推测是,隐式引用直接依赖于前一个回合,而显式引用可能对对话有长距离依赖。
Importance of conversation history. 最终,我们检验了数据集中对话历史的重要性。表6.7显示了使用不同数量的先前回合作为会话历史的结果。所有模型都成功地利用了历史,但最多只能利用一个前一回合的历史(PGNET除外)。令人惊讶的是,使用更多的对话回合可能会降低性能。
image-20190727233710538
我们还对人类进行了一项实验,以衡量他们的表现和之前显示的轮次之间的平衡。基于短问答可能依赖于会话历史的启发,我们抽取了300个一两个单词的问题作为样本,并收集了这些问题的答案,这些问题的答案与前面显示的不同。
当我们不显示任何历史记录时,人类性能下降到19.9 F1,而完整历史记录显示时为86.4 F1。当显示前一个问题和答案时,他们的性能提升到79.8 F1,说明前一个转弯在理解当前问题上发挥了重要作用。如果显示最后两个问题和答案,则可以达到85.3 F1,几乎接近显示完整历史记录时的性能。这表明,对话中的大多数问题在两个回合内都有有限的依赖性。
6.5 Discussion¶
到目前为止,我们已经讨论了COQA数据集和几个基于会话模型和阅读理解模型的竞争性基线。我们希望我们的努力能够成为构建会话QA代理的第一步。
一方面,我们认为COQA的性能还有很大的提升空间:我们的混合动力系统F1成绩为65.1%,仍然落后于人类的23.7分(88.8%)。我们鼓励我们的研究团队研究这个数据集,并推动会话问题回答模型的极限。我们认为有几个方面需要进一步改进:
- 我们构建的所有基线模型都只使用对话历史,方法很简单,就是将前面的问题和答案与当前的问题连接起来。我们认为应该有更好的方式把历史和当前的问题联系起来。对于表6.4中的问题,我们应该建立模型来真正理解问题中他的名字是什么?指的是小狗,而问题在哪里?意味着西里塞纳将在哪里宣誓就职?事实上,最近的一个模型FLOWQA (Huang et al., 2018a)提出了一种解决方案,可以沿着会话流有效地堆叠单轮模型,并在COQA上展示了最先进的性能。
- 我们的混合模型旨在结合跨度预测阅读理解模型和指针生成网络模型的优点,解决抽象答案的不足。然而,我们将其实现为管道模型,因此第二个组件的性能取决于阅读理解模型能否从文章中提取正确的证据。我们认为构建一个端到端模型是可取的,它可以提取基本原理,同时将基本原理重写为最终的答案。
- 我们认为我们收集的原理可以被在训练模型的时候更好的利用。
另一方面,COQA当然有其局限性,我们应该在未来探索更具挑战性和更有用的数据集。一个明显的限制是,COQA中的转换只是问答对的转换。这意味着回答者只负责回答问题,而她不能问任何澄清问题或通过对话与提问者沟通。另一个问题是COQA很少有(1.3%)无法回答的问题,我们认为这在实际的逆向QA系统中是至关重要的。
在我们的工作之外,Choi等人(2018)还创建了一个文本段落问答形式的对话数据集。在我们的界面中,我们向提问者和回答者都显示了一段话,而他们的界面只显示了提问者的标题和对回答者的完整段落。由于他们的设置鼓励回答者为下面的问题透露更多的信息,他们的答案平均长达15.1个单词(我们的是2.7个)。在我们的测试集中,人类的性能是88.8 F1,而他们的性能是74.6 F1。此外,虽然COQA的答案可以是抽象的,但它们的答案仅限于提取文本范围。我们的数据集包含了来自七个不同领域的文章,而他们的数据集仅来自维基百科上关于人的文章。与此同时,Saeidi等人(2018)还为税收和签证法规等监管文本创建了对话式QA数据集。他们的回答仅限于“是”或“不是”,同时也有一个积极的特点,即当某个问题无法回答时,他们可以提出澄清性的问题。
Chapter 7 Conclusions¶
在这篇论文中,我们对神经阅读理解的基础(第一部分)和应用(第二部分)进行了全面的概述,以及自2015年末神经阅读理解出现以来,我们是如何为这一领域的发展做出贡献的。
在第二章中,我们回顾了阅读理解的历史,这可以追溯到20世纪70年代。当时,研究人员已经认识到它作为测试计算机程序语言理解能力的一种适当方法的重要性。然而,直到2010年代,阅读理解才开始被表述为一个监督学习问题,以三组(短文、问题、答案)的形式收集人类标记的训练例子。自2015年以来,通过对大规模监督数据集的创建,以及神经阅读理解模型的开发,该领域已经完成了重塑。尽管到目前为止只有3年的时间,但这个领域的发展速度惊人。在建立更好的数据集和更有效的模型方面的创新也相继出现,它们都对该领域的发展做出了贡献。我们还正式定义了阅读理解的任务,并描述了四种最常见的问题类型:完形填空、多项选择、跨度预测和自由形式的答案及其评价指标。
在第三章中,我们涵盖了现代神经阅读理解模型的所有要素。我们介绍了斯坦福专注读者,这是我们首先为CNN/每日邮报的完形填空任务提出的,是该领域最早的神经阅读压缩模型之一。我们的模型在其他完形填空和多项选择题中得到了广泛的研究。后来我们将其应用到球队数据集中,并取得了当时最先进的性能。与传统的基于特征的模型相比,该模型不依赖于任何下游语言特征,所有参数共同优化。通过实验和仔细的手工分析,我们得出结论,神经模型在识别词汇匹配和释义方面更强大。我们还讨论了最近在开发神经阅读理解模型方面的进展,包括更好的单词表示、注意机制、LSTMs的替代品,以及其他进展,如训练目标和数据增强。
在第四章中,我们讨论了该领域未来的工作和有待解决的问题。我们检查了SQUAD的错误案例(对于我们的模型和超越人类表现的最先进的模型)。我们的结论是,这些模型对文本进行了非常细致的匹配,但它们仍然难以理解实体与文本中所表达的事件之间的内在结构。我们稍后讨论了模型和数据集的未来工作。对于模型,我们认为除了精确性之外,还有其他被忽略的重要方面,这些方面是我们在未来需要改进的,包括速度和可伸缩性、健壮性和可解释性。我们也相信未来的模型将需要更多的结构和模块来解决更困难的阅读理解问题。对于数据集,我们讨论了最近在SQUAD之后的数据集开发——这些数据集要么需要通过句子或者文档进行更加复杂的推理,要么需要处理更长的文档,或者需要生成自行形式的答案,而不是直接提取一个范围,或者当文档中没有正确答案时进行预测。最后,我们检测了几个我们认为对于未来的神经阅读理解比较重要的问题。
在第二部分中,我们想要回答的关键问题是:阅读理解仅仅是衡量语言理解的一个任务吗?如果我们能够构建一个高性能的阅读理解系统,能够在短时间内回答理解问题,那么它是否能够实现有用的应用呢?
在第五章中,我们展示了我们可以结合信息检索技术和神经阅读理解模型来构建一个开放领域的问答系统:在大型百科全书或网络上回答一般问题。特别地,我们在DRQA项目中实现了这个想法,这是一个大型的、基于英语维基百科的真实问题回答系统。我们在多个问题回答基准上对系统进行了评估,证明了该方法的可行性。我们还提出了一个程序,从其他问答资源中自动创建额外的远程监督培训示例,并证明了该方法的有效性。我们希望我们的工作在这一研究方向上迈出第一步,这种信息检索和神经阅读理解相结合的新范式最终将导致新一代开放领域的问题回答系统。
在第6章中,我们讨论了会话问题的回答问题,即计算机系统需要理解文本段落并回答会话中出现的一系列问题。为了解决这个问题,我们构建了COQA:一个会话性问题回答挑战,用于测量机器参与问答式对话的能力。我们的数据集包含127k个带答案的问题,来自七个不同领域的8k个关于文本段落的对话。基于会话和阅读推理模型,我们还为这项新任务建立了几个具有竞争力的基线。我们相信,构建这样的系统将在我们未来的会话人工智能系统中发挥至关重要的作用。
总之,我们对过去三年在这一领域取得的进展感到非常兴奋,并很高兴能够为这一领域作出贡献。同时,我们也深信,要达到真正的人的阅读理解水平还有很长的路要走,我们仍然面临着巨大的挑战,还有很多悬而未决的问题需要我们在未来加以解决。一个关键的挑战是,我们仍然没有好的方法来达到更深层次的阅读理解——这些问题需要理解文本的推理和含义。通常这种情况会发生在“如何”或“为什么”的问题上,比如在故事中,“辛西娅为什么对她的母亲不高兴?,约翰试图怎样弥补他最初的错误?“(In the story, why is Cynthia upset with her mother?, How does John attempt to make up for his original mistake?)在未来,我们必须解决所讨论内容的基础科学问题以达到这种阅读理解的水平,而不仅仅是通过文本匹配来回答问题。
我们也希望鼓励更多的研究人员致力于应用,或将神经阅读理解应用于新的领域或任务。我们相信,它将引导我们构建更好的问答和会话代理,并希望看到这些想法在行业应用中得到实现和发展。
Bibliography¶
David Ahn, Valentin Jijkoun, Gilad Mishne, Karin Mu ̈ller, Maarten de Rijke, and Stefan Schlobach. 2004. Using Wikipedia at the TREC QA Track. In Text REtrieval Conference (TREC).
Jacob Andreas, Marcus Rohrbach, Trevor Darrell, and Dan Klein. 2016. Learning to com- pose neural networks for question answering. In North American Association for Com- putational Linguistics (NAACL), pages 1545–1554.
Stanislaw Antol, Aishwarya Agrawal, Jiasen Lu, Margaret Mitchell, Dhruv Batra, C Lawrence Zitnick, and Devi Parikh. 2015. VQA: Visual Question Answering. In International Conference on Computer Vision (ICCV), pages 2425–2433.
So ̈ren Auer, Christian Bizer, Georgi Kobilarov, Jens Lehmann, Richard Cyganiak, and Zachary Ives. 2007. DBpedia: A nucleus for a web of open data. In The Semantic Web, pages 722–735. Springer.
Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. 2015. Neural machine transla- tion by jointly learning to align and translate. In International Conference on Learning Representations (ICLR).
Ondrej Bajgar, Rudolf Kadlec, and Jan Kleindienst. 2016. Embracing data abundance: BookTest dataset for reading comprehension. arXiv preprint arXiv:1610.00956.
Satanjeev Banerjee and Alon Lavie. 2005. METEOR: An automatic metric for mt evalu- ation with improved correlation with human judgments. In ACL workshop on intrinsic and extrinsic evaluation measures for machine translation and/or summarization, pages 65–72.
Petr Baudisˇ. 2015. YodaQA: a modular question answering system pipeline. In POSTER 2015—19th International Student Conference on Electrical Engineering, pages 1156– 1165.
Petr Baudisˇ and Jan Sˇedivy. 2015. Modeling of the question answering task in the Yo- daQA system. In International Conference of the Cross-Language Evaluation Forum for European Languages, pages 222–228. Springer. Jonathan Berant, Andrew Chou, Roy Frostig, and Percy Liang. 2013. Semantic parsing on Freebase from question-answer pairs. In Empirical Methods in Natural Language Processing (EMNLP), pages 1533–1544. Jonathan Berant, Vivek Srikumar, Pei-Chun Chen, Abby Vander Linden, Brittany Hard- ing, Brad Huang, Peter Clark, and Christopher D. Manning. 2014. Modeling biological processes for reading comprehension. In Empirical Methods in Natural Language Pro- cessing (EMNLP), pages 1499–1510. Piotr Bojanowski, Edouard Grave, Armand Joulin, and Tomas Mikolov. 2017. Enriching word vectors with subword information. Transactions of the Association of Computa- tional Linguistics (TACL), 5:135–146. Kurt Bollacker, Colin Evans, Praveen Paritosh, Tim Sturge, and Jamie Taylor. 2008. Free- base: a collaboratively created graph database for structuring human knowledge. In Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pages 1247–1250. Antoine Bordes, Nicolas Usunier, Sumit Chopra, and Jason Weston. 2015. Large-scale simple question answering with memory networks. arXiv preprint arXiv:1506.02075. Eric Brill, Susan Dumais, and Michele Banko. 2002. An analysis of the AskMSR question- answering system. In Empirical Methods in Natural Language Processing (EMNLP), pages 257–264. Davide Buscaldi and Paolo Rosso. 2006. Mining knowledge from Wikipedia for the ques- tion answering task. In International Conference on Language Resources and Evaluation (LREC), pages 727–730. Eugene Charniak, Yasemin Altun, Rodrigo de Salvo Braz, Benjamin Garrett, Margaret Kosmala, Tomer Moscovich, Lixin Pang, Changhee Pyo, Ye Sun, Wei Wy, et al. 2000. Reading comprehension programs in a statistical-language-processing class. In ANLP/NAACL Workshop on Reading comprehension tests as evaluation for computer- based language understanding sytems, pages 1–5. Ciprian Chelba, Tomas Mikolov, Mike Schuster, Qi Ge, Thorsten Brants, Phillipp Koehn, and Tony Robinson. 2014. One billion word benchmark for measuring progress in sta- tistical language modeling. In Conference of the International Speech Communication Association (Interspeech). Danqi Chen, Jason Bolton, and Christopher D Manning. 2016. A thorough examination of the CNN/Daily Mail reading comprehension task. In Association for Computational Linguistics (ACL), volume 1, pages 2358–2367. Danqi Chen, Adam Fisch, Jason Weston, and Antoine Bordes. 2017. Reading Wikipedia to answer open-domain questions. In Association for Computational Linguistics (ACL), volume 1, pages 1870–1879. Kyunghyun Cho. 2015. Natural language understanding with distributed representation. arXiv preprint arXiv:1511.07916. Kyunghyun Cho, Bart Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. 2014. Learning phrase representations using RNN encoder-decoder for statistical machine translation. In Empirical Methods in Natural Language Process- ing (EMNLP), pages 1724–1734. Eunsol Choi, He He, Mohit Iyyer, Mark Yatskar, Wen-tau Yih, Yejin Choi, Percy Liang, and Luke Zettlemoyer. 2018. QuAC: Question answering in context. In Empirical Methods in Natural Language Processing (EMNLP), pages 2174–2184. Christopher Clark and Matt Gardner. 2018. Simple and effective multi-paragraph reading comprehension. In Association for Computational Linguistics (ACL), volume 1, pages 845–855. Cody Coleman, Deepak Narayanan, Daniel Kang, Tian Zhao, Jian Zhang, Luigi Nardi, Peter Bailis, Kunle Olukotun, Chris Re ́, and Matei Zaharia. 2017. DAWNBench: An end-to-end deep learning benchmark and competition. In NIPS ML Systems Workshop. Abhishek Das, Satwik Kottur, Khushi Gupta, Avi Singh, Deshraj Yadav, Jose MF Moura, Devi Parikh, and Dhruv Batra. 2017. Visual dialog. In Conference on computer vision and pattern recognition (CVPR), pages 1080–1089. Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. BERT: Pre- training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805. Bhuwan Dhingra, Hanxiao Liu, Ruslan Salakhutdinov, and William W Cohen. 2017a. A comparative study of word embeddings for reading comprehension. arXiv preprint arXiv:1703.00993. Bhuwan Dhingra, Kathryn Mazaitis, and William W Cohen. 2017b. Quasar: Datasets for question answering by search and reading. arXiv preprint arXiv:1707.03904. Matthew Dunn, Levent Sagun, Mike Higgins, V Ugur Guney, Volkan Cirik, and Kyunghyun Cho. 2017. SearchQA: A new Q&A dataset augmented with context from a search engine. arXiv preprint arXiv:1704.05179. Anthony Fader, Luke Zettlemoyer, and Oren Etzioni. 2014. Open question answering over curated and extracted knowledge bases. In SIGKDD Conference on Knowledge Discov- ery and Data Mining (KDD). Angela Fan, Mike Lewis, and Yann Dauphin. 2018. Hierarchical neural story generation. In Association for Computational Linguistics (ACL), volume 1, pages 889–898. David Ferrucci, Eric Brown, Jennifer Chu-Carroll, James Fan, David Gondek, Aditya A Kalyanpur, Adam Lally, J William Murdock, Eric Nyberg, John Prager, et al. 2010. Building Watson: An overview of the DeepQA project. AI magazine, 31(3):59–79. Yarin Gal and Zoubin Ghahramani. 2016. A theoretically grounded application of dropout in recurrent neural networks. In Advances in Neural Information Processing Systems (NIPS), pages 1019–1027. Jianfeng Gao, Michel Galley, and Lihong Li. 2018. Neural approaches to conversational AI. arXiv preprint arXiv:1809.08267. Yoav Goldberg. 2017. Neural network methods for natural language processing, vol- ume 10. Morgan & Claypool Publishers. Clinton Gormley and Zachary Tong. 2015. Elasticsearch: The Definitive Guide. O’Reilly Media, Inc. Jiatao Gu, Zhengdong Lu, Hang Li, and Victor O.K. Li. 2016. Incorporating copying mech- anism in sequence-to-sequence learning. In Association for Computational Linguistics (ACL), pages 1631–1640. Daya Guo, Duyu Tang, Nan Duan, Ming Zhou, and Jian Yin. 2018. Dialog-to-action: Conversational question answering over a large-scale knowledge base. In Advances in Neural Information Processing Systems (NIPS), pages 2943–2952. Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. 2016. Deep residual learn- ing for image recognition. In Conference on computer vision and pattern recognition (CVPR), pages 770–778. Karl Moritz Hermann, Toma ́sˇ Kocˇisky ́, Edward Grefenstette, Lasse Espeholt, Will Kay, Mustafa Suleyman, and Phil Blunsom. 2015. Teaching machines to read and compre- hend. In Advances in Neural Information Processing Systems (NIPS), pages 1693–1701. Felix Hill, Antoine Bordes, Sumit Chopra, and Jason Weston. 2016. The Goldilocks Prin- ciple: Reading children’s books with explicit memory representations. In International Conference on Learning Representations (ICLR). Lynette Hirschman, Marc Light, Eric Breck, and John D Burger. 1999. Deep read: A reading comprehension system. In Association for Computational Linguistics (ACL), pages 325–332. Sepp Hochreiter and Ju ̈rgen Schmidhuber. 1997. Long short-term memory. Neural Com- putation, 9:1735–1780. Hsin-Yuan Huang, Eunsol Choi, and Wen-tau Yih. 2018a. FlowQA: Grasping flow in history for conversational machine comprehension. arXiv preprint arXiv:1810.06683. Hsin-Yuan Huang, Chenguang Zhu, Yelong Shen, and Weizhu Chen. 2018b. FusionNet: Fusing via fully-aware attention with application to machine comprehension. In Inter- national Conference on Learning Representations (ICLR). Mohit Iyyer, Wen-tau Yih, and Ming-Wei Chang. 2017. Search-based neural structured learning for sequential question answering. In Association for Computational Linguistics (ACL), volume 1, pages 1821–1831. Robin Jia and Percy Liang. 2017. Adversarial examples for evaluating reading comprehen- sion systems. In Empirical Methods in Natural Language Processing (EMNLP), pages 2021–2031. Mandar Joshi, Eunsol Choi, Daniel S Weld, and Luke Zettlemoyer. 2017. TriviaQA: A large scale distantly supervised challenge dataset for reading comprehension. In Association for Computational Linguistics (ACL), volume 1, pages 1601–1611. Divyansh Kaushik and Zachary C. Lipton. 2018. How much reading does reading compre- hension require? A critical investigation of popular benchmarks. In Empirical Methods in Natural Language Processing (EMNLP), pages 5010–5015. Aniruddha Kembhavi, Minjoon Seo, Dustin Schwenk, Jonghyun Choi, Ali Farhadi, and Hannaneh Hajishirzi. 2017. Are you smarter than a sixth grader? Textbook question answering for multimodal machine comprehension. In Conference on computer vision and pattern recognition (CVPR), pages 5376–5384. Daniel Khashabi, Snigdha Chaturvedi, Michael Roth, Shyam Upadhyay, and Dan Roth. 2018. Looking beyond the surface: A challenge set for reading comprehension over mul- tiple sentences. In North American Association for Computational Linguistics (NAACL), volume 1, pages 252–262. Yoon Kim. 2014. Convolutional neural networks for sentence classification. In Empirical Methods in Natural Language Processing (EMNLP), pages 1746–1751. Diederik Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. Walter Kintsch. 1998. Comprehension: A paradigm for cognition. Cambridge University Press. Guillaume Klein, Yoon Kim, Yuntian Deng, Jean Senellart, and Alexander Rush. 2017. OpenNMT: Open-source toolkit for neural machine translation. pages 67–72. Toma ́sˇ Kocˇisky
, Jonathan Schwarz, Phil Blunsom, Chris Dyer, Karl Moritz Hermann, Ga ́abor Melis, and Edward Grefenstette. 2018. The NarrativeQA reading comprehen- sion challenge. Transactions of the Association of Computational Linguistics (TACL), 6:317–328.
Julian Kupiec. 1993. MURAX: A robust linguistic approach for question answering using an on-line encyclopedia. In ACM SIGIR conference on Research and development in information retrieval, pages 181–190.
Guokun Lai, Qizhe Xie, Hanxiao Liu, Yiming Yang, and Eduard Hovy. 2017. RACE: Large-scale reading comprehension dataset from examinations. In Empirical Methods in Natural Language Processing (EMNLP), pages 785–794.
Kenton Lee, Shimi Salant, Tom Kwiatkowski, Ankur Parikh, Dipanjan Das, and Jonathan Berant. 2016. Learning recurrent span representations for extractive question answering. arXiv preprint arXiv:1611.01436.
Wendy Grace Lehnert. 1977. The process of question answering. Ph.D. thesis, Yale Uni- versity.
Tao Lei, Regina Barzilay, and Tommi Jaakkola. 2016. Rationalizing neural predictions. In Empirical Methods in Natural Language Processing (EMNLP), pages 107–117.
Tao Lei, Yu Zhang, Sida I Wang, Hui Dai, and Yoav Artzi. 2018. Simple recurrent units for highly parallelizable recurrence. In Empirical Methods in Natural Language Processing (EMNLP), pages 4470–4481.
Jiwei Li, Michel Galley, Chris Brockett, Jianfeng Gao, and Bill Dolan. 2016. A diversity- promoting objective function for neural conversation models. In North American Asso- ciation for Computational Linguistics (NAACL), pages 110–119.
Chin-Yew Lin. 2004. ROUGE: A package for automatic evaluation of summaries. Text Summarization Branches Out.
Yankai Lin, Haozhe Ji, Zhiyuan Liu, and Maosong Sun. 2018. Denoising distantly super- vised open-domain question answering. In Association for Computational Linguistics (ACL), volume 1, pages 1736–1745.
Chia-Wei Liu, Ryan Lowe, Iulian Serban, Mike Noseworthy, Laurent Charlin, and Joelle Pineau. 2016. How NOT to evaluate your dialogue system: An empirical study of unsu- pervised evaluation metrics for dialogue response generation. In Empirical Methods in Natural Language Processing (EMNLP), pages 2122–2132.
Xiaodong Liu, Yelong Shen, Kevin Duh, and Jianfeng Gao. 2018. Stochastic answer net- works for machine reading comprehension. In Association for Computational Linguistics (ACL), volume 1, pages 1694–1704.
Thang Luong, Hieu Pham, and Christopher D Manning. 2015. Effective approaches to attention-based neural machine translation. In Empirical Methods in Natural Language Processing (EMNLP), pages 1412–1421.
Christopher D Manning, Mihai Surdeanu, John Bauer, Jenny Finkel, Steven J Bethard, and David McClosky. 2014. The Stanford CoreNLP natural language processing toolkit. In Association for Computational Linguistics (ACL): System Demonstrations, pages 55–60.
Bryan McCann, James Bradbury, Caiming Xiong, and Richard Socher. 2017. Learned in translation: Contextualized word vectors. In Advances in Neural Information Processing Systems (NIPS), pages 6297–6308.
Tomas Mikolov, Edouard Grave, Piotr Bojanowski, Christian Puhrsch, and Armand Joulin. 2017. Advances in pre-training distributed word representations. arXiv preprint arXiv:1712.09405.
Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S Corrado, and Jeff Dean. 2013. Dis- tributed representations of words and phrases and their compositionality. In Advances in Neural Information Processing Systems (NIPS), pages 3111–3119.
Alexander Miller, Will Feng, Dhruv Batra, Antoine Bordes, Adam Fisch, Jiasen Lu, Devi Parikh, and Jason Weston. 2017. ParlAI: A dialog research software platform. In Em- pirical Methods in Natural Language Processing (EMNLP), pages 79–84.
Alexander Miller, Adam Fisch, Jesse Dodge, Amir-Hossein Karimi, Antoine Bordes, and Jason Weston. 2016. Key-value memory networks for directly reading documents. In Empirical Methods in Natural Language Processing (EMNLP), pages 1400–1409.
Mike Mintz, Steven Bills, Rion Snow, and Daniel Jurafsky. 2009. Distant supervision for relation extraction without labeled data. In Association for Computational Linguistics (ACL), pages 1003–1011.
Tom M Mitchell, Justin Betteridge, Andrew Carlson, Estevam Hruschka, and Richard Wang. 2009. Populating the semantic web by macro-reading internet text. In Inter- national Semantic Web Conference (IWSC), pages 998–1002.
Dan Moldovan, Sanda Harabagiu, Marius Pasca, Rada Mihalcea, Roxana Girju, Richard Goodrum, and Vasile Rus. 2000. The structure and performance of an open-domain question answering system. In Association for Computational Linguistics (ACL), pages 563–570.
Karthik Narasimhan and Regina Barzilay. 2015. Machine comprehension with discourse relations. In Association for Computational Linguistics (ACL), volume 1, pages 1253– 1262.
Tri Nguyen, Mir Rosenberg, Xia Song, Jianfeng Gao, Saurabh Tiwary, Rangan Majumder, and Li Deng. 2016. MS MARCO: A human generated machine reading comprehension dataset. arXiv preprint arXiv:1611.09268.
Takeshi Onishi, Hai Wang, Mohit Bansal, Kevin Gimpel, and David McAllester. 2016. Who did what: A large-scale person-centered cloze dataset. In Empirical Methods in Natural Language Processing (EMNLP), pages 2230–2235.
Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing Zhu. 2002. BLEU: a method for automatic evaluation of machine translation. In Association for Computational Lin- guistics (ACL), pages 311–318.
Ankur Parikh, Oscar Ta ̈ckstro ̈m, Dipanjan Das, and Jakob Uszkoreit. 2016. A decompos- able attention model for natural language inference. In Empirical Methods in Natural Language Processing (EMNLP), pages 2249–2255.
Panupong Pasupat and Percy Liang. 2015. Compositional semantic parsing on semi- structured tables. In Association for Computational Linguistics (ACL), pages 1470–1480.
Jeffrey Pennington, Richard Socher, and Christopher Manning. 2014. Glove: Global vec- tors for word representation. In Empirical Methods in Natural Language Processing (EMNLP), pages 1532–1543.
Matthew Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, and Luke Zettlemoyer. 2018. Deep contextualized word representations. In North American Association for Computational Linguistics (NAACL), volume 1, pages 2227– 2237.
Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language understanding by generative pre-training. Technical report, OpenAI.
Martin Raison, Pierre-Emmanuel Mazare ́, Rajarshi Das, and Antoine Bordes. 2018. Weaver: Deep co-encoding of questions and documents for machine reading. arXiv preprint arXiv:1804.10490.
Pranav Rajpurkar, Robin Jia, and Percy Liang. 2018. Know what you don’t know: Unan- swerable questions for SQuAD. In Association for Computational Linguistics (ACL), volume 2, pages 784–789.
Pranav Rajpurkar, Jian Zhang, Konstantin Lopyrev, and Percy Liang. 2016. SQuAD: 100,000+ questions for machine comprehension of text. In Empirical Methods in Natu- ral Language Processing (EMNLP), pages 2383–2392.
Marc’Aurelio Ranzato, Sumit Chopra, Michael Auli, and Wojciech Zaremba. 2016. Se- quence level training with recurrent neural networks. In International Conference on Learning Representations (ICLR).
Siva Reddy, Danqi Chen, and Christopher D Manning. 2019. CoQA: A conversational question answering challenge. Transactions of the Association of Computational Lin- guistics (TACL). Accepted pending revisions.
Matthew Richardson, Christopher J.C. Burges, and Erin Renshaw. 2013. MCTest: A chal- lenge dataset for the open-domain machine comprehension of text. In Empirical Methods in Natural Language Processing (EMNLP), pages 193–203.
Ellen Riloff and Michael Thelen. 2000. A rule-based question answering system for reading comprehension tests. In ANLP/NAACL Workshop on Reading comprehension tests as evaluation for computer-based language understanding sytems, pages 13–19.
Pum-Mo Ryu, Myung-Gil Jang, and Hyun-Ki Kim. 2014. Open domain question answer- ing using Wikipedia-based knowledge model. Information Processing & Management, 50:683–692.
Mrinmaya Sachan, Kumar Dubey, Eric Xing, and Matthew Richardson. 2015. Learning answer-entailing structures for machine comprehension. In Association for Computa- tional Linguistics (ACL), volume 1, pages 239–249.
Marzieh Saeidi, Max Bartolo, Patrick Lewis, Sameer Singh, Tim Rockta ̈schel, Mike Shel- don, Guillaume Bouchard, and Sebastian Riedel. 2018. Interpretation of natural language rules in conversational machine reading. In Empirical Methods in Natural Language Processing (EMNLP), pages 2087–2097.
Amrita Saha, Vardaan Pahuja, Mitesh M. Khapra, Karthik Sankaranarayanan, and Sarath Chandar. 2018. Complex sequential question answering: Towards learning to converse over linked question answer pairs with a knowledge graph. In Conference on Artificial
Intelligence (AAAI).
Roger C Schank and Robert P Abelson. 1977. Scripts, plans, goals and understanding: An
inquiry into human knowledge structures. Lawrence Erlbaum.
Abigail See, Peter J Liu, and Christopher D Manning. 2017. Get to the point: Summa- rization with pointer-generator networks. In Association for Computational Linguistics (ACL), volume 1, pages 1073–1083.
Minjoon Seo, Aniruddha Kembhavi, Ali Farhadi, and Hannaneh Hajishirzi. 2017. Bidi- rectional attention flow for machine comprehension. In International Conference on Learning Representations (ICLR).
Minjoon Seo, Sewon Min, Ali Farhadi, and Hannaneh Hajishirzi. 2018. Neural speed read- ing via Skim-RNN. In International Conference on Learning Representations (ICLR).
Shiqi Shen, Yong Cheng, Zhongjun He, Wei He, Hua Wu, Maosong Sun, and Yang Liu. 2016. Minimum risk training for neural machine translation. In Association for Compu- tational Linguistics (ACL), volume 1, pages 1683–1692.
Robert F Simmons, Sheldon Klein, and Keren McConlogue. 1964. Indexing and depen- dency logic for answering English questions. American Documentation, 15(3):196–204.
Rupesh K Srivastava, Klaus Greff, and Ju ̈rgen Schmidhuber. 2015. Training very deep networks. In Advances in Neural Information Processing Systems (NIPS), pages 2377– 2385.
Saku Sugawara, Kentaro Inui, Satoshi Sekine, and Akiko Aizawa. 2018. What makes reading comprehension questions easier? In Empirical Methods in Natural Language Processing (EMNLP), pages 4208–4219.
Saku Sugawara, Yusuke Kido, Hikaru Yokono, and Akiko Aizawa. 2017. Evaluation met- rics for machine reading comprehension: Prerequisite skills and readability. In Associa- tion for Computational Linguistics (ACL), volume 1, pages 806–817.
Ilya Sutskever, Oriol Vinyals, and Quoc V Le. 2014. Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (NIPS), pages 3104–3112.
Alon Talmor and Jonathan Berant. 2018. The web as a knowledge-base for answering com- plex questions. In North American Association for Computational Linguistics (NAACL), volume 1, pages 641–651.
Makarand Tapaswi, Yukun Zhu, Rainer Stiefelhagen, Antonio Torralba, Raquel Urtasun, and Sanja Fidler. 2016. MovieQA: Understanding stories in movies through question- answering. In Conference on computer vision and pattern recognition (CVPR), pages 4631–4640.
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Łukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Ad- vances in Neural Information Processing Systems (NIPS), pages 5998–6008.
Oriol Vinyals and Quoc Le. 2015. A neural conversational model. arXiv preprint arXiv:1506.05869.
Ellen M Voorhees. 1999. The TREC-8 question answering track report. In Text REtrieval Conference (TREC), pages 77–82.
Hai Wang, Mohit Bansal, Kevin Gimpel, and David McAllester. 2015. Machine compre- hension with syntax, frames, and semantics. In Association for Computational Linguis- tics (ACL), volume 2, pages 700–706.
Shuohang Wang and Jing Jiang. 2017. Machine comprehension using Match-LSTM and answer pointer. In International Conference on Learning Representations (ICLR).
Shuohang Wang, Mo Yu, Xiaoxiao Guo, Zhiguo Wang, Tim Klinger, Wei Zhang, Shiyu Chang, Gerald Tesauro, Bowen Zhou, and Jing Jiang. 2018a. Rˆ3: Reinforced reader- ranker for open-domain question answering. In Conference on Artificial Intelligence (AAAI).
Shuohang Wang, Mo Yu, Jing Jiang, Wei Zhang, Xiaoxiao Guo, Shiyu Chang, Zhiguo Wang, Tim Klinger, Gerald Tesauro, and Murray Campbell. 2018b. Evidence aggrega- tion for answer re-ranking in open-domain question answering. In International Confer- ence on Learning Representations (ICLR).
Wenhui Wang, Nan Yang, Furu Wei, Baobao Chang, and Ming Zhou. 2017. Gated self- matching networks for reading comprehension and question answering. In Association for Computational Linguistics (ACL), volume 1, pages 189–198.
Kilian Weinberger, Anirban Dasgupta, John Langford, Alex Smola, and Josh Attenberg. 2009. Feature hashing for large scale multitask learning. In International Conference on Machine Learning (ICML), pages 1113–1120.
Johannes Welbl, Nelson F Liu, and Matt Gardner. 2017. Crowdsourcing multiple choice science questions. In 3rd Workshop on Noisy User-generated Text, pages 94–106.
Johannes Welbl, Pontus Stenetorp, and Sebastian Riedel. 2018. Constructing datasets for multi-hop reading comprehension across documents. Transactions of the Association for Computational Linguistics, 6:287–302.
Jason Weston, Sumit Chopra, and Antoine Bordes. 2015. Memory networks. In Interna- tional Conference on Learning Representations (ICLR).
Qiang Wu, Christopher JC Burges, Krysta M Svore, and Jianfeng Gao. 2010. Adapting boosting for information retrieval measures. Information Retrieval, 13(3):254–270.
Pengtao Xie and Eric Xing. 2017. A constituent-centric neural architecture for reading comprehension. In Association for Computational Linguistics (ACL), volume 1, pages 1405–1414.
Caiming Xiong, Victor Zhong, and Richard Socher. 2017. Dynamic coattention net- works for question answering. In International Conference on Learning Representations (ICLR).
Caiming Xiong, Victor Zhong, and Richard Socher. 2018. DCN+: Mixed objective and deep residual coattention for question answering. In International Conference on Learn- ing Representations (ICLR).
Zhilin Yang, Peng Qi, Saizheng Zhang, Yoshua Bengio, William Cohen, Ruslan Salakhut- dinov, and Christopher D Manning. 2018. HotpotQA: A dataset for diverse, explainable multi-hop question answering. In Empirical Methods in Natural Language Processing (EMNLP), pages 2369–2380.
Xuchen Yao, Jonathan Berant, and Benjamin Van Durme. 2014. Freebase QA: Information extraction or semantic parsing? In ACL 2014 Workshop on Semantic Parsing, pages 82–86.
Adams Wei Yu, David Dohan, Minh-Thang Luong, Rui Zhao, Kai Chen, Mohammad Norouzi, and Quoc V Le. 2018. QANet: Combining local convolution with global self- attention for reading comprehension. In International Conference on Learning Repre- sentations (ICLR).
Adams Wei Yu, Hongrae Lee, and Quoc Le. 2017. Learning to skim text. In Association for Computational Linguistics (ACL), volume 1, pages 1880–1890.
Saizheng Zhang, Emily Dinan, Jack Urbanek, Arthur Szlam, Douwe Kiela, and Jason We- ston. 2018. Personalizing dialogue agents: I have a dog, do you have pets too? In Association for Computational Linguistics (ACL), volume 1, pages 2204–2213.
结束-感想¶
时间:三个月翻译,一个月修理格式。也是够慢的。可以del掉这个alias了。
坦白说,翻译这个事情还真的挺累的,有时候下班太累了就不想看了。有时候看了就不想写了。有时候没看懂,也不知道该咋写,经常借助有道词典。最近工作紧张起来,也没有很多时间仔细看论文,越往后越累,越难,好忧桑。。。周末赶紧加班弄好,喝了一天的红茶,终于搞定了。虽然有点累,不过挺开心。
有很多时间花在公式、格式上了。以为之前翻译过一本书,再来弄这个会容易很多,我还是太年轻了。
文章中讨论的知识很全面,我想可以作为一个参考书性质的东西,遇到问题的时候回头来看看,查找一下解决方案。有时候也不是你没学过,学过会忘记啊。最近遇到一个问题没有数据集,我也很头疼,就随便翻翻这本论文,就看到back trans,emmm,尽管我已经读过这个了。。。。我之前咋就没想到[可能是我太傻了]
anyway,这个过程也复习了英语,也全面预习了一下神经阅读理解的内容,也熟悉了一下markdown、readdocs以及公式编辑器,还有typora这个挺好用的markdown编辑器。读论文读的我都想回炉继续进修了。特别是最近又在看Cho 的 Natural Language Uniderstanding with Distributed Representation ,开头第一句就很有趣,总感觉在这一点上老师和我能聊在一起。什么the road we will not take,还把乔姆斯基以及Yoav Goldberg大似夸奖了一番。还有github上的有趣的readme。
最近在跟stanford cs224n的课程,感兴趣的同学可以到这里:
https://github.com/DukeEnglish/cs224n_learning_note
虽然学过了,咋感觉都忘记了呢。对不起我的研究生导师。。。
这个课程的default final 是squad2。到时候回来再借鉴一下这个论文吧。
再次感谢作者的这篇论文,收获很多。也很感谢其对NLP的贡献。
大家加油,与君共勉。
啊,好好学习,天天向上吧!!!
Duke Lee
另外,感谢以下公众号/社区的转发,希望我们可以一起学习一起进步:
DataFun:https://mp.weixin.qq.com/s/2gUhlgIaL_Qi0M8iPbWMkA
AINLP:https://mp.weixin.qq.com/s/3c1SMqHroyy3yXKW4cvITA