--------点击屏幕右侧或者屏幕底部“+订阅”,关注我,随时分享机器智能最新行业动态及技术干货------------
一、背景
回顾人类文明史,信息化从原始的结绳记事到文字记载,发展到现代的数字化与网络化,数据已经成为继物质、能源之后新的战略资源,主要有无结构的文档、手册、网页、图片音视频等形式。麦肯锡曾发布过 2025 年经济的 12 大颠覆技术,知识自动化位列第二(预计影响 5.2-6.7万亿 美元),其中就包括基于文档等内容的法律合同查找、专利发现等关键应用。而要有效利用这些数据,例如构建问答 AI,通常需要大量的人工挖掘、整理和专家校对工作,以形成专业知识库甚至结构化数据,这一过程投入巨大难以规模化,只能覆盖高频场景。因此如何构建有效的无结构文本处理方法,让机器能够自动理解并提供内容问答,会是开启信息智能化的一条重要路径。
小蜜作为连接消费者与商家的重要入口与智能问答的代表,我们(达摩院的小蜜与自然语言智能团队)早在 2017 年就开始关注机器阅读理解技术( Machine Reading Comprehension,缩写 MRC),并落地了工业界首个机器阅读应用。在之后的两年多时间中,机器阅读理解引领了自然语言理解的研究风口,而我们在持续保持学术领先的同时,将其陆续拓展到工业中各种领域和场景,积累了体系化的技术方案与业务实践,使得机器阅读理解技术也从最初的单一模型成长为围绕着业务全生命周期的解决方案。下面我们将从机器阅读理解的应用实践,面临的问题和挑战,相关的技术解法及解决方案设计这几个方面来具体介绍。
二、机器阅读在小蜜中的应用
我们在 2017 年提出的 SLQA 模型[1]在 SQuAD 数据集[2]上取得了 Rank 1 的成绩,并在 EM 指标上首次超越人类表现,我们将 SLQA 模型应用在中文业务数据阅读上,使阿里小蜜、店小蜜、企业小蜜在活动规则、税务法规中具备了对非结构化文章的阅读和问答能力。
在这之后的工作中,我们在说明书、零售、旅游、党建、政务等多个业务领域落地了机器阅读技术。重点解决了机器阅读在大规模业务应用中碰到的一些难题,包括百万级规模的多文档、长文档、多语言、多模态、多轮次等问题,并逐渐完成了领域数据、算法模型、解决方案的沉淀,形成了小蜜的机器阅读算法中台。下面我们将以新零售(消费者&商家)、经济体及阿里云这几个业务维度具体介绍相关场景。
2.1 阿里小蜜&店小蜜活动问答
阿里小蜜是机器阅读的首个落地业务,阿里小蜜作为电商领域的智能服务机器人,需要频繁支持各类电商活动的规则解读,尤其是在双十一期间会有大量的活动上线,通过机器阅读理解的运用,可以显著减少小二拆解维护知识的工作,只需要针对规则做适当的简化润色,就能提供自然的在线规则解读服务。
之后我们进一步将场景拓展到店小蜜的业务中。淘宝商家经常会更新各种促销活动,并且随着活动玩法的不断增多,活动的更新频率也越来越高。店铺活动规则通常是以文章的方式存在,描述了活动参与方式、优惠策略、参与商品等信息,其非结构化、高更新频率、内容覆盖面广的特点,正好适合用机器阅读来解决。因此我们构建了店小蜜活动专区的机器阅读方案,在 2018 年上线至今,机器阅读已经成为活动专区主要的答案回复技术,在 2019 双十一,机器阅读活动规则解读支持了付费版商家上万种活动问答。
2.2 店小蜜详情页图片问答
为了服务好这些消费者,我们在店小蜜中也推出了基于图片的智能问答。它能利用图片解析及机器阅读来理解图片内容,结合用户的问题,识别并自动截取可以回答用户的图片作为答案,并高亮图片中的精确答案位置,丰富了用户图文并貌的服务体验,免去了商家配置问题和答案的成本。目前,智能图片问答已经覆盖了服饰美妆、家电数码、零食果蔬、母婴洗护等多个行业,相比传统的文字回复,能为商家带去更多的成交额。
2.3 天猫旗舰店 2.0 家电说明书问答
市场上各类电子数码产品功能越来越丰富,使得电子产品的使用难度也越来越复杂。用户在购买了各类数码产品后,往往需要花费大量的时间阅读产品说明书,然后才能够安全可靠的使用。在天猫家电行业的旗舰店铺内,我们通过店小蜜为大小家电、数码产品等大流量旗舰店铺提供了 PDF 说明书问答的能力,包括海尔官方旗舰店、联想官方旗舰店、格力官方旗舰店、苏泊尔官方旗舰店、华为官方旗舰店等 20 多家官方旗舰店铺。通过多模态的转换,可以根据用户的 query 准确定位到说明书中的答案描述,帮助用户更快、更准确地解决各类售后问题。
2.4 盒马售前小蜜商品详情页图片问答
除了小蜜自身的业务,我们还将机器阅读理解输出赋能到经济体业务中。盒马 App 上的商品种类繁多,并且像海鲜、活水产等单价较高,顾客在浏览时通常希望能够尽可能多的了解商品细节后再决定是否下单,但是在此前盒马的商品页面没有任何售前咨询入口,当顾客有商品相关问题时,只能被动等待人工端咨询(投诉)反馈,这对顾客满意度和成交转化率都有挺大的影响。因此我们在盒马 APP 上线了售前小蜜,在维护 FAQ 知识的人力不足时,售前小蜜能够根据用户的提问,直接从商品详情页图片、商品百科知识文章中寻找答案,从而提升满意度和解决率,利用机器阅读对长尾问题的处理能力也能进一步提升覆盖。
2.5 飞猪导购助手景点问答
当我们准备去一个陌生的地方旅游时,一般都会提前了解目的地、提前规划行程,这时候需要查阅大量景点资料、阅读网上的游记和攻略、也有很多问题需要咨询。飞猪上的旅游景点数量非常多,但是因为资料不全、缺少售前咨询入口,顾客的查找效率并不高。穷游网积累了大量的旅游攻略文章,但是顾客需要阅读大量文章之后才能找到有用信息。因此我们在飞猪导购助手项目中引入机器阅读能力,让模型从已有的非结构化景点介绍内容中直接寻找答案,未来还计划打通穷游网的旅游攻略,从上万篇用户旅游攻略文章中去帮助用户自动寻找答案。借助我们在机器阅读领域的数据和模型积累,在无需人工维护知识库的情况下,在飞猪项目上实现了零训练数据的模型冷启动上线。
2.6 Lazada 多语言机器阅读
Lazada 是阿里经济体在东南亚地区电商领域的重要部分,随着全球化的深入,淘宝天猫的很多电商经验运用在了 Lazada 中,其中越来越丰富的电商活动便是一个很好的例子。与国内电商活动相比,Lazada 的活动不仅内容多,而且语言繁多,包括英语、印尼语、越南语、泰语等等。结合电商活动问答的领域特点和东南亚地区的多国家多语言特点,我们研发了多语言机器阅读模型,它结合了机器阅读无需人工配置 FAQ 的优点,同时能够有效应对 Lazada 中多种语言及语言混合的情况,支持了 Lazada 包含双十一在内的诸多大促活动。
2.7 AliOS 汽车说明书问答
汽车作为日常出行不可或缺的工具,几乎是我们平时都能接触到的最复杂的工业产物。购买新车后的第一件事便是熟悉车辆的功能布局和常见操作,而在日常使用中也常需要确认车辆状态和维修保养事项,这些都离不开车辆说明书的支持。但动辄三四百页的说明手册不便翻阅,内容专业并且概念众多,对 C 端用户来说往往无从下手或者需要耗费大量时间,对于 B 端车厂及 4S 店也会陷入重复大量的售后操作解答中,服务成本高。因此我们与集团 AliOS 团队合作,共同打造了智能汽车专家中的说明书问答能力,配合车端大屏的语音 + 图像多模态交互,实现问题精准回复与需求的直接满足,目前覆盖了车辆功能、故障解决、保养维护和使用技巧等多方面内容。
2.8 浙江政务百万级法规文章阅读
除了集团和经济体业务生态,我们也依托云小蜜持续投入赋能外部政企。浙江政务项目是浙江省政府数字化转型的首批重点项目,主要目的是便民惠民,帮助市民办理查询生活大小事情和咨询解读各项政策法规等。浙江政务服务网有两百万篇办事、法规文章,而且在不同的辖市,办事事项也有差异,我们将机器阅读用在办事事项问答和政策法规解读问答,能够在没有预先 FAQ 配置的情况下,从网站上的百万篇级文章中阅读查找答案,然后实时快速的将最新办事规章流程详细地反馈给市民,大大提升了办事效率和市民满意度。
2.9 党群服务中心超长文章阅读
杭州党群服务中心使用 5 号小蜜机器人(基于 IoT 硬件的实体机器人)来解答来访宾客有关党史、党章、政策方面的问题,在这种开放场景下的问答,要求模型对长尾问题有很好的覆盖和解决能力,而且该场景对答案的准确率要求也非常高。而党建文章通常篇幅长(最长 3万 字以上)、涉及内容事项多,如果依靠人工维护知识库的方式,不仅人力成本非常高、难以保证知识覆盖率,而且长尾问题过多也进一步增加了知识库的维护难度。因此我们在这个项目中使用机器阅读来对党史、党章、政策文章进行阅读与问答,只使用少量标注数据就让模型达到了上线指标。随着 10 月 25 日杭州党群服务中心正式启用,该项目也已经上线。
三、业务场景中的问题与挑战
学术上的机器阅读主要聚焦在从有限场景、有限数据、有限文章中寻找答案(如 SQuAD[2]、CoQA[3] 等),相比较上述介绍的业务场景,还面临着一系列的挑战:
数据标注困难:学术数据集( SQuAD、CoQA 等)是在限定数据上的模型实验,而在落地过程中不同业务需要不同的训练数据,机器阅读的训练数据要求标注人员从一篇长文档中标出能回答用户query的答案,和常规的分类标注不同,机器阅读标注具有很强的主观性,由不同标注人员标注数据,在模型表现上可能产生很大的差异;
大规模多文档: SQuAD、CoQA 两个数据集都限定模型在给定的一篇文章中找答案,但现实场景下很难满足一篇文章的假设,以浙江政务场景为例,机器阅读需要从近百万篇文章中找到正确答案作为回复,如何在这么多文章中让机器阅读既能保证召回率,还要有足够的准确率,这是我们在业务中经常会碰到的一个问题;
数据异构:在业务过程中我们经常会碰到这样的场景,业务方已有的文章积累可能包含表格、超链接,文字也具有主副标题、正文、批注等不同重要度、不同字体格式。如何在机器阅读模型中同时处理不同数据源、不同格式的内容,也是在业务落地过程中需要解决的问题;
多模态内容源:目前在智能客服场景下,单一的文本模态问答形式已经不能满足用户信息索取的诉求,图文并茂的交互形式将是未来客服机器人的基本能力。在店小蜜、盒马等场景对每个商品都有详细的图片描述,在家电、汽车等场景也有 pdf 文档对商品使用方法进行详细描述,因此如果能将这部分信息利用起来,让模型直接从图片、pdf 文档中找答案,将极大地减少运营难度、提升机器人的服务能力;
多轮次对话:目前在智能客服场景上,一个很大的挑战就是多轮对话问题,对话模型通常构建在一问一答的假设条件之下,但在真实的客服场景下,很多时候是需要算法模型具有像人一样能够有记忆、能够处理多轮次对话。随着 CoQA、QuAC 等多轮机器阅读数据集的发布,我们也开始在业务中逐步加入多轮对话的能力;
在实际业务中还会有其他挑战,如国际化业务 AE、Lazada 等的跨语言机器阅读;新业务刚开始时在少量甚至无数据情况下的模型冷启动;机器阅读答案的拒识与可控性;FAQ 与 MRC 的配合等等。
基于以上业务中的问题,我们接下来将从技术及产品化角度分析在 MRC 平台建设过程中,如何面对并解决如下这些技术挑战:
- 如何降低应用门槛/构建成本
- 如何面向海量文本阅读
- 如何解决对话场景的语义丢失
- 准确率与效率的权衡
- 如何快速打通多语言
- 如何构建数据闭环,支持快速迭代
...
四、MRC 平台技术介绍
下图是我们在落地机器阅读模型,应对业务场景中的问题和挑战过程中,逐渐积累起来的现阶段机器阅读平台能力及场景大图,图中的渠道和场景在前文已经进行了简要介绍,下面分别从图中的多轮次、多模态、多语言、多文档、多任务&多领域,以及语言模型和领域数据沉淀几个方面对MRC平台技术进行介绍。
4.1 结合上下文语境的多轮次机器阅读
早期的 MRC 模型只有从单轮 query 和 doc 中定位答案的能力,但随着 CoQA、QuAC 等多轮机器阅读开源数据集的发布,我们也考虑引入模型的多轮阅读能力。在 MRC 模型中增加多轮阅读能力,我们目前实现了四种方案:基于实体继承的方案,基于 flow_ops 的端到端模型方案,基于 query-rewrite 的多轮改写方案,基于预训练语言模型的方案。基于实体继承的方案使模型有能力应对上下文的主体缺失场景,目前已经在企业小蜜上落地;基于 flow_ops 的端到端模型方案使模型能够在上下文语境中进行阅读,目前应用在店小蜜活动专区使得机器阅读出答案率绝对提升了 12%;基于 query- rewrite 的多轮改写方案结合上下文语境信息对 query 信息进行补全,在店小蜜对话日志上的离线评估中也有优异的表现,目前已经将模型能力输出给店小蜜前端算法团队;基于预训练语言模型的方案利用语言模型强大的语义理解和表征能力,来同时阅读文章、问题、上下文语境,目前该方案在 CoQA 数据集上已经有一些成果,并在持续探索中。
4.1.1 基于实体继承的方案:
- 针对一些场景下的 query 中存在实体缺失,可以直接继承最近一轮对话的实体;
- 实体继承我们一般用于解决多轮次的文章召回,可以实现一定程度的多轮阅读能力;
4.1.2 基于 flow_ops 的端到端模型方案:
我们参考了 CoQA 上非 Bert 的 SOTA 模型 FlowQA[10],按下图方式将 flow_ops 结合到单轮 SLQA 模型,原本单轮 SLQA 因为信息缺失返回无答案,在加入 flow_ops 后,模型可以自动从上文语境中寻找缺失信息,通过这种方法,我们将店小蜜活动专区机器阅读的出答案率绝对提升了 12%;
4.1.3 基于 query-rewrite 的方案:
- 使用 SLQA+flow_ops 这种端到端的多轮阅读方案虽然为模型带来了多轮阅读能力,但在答案可控性,模型通用性方面有所欠缺;
- 因此我们试验了用生成模型来处理多轮问题,模型将当前 query 以及上文多轮的 query-answer (试验时因为 answer 过于杂乱,只取了上文的多轮 query )共同作为输入,通过 encoder-decoder 模型生成一个新的包含多轮信息的 query。我们从店小蜜对话日志中构造了一个多轮改写数据集,多轮改写效果如下表所示;
4.1.4 基于预训练语言模型的方案:
- 基于大数据量预训练出来的语言模型相比于 SLQA 有着更强的语义理解和表征能力,对标注的样本依赖也要小很多,而且预训练语言模型用于下游任务的泛化能力也更强。
- 因此我们实验了基于语言模型的多轮阅读理解,在语言模型上选用 RoBERTa[11] 作为我们的基础模型。我们把前 K 轮 query-answer 和当前轮 query 以及文章内容进行拼接作为模型的输入,在训练阶段,除了常规 MRC的span extraction 任务之外,我们还引入数据中的 rationale tagging 辅助任务学习。
- 目前在多轮阅读理解任务 CoQA 数据集上进行实验。
与 SQuAD 相比,CoQA 具有多轮问答的“对话”属性,而且机器的回答形式也更加自由。我们在该数据集验证集上的实验结果如下:
4.2 图文结合的多模态机器阅读探索
近年来,有关多模态方向的研究如火如荼。对于多模态而言,目前主流的研究方向有模态表示,模态转换,模态对齐,模态融合,协同学习等。我们也在积极的探索 MRC 与多模态技术的结合的可能性,目前主要探索的方向为模态转换与模态融合。
多模态领域[12]
4.2.1 模态转换
对于模态转换,我们主要采用 OCR,Image Tagging,Image Caption 等模态转换方式,将不同模态的信息归一到文本模态上,统一以 MRC task 的方式来设计训练任务,在保持 MRC 整体架构的基础上丰富训练数据的维度。有关这部分内容我们后续会在店铺详情页问答专项上进行详细的阐述,有兴趣的同学可以关注下我们后续的文章。
4.2.2 模态融合
从 19 年开始,有关多模态语言模型的论文层出不穷,其主流的思想是将 BERT 与 Computer Vision 的相关任务进行融合,以提升下游任务的各项指标。我们线下也在多模态的语言模型上开展了一些探索 ,通过引入 Bounding Box 等视觉信息来提升 MRC 语言模型的表征能力。目前的多模态语言模型主要还是处在初期的探索性阶段,后续我们也会持续的关注这个方向的发展。
4.3 多语言、跨语言机器阅读
传统的多语言解决方案通常会针对不同语言的巨大差异,对每种语言单独训练模型。在全球化的快速进程中,一种语言一个模型的解决方案越来越难以应对复杂快速的业务变化。机器阅读模型也面临同样的问题,因此我们希望能尽量利用一个模型去支持多种语言,一个客服机器人能够同时应对中文、英文、越南语和印尼语等多种语言;同时语言之间能够相互促进,让高资源的语言带动低资源语言;还能在不同语言中挖掘出共通的语义信息。
在 BERT 之前,我们基于多语言词向量和 Share-
Encoder 方法去解决多语言机器阅读问题。关键步骤如下,首先,我们借鉴 Word2vec 等词向量的方法,把不同语言的词汇映射到一个通用语义空间,利用平行语料、多语词典和无监督语料等内容训练多语言词向量 Cross-Lingual-Word-Embeddings,把不同语言的相近词语在语义空间中拉近,如下图左侧所示。接着,利用平行语料学习通用句子编码器 Share-Encoder,能够同时对多种语言的句子表达出语义信息。最后,把 Share-Encoder 对文章和问题学习出的语义信息输入到 MRC Layer 中,算出答案 Span。我们利用该方法有效解决了 Lazada 场景下印尼语和英语活动规则问答。
但是,基于 Share-Encoder 的多语言 MRC 解决方法依赖于平行语料,难以快速应对新的语言,有一定的局限性。随着 BERT 语言模型的出现,我们第一时间在多语言 MRC 场景下引入了 Multi-BERT 进行了最新的尝试。结合 BERT 、多语言 MRC 和 Lazada 电商活动问答的特点,我们采用了两步走的迁移学习方法:
1) 领域知识迁移
2) 多语言混合训练策略。
具体地,领域知识迁移是通过把其他领域的阅读理解能力迁移到电商领域和同领域内的知识迁移,解决了学术数据集与业务数据、业务数据与业务数据之间存在 gap 的问题。语言混合训练是把不同语言的数据进行混合同时训练,使得模型更能学习到跨语言间的通用语言能力,同时也能利用高资源的语言去增强低资源语言的处理能力,主要流程如下:
基于以上方案训练的多语言机器阅读模型,不仅能处理相同语言的文章和问题,还能够处理不同语言的文章和问题,例如活动文章是中文,问题是英文,又或者文章是印尼语,问题是中文的场景。目前多语言机器阅读已经在 Lazada 电商活动规则解析场景下落地,一个模型覆盖支持了印度、马来西亚、菲律宾、泰国、越南等国家5种以上语言的 MRC 问答。
4.4 面向大规模多文档的机器阅读
提到多文档阅读就不得不提微软的 MS MARCO[4] 和百度的 DuReader[5]。 MS MARCO 是微软在 2016 年公开的一个英文多文档阅读数据集,包括 100 万以上的 Bing 搜索记录和 880万 以上的文档,每个问题需要从大量文档中定位并找到正确答案。 DuReader 是百度2018年公开的中文多文档阅读数据集,包括 30万 以上的 baidu 搜索记录和 140万 以上的文档,每个问题需要从给定的 5 篇文档中搜寻正确答案。
我们的多文档机器阅读模型先后在中文 DuReader 2.0 数据集,英文 MS MARCO 的 Q&A Task 和 Passage Retrieval Task( Both Full Ranking Style and Re-ranking Style )两个任务上,均达到当时的 SOTA 效果,其中在 MS MARCO Q&A 任务的 Rouge-L 和 BLEU-1 指标均达到人类水平。
我们将多文档阅读拆分成文章粗召回、文章重排序、答案抽取这 3 个阶段。在文章粗召回过程中,我们采用 ElasticSearch ( MARCO 和 DuReader方案提交时,改用开源的 Anserini)中的 BM25 进行初召回。为了解决问题到文章的词匹配不一致的问题,我们参考并改进了论文[6]中的 query 生成方案,通过训练基于 pointer-generator 的摘要生成模型,引入copy机制和 attention over attention 机制来进一步提升query词生成准确度,并利用生成的 query 对原文档进行 document expansion,以有效提升召回。
在文章重排序阶段,我们使用自研的预训练语言模型 StructBERT[7],考虑句子顺序结构信息,将原始 BERT[8] 的 NSP 任务改为了前后句预测,并从头训练该预训练语言模型,同时在预训练的过程中进一步引入拒识弱监督信号,最后再利用预训练好的 StructBERT 模型在排序任务的 label 数据上进行 Ranking 精排,产出最终文档排序结果。
(1) 基于 passage 的 query 生成;
(2) 基于 StructBERT 的 rerank
在答案抽取阶段,使用我们 18 年发表的一篇多文档机器阅读论文[9]中的方法进行答案抽取,形成目前的级联式多文档机器阅读方案。
4.5 利用多领域、多任务提升模型能力
深度神经网络除了强大的模型容量,高维的表示学习也是其特色,在新领域应用机器阅读理解的过程中,我们参照多领域迁移的思路,基于 MRC 多层次的网络结构提出了以下的迁移学习框架,支持不同层次不同粒度的模型参数共享,包括 Fully Share、Partial Share、Inter/Intra Domain Share 3 种形式,引入训练阶段领域间成比例交替输入,减轻样本不均衡带来的影响;增加领域通用特征层及独立性约束对抗任务使模型收敛更加稳定,同时针对领域间词表差异过大问题引入动态 OOV 扩展。在实际应用中,基于领域之间词汇级差异(语义差异性)和文档差异(形态差异性)有机组合不同迁移特性,在小蜜活动优惠到中移动套餐优惠迁移、店小蜜跨行业问答迁移等业务上都能减少 50% 标注数据。
除了借鉴已有领域的大量学习数据,我们还考虑引入新领域中其他任务,帮助 MRC 在小数据的情况下快速提升效果,如下图所示,在接入店小蜜活动专区过程中,初始阶段仅有几十篇文章数千个问题,我们首先基于店小蜜的海量历史问答语料,预训练了词向量模型作为初始编码层的输入,同时针对机器阅读模型的不同层次,结合线上的推荐点击数据清洗构建了千万级 Q-Q 匹配数据、基于商家维护的知识数据构建了百万级 Q-A 的语义匹配数据,并将这两种数据分别应用在了 MRC 编码层和交互层多任务预训练,最终只在整体模型的进一步 finetune 中才使用了标注的机器阅读数据。借助不同任务的共同学习使模型在业务数据上有了 10+ 的 F1 提升。在以 BERT 为基础的语言模型出现后,我们将目光从基于 SLQA 的转向了领域语言模型的构建,具体探索请看后续小节。
4.6 基于语言模型的技术实践
2018 年 Google 的研究者 J Devlin 等提出通过在大规模无标签语料上进行 Transformer 语言模型预训练,然后在下游任务的小规模有标签数据上 finetune 的方法,在自然语言推理数据集 GLUE,SQuAD 和 CoQA 等数据集上均大幅度超过以往 SOTA 的模型,从此开启了自然语言处理的预训练时代。
BERT的结构[8]
BERT 网络概览
除去通用的 MLM 和 NSP 任务,自然语言智能团队还在 BERT 的 MLM 的基础上新加入两种预训练任务:词序还原和上下句关系预测。提出了如下图所示的 StructBERT 预训练语言模型,这两个目标显著地提高了语言模型预训练效果。目前 StructBERT 已经在我们的业务中广泛使用。
4.6.1 业务数据上进一步预训练语言模型
StructBERT 是在大量百科数据上的预训练语言模型,为了更好的应对业务场景,我们在 StructBERT 的基础上,进一步构建了业务相关的预训练语料,形成了如下图所示基于 Pre-trained LM 的 MRC 通用技术方案。
基于 Pre-trained LM 的 MRC 通用技术方案
4.6.1.1 数据构建
QA 知识对:业务中通常人工维护了大量的 QA 知识对,并且这些数据的质量也较高,我们尝试通过 QA 知识来构造正负样本对,并通过语言模型来学习区分 QA 是否匹配,这样语言模型在业务场景的能力增强可以提升下游匹配任务效果;
人工对话数据:人工对话数据中包含了大量用户的问题、人工客服的回答。这些多轮问答产生的上下文信息,对比单轮问答信息要更加丰富饱满。因此如何将这些丰富的信息融合进语言模型,也是一个非常重要的方向。
4.6.1.2 任务构造
仅 MLM: RoBERTa 中的试验表明在 BERT 中去掉 NSP 的效果可能会更好一些,因此首先尝试了仅用 MLM 进行预训练,但该方式在业务数据上并没有带来显著提升;
SpanBERT:参考 spanBERT[13] 论文,通过 boundary 的词来预测中间的 n-gram,试验下来在业务数据上也没有效果提升;
QA 匹配任务预训练:在 StructBERT 中用了词序还原和上下句关系预测的预训练任务,对模型效果有所提升,我们也试验了在业务数据上将预训练任务修改为 QA 匹配任务,试验结果显示这种方式能够为下游任务带来较为明显的提升。
4.6.1.3 业务效果
在匹配任务上,我们用店小蜜数据进行验证,通过不同任务类型的业务数据的混合训练以及模型结构的微调后,能够为当前的匹配任务带来稳定的效果提升,如利用 query 和 doc 的排序、QA 匹配任务训练后的模型,在下游任务上比直接使用原始 BERT 提升了 3% 的 AUC。
4.6.2 模型裁剪和蒸馏
模型裁剪和蒸馏的主要目的有两个:
- 减少模型参数,缩减模型尺寸(memory optimization)
- 加快模型训练、预测速度(speed optimization)
在实际业务场景中,我们更加关注提升模型的预测速度,从而优化 QPS 和模型延时。
对于模型裁剪方式,有多种方式让 student model 的模型结构复杂度低于 teacher model 的模型结构复杂度。通常的做法可以采用更少的层(如 PKD-BERT)、更小的隐层大小(如 tinyBERT[14])以及参数共享(如 ALBERT[15],虽然能够显著减少参数量,但是 ALBERT 在相同层数条件下并不会带来速度上的提升)。
基于 BERT 的模型蒸馏思路大致可归纳如下:
- 从 Teacher BERT 蒸馏到 CNN、RNN 等小模型。这种情况下通常采用常规的 soft label 进行蒸馏训练,我们在店小蜜的 query 和 doc 排序问题上将 BERT 蒸馏到 CNN 网络,AUC 损失 4.2%。
- 从 Teacher BERT 蒸馏到更小的 student BERT 模型。这种情况下可以将 Student BERT 的每一层和 Teacher BERT 对齐,先用 teacher BERT 参数对 Student BERT 进行初始化,再对 Student BERT 进行蒸馏训练。我们在店小蜜的 query 和 answer 拒识问题上将 BERT 蒸馏到 3 层 BERT,AUC 损失 1%。
4.7 领域数据与模型沉淀
上文提到机器阅读在业务应用时面临的其中一个难题是数据标注苦难,因此为了减少数据标注量,加快业务扩展,我们一方面使用大规模无监督语料进行语言模型的预训练,另一方面基于我们在集团内外多个业务上的积累,我们已经沉淀了如下图所示的零售、百科、法规、政务、旅游等多个领域的数据和领域模型,新业务只需要在领域模型基础上用少量数据进行增量训练,就能快速达到上线要求。
五、从技术到产品化
早期我们将机器阅读以平台化能力进行输出,对每个业务提供人力投入,并与业务、产品、工程同学配合,完成每个业务的开发、训练、测试、上线任务。但是随着接入业务数量的不断增加,定制化需求的不断深入,如果仍然以之前的业务接入方案,人力成本、接入周期都是我们难以接受的。为了提升业务接入效率,降低业务接入成本,我们已经将一部分能力沉淀到机器阅读中台,目前机器阅读中台已经沉淀了如上文所讲的一系列领域能力,我们也会持续投入机器阅读中台的建设,打造一个从领域模型选择、数据标注,到模型训练、模型上线的全自助能力,并且基于自动回流系统对线上数据进行持续迭代优化。
5.1 新业务接入
在领域沉淀一节,我们已经讲到随着中台建设及更多的业务沉淀,新业务接入的标注成本也在不断降低,新业务的接入流程也从以往从零开始的数据标注,转变成优先选择合适的领域模型。模型的上线周期也从以往的几周变成了现在的几天。
5.2 自动回流&迭代
考虑到数据标注成本和人工投入成本,如果能够将目前已经建立好的从数据到模型的闭环进行自动化的迭代,而不是每次人为的更新,那么可以在一定程度上达到降本增效的效果。基于该目的,我们提出了算法自动迭代的想法。
首先,通过主动学习策略、客户反馈等方式回流累积线上真实数据。之后进行模型自动训练,在无标注人力时可以利用无监督数据进行 distill 提升线上模型效果,在有标注人力时可以进行有监督模型训练。训练完成后在测试集上进行模型效果评估,并邮件提醒负责人进行效果确认。对确认达到上线要求的模型,可以自动完成模型部署和更新。整体流程的简要框图如下。
六、发展历程
2017 从学术研究到工业落地:这个时期完成了学术任务的预研与积累,并在阿里小蜜活动问答和企业小蜜税法解读场景上迈出了工业落地的第一步,主要的挑战在于如何设计模型的不同层次,使其能够从文章中有效抽取答案,同时兼顾线上服务的时效要求,最终沉淀出SLQA基础模型,为之后的能力突破人类打下基础。这期间对于MRC的应用还局限在单一领域做针对性优化,业务拓展的成本比较高。
2018 从单一场景到多领域实践:初步验证了机器阅读的技术价值之后,这一阶段着重在更多领域、规模更大的业务场景落地,包括在店小蜜活动专区、Lazada 活动问答(EN&ID)、浙江政务事项咨询、汽车说明书问答等,在业务快速落地的同时也探索了跨语言迁移、跨领域迁移、跨任务迁移等学习方法进一步降低接入成本。同时为了适配更复杂多样的业务需求,我们从单一的模型扩展到了集成检索、排序、抽取、拒识等全链路的问答服务,支持不同能力的灵活组装,在准确&召回率、吞吐量与响应时间、模型可控性等方面上有了明显的改进。
2019 从问答到全链路产品构建:伴随着机器阅读落地在越来越多的业务中,我们开始围绕着整个算法生命周期实现技术产品化与平台化,结合已有领域的积累迁移及通用语言模型的支持,覆盖场景验证、业务评测、标注优化、线上接入、回流迭代等多个环节,通过最佳实践来赋能业务方去做能力集成与优化。在技术方面持续投入机器阅读的创新突破,在结合会话的多轮次阅读、结合图片的多模态阅读等方面都有了初步探索。
七、技术成就
- 2017 年 07 月首次落地上线,助力阿里小蜜活动问答;
- 2018 年 01 月在斯坦福评测 SQuAD v1.1 中历史首次超越人类表现 (EM: 82.44 vs. 82.3);
- 2018 年 02 月在 TriviaQA 评测中获得第一;
- 2018 年 09 月在 SQuAD v2.0 评测中获得第一;
- 2018 年 10 月在百度 DuReader Q&A 评测中获得第一;
- 2018年11月模型性能突破(活动规则问答耗时<10ms),支持大促高峰不降级;
- 2018 年 12 月在微软 MARCO Q&A 任务评测中获得第一;
- 2019 年 06 月在微软 MARCO Passage Retrieval 任务和 Q&A 任务中双双刷新记录;
- 2019 年 11 月多模态阅读全量开放店小蜜商业版7大行业问答,支持商家服务双 11;
- 机器阅读相关论文入选 ACL 2018,AAAI 2019,EMNLP 2019, CIKM 2019, AAAI 2020。
八、总结与展望
经过 3 年的积累,我们将机器阅读理解技术落地在了小蜜的各种业务场景,覆盖了活动规则、法规条例、商品百科、说明手册等多种内容形式,借助迁移学习、多任务学习、大规模预训练进一步增强模型效果,并结合对话场景在多语言、多轮次、多模态问答上也取得了一定效果。目前机器阅读理解已经形成了一整套解决方案,帮助小二、商家及外部客户减少文章拆解、知识配置的成本,减轻用户信息获取成本,成为小蜜中不可或缺的能力。
未来我们会继续深耕,在业务上以中台能力输出至新零售、经济体以及云生态,持续扩大应用规模,构建轻量化的运营与迭代支持;打造信息智能化的基础设施,推动人工智能与商业应用的深度融合发展。
技术方面目前机器阅读理解对于解决 wiki 类客观知识问答已经取得比较好的结果,但对于复杂问题来说仍处于比较初级的阶段;在多模态场景,如何理解图文,表格等结构化信息也处于发展阶段。学术界的思路和工业界实际场景相结合将能产生巨大的价值,我们将在这方面持续投入研究并落地到实际业务,在算法、模型和数据方面进行积累和沉淀,未来在更多的真实领域场景中,用户将能感受到机器阅读理解技术带来的更为便利的智能服务。
对于机器阅读理解的“能理解会思考”的终极目标来说,现在还只是万里长征的开始,对自然语言的更深层次的归纳、总结、推理,一定是未来机器阅读理解不可缺少的部分。
原文链接:https://mp.weixin.qq.com/s/TKUeekQzwKn7agxTZr8Syg
参考文献:
- Wang et al. 2018. Multi-Granularity Hierarchical Attention Fusion Networks for Reading Comprehension and Question Answering.
- Rajpurkar et al. 2016. SQuAD: 100,000+ Questions for Machine Comprehension of Text
- Reddy et al. 2018. Coqa: A conversational question answering challenge.
- Bajaj et al. 2016. MS MARCO: A Human Generated MAchine Reading COmprehension Dataset.
- He et al. 2017. Dureader: a chinese machine reading comprehension dataset from real-world applications.
- Nogueira et al. 2019. Document Expansion by Query Prediction.
- Wang et al. 2019 StructBERT: Incorporating language structures into pre-training for deep language understanding.
- Devlin et al. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
- Yan et al. 2018. A Deep Cascade Model for Multi-Document Reading Comprehension.
- Huang et al. 2018. FlowQA: Grasping Flow in History for Conversational Machine Comprehension.
- Liu et al. 2019. RoBERTa: A Robustly Optimized BERT Pretraining Approach.
- Machine Learning Department Carnegie Mellon University: Multimodal deep learning course slide.
- Joshi et al. 2019. SpanBERT: Improving pre-training by representing and predicting spans.
- Jiao et al. 2019. TinyBERT: Distilling BERT for Natural Language Understanding.
- Lan et al. 2019. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations.