机器阅读理解:算法与实践
上QQ阅读APP看书,第一时间看更新

前言

阅读是人类获取知识、认识世界的重要手段。传承人类文明的语言文字中包含了丰富的信息、经验和智慧,而语言高度浓缩的特性也决定了阅读能力本身就是一项重要的智能。著名科幻小说作家刘慈欣先生在《乡村教师》中曾经这样描述人类语言交流的效率:

你是想告诉我们,一种没有记忆遗传,相互间用声波进行信息交流,并且是以令人难以置信的每秒1至10比特的速率进行交流的物种,能创造出5B级文明?!而且这种文明是在没有任何外部高级文明培植的情况下自行进化的?!

根据测算,人类阅读的平均速度约为说话语速的2~3倍。因此,粗略估算一下,一个人哪怕50年如一日地每天阅读8个小时,最终获取的文字信息量也只有4.9GB左右。但人类的文明和智慧程度远远超过了这个量级。可以说,阅读是一种通过理解将精简的文字抽象成概念和思想以及衍生知识的复杂过程。

在人工智能浪潮席卷世界的今天,让计算机学会阅读有着重要的意义。一方面,阅读能力涉及人类的核心智能,也是终极人工智能必不可少的组成部分;另一方面,随着文本数据的爆炸式增长,利用模型将文本信息的理解过程自动化,可节省大量人力物力成本,在许多行业有着广泛的使用价值。

因此,最近三四年,自然语言处理十分热门、前沿的研究课题之一就是机器阅读理解。其研究目标是让计算机读懂文章,并像人类一样回答与文章相关的问题。大量人工智能和深度学习中的核心技术被运用到这一领域,各种机器阅读理解任务层出不穷。笔者有幸作为最早涉足这一领域的研究者之一,设计并实现了若干阅读理解模型,并在斯坦福大学主办的机器阅读理解竞赛SQuAD中获得了第一名的成绩,在CoQA竞赛中让计算机模型的得分首次超越了人类的得分。

然而,随着计算机模型在越来越多的数据集上得分超过人类,一些媒体在相关报道中都冠以“计算机阅读理解水平已超人类”的标题,这也在一定程度上对“人工智能已经可以取代人类”的说法有推波助澜的作用。而作为实际参与模型设计的研究者,笔者深深感觉计算机与人类理解文章和进行思考的能力相差甚远。当前的机器阅读理解模型和十年前的成果相比已经有了巨大的飞跃,但只是在特定的数据集与限定的任务上超过了人类水平。已有研究表明,如果在文章中加入一个对于人类来说很容易判断的迷惑性句子,就会使计算机模型的表现大打折扣。

另外,与机器阅读理解研究热潮不匹配的是,到目前为止,市面上还没有这方面的书籍,大多数模型都是以学术论文方式发表的,而机器阅读理解在工业界应用方面的资料更是寥寥无几。笔者写这本书的目的在于客观地展现当前机器阅读理解研究的现状,从最基础的模块、阅读理解模型的基本架构直到最前沿的算法,完整地展现机器阅读理解模型的核心知识。书中有大量笔者在构建阅读理解模型过程中精炼出的代码实例,这些实例有着很强的实战价值。所有代码均上传至https://github.com/zcgzcgzcg1/MRC_book,并可直接运行。本书还详细阐述了机器阅读理解模型在智能客服、搜索引擎等各种工业界应用中落地的方法、难点和挑战,并探讨了这项研究未来的发展方向。

虽然当前机器阅读理解的能力远逊于人类,但我们可以利用计算机的超快运算速度和超大存储能力找到“弯道超车”的方法。所谓“熟读唐诗三百首,不会吟诗也会吟”,而现在的计算机一秒内就可以读诗千万首,我们完全有理由期待它能取得突破性的成果。例如,2018年横空出世的BERT模型融合了大数据和大模型,在机器阅读理解等多个自然语言处理领域取得了可喜的突破。笔者希望本书能够给大家带来启发和思考,在不远的将来能够真正使计算机达到并超过人类阅读理解的水平。

全书分为3篇,共8章内容。

基础篇(第1~3章),主要介绍机器阅读理解的基础知识和关键支撑技术。其中包括机器阅读理解任务的定义、阅读理解模型中常用的自然语言处理技术和深度学习网络模块,例如如何让计算机表示文章和问题、做多项选择题和生成回答等。

架构篇(第4~6章),介绍解决各类机器阅读理解任务的基本模型架构和前沿算法,并剖析对机器阅读理解研究有着革命性影响的预训练模型(如BERT和GPT)。

实战篇(第7~8章),其中包括笔者在2018年获得CoQA阅读理解竞赛第一名时所用的模型SDNet的代码解读、机器阅读理解在各种工业界应用中的具体落地过程和挑战,以及笔者对机器阅读理解未来发展方向的思考。

由于笔者的水平有限,且编写时间仓促,书中难免会存在疏漏,恳请读者朋友批评指正。如果您有更多的宝贵意见,欢迎通过邮箱zcg.stanford@gmail.com联系我,期待能够得到读者朋友的反馈,在技术之路上互勉共进。

致谢

感谢微软公司语音与语言研究团队黄学东、曾南山和各位同事给予我指导和帮助。

感谢中国计算机学会秘书长杜子德先生一直以来对我的鼓励和支持。

感谢高婧雅编辑在本书策划、写作和完稿过程中给予我巨大帮助。

特别感谢我的太太梦云和女儿,在写作这本书的过程中,我牺牲了很多陪伴她们的时间,有了她们的付出与支持,我才能坚持写下去。

同时,感谢我的父母帮助我们照顾女儿,有了你们的支持,我才有时间和精力完成写作。

谨以此书献给我最亲爱的家人,以及众多热爱机器阅读理解技术的朋友们!

朱晨光