揭秘任务型对话机器人(下篇)

本文来自专栏语言、知识与人工智能,作者腾讯知文实验室

近年来比较热门的任务型对话的研究主要集中在端到端的框架的研究,基本跟传统任务型算法框架——语言理解模块(Spoken Language Understanding,对话管理模块(Dialogue Management),自然语言生成模块(Natural Language Generation)有较大的差别。其中一些这类模型本质上实际为一些sequence-to-sequence结合知识库的架构,如Manning 2017年的两篇也是Encoder-Decoder的模型。不过,这类模型对数据标注要求很高(可以参见Stanford Dialog Dataset的标注),仍然处在探索阶段,业界上真正实用性较强依旧以传统的算法框架为主。本篇文章也是着重介绍传统算法框架中的语言理解模块,着重于语言理解模块中的意图与槽位的联合模型。

本文的主要目录结构

首先回顾一下任务型导向对话的要点,包括概念及实例(Ideepwise与阿里小蜜等);其次从任务型的语义表示说起到整体的对话框架也包括一些实例;最后也是本文的重点,我们将介绍传统算法框架中语言理解模块的意图与槽位的联合模型。

1. 什么是任务型?

任务型的概念

对象
任务型导向的对话指特定条件下提供信息或服务的对话。通常情况下是为了满足带有明确目的的用户。

具体场景与功能

例如查流量,查话费,订餐,订票,咨询等任务型场景。由 于用户的需求较为复杂,通常情况下需分多轮陈述,用户也可能在对话过程中不断修改与完善自己的需求,任务型机器人需要通过询问、澄清和确认来帮助用户明确目的。

任务评价

首先要有解决问题的明确目标,评价指标较重要的一点为,轮次尽可能少,尽量直逼答案 ,如果答非所问严重影响用户使用。

任务型与闲聊对比

Ideepwise产品:
img

阿里小蜜产品:
img

从上面可以看出任务型导向的对话目的十分明确,关键是获取意图与约束条件(槽位)以及对话状态的追踪。

任务型导向对话在大家族中的位置

img

这里的分类是这样分的:首先将对话分为问答与会话,在问答中按照文档是否结构化分为无结构化文档与结构化文档。无结构化文档中包含一些如IR信息检索(如QA对,查找文档的问题),IE信息抽取(如阅读理解,查找文档中的精确片段),这一块的难点在于相似性的计算。结构化文档中包含数据库,知识图谱等,他们的输入为结构化的片段,数据库具有查询的功能,知识图谱具有查询与推理的能力,这一块的难点其实也是如何获取自然语言中的约束条件(槽位)的问题。接下来重点看下会话,会话划为为闲聊型,任务型等,传统的任务型分为语言理解模块(SLU),对话管理模块(DM)以及自然语言生成模块(NLG)等。后续的介绍主要针对SLU模块中的联合模型的一个介绍。

语义的表示方法是自然语言领域的难点,这对于任务导向的对话来说也是如此……

2. 任务型中的语义表示

自然语言如何解析成合适的语义表示一直是一个难题。下面主要介绍三种相关的语义表示方法。

1. 分布语义表示(Distributional semantics)
主要包括词level与句子level。词level上主要有:Word2Vector, GloVe, ELMo, FastText…等句子level主要有Skip-Thoughts, Quick-Thoughts, InferSent…等分布式表示

2. 框架语义表示(Frame semantics)
主要包括三元组的形式,Action(slot,value),例如查询币种,Inform(货币=人民币,…)

3. 模型论语义表示(Model-theoretic semantics)
这是十分有趣的一种表示方式,参见Paul Gochet著作《Philosophical Perspectives for Pragmatics》。

例如一些词表示成两个集合的运算 :
img

传统的任务型算法框架上一篇文章介绍过,这里祭上图回顾一下:
img

我们这里以一个例子开始语言理解模块的拓展。对于一段对话我们需要通过语言理解模块对它进行解析,包括领域的识别如是航空还是酒店,以及每个片段的意图,比如是购票还是退票,以及每个具体意图下的约束信息(槽位)。
img

3. 语言理解模块

语言理解模块主要包括意图与槽位的识别。意图的识别实际上是一个分类问题,如基于规则,传统机器学习算法 (SVM),基于深度学习算法(CNN, LSTM, RCNN, C-LSTM, FastText)等。意图在对话中还涉及转换,这里不在说明。Slot识别实际上是一种序列标记的任务,如基于规则 (Phoenix Parser),基于传统机器学习算法 (DBN; SVM),基于深度学习算法(LSTM, Bi-RNN, Bi-LSTM-CRF)。有些人可能不大区别slot与实体的区别,下面以BIO标注举个例子:

如”show flights from Boston to New York today“中对于实体来讲Boston与New York都是标注为city,而对于slot来说区分为出发城市与目的地城市,可以这样说槽位的种类相比与实体更加的多元化。

img

Joint Model (Intent+Slot)

1. 第一篇文章主要利用双向的GRU+CRF作为意图与槽位的联合模型。

Zhang X, Wang H. A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding[C] IJCAI. 2016

模型如下:
img

  • 输入为窗口化的词向量:
    img
  • 利用双向GRU模型学习到高维度特征。
  • 意图与槽位

对于意图分类来说,利用每一个学习到的隐藏层特征,采用max pooling槽位得到全句的表达,再采用softmax进行意图的分类:

img

img

对于槽位来说,对每个隐藏层的输入用前向网络到各个标签的概率,并采用CRF对全局打分得到最优的序列。

img

联合的损失函数为槽位与意图的极大似然

img

本文的模型简单而且槽位识别的准确率与意图识别的准确率都达到很高的水准,

本文的结果基于ATIS数据集:

Intent :98.32 Slot (F1):96.89

2. 第二篇主要采用利用语义分析树构造了路径特征对槽位与意图的识别的联合模型。(RecNN+Viterbi)

Guo D, Tur G, Yih W, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C] 2014 IEEE. IEEE, 2014

先介绍下本文的basic Recursive NN的模型

img

输入为单个词向量(后续优化输入为窗口的词向量),每个词性被看作为权重向量(weight vector ),这样每个词在其路径的运算为简单的词向量与词性权重向量的点积运算。如上图中的方块为词性的权重向量与输入向量的点积运算后的结果。当一个父节点有多个孩子分支的时候,可以看成每个分支与权重点积的和运算。

意图识别模块

意图识别,该文章中直接采用根节点的输出向量直接做一个分类。

槽位识别

这一模块引入了路径向量的特征

img

如”in“这个单词,在语义分析树中的路径为”IN-PP-NP“,将该路径的每个输出向量做一个加权运算得到path的特征,本文采用了三个词的path特征的concat作为tri-path特征进行槽位的分类,从而进行对”in“的一个预测。

img

优化

文章中还在baseline的基础上做了一些优化:

优化输入为窗口的词向量

img

节点用与先前简单加权不同的网络,采用了非线性的激活函数

img

采用基于Viterbi的CRF优化全局,及采用了基于tri-gram的语言模型极大化标注序列

img

本文的结果基于ATIS数据集:

Intent :95.40 Slot (F1):93.96

3. 第三篇主要是基于CNN+Tri-CRF的模型

Xu P, Sarikaya R. Convolutional neural network based triangular crf for joint intent detection and slot filling 2013 IEEE Workshop on. IEEE, 2013

看一下篇CNN+TriCRF模型,模型框架如下:

img

对于槽位识别的模型

输入的为每个的词向量,经过一个卷积层得到高维特征h,随后经过Tri-CRF作为整体的打分。Tri-CRF与线性的CRF的区别是输入前用了一个前向网络得到每个标签的分类。我们来分析一下评分的公式:

img

上述的t(Yi-1,Yi)为转移的打分,hij为CNN得到的高维特征,每个时刻的高维特征经过一个前向网络得到每个标签的概率,这样前两者的结合就是整体的打分。

对于意图识别

CNN采用同一套参数,得到每个隐藏层的高维特征h,直接采用max pooling得到整句的表达,用softmax得到意图分类。

img

将上述结合起来实际上就是联合模型。

本文的结果基于ATIS数据集:

Intent :94.09 Slot (F1):95.42

4. 第四篇的主要是基于attention-based RNN

Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slot filling[J]. 2016.

首先介绍一下context vector的概念,参见Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. 2014.

img

上述公式中的g实际上是一个前向的网络得到decoder每个隐藏层与输入序列中每个encoder隐藏层的相关,即attention分量,对encoder每时刻隐藏层的输出与当前时刻的attention的加权即得到文本向量(context vector)

进入正文,本文采用的encoder-decoder模型如下:

img

槽位

图a隐藏层非对齐attention的模型。decoder隐藏层非对齐的方式,decoder端的每个cell的输入为上一时刻隐藏层s,上一时刻标签的概率s与文本向量c的输入。

图b为隐藏层对齐无attention的模型,decoder端的每个cell的输入为上一时刻隐藏层s,上一时刻标签的概率s与对应的encoder的每个时刻隐藏层的输出。

图c隐藏层对齐attention的模型。decoder端的每个cell的输入为上一时刻隐藏层s,上一时刻标签的概率s,上一时刻标签的概率s与文本向量c的输入与对应的encoder的每个时刻隐藏层的输出。

意图

采用encoder的最后输出加入文本向量作为intent的分类。

该模型基于ATIS数据集(+aligned inputs):

Intent :94.14 Slot (F1):95.62

本文还基于上述的idea得到另外一种基于attention RNN的联合模型

img

BiRNN 隐藏层的输入为

img

槽位

BiRNN得到的高维特征与文本向量concat起来作为单层decoderRNN的输入用于槽位识别,需要注意的是encoder的输出概率只作用于BiRNN的正向传输层。

意图

单层decoderRNN的隐藏层的输出的加权得到最后的输出向量,得到最后的意图分类

该模型基于ATIS数据集(+aligned inputs):

Intent :94.40 Slot (F1):95.78

5. 第五篇主要是在线意图与槽位,语言的联合模型(Online-RNN-LU)。上述四种联合模型之所以不是在线处理,主要一点是都是以整个句子为单位做解析,不能做到实时的解析。本文的亮点就是实时解析,对输入到当前为止的时刻T得到最优意图与槽位的解析以及一个词语的预测。

Liu B, Lane I. Joint online spoken language understanding and language modeling with recurrent neural networks[J]. 2016.

img

上图表示当前到时刻T的一个解析:

意图

w为T时刻前(包括T)的词语序列,c为T时刻前的意图,s为T时刻前的槽位序列,根据上述三者作为当前时刻T的RNN的输入,RNN隐藏层的输出,通过不同的MLP层分别作为当前时刻T意图与槽位的分类,同时该隐藏层的输出concat意图与槽位的信息输入MLP层得到下一个词的预测。

img

实际如下操作,采用LSTM,输入为上一时刻的词语序列,意图与槽位信息。其中公式中的IntentDist,SlotLabelDist,WordDist为MLP层。

img

训练的方法即上述三个模块的极大似然

img

值的注意的是本文由于在线的算法,采用了greedy的思想,基于先前的意图与槽位达到当前的最优。

img

上述几种模型在ATIS上的评分

img

4.总结

上述的模型主要以深度学习的方法解决了传统任务算法框架中较为重要的意图与槽位的识别,这些模型都能应用到实际中一个相关的任务型领域(本人使用过LSTM+CRF的方法实现项目中汇率的槽位提取)。如何使用对话管理模块结合该语言理解模块解决多轮对话的问题一直是一个较为头疼的难题,尽管在传统算法框架上提出了一些例如传统模型或者强化学习的方法,但数据的规范性,对话过程不流畅,死板等严重影响用户在任务型对话的体验。最近较为热闹的Task-Oriented 主要是基于sequence-to-sequence的模型结合知识库,产生了一些意想不到的惊喜,下一篇主要介绍这类模型。

Reference:
[1] Zhang X, Wang H. A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding[C] IJCAI. 2016
[2] Guo D, Tur G, Yih W, et al. Joint semantic utterance classification and slot filling with recursive neural networks[C] 2014 IEEE. IEEE, 2014
[3] Xu P, Sarikaya R. Convolutional neural network based triangular crf for joint intent detection and slot filling 2013 IEEE Workshop on. IEEE, 2013
[4] Liu B, Lane I. Attention-based recurrent neural network models for joint intent detection and slot filling[J]. 2016.
[5] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. 2014.
[6] Liu B, Lane I. Joint online spoken language understanding and language modeling with recurrent neural networks[J]. 2016.

问答
如何用php检测搜索引擎机器人?
相关阅读
任务型对话机器人简介
文本情感分析综述
当深度学习遇见自动文本摘要

此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1147476?fromSource=waitui

欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

斯坦福大学NLP公开课CS224n上映啦!华人助教陪你追剧

一只小狐狸带你解锁NLP/DL/ML秘籍作者:小鹿鹿鹿,QvQ,夕小瑶CS224n: Natural Language Processing with Deep LearningStanford / Winter 2020开课啦!!在大量开源工具的席卷下,NLP领域也不可避免的受到了“调…

论文浅尝 | Improved Neural Relation Detection for KBQA

Yu M, Yin W, Hasan K S, etal. Improved Neural Relation Detection for Knowledge Base QuestionAnswering[J]. 2017.论文链接:https://arxiv.org/pdf/1704.06194.pdf概要本文提出了一种基于不同粒度对关系和问题进行文本匹配的关系检测的模型(HR-BiLS…

多轮对话之对话管理(Dialog Management)

多轮对话之对话管理(Dialog Management)徐阿衡人工智能与机器学习工程师​关注她115 人赞同了该文章开始涉猎多轮对话,这一篇想写一写对话管理(Dialog Management),感觉是个很庞大的工程,涉及的知识又多又杂&#xff0…

互联网公司常用架构模式梳理

一、管理和监控 1.1、大使模式:创建代表消费者服务或应用程序发送网络请求的帮助服务 进程外的代理服务(很多框架层面的事情可以以软件框架的形式寄宿在进程内,也可以以独立的代理形式做一个网络中间件)。这里的大使模式意思就是…

知识工场 | CN-DBpedia 漫游指南

本文转载自公众号:知识工场。CN-DBpedia于2015年12月上线以来,已经有两年多的时间了,在数据层面做了大大小小百余项完善,在CN-DBpedia 3.0 即将上线之际,尽管我们觉得离完美还有距离,但也是时候拿出来让大家…

【杂谈】那些酷炫的深度学习网络图怎么画出来的?

一只小狐狸带你解锁NLP/ML/DL秘籍正文来源:有三AI还在用PPT画图?醒醒亲爱的,0202年了!!1 NN-SVG这个工具可以非常方便的画出各种类型的图,是下面这位小哥哥开发的,来自于麻省理工学院弗兰克尔生…

最新任务型对话数据集大全

合适的数据集或者语料是优秀的自然语言研究工作的基础,然而找寻合适的数据集通常是一件耗时耗力的工作。这时候一份优质的数据集汇总就能帮助科研人员,在研究开始的时候事半功倍。这篇文章就向你介绍一份优质的数据集汇总,帮助你的研究工作轻…

互联网架构:常用基础中间件介绍

一般而言中间件和框架的区别是,中间件是独立运行的用于处理某项专门业务的CS程序,会有配套的客户端和服务端,框架虽然也是处理某个专门业务的但是它不是独立程序,是寄宿在宿主程序进程内的一套类库。 图上绿色部分代表了框架&…

论文浅尝 | How to Keep a Knowledge Base Synchronized

Citation: Liang, J.,Zhang, S. & Xiao, Y. (2017). How to Keep a Knowledge Base Synchronized withIts Encyclopedia Source. Proceedings of the Twenty-Sixth International JointConference on Artificial Intelligence, 3749–3755. 论文链接:https://ww…

揭秘任务型对话机器人(上篇)

https://juejin.im/post/5b21d548e51d4506d93701e7 欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~本文来自专栏语言、知识与人工智能,作者腾讯知文实验室1. 什么是任务型机器人任务型机器人指特定条件下提供信息或服务的机器人。通常情况下是…

如何判断样本标注的靠谱程度?置信度学习(CL)简述

一只小狐狸带你解锁NLP/DL/ML秘籍来源:AI科技评论前言使用ImageNet、CIFAR、MNIST 或 IMDB 这些数据集时,你是不是会潜意识中假设,这些数据集中的类标签都是正确的?然而,你可能不知道:ImageNet数据集中至少…

论文浅尝 | Open world Knowledge Graph Completion

来源:AAAI2018论文链接:https://arxiv.org/pdf/1711.03438.pdf代码链接:https://github.com/bxshi/ConMask本文解决知识库补全的问题,但和传统的 KGC 任务的场景有所不同。以往知识库补全的前提是实体和关系都已经在 KG 中存在&am…

NLP十大研究方向Highlights!

前言 DeepMind 科学家 Sebastian Ruder总结整理了机器学习和自然语言处理领域 10 个影响巨大的有趣研究方向,本文将介绍该10个方向所取得的主要进展,简要说明我认为这个方向重要的原因,最后对未来的工作进行简短的展望。 这 10 个方向分别是…

图解Transformer

原文标题:The Illustrated Transformer 原文链接:https://jalammar.github.io/illustrated-transformer/ 论文地址:https://arxiv.org/abs/1706.03762 前言 Transformer在Goole的一篇论文Attention is All You Need被提出,为了方…

知识工场 | 让机器认知中文实体 —复旦大学知识工场发布中文实体识别与链接服务

本文转载自公众号:知识工场。一、什么是实体识别与链接近年来,如何通过知识图谱让机器实现自然语言理解受到越来越多的关注。其中,识别文本中的实体,并将它们链接到知识库中,是让机器理解自然语言的第一步,…

mikechen谈技术人成长的三大原则

“ 我自己是工程师出身,一路就像游戏打怪一样,不断去突破自己的职能舒适区,技术这条路我用了整整10年去把它全部打通,这些经验看似平淡,作为一个过来人,在你每一次新的选择的时候,你就会发现它…

最新进展 | 深度学习在天气预测中的应用

谷歌研究员提出使用机器学习方法预测未来短时间内的天气。此方法虽然处于早期发展阶段,但效果已经优于传统模型。 前言 天气总是会或轻或重地影响人们的日常生活,而天气预报的准确性会极大影响人们应对天气的方式。天气预报可以告知人们是否应当选取一条…

快速上手笔记,PyTorch模型训练实用教程(附代码)

前言自 2017 年 1 月 PyTorch 推出以来,其热度持续上升,一度有赶超 TensorFlow 的趋势。PyTorch 能在短时间内被众多研究人员和工程师接受并推崇是因为其有着诸多优点,如采用 Python 语言、动态图机制、网络构建灵活以及拥有强大的社群等。因…

领域应用 | 中医临床术语系统V2.0在线发布啦!

本文转载自公众号:中医药知识组织与标准。中医临床术语系统V2.0在线发布中医临床术语系统(Traditional Chinese Medicine Clinical Terminological Systems, TCMCTS)是由中国中医科学院中医药信息研究所研制的,用来描述健康状况和…

NLP Subword三大算法原理:BPE、WordPiece、ULM

Subword算法如今已经成为了一个重要的NLP模型性能提升方法。自从2018年BERT横空出世横扫NLP界各大排行榜之后,各路预训练语言模型如同雨后春笋般涌现,其中Subword算法在其中已经成为标配。且与传统空格分隔tokenization技术的对比有很大的优势~~ E.g. 模…