Auto Byte

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

微信扫一扫获取更多资讯

Science AI

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

微信扫一扫获取更多资讯

路雪原创

微信智言夺冠全球对话系统挑战赛,冠军解决方案全解析

如何利用端到端的对话系统基于 Fact 和对话历史生成靠谱的回答,微信智言团队有话说。

前不久,微信智言团队夺得第七届对话系统技术挑战赛(DSTC7)Track 2 赛道的冠军。

DSTC7 挑战赛由来自微软研究院、卡耐基梅隆大学(CMU)的科学家于 2013 年发起,旨在带动学术与工业界在对话技术上的提升,是对话领域的权威学术比赛。本届挑战赛分为三个方向,微信模式识别中心参加了其中一个方向:基于 Fact(如百科文章、Blog 评论)与对话上下文信息自动生成回答。共有 7 支队伍、26 个系统参加该竞赛。

据了解,微信智言团队的主要参赛成员是微信模式识别中心的暑期实习生 Jiachen Ding,目前在上海交通大学读研;另一名成员 Yik-Cheung (Wilson) Tam 博士毕业于 CMU,现任职于微信模式识别中心,对这一参赛项目提供了指导。近日,Wilson 接受了机器之心的采访,就任务详情、模型结构、训练细节等进行了介绍。

DSTC7 Track 2 任务简介

DSTC7 Track 2「Sentence Generation」任务要求基于 Fact 和对话历史自动生成回答。该任务与传统对话系统不同的一点是,它要求利用端到端的对话系统自动读取 Fact。这就像使对话系统具备阅读理解的能力,能够基于 Fact 产生正确的答案。

竞赛提供的 Fact 可能是维基百科文章、新闻等。如下图所示,DSTC7 Track 2 提供的数据集包括来自 reddit 社区的 300 万对话问答,以及从 reddit 网页上相关的网页中提取的 2 亿个句子。

DSTC7 Track 2 竞赛的数据集构成示例。

Wilson 告诉机器之心,这个任务的难点在于:对话系统生成的答案需要与 Fact 相关,而 Fact 是非结构化数据,相对来讲比较难处理。

传统的聊天机器人没有「阅读」Fact 的机制,所以聊天回答可能会有偏差,例如:这家火锅店好不好吃?机器人回答有时会说「这家店的菜很好吃」,有时也会说「这家店的菜很差」,没有办法给出与真实点评一致的回答。

而结合了 Fact 和对话上下文信息的对话系统所生成的回答能够基于 Fact 中的真实信息作答,确保回答是有用、有信息的。

模型架构

微信模式识别中心提出一种基于注意力机制来「阅读」Fact 与对话上下文信息的方法,并利用原创动态聚类解码器,产生与 Fact 和上下文相关并且有趣的回答,在自动和人工评测都取得最佳成绩。

上图展示了该系统的整体架构,包括数据预处理、对对话历史和 Fact 执行端到端的编码器-解码器注意力建模、改进版解码策略。

下面我们来看一下每个模块的具体细节。

首先是数据预处理。这一步直接决定了系统的性能,Wilson 认为在所有模块中数据预处理是模型训练中最重要的模块之一。该竞赛提供的数据集中很多网页存在大量无关信息(如广告),模型训练时需要先进行数据预处理工作。

在数据清洗过程中,微信智言团队去除了对话历史数据中 reddit 网页上的无用信息(如广告、导航栏、页脚),并简化 Fact 文章内容:从相关 Fact 文章中提取与对话历史关联度高的信息,将平均 4000 单词的文章压缩至至多 500 个 word token。

若我们将 Fact 与对话历史编码为隐藏向量,再借助解码器就能将这些信息解码为对应的回答。其中如上所示编码器比较简单,直接用 BiLSTM 就行了。而如果需要得到优质回答,虚框内的解码过程就必须精炼候选回答,这也是该对话系统解决的核心问题。

为了解码为优质回答,微信团队主要利用了注意力机制k 均值聚类语言模型等方法,它们一方面保证集成对话历史和 Fact 信息,另一方面也最大限度地保障回答的多样性和有趣。

其中 k 均值聚类主要对  Beam search的候选回答进行聚类,这样就能识别重复或类似的回答。然而由于该模型解码器中使用了注意力机制,因此对话历史和 Fact 中的 token 可能被重复关注,从而生成重复的 N-grams。因此微信团队随后会移除重复的 N-grams,减少垃圾回答。

在经过了两次筛选之后,最终得到的 top n 个回答中仍可能包含安全却无用的回答。微信智言团队选择构建一个语言模型(LM),过滤掉无用的回答。最后,只需要选择概率最高的作为最终回答就可以了。

解码过程

微信智言团队使用双向 LSTM 分别编码对话历史和 Fact,然后对二者执行注意力机制,即解码器在每个时间步中通过注意力机制关注编码器输入的不同部分。然后利用模式预测和输出词概率估计来计算最终的单词概率分布

解码步流程。微信团队使用 pointer generator 模型,允许复制对话历史(H)和事实(F)。在每个解码时间步中,计算三个动作概率,即从 h 中复制一个 token,从 f 中复制一个 token,生成一个 token。最终的单词概率分布是这三个概率分布的线性插值

传统的 seq-to-seq 模型易遇到 OOV 问题。为此,智言团队选择使用斯坦福大学 Abigail See 等人提出的 pointer-generator 方法(原用于文本摘要任务)。他们将该模型从支持两种模式(生成 token 和复制 token)扩展为支持三种模式:生成 token;从对话历史中复制 token;从 Fact 中复制 token。然后模型在每个解码步将所有可用特征级联起来,包括使用注意力机制后得到的对话历史向量和 Fact 向量、解码器隐藏状态、最后一个输入词嵌入。再使用前馈网络和 Softmax 层进行模式预测。

最后,模型对上述三种模式的词汇分布执行线性插值,从而计算出最终的单词概率分布,其中 m 对应于复制机制中的模式索引:

Beam search 解码策略

传统的束搜索方法主要目的是找到概率最大的假设,但对话系统中往往出现很多安全却无用的回答,很可能概率最大的句子并非是最合适、最有趣的回答。因此微信智言团队在束搜索中继承了 K 均值聚类方法,将语义类似的假设分组并进行修剪,以提高回答的多样性。

如下所示为带 k 均值聚类的束搜索,首先模型会和常见的束搜索一样确定多个候选回答,在对这些候选回答做聚类后,每一个集群都会是类似的回答。如果我们对每一个集群包含的候选回答做一个排序,那么就能抽取到更合理的候选回答,这样也会因为集群而增加回答的多样性。最后,使用语言模型聚类得到的所有候选答案进行评分,符合自然语言表达的假设就能输出为最终的回答。

模型训练 trick

除了介绍模型之外,Wilson 还向机器之心介绍了模型训练过程中的具体技巧。

该模型基于 TensorFlow 框架构建,直接使用 pointer generator 模型的源代码,改进以适应该竞赛任务,从而在有限时间内完成比赛任务。

  • 实现地址:https://github.com/abisee/pointer-generator

该模型训练过程中,微信智言团队最初使用了单机版 GPU,训练时间为 5 天。

Wilson 表示训练过程中遇到的最大困难是数据预处理,同时他也认为数据预处理是模型训练中最重要的模块之一。其次是束搜索,他们在束搜索中结合了 K 均值聚类,从而有效地过滤掉无用的回答,提高回答的多样性。

关于微信智言

微信智言是继微信智聆之后,微信团队推出的又一 AI 技术品牌。微信智言专注于智能对话和自然语言处理等技术的研究与应用,致力于打造「对话即服务」的理念。目前已经支持家居硬件、PaaS、行业云和 AI Bot 等四大领域,满足个人、企业乃至行业的智能对话需求。

在家居硬件方面,目前腾讯小微已经与多家厂商有合作,如哈曼•卡顿音箱、JBL 耳机和亲见智能屏等智能设备。

此外,腾讯小微定制了很多预置服务(如听歌、查天气、查股票等),但由于不同领域的需求不同,为提高可扩展性,微信智言团队为第三方开放 PaaS 平台,让任何一个开发人员甚至产品经理都可以基于自己领域的业务逻辑、业务需求在 PaaS 平台上搭建自己的应用和服务。

行业云提供面向企业客户的完整的解决方案,为企业快速搭建智能客服平台和行业任务智能对话系统。以客服系统为例子,很多公众号希望搭建对话机制,自动回答用户的问题。开发人员只需将数据上传到微信智言的平台,微信智言团队即可提供 QA 系统。此外,微信智言还提供定制服务,比如 NLP 方面的基础服务,包括分词、命名实体识别、文本摘要等,用服务的方式为客户提供技术。

据了解,微信智言已经通过智能对话技术服务于国内外数百万的用户。微信智言在 AI 技术研究上还将不断探索和提升,为各行业伙伴和终端用户提供一流的智能对话技术和平台服务——真正实现团队「对话即服务」的理念。

产业微信对话系统
4
相关数据
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

概率分布技术

概率分布(probability distribution)或简称分布,是概率论的一个概念。广义地,它指称随机变量的概率性质--当我们说概率空间中的两个随机变量具有同样的分布(或同分布)时,我们是无法用概率来区别它们的。

模式识别技术

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

聊天机器人技术

聊天机器人是经由对话或文字进行交谈的计算机程序。能够模拟人类对话,通过图灵测试。 聊天机器人可用于实用的目的,如客户服务或资讯获取。有些聊天机器人会搭载自然语言处理系统,但大多简单的系统只会撷取输入的关键字,再从数据库中找寻最合适的应答句。

对话系统技术

对话系统大致被分成两类: 任务为导向的对话系统,帮助用户去完成特定任务,比如找商品,订住宿,订餐厅等。实现任务为导向的对话系统,主要有两类方式,流水线方法和端到端方法。非任务导向的对话系统,与用户进行互动并提供回答,简单的说,就是在开放领域的闲聊。实现非任务导向对话系统也主要可分为两类,生成方法和基于检索的方法。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

腾讯机构

腾讯,1998年11月诞生于中国深圳,是一家以互联网为基础的科技与文化公司。我们的使命是“通过互联网服务提升人类生活品质”。腾讯秉承着 “一切以用户价值为依归”的经营理念,为亿万网民提供优质的互联网综合服务。 腾讯的战略目标是“连接一切”,我们长期致力于社交平台与数字内容两大核心业务:一方面通过微信与QQ等社交平台,实现人与人、服务及设备的智慧连接;另一方面为数以亿计的用户提供优质的新闻、视频、游戏、音乐、文学、动漫、影业等数字内容产品及相关服务。我们还积极推动金融科技的发展,通过普及移动支付等技术能力,为智慧交通、智慧零售、智慧城市等领域提供有力支持。

http://www.tencent.com/
相关技术
聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

推荐文章
暂无评论
暂无评论~