Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >微信智言夺冠全球对话系统挑战赛,冠军解决方案全解析

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

作者头像
机器之心
发布于 2019-03-21 09:36:26
发布于 2019-03-21 09:36:26
1.1K0
举报
文章被收录于专栏:机器之心机器之心

如何利用端到端的对话系统基于 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 技术研究上还将不断探索和提升,为各行业伙伴和终端用户提供一流的智能对话技术和平台服务——真正实现团队「对话即服务」的理念。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器之心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信AI拿下NLP竞赛全球冠军,“二孩”智言团队的实习生立功了
近日,在第七届对话系统技术挑战赛(DSTC7)上,首次亮相的微信智言团队一路过关斩将,最终拿下冠军。
量子位
2019/04/23
1.3K0
微信AI拿下NLP竞赛全球冠军,“二孩”智言团队的实习生立功了
重磅!一文彻底读懂智能对话系统!当前研究综述和未来趋势
作者:蒙 康 编辑:王抒伟 笔者在最近的研究中发现了一篇非常好的有关对话系统的论文,《A Survey on Dialogue Systems:Recent Advances and New Frontiers》,论文来自于京东数据团队,论文引用了近124篇论文,是一篇综合全面的介绍对话系统的文章,可谓是诚意满满,今天我们将其重点进行解读,以飨读者。 前言 1 拥有一个虚拟助理或一个拥有足够智能的聊天伙伴系统似乎是虚幻的,而且可能只在科幻电影中存在很长一段时间。近年来,人机对话因其潜在的潜力和诱人的商业
机器学习算法工程师
2018/03/06
3.1K0
重磅!一文彻底读懂智能对话系统!当前研究综述和未来趋势
ACL 2019对话系统论文综述,一文带你纵览16篇前沿研究
这次会议共接收到投稿 2905 篇,比 2018 的 1544 近乎翻倍,接收文章数为 660 篇,接收率为 22.7%,与 2018 年的 24.9%,2017 年的 23.3% 差别不大。
机器之心
2019/08/20
1.8K0
ACL | 自然语言处理(NLP)之多轮对话建模优化(Utterance ReWriter)
最近2019年新鲜的ACL论文出来了,发现了一篇关于多轮对话模型的文章还不错,其题目为:Improving Multi-turn Dialogue Modelling with Utterance ReWriter。文章单位:微信人工智能模式识别中心(腾讯)。文章的背景为:当前我们在日常多轮交流的时候,经常会出现前后相互参照和信息遗漏的问题,这对于人来说能够正确的理解出说话人的意图,但是对于机器来说,这是比较困难的。为此该篇文章提出了:为提高多轮会话模型水平,将重写人类的话语作为其一个预处理过程。
ShuYini
2019/08/08
3.4K2
ACL | 自然语言处理(NLP)之多轮对话建模优化(Utterance ReWriter)
[自然语言处理|NLP] 对话系统:从原理到实践
自然语言处理(NLP)在对话系统领域的应用越来越广泛,为人机交互提供了更智能、更自然的体验。本文将深入研究NLP在对话系统中的原理,介绍常见的技术方法,并提供一个基于Python和现代NLP库的简单实例,帮助读者更好地理解和应用这一领域的知识。
二一年冬末
2023/11/12
1.7K0
自动驾驶轨迹预测算法:NeurIPS挑战赛冠军方案
近日,美团无人车配送中心团队获得NeurIPS 2020 INTERPRET轨迹预测挑战赛Generalizability赛道冠军、Regular赛道亚军。本文主要是算法层面的介绍,希望能给从事相关工作的同学有所帮助或者启发。
美团技术团队
2021/02/24
1.2K0
自动驾驶轨迹预测算法:NeurIPS挑战赛冠军方案
【论文】赛尔原创 | EMNLP 2019基于知识库检索器的实体一致性端到端任务型对话系统
任务型对话系统可以用来帮助用户完成订购机票、餐厅预订等业务,越来越受到研究者的关注。近几年,由于序列到序列(sequence-to-sequence)模型和记忆网络(memory-network)的强大建模能力,一些工作直接将任务型对话建模为端到端任务型对话任务。如图一所示,输入输出定义如下:
zenRRan
2019/12/26
7270
【论文】赛尔原创 | EMNLP 2019基于知识库检索器的实体一致性端到端任务型对话系统
一文看懂!百度对话系统PLATO家族
PLATO是百度Siqi Bao等人在2020年-2021年针对NLP对话领域提出的一系列预训练模型,具体包括PLATO,PLATO-2,PLATO-XL,前两篇分别发表在ACL2020和ACL-IJCNLP2021,PLATO-XL则是今年9月在arxiv上预印。
NewBeeNLP
2021/11/12
2.4K0
一文看懂!百度对话系统PLATO家族
【论文笔记】A Sequence-to-Sequence Approach to Dialogue State Tracking
​ 本文提出了一种新的对话状态跟踪方法,称为 Seq2SeqDU,它将 DST 形式化为一个序列到序列问题。Seq2Seq-DU 的 独特之处 是它使用两个基于 BERT 的编码器分别对对话中的话语和模式描述进行编码,一个注意者计算话语嵌入和模式嵌入之间的注意,以及一个解码器生成表示对话当前状态的指针。
yhlin
2023/02/13
2.4K0
【论文笔记】A Sequence-to-Sequence Approach to Dialogue State Tracking
AAAI2020 | 自动化所&微信AI:双通道多步推理模型,更好解决视觉对话生成问题
本文是对中科院自动化所和腾讯微信AI团队共同完成,被 AAAI2020 录用的论文《DMRM: A Dual-channel Multi-hop Reasoning Model for Visual Dialog》进行解读,相关工作已开源。
AI科技评论
2020/02/21
8720
AAAI2020 | 自动化所&微信AI:双通道多步推理模型,更好解决视觉对话生成问题
DSTC10开放领域对话评估比赛冠军方法总结
本文介绍了国际竞赛DSTC10开放领域对话评估赛道的冠军方法MME-CRS,该方法设计了多种评估指标,并利用相关性重归一化算法来集成不同指标的打分,为对话评估领域设计更有效的评估指标提供了参考。相关方法已同步发表在AAAI 2022 Workshop上。希望能给从事该技术领域工作的同学一些启发或帮助。
美团技术团队
2022/01/25
9160
DSTC10开放领域对话评估比赛冠军方法总结
GPT/GPT2/DialoGPT 详解对比与应用-文本生成与对话
GPT 的全名:Generative Pre-Training,其论文标题是 Improving Language Understanding by Generative Pre-Training。
大鹅
2021/09/15
9.5K0
A Survey on Dialogue Systems: Recent Advances and New Frontiers 论文笔记
对话系统受到越来越多人的关注, 深度学习的兴起也带动了一系列研究的发展, 深度学习能够利用大量的数据和少量的人工处理来学习有意义的特征表达以及回答的生成策略, 该文章将现有的对话系统划分成了面向任务的模型和非面向任务的模型, 给出了现有各个研究观点以及可能的研究方向, 介绍了深度学习如何在典型的算法中发挥作用
Mezereon
2018/09/13
9950
A Survey on Dialogue Systems: Recent Advances and New Frontiers 论文笔记
清华大学王延森:如何利用提问增强开放领域对话系统互动性
AI 科技评论按:现如今,诸如小冰这类闲聊机器人逐渐进入了大众的视野,甚至成为了一部分人打发闲暇时光的伴侣。然而,现在的闲聊机器人在对话的互动性、一致性以及逻辑性上都还存在着一些亟待解决的缺陷。
AI科技评论
2018/09/21
1.1K0
清华大学王延森:如何利用提问增强开放领域对话系统互动性
ChatGPT基本原理详细解说
在人工智能领域,自然语言处理(NLP)一直是研究的热点之一。随着技术的发展,我们见证了从简单的聊天机器人到复杂的语言模型的演变。其中,ChatGPT作为一项突破性技术,以其强大的语言理解和生成能力,引起了广泛的关注。本文将对ChatGPT的基本原理进行解说。
正在走向自律
2024/12/18
7310
ChatGPT基本原理详细解说
检索式对话系统在美团客服场景的探索与实践
在传统的客服、IM等场景中,坐席需要花费大量时间回答用户的各种咨询,通常面临答案查询时间长、问题重复、时效要求高等挑战。因而,使用技术手段辅助坐席快速、准确、高效地回答用户的各类问题非常有必要。
美团技术团队
2022/12/16
1.4K0
检索式对话系统在美团客服场景的探索与实践
业界 | 思必驰推出启发式对话系统,关注知识传播的会话精灵
对于对话系统来说,一般都可以分为特征处理、理解意图和生成答案等过程。思必驰北京研发院 NLP 负责人葛付江解释,在接收问句后,系统会进行进行分词、词性标注以及命名实体识别等过程以完成问句的特征处理过程。
机器之心
2018/07/26
5040
业界 | 思必驰推出启发式对话系统,关注知识传播的会话精灵
论文|ACL2016最佳论文:用于口语对话系统策略优化的在线自动奖励学习
摘要 计算正确奖励函数的能力对于通过加强学习优化对话系统十分的关键。在现实世界的应用中,使用明确的用户反馈作为奖励信号往往是不可靠的,并且收集反馈花费也十分地高。但这一问题可以有所减轻,如果能提前知道用户的意图或是数据能预先训练任务离线的任务成功预测器。在实践中这两种都不太适合现实中的大多数应用。在这里我们提出了一个在线学习框架,通过带有高斯过程模式的主动学习,对话策略能按照奖励模式共同进行训练。高斯过程开发了一系列连续的空间对话表示,但都是在无监督的情况下使用递归神经网络编码和解码器完成的。试验结果表明所
AI科技评论
2018/03/07
1K0
论文|ACL2016最佳论文:用于口语对话系统策略优化的在线自动奖励学习
如何成为一名对话系统工程师
作者 | 吴金龙 责编 | 何永灿 对话系统(对话机器人)本质上是通过机器学习和人工智能等技术让机器理解人的语言。它包含了诸多学科方法的融合使用,是人工智能领域的一个技术集中演练营。图1给出了对话系统开发中涉及到的主要技术。 对话系统技能进阶之路 图1给出的诸多对话系统相关技术,从哪些渠道可以了解到呢?下面逐步给出说明。 图1 对话系统技能树 数学 矩阵计算主要研究单个矩阵或多个矩阵相互作用时的一些性质。机器学习的各种模型都大量涉及矩阵相关性质,比如PCA其实是在计算特征向量,MF其实是在模拟SVD计算
用户1737318
2018/06/05
1K0
一文速览 | 对话生成预训练模型
大规模预训练言模型在生成式对话领域近年来有非常多的工作,如百度PLATO系列(PLATO[1]/PLATO-2[2]/PLATO-XL[3]),微软DialoGPT[4],谷歌Meena[5],FaceBook Blender[6]等等,得益于大规模参数和精细的模型设计,这些对话生成预训练模型(Dialogue PTMs, 本文以下简称D-PTMS)在开放域对话获得了非常好的表现。
NewBeeNLP
2021/11/19
1.6K0
一文速览 | 对话生成预训练模型
推荐阅读
相关推荐
微信AI拿下NLP竞赛全球冠军,“二孩”智言团队的实习生立功了
更多 >
领券
社区新版编辑器体验调研
诚挚邀请您参与本次调研,分享您的真实使用感受与建议。您的反馈至关重要,感谢您的支持与参与!
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
首页
学习
活动
专区
圈层
工具
MCP广场
首页
学习
活动
专区
圈层
工具
MCP广场