福彩3d近500期走势图官网

  • 时间:
  • 浏览:64
  • 来源:足彩2串1什么意思

语义匹配

语义匹配是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模型,用以解决多轮对话的语义匹配问题。

dam模型概览(deep attention matching network)

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

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

自注意力机制(self-attention)

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

互注意力机制(cross-attention)

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

在实践中,dam将上下文和回复中的每句话的每一个单词当做一个语段的中心语义对待,通过堆叠注意力机制,从不同级别上丰富其语义表示,进而围绕该中心单词,生成更多高级的语段的语义表示。这样上下文和回复中的每句话都是在考虑了文本相关和依赖关系的情况下,且基于不同粒度进行匹配的。

dam首先捕获从词级到句级的上下文和回复之间的匹配信息,然后通过卷积和最大池化操作提取最匹配的特征,最后通过单层的感知网络得到一个匹配得分。

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个候选回复。

dam模型paddlepaddle实战

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

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

.

猜你喜欢

体彩超级大乐透后区走势图综合版官网

本报讯位于城阳区城阳街道黑龙江北路的万兴国际五金城项目主体结构将于年内完工。项目建成后,将成为青岛最大的综合性五金机电市场,有望解决万人就业。 青岛万兴国际五金城项目

2019-09-30

双色球1500期走势图平台

在人们日常生活中,五金锁具发挥着保护财产、隐私以及安全的重大作用,对于不同程度的安全需要,如今的五金锁具市场需求也越来越多样化,对锁具的质量和技术含量的要求也越来越高。房地产的

2019-09-30

最新双色球开机号分析官网

湖北2013-12-31(中国商业电讯)--我国五金行业通过艰苦的奋战,终于在近几年频频迎来好消息。历经十年的发展,五金行业历经风风雨雨,8000亿元及至1万亿元的销售额,使得

2019-09-30

体育彩票大乐透玩法规则平台

福清市蔬菜种植获批第八批国家农业综合标准化示范项目:为我市唯一获批的国家级农业标准化示范区和福清市第四个国家级农业标准化示范区项目。项目执行时间为3年,计划完成蔬菜标准化种植示

2019-09-24

2019年3D066期字谜平台

眼下早已过了冬种的季节,画水镇黄田畈村白龙山脚一带的数百亩农田依然是稻茬朝天。2012年,承包了这些田地的两个种粮大户是种了八十多亩小麦的,现在为什么都不种了呢?带着这个问题,

2019-09-24