您的位置:首页 > 互联网

让聊天机器人完美回复--基于PaddlePaddle的语义匹配模型DAM

发布时间:2019-04-09 11:23:26  来源:互联网     背景:

  引言

  语义匹配是NLP的一项重要应用。无论是问答系统、对话系统还是智能客服,都可以认为是问题和回复之间的语义匹配问题。这些NLP的应用,通常以聊天机器人的形式呈现在人们面前,目标是通过对话的上下文信息,去匹配最佳的回复。因而,让聊天机器人完美回复问题,是语义匹配的关键目标。作为国内乃至国际上领先的NLP技术团队,百度在NLP领域积极创新、锐意进取,在聊天机器人的回复选择这个关键NLP任务上,提出了效果最优的深度注意力匹配神经网络DAM,并开源了基于PaddlePaddle的模型实现。本文对该模型的相关原理和应用加以介绍。

   DAM在PaddlePaddle项目的地址:https://github.com/PaddlePaddle/models/tree/develop/PaddleNLP/deep_attention_matching_net

  关键应用—聊天机器人多轮对话的回复选择

  基于检索的聊天机器人最重要的一项任务是从给定的候选回复中,选取与问题最匹配的回复。

  这一项研究的关键挑战是需要去捕获对话中不同粒度的语义依赖关系,如图1中的对话示例所示,对话的上下文和候选回复之间存在不同粒度上的两种关系:1)直接的文本相关,比如单词”packages”和”package”,或者短语”debian package manager”和”debian package manager”,他们之间直接有重叠的词汇。2)语段之间隐式相关关系,比如回复中的单词”it”指代的是上文中的”dpkg”,回复中的”its just reassurance”对应的是”what packages are installed on my system”。

  早期研究已经表明,在多轮对话中,从不同的语义粒度上捕获语段对之间的关系是选出最佳回复的关键所在。然而现有的模型更多的要么是考虑文本的相关关系,从而对于隐式相关的关系提取的还不够好,要么是使用RNN模型,在捕获多粒度语义表示上,开销又太大。面对这些挑战,百度NLP团队提出了DAM模型,用以解决多轮对话的语义匹配问题。

图1 多轮对话的示例

  DAM模型概览(Deep Attention Matching Network)

  DAM 是一个完全基于注意力机制的神经匹配网络。DAM的动机是为了在多轮对话中,捕获不同颗粒度的对话元素中的语义依赖,从而更好得在多轮对话的上下文语境中回复。

  DAM受启发于机器翻译的Transformer模型,将Transformer关键的注意力机制从两个方面进行拓展,并将其引入到一个统一的网络之中。

   自注意力机制(self-attention)

  从单词级的嵌入中堆叠注意力机制,逐渐捕获不同粒度的语义表示。比如对一个句子使用注意力机制,可以捕获句子内部词级别的依赖关系。这些多粒度的语义表示有助于探索上下文和回复的语义依赖关系。

   互注意力机制(cross-attention)

  在上下文和回复之间应用注意力机制,可以捕获不同语段对之间隐式的依赖关系,从而为文本关系提供更多的补充信息从而为多轮对话选择更好的回复。

  在实践中,DAM将上下文和回复中的每句话的每一个单词当做一个语段的中心语义对待,通过堆叠注意力机制,从不同级别上丰富其语义表示,进而围绕该中心单词,生成更多高级的语段的语义表示。这样上下文和回复中的每句话都是在考虑了文本相关和依赖关系的情况下,且基于不同粒度进行匹配的。DAM首先捕获从词级到句级的上下文和回复之间的匹配信息,然后通过卷积和最大池化操作提取最匹配的特征,最后通过单层的感知网络得到一个匹配得分。

      DAM技术详解

/var/folders/0n/g1pl6yq514l55xccdjx1vgsm2nw6tc/T/com.microsoft.Word/WebArchiveCopyPasteTempFiles/Figure1.png

图2 DAM模型网络结构

  DAM模型的网络结构如图2所示。它包括表示-匹配-聚合三个主要部分,输入是对话的数据集,由上下文的文本每一句话u和回复r所对应的词嵌入组成,输出是得到一个对话中上下文与回复之间的匹配分数。

  表示模块能够对输入的上下文u和回复r构建不同粒度的语义表示。通过堆叠多层相同的自注意力模块,将输入的语义词嵌入构建为更加高级的语义表示。得到语义表示之后,上下文与回复以语段-语段相似矩阵的形式互相匹配。匹配有两种,自注意力匹配和互注意力匹配,分别可以衡量上下文与回复之间的文本关系和依赖关系。这些匹配的分数会形成一个3D的匹配图Q,它的维度分别代表上下文中的每一句话、每句话中的每个单词以及回复中的每个单词。接着,语段对之间的匹配信息通过卷积和最大池化提取,进一步得通过单层感知网络聚合,得到匹配的分数,代表候选回复与上下文之间的匹配程度。

图3 注意力模块

  DAM网络中使用了注意力模块实现自注意力和互注意力机制,它的结构如图3所示。该结构借鉴了Transformer模型中的注意力机制的实现。它的输入有三个部分,query语句、key语句和value语句,分别以Q、K和V表示。注意力模块会首先对query语句和key语句的每个单词进行标量点积注意力(Scaled Dot Product Attention)计算,具体计算如公式(1)和(2)所示。算出的Vatt存储了语义信息,代表了query语句和value语句之间的相互关系。Vatt与query语句输入会相加一起,组成了一个能够代表它们联合含义的语义表示。然后通过一层标准化(Normalization)的操作,可以避免梯度消失或者爆炸。再接着,使用Relu激活函数的前馈神经网络FFN进一步处理聚合的词嵌入,操作如公式(3)所示。

  公式(3)中,x代表的是一个与query语句一样形状的2Dtensor,W1,W2,b1和b2都是要学习的参数。最后的输出还会经过一次标准化操作,从而得到最后的结果。整个注意力模块的结果由公式(4)表示。

  整个注意力模块可以捕获query语句和key语句的依赖关系,利用依赖信息可以得到语义表示,再进一步的构建多粒度的语义表示。

  公式(5)和(6)就是利用了注意力模块,得到了上下文和回复的多粒度语义表示信息。公式(7)得到了自注意力的匹配矩阵。公式(8)和(9)通过注意力模块得到上下文与回复之间的语义表示信息,进一步的组成互注意力的匹配矩阵。

  自注意力矩阵和互注意力矩阵聚合成了一个3D匹配图Q。再通过带最大池化的3D卷积,得到匹配特征,最后通过单层感知层进行匹配分数的计算。

  DAM模型在Ubuntu和豆瓣对话两个语料库上测试了多轮对话任务,如表1所示,相比其他模型获得了最优的效果。

  Ubuntu语料库是英文的关于Ubuntu系统troubleshooting的多轮对话数据。它的训练集包括50万个多轮对话的上下文文本,每个对话文本带有1个人类积极回答的正例回复和1个随机采样的负例回复。它的验证集和测试集各自包括5万个上下文文本,每个上下文文本各有1个正例回复和9个负例回复。豆瓣对话语料库是中文的关于一些开放领域的对话数据集。它的验证集包括5万个对话实例,每个实例各有1个正例和负例回复,测试集有1万个实例,每个实例有10个候选回复。

Figure2.png

表1:DAM模型的效果对比

  DAM模型PaddlePaddle实战

  环境准备:首先根据项目文档要求,下载最新版本的PaddlePaddle。Python的版本要求>=2.7.3

  项目的代码目录及简要说明如下:

  下载项目以后,接下来以Ubuntu语料库应用为例:

  进入ubuntu目录

  cd ubuntu

  下载预处理好的数据用于训练。项目提供了下载数据的脚本

  sh download_data.sh

  执行训练和评估的脚本

  sh train.sh

  使用如下脚本,可以了解更多关于arguments的使用说明。

  python ../train_and_evaluate.py --help

  默认情况下,训练是在单个的GPU上执行的,用户也可以转到多GPU模式运行。只需要将train.sh脚本中的可见设备重置一下即可。比如

  export CUDA_VISIBLE_DEVICES=0,1,2,3

  执行测试脚本

  sh test.sh

  类似的,用户可以很容易的利用Douban对话语料库进行实验。

  传送门:

  PaddlePaddle Github项目地址:

  https://github.com/PaddlePaddle

  DAM模型项目地址:https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleNLP/deep_attention_matching_net






特别提醒:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。


返回网站首页

本文评论
什么是5G,用户说了算
4月26日, 中国电信5G创新合作大会 在深圳五洲宾馆隆重举行。 中国电信......
日期:04-27
打造新华三教育数字大脑,持续探索智慧校园建设前沿
随着现代科技的发展与应用,创新教育发展、深化教学治理改革,在推进教育改革2.0的进程中不可或缺。......
日期:04-23
欧特克携空中客车展示衍生式设计对制造和建造带来的积极影响
【2019年11月28日,美国拉斯维加斯】 欧特克和空中客车都致力于推动先进技术的发展,以追求不断的创......
日期:11-29
关于ITBEAR因转载“腾讯二选一”文章 被腾讯索赔100万的公告
2018年、2019年期间,字节跳动(今日头条母公司)与腾讯曾发生过一次著名的"头腾大战",其中有不少媒......
日期:06-03
小米推出后盖彩膜新服务:3 分钟换 “装”,8 月 16 日免费贴
8 月 9 日消息 据IT之家网友投稿,小米推出了一个后壳彩膜的新服务,并且在 8 月 16 日当天可免费贴......
日期:08-09
小米推出长期云服务会员
(原标题:小米推出长期云服务会员,最高可达60年) 2月14日消息 据IT之家网友反馈,小米现已推出云服务会员长期方案,包括...
日期:02-14
日本餐饮行业开始大量启用送餐机器人 积极应对人口老龄化挑战
近日,日本东京山手线第30个新车站“高轮Gateway站”内,东日本铁路公司(JR东日本)正在全......
日期:07-30
哪款手机玩游戏好?从《绝地求生》看ROG游戏手机2的屏幕表现力!
据悉,很多人喜爱ROG游戏手机2的主要原因,是因为它的屏幕效果好,因为,屏幕是玩家与游戏手机最直观的......
日期:04-23
互联网迎电商发展新阶段 网易严选构建品质零售新业态
2019年,中国互联网发展步入第20个年头。在进入移动互联网时代后,线上购物迎来发展新机遇,移动端......
日期:10-08
2020年出货量将达40.7万台,激光电视凭何弯道超车?
首届世界显示产业大会近日在安徽合肥举行,这是中国首次举办的最高规格的显示产业会议。中国电视视......
日期:11-28
天仙配!丹拿Esotec系列音响功放搭配独家秘籍
上期我们讲解了丹拿Esotan系列音响功放搭配 丹粉们反响热烈 如果错过上期精彩的......
日期:07-03
拒绝干燥,拥抱滋润亚都加湿器值得拥有
对于长期生活在西北一带的人们来说,最让人们痛苦的就一个字:干!干燥的气候导致了皮肤长期处于缺水......
日期:08-06
第十三届物流透明管理峰会召开,“数字化+”加速物流变革
工业互联网的风潮渐趋猛烈,数字化转型成为各行各业公认的变革方向。在即将到来的数字化时代,颇具......
日期:10-12
2018年和2019年上半年运营层面已盈利 解读旷视上市背后的隐藏实力
下一个十年的行业风向是什么?这个曾经虚无缥缈的问题在已经迈入5G时代的今天逐渐明朗了起来,AI的大......
日期:08-26
运营商逐步取消不限量套餐
(原标题:媒体:三大运营商将逐步取消不限量套餐) 8月2日消息 此前IT之家报道,根据一份中国电信集团公司公布的《关于调...
日期:08-02
以卓越算力奠基“智能+”时代 浪潮商用机器亮相2019 IBM中国论坛
日前,一年一度的科技与商业盛会“2019 IBM中国论坛”在北京召开。作为商业科技领域最有......
日期:05-24
CoinAll首发Pivot免手续费一周,平台为何赔本赚吆喝?
随着互联网的发展,个体表达和寻求认同的需求与时俱进,协作平台成为获取信息、相互连接的主要方式......
日期:06-13
拥抱智能时代 2020全球智博会带你洞见未来
自动驾驶解放双手,车内移动办公不再是梦、人体测温融入日常,助力社会复产复学、高清视频实时监控......
日期:07-27
附近景点开放了吗?百度APP搜一搜就能了解
春分已过,又到了万物复苏的季节,因疫情已经宅了一个多月的你,是不是很想出门撒个欢?随着疫情好转......
日期:03-13
荣耀两款MagicBook系列新品今日开售
7月29日消息 荣耀MagicBook系列新品今日发售。荣耀官方称,两款新品开售后8分钟销量即突破万台,15......
日期:07-29