Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

DuerOS普罗米修斯计划:30页国际专家PPT全面剖析对话式AI数据集

美国西部时间 11 月 9 日,百度 DuerOS 普罗米修斯计划在美国硅谷召开启动发布会。一周后,2017 百度世界大会上,普罗米修斯计划正式起航。据介绍,普罗米修斯计划作为百度 DuerOS 今年最重要的战略规划之一,包含开放超大规模对话式 AI 数据集、跨学科合作、学科共建等多种计划,以及一个百万美元基金用以鼓励和培养对话式 AI 领域的优秀项目和人才。

在硅谷启动会上,亚马逊机器学习高级主管 Björn Hoffmeister 博士、约翰•霍普金斯大学人类语言技术中心主任 Sanjeev Khudanpur 博士、Facebook 前研发科学家 Antonie Raux 分别从语音唤醒、语音识别、多轮交互三方面发表了主题讲话,介绍了学术领域的发展概况、研究方法等,并对普罗米修斯计划给予了高度评价,认为它将助推全球对话式 AI 行业的科研发展及人才培养。除此之外,卡耐基梅隆大学研究教授 Alexander Rudnicky、麻省理工学院(MIT)高级研究科学家 Jim Glass 等一众国外专家学者纷纷加入项目顾问团队,组成了超豪华专家指导委员会。

 


DuerOS 普罗米修斯计划的全球专家指导委员会

普罗米修斯计划启动发布会上,Khudanpur 博士、Antoine Raux 博士围绕唤醒、数据等方面对对话式 AI 进行了深度分析。

百度主任架构师陈果果曾指出人才、数据、基础设施、计算能力是 AI 领域最重要的四元素。进入大数据时代,机器学习的模型、尤其是神经网络的模型,都需要大量数据来进行训练。但是大规模的数据集一直是业界稀缺资源。而此次普罗米修斯计划发布的数据集将是目前数据量最大的中文语音、对话相关的数据集,多个任务数据集均为业界独家发布。该计划将从「产、学、研」三方面全面推动对话式 AI 的发展。

以下是约翰•霍普金斯大学人类语言技术中心主任 Sanjeev Khudanpur 博士、Facebook 前研发科学家 Antonie Raux 对于对话式 AI 数据集进行的深度解读。

如何通过 Kaldi 开启对话式人工智能系统的革命

 


Khudanpur 博士是约翰霍普金斯大学电子与计算机工程学院教授,他认为目前各科技公司都在布局智能音箱这一对话式 AI 的新战场,百度当然不会错过这个机会。同时,DuerOS 并没有将目光局限于此,而是要通过 AI 赋能更多的场景,达到唤醒万物。


 

Khudanpur 博士指出,语音作为对话式 AI 系统的入口,语音识别系统的性能就显得尤其重要。一套完整的语音识别系统通常由三个部分组成:语言模型,声学模型,解码器。语言模型用于刻画特定语言在其语法规则约束下形成的词与词之间的搭配关系,声学模型则用于刻画音素的发音特性,二者通过词典关联起来,解码器将三者构建出搜索空间以解码出最优路径,即为识别结果。

在过去,工业界各家公司有自己独有的一套系统和算法,学术界则专注于研究理想条件下的识别性能提升。于是,对于初创公司和小型实验室而言,搭建一个在实际场景中高可用度的语音识别系统显得步履维艰。


Kaldi 诞生于 2009 年约翰斯•霍普金斯大学一个 workshop,它采用了 Apache 2.0 许可,支持修改和再发布。Kaldi 这个命名源自传说中第一个发现咖啡的人,以此为名旨在提供一个像咖啡一样灵活方便、流行的语音识别工具包,方便开发人员使用。

 

Kaldi 项目在过去的 6、7 年中已经有大约 150 多名不同的贡献人,在主干版本外还有 8 个分支,2000 多个关注者,还有很多人使用该项目所做的工具, 以及一个很活跃的邮件列表。下载量已经超过两万多次,论文<The Kaldi Speech Recognition Toolkit>被引用次数高达一千七百多次。

 

Kaldi 是 C++编写的一系列资料库,命令行工具,以及一些搭建特定语音识别系统的脚本,这些程序告诉大家在特定的情况下要怎么做,比如你有很多来自遥远地区的语音材料,或是各种语言混杂的语音材料。Kaldi 在学术界和工业界也被广泛采用:MIT,CMU,微软、谷歌等都有在用 Kaldi 做研究工作。Kaldi 主干版本是由 Dan Povey 博士维护。

 

随着语音识别技术的不断进步,Kaldi 工具也在高效地保持更新:从高斯模型到应用神经网络,提供资源匮乏条件下的语音识别解决方案,支持 GPU 训练,从近场识别扩展到远场识别,支持训练数据来自多风格和多设备源,效率和性能更高的 Chain Model,训练过程加入对抗学习。此外也有越来越多的研究人员和开发者在 Kaldi 的基础上进行新技术的探索和改进。

 

针对大数据量情况下训练速度优化问题,Kaldi 采用的是多 GPU 数据并行策略。一方面,使用自然梯度 (NG-SGD) 取代常规梯度以加速当前训练目标函数下降速率;另一方面,GPU 共享模型参数同时计算相应 batch 数据,而后统计梯度并更新共享参数。

 

对于一个语音识别系统来说,发音人的口音,语速不同;发音人所处场景千变万化,通常伴随着各式各样的噪声;音频采集的硬件设备和编码格式的不统一。这三个因素使语音识别系统在实际使用时面临着巨大挑战。研发出一套对各种不确定性依然有效的识别系统,就成了语音识别技术的终极目标。此亦为美国国家情报高级研究计划局所举办的 ASpIRE 竞赛所追求的目标。

 

在 2015 IARPA 举办的 ASpIRE 比赛上,Kaldi 取得了第一名的成绩。在此次竞赛中,Kaldi 使用的黑科技主要有:

1. 使用了下采样的 TDNN 网络,更高效且可能使用更多的上下文信息。

2. 数据预处理,结合真实远场环境的冲击响应和噪音情况对训练数据做变换以模拟各种远场场景。

3. 使用 i-vector 特征,在 TRAP 特征外加入对说话人和环境提取的 i-vector 特征。


Chain Model 的灵感来源于 CTC 训练方法,我们重新设计了状态和 HMM 转移的拓扑结构 (hmm 状态数从 3 或 5 降为 1,实际还有一个用于自旋可重复 0 次或多次的空白状态),降低了帧率 (从 100Hz 降为 33Hz), 固定了 hmm 转移概率。另外传统的 SDT(序列区分性训练方法) 需要先使用交叉熵目标函数训练一个初始模型,然后在此模型上生成 lattice,lattice 中包含了正确路径和概率上较高的其他路径,以此计算互信息和梯度进行反向传播。Kaldi 中的 Chain Model 是一种 Lattice Free 的训练方法,它在网络输出层计算了所有可能标注序列的后验概率并以此直接计算 MMI 和梯度。实验结果表明,相比传统的 TDNN 模型,Chain Model(LF-MMI)+TDNN 模型在解码速度和准确率上都有明显提升。

 

Chain Model(LF-MMI) 相比传统 TDNN+sMBR(最小化状态错误率) 在解码时字错误率降低了 6%-11%,训练速度提升 5-10 倍,解码速度提升 3 倍。另外,实验表明对 Chain Model(LF-MMI) 训练后产出的模型基础上再进行一次序列区分性训练(sMBR)带来的提供不大。

数据:对话式 AI 与数据的关系

Antoine Raux 博士是 Facebook 前研发科学家,对话式 AI 创业公司 CTO 及联合创始人。他认为,当前在对话式 AI 发展过程中,数据相当匮乏,充足有效的数据能够极大程度地帮助解决对话式 AI 发展过程中的一些挑战。所以说数据是至关重要的,有如下两个问题是我们需要思考的: 1)有哪些能够使用的数据 2)在对话数据收集当中,什么样的设计是合理的。

 

例如上图是一个典型的对话式 AI 系统,数据经过这些子系统,最终给用户反馈输出: 首先,用户的语音通过自动语音识别(Automatic Speech Recognition,ASR)识别为文本数据,经过自然语言理解(Natural Language Understanding,NLU)模块处理成为 NLU 结果(intent+slots 的结果,即 PPT 中的 intent frame)。再在对话状态跟踪(Dialogue State Tracking,DST)模块,该模块根据多轮的 NLU 识别结果以及整个对话过程中的历史数据更新当前对话状态 (dialogue state),然后经过 Policy 模块输出 intent frame。intent frame 被自然语言生成(Natural Language Generation,NLG)模块转化为文本,最终通过语音合成(Text To Speech,TTS)模块转换成语音播报给用户。这里面有很多数据,其中从 audio、到 text、到 intent frame、再到 dialogue state,所需的数据量是逐渐减少的,但是每个任务的特殊性是逐渐增加的。左手边你有大量的数据,这些数据不是针对特定任务的,到了中间的时候,数据减少了,并且对任务更有针对性。下面的报告内容会分为如下三个部分,首先会讲数据收集方面的问题,其次会讲数据标注的问题,最后举例一些 Antonie 参与过的实例,也代表了领域近期的一些工作。

首先,来说下数据收集的相关问题。

 

你要决定需要使用什么类型的数据,是不是静态语料库,就是你建立一个语料库然后进行使用和分发,还是说要适用现场互动,即让别人使用你想要测试的系统,需要真实的人和系统进行交互。首先,对于静态语料来说,具有如下 4 个优点:

  • 可以构建大型的语料
  • 可以共享
  • 方便对比数据分析
  • 通过重复使用,降低成本

但是受限于数据收集的策略,静态语料有一定的局限性,你不能探索数据之外的对话方式。再来谈谈在线交互的优点:

  • 可以测试不同的 Policy,探索新的 Policy,以及通过反馈做 A/B test(这一点静态语料是无法做到的)
  • 数据分布更加接近真实用户

但是在线交互数据收集起来相当昂贵,会花费大量的时间和金钱,并且很难获取大量数据。

收集的对话数据可以分为 2 种类型:

  • 一种是人和人的交互
  • 一种是人和机器的交互

首先说下人与人交互特点:

  • 交互更加自然、没有限制
  • 不需要构建一个系统
  • 某些场景,已有现成数据,例如客服系统,会有电话录音
  • 可以模拟系统,即一个人扮演系统,一个人扮演用户

但是人人对话的问题是难以应用的,因为这些对话是开放式的,而且非常自然,比起有一定控制范围的数据更难使用。这类数据也会跟你要做的应用相去甚远。

再谈谈人机交互的特点:

  • 接近实际应用
  • 收集起来成本低

但是需要构建一个系统,系统能力的好坏也影响到数据的收集质量。由于系统能力的有限,很难探索新的特性。

如果你要用户的对话录音,不管是用于语料库还是在线交互,有两种用户可以选择:一个是实际用户:更加解决实际应用,能够产生好的未预料到的输入数据;缺点:收集起来相当昂贵,会花费大量的时间和金钱。

另一个是模拟用户:能够生产大量的数据,能够不断地测试不同的策略,以便选取最优的响应给用户,收集起来成本低,不会花费大量的时间和金钱;缺点:和实际用户的行为有偏差,有些情况可能会偏差很大,同时开发一个好的模拟用户也很难。

【注释:参考文章 LEARNING END-TO-END GOAL-ORIENTED DIALOG Antoine Bordes, Y-Lan Boureau & Jason Weston】

这是 Facebook 在 2017 年发表的论文,其中对语料库的方式进行了评估:

文章中的数据集分为 3 类: 一类是从模板中生成的语料;一类是受雇人员和系统对话生成的语料;最后一类是人和人对话的语料。从实验结果可以看出,在生成的对话数据中效果很好,效果也有 60% 到 100%,但是在人机对话的数据中,效果下降一半,到了 41.1%,而在人和人对话的语料中,效果进一步打折,才到 16.7%。所以在生成对话方面的成果并不能保证实用案例的成功。该实验效果也印证了之前的分析结论:1)静态语料受限于数据收集的策略,有一定的局限性,你看不到不在数据中的效果;和实际用户数据会有偏差; 2)人和人数据难以在实际应用中使用,因为太开放,太自然,难以对数据进行控制;数据与最终应用的差异比较大。

 接下来,我们再来看看实际用户和受雇人员的区别 

实际用户:

  • 接近实际应用
  • 拥有大量潜在的用户

难点

  • 需要生产并维护有竞争力的产品
  • 具有潜在的隐私考虑
  • 没有有效的反馈信号,无法知道一个互动是否成功

受雇人员:

  • 适合在产品初期使用(即产品发布使用之前)
  • 能够允许试探未成熟有风险的策略(无需伤害用户体验,因为不是实际用户)
  • 没有隐私考虑 (所以百度才会想要通过众筹的方式来生成数据,而不是使用消费者的信息,因为这些信息是不能分发的。)

缺点

  • 和实际用户行为有差异
  • 用户量受限制,需要采用众包

说到真实和招募用户的差别,我想说一说 2010 年 CMU 的这篇论文,他们组织了一个比赛,让其他大学与他们学校现有的系统互换,每天有真实用户打电话来询问巴士时刻表信息,他们让其他大学的系统与自己的系统互换,完成同样的任务,但是系统是完全不一样的,他们利用真实用户来完成比赛。这就让我们有机会比较实验室的招募用户数据与后来的真实用户数据。

【注:参考文章 Spoken Dialog Challenge 2010: Comparison of Live and Control Test Results 】

左上角是语音识别测试,在实验中有三个不同的系统,系统 1 就是 CMU 的基准系统,系统 3 是学界顶尖研究人员建立的系统,系统 4 是业界的一个参赛团队做的,可以看到三个系统从实验室招募用户数据(control 组)转到真实用户数据(live 组)后错词率 (WER) 上升。系统 3 的表现明显下降,对话成功率从 90% 降到 65%,而系统 4 没有显著下降。系统 4 更针对商业应用,所以更谨慎,而不追求花哨,而系统 3 运用了先进的强化学习等技术,这些技术在清晰的语料环境下运作良好,但在真实用户数据下明显质量下滑。另外一个相关的问题,大家可以看下方的图表,左边是 control 组,右边是 live 组。在 control 组,最上方的系统 3,即使 ASR 准确率很低,它的表现也没有太大的下降,也就是说他们能够利用对话技术来补偿较差的 ESR 表现。但是在 live 组,所有系统对抗 ASR 准确率的能力都差不多,随着 ASR 准确率的下降,同步有明显下降。在数据分布不同的情况下(即实验室招募用户数据(control 组)转到真实用户数据(live 组)的差异),系统对于 ASR 准确率的容错能力也消失了。

 

另外有一篇 2007 年的文章,也通过实验数据说明了受雇人员和实际用户的行为差异。在左边这个图中,显示了对话长度、每轮长度等,可以看出受雇人员通常会采用更复杂更长的表达。他们的系统中还有一个是/否按键或回答功能,在回答某些问题是用户只需按是或否,或者回答是或否即可,但在实验室状态下,几乎没有用户使用是/否功能,他们更倾向于不停地说话,但真实用户只要一有机会就马上切换到是/否模式。「需要帮助」功能的差别更明显,实验室用户几乎从来不要帮助,而真实用户则非常频繁地寻求帮助。所以说受雇人员和实际用户的行为还是有不少差异的,对于数据收集来说,实际用户的数据是必不可少的部分。

 

接下来的内容是关于数据标注的问题

 

数据标注方面的问题就是,在你得到了数据之后,要如何处理呢。一个做法是放出原始数据,包括音频或转写后的文本,或者两者一起放出,这就是对话最容易被吸收的一面,你不需要坚持某一个分类系统或者某一个会话或语言学派,只要放出数据,大家都会同意音频中的词语是什么。但是直接从文本做端到端学习很困难,需要非常大量的数据。

另一方面,你可以提供统一的标注,但是需要解决很多的语言评估问题、形式标准化等问题,让大家在不同的数据集中使用相同的标注,这就需要使用具体的理论。选择什么样的标注体系(包括有哪些 intent 和 slots 等),比一般预期花的时间精力都要多。

 

标注对话状态是很困难的事情,首先必须定义清楚对话状态有哪些构成,其次对于人工标注来说,很难有统一的标准去标注。在 DSTC 中,在标注对话状态时出了问题,在标注 NLU 时很不清晰,因为各个系统使用的分类方法不同,某个特定的间隙值也没有统一标准,所以不得不通过众筹,询问工作人员某个特定的 NLU 假设是否正确。最终没有做到每一轮的参考标签标注,而是确定哪个 NLU 假设是正确的,然后用这个结果再估计对话状态。

 

接下来,讨论下目前的一些对话数据计划

 

首先是,第一界对话状态跟踪挑战,收集了之前的对话数据集,包括匹兹堡公交乘客的电话记录,一共 A,B,C 三种不同的对话系统用户数据收集。

 

数据集中包括系统和用户的对话,以及 slot 和 dialog state 的标注。其中 NLU 的输出是一个 slots 的 nbest 列表,dialog state 则是 slots 上的概率分布估计。

最后提一下现有的几个倡议,大家可能也已经听说过一些了。CMU 现在有一个项目,是对于刚刚说到的竞赛的延续,他们的方式是向学界的一些对话系统提供一个统一的界面,你可以去他们的网站跟他们的系统聊天,这个系统结合了学界的很多系统。如果你是实验室,可以把你的系统加进去,并获取用户与系统聊天的数据。还有一个亚马逊组织的竞赛,是针对建立聊天系统的,可以跟你进行 25 分钟的闲聊,会有很多团队相互竞争,普通的 Alexa 用户可以去尝试一下,这是用真实用户的开放式竞赛。现在正在进行决赛,希望能够看到亚马逊竞赛的结果。另一个项目是来自 Facebook 的,是针对对话分享很多数据集,报告说到的第一篇论文就是通过这个项目分发的数据集,你还可以让别人使用你的系统,来看一看系统质量如何。这些项目的有趣之处是,很多项目越来越关注现场互动,其中的几个项目让真实用户与系统互动,而不是使用语料库,还有一些项目侧重于数据存取和分发的标准化,还有一些使用模拟任务。

 

最后 Antoine Raux 博士对报告进行了总结:对话系统是个十分复杂的任务,需要各种各样的数据集。研究者和参与人员在设计语料收集时,需要注意做好权衡。最近的趋势是开展在线交互的方式收集数据,而不仅仅是固定的语料。

正如百度度秘事业部总经理景鲲所说,AI 操作系统需要不断学习和进化,数据越多就越智能。百度 DuerOS 普罗米修斯计划发布的三个大型数据集不仅可以有效激发、鼓励优秀的对话式 AI 人才及项目,更将推动该领域的产-学-研联动发展,推动智能语音的落地与应用。AI 的进步由每一组数据堆叠而成,AI 的未来也孕育在这些数据及其背后的不断学习之中。

产业百度产业DuerOS
暂无评论
暂无评论~