返回介绍

PaperWeekly 第八期 - Sigdial2016 文章精选(对话系统最新研究成果)

发布于 2025-01-21 00:48:33 字数 8363 浏览 0 评论 0 收藏 0

引言

SIGDIAL 是 ACL 所属的关于对话系统的兴趣小组,SIG 的文章针对性比较强,但文章的质量良莠不齐,本期给大家精心挑选了 4 篇 SIGDIAL 2016 的文章,带着大家一起来看看对话系统最新的研究成果。4 篇文章分别是:

1、Joint Online Spoken Language Understanding and Language Modeling with Recurrent Neural Networks, 2016
2、Neural Utterance Ranking Model for Conversational Dialogue Systems, 2016
3、A Context-aware Natural Language Generator for Dialogue Systems, 2016
4、Task Lineages: Dialog State Tracking for Flexible Interaction, 2016

Joint Online Spoken Language Understanding and Language Modeling with Recurrent Neural Networks

作者

Bing Liu, Ian Lane

单位

Carnegie Mellon University, Electrical and Computer Engineering

关键词

Spoken Language Understanding, RNN

文章来源

SIGDIAL 2016

问题

如何将自然语言理解的两大问题和语言模型结合在同一个模型中进行训练,以达到实时理解语言的目的?

模型

特定任务下的 Chatbot 在理解人类语言时需要重点解决好两个问题:意图识别(Intent Detection) 和槽填充(Slot Filling),本文提出一种融合 Intent Detection、Slot Filling 和 Language Model 的模型,相比于之前的模型,本文模型的一大优势在于做自然语言理解的时候不需要等待整个 word sequence 完整展现,而是可以在线处理每一个 arrived word。如下图:

意图识别是个典型的多分类任务,而槽填充是个典型的序列标注任务。RNN 的每个 step 都以当前 word 作为输入,输出是意图 class、该 word 的 label 和下一个 word,每个 step 的隐层都包含了之前所有的 word、class、label 信息。此模型为基本模型,在此基础上做了一些变形,得到下面四个变种:

文章在 Airline Travel Information Systems(ATIS) 数据集上进行了实验,在语言模型评测指标和意图识别分类准确率上相比之前的模型都得到了一定地提升。

资源

本文 Code: CMU SPEECH Team
ATIS Dataset: GitHub - mesnilgr/is13: RNN for Spoken Language Understanding

简评

本文的创新点在于将意图分类、槽填充和语言模型三者合一,相比之前的独立模型来说,每一步产生的信息更多,在预测下一步的时候 context 内容更加丰富,从而提高了识别的准确率和降低了语言模型的混乱度。

NLP 中的很多任务都可以归纳为根据 context 来预测某一个 word、label 或者 class 这种范式,解决的思路也都基本类似,RNN 或者 GRU、LSTM 作为 encoder 和 decoder,配上 attention 机制来提升结果,context 的信息量和质量直接影响着预测的效果,user information、user profile 等等都可能作为 context 来构建模型,得到更好的结果。

Neural Utterance Ranking Model for Conversational Dialogue Systems

作者

Michimasa Inaba, Kenichi Takahashi

单位

Hiroshima City University, 3-4-1 Ozukahigashi, Asaminami-ku

关键词

Ranking Model, Utterance Selection

文章来源

SIGDIAL 2016

问题

在做检索式对话时,对话语句该怎样表示,context 信息该怎样引入到模型中?

模型

本文实现的是一个检索式的对话模型,模型分为两部分,分别是:
1、Utterance Encoding
检索式对话,对话语句的 encoding 是很重要的一部分,文中使用了 RNN encoder 模型来实现对语句的 encoding。在训练过程中,作者把 encoder 生成的向量,在 decode 成一个目标语句,即通过一个完整的 seq2seq 模型来训练 encoder。
2、Ranking Candidate Utterances
在对候选语句排序时,作者考虑到了 context 的问题,他把前几次说的语句分别 encode 成向量,并依次输入到 LSTM。如下图所示:

图中 u1 到 un 是整个对话中的前 n 句话,ai 是第 i 个候选语句。模型中,分别把 u1…un 以及 ai 分成用户说的和系统本身输出的,在输入到各自的 RNN encoder 中,得到向量 vu1…vu 和 vai。最后将向量依次输入到 RNN 中,得到 yai 作为候选语句 ai 在当前 context 中的得分。

因为本文是一个 ranking model,更关注的是候选语句的排序,最后候选集分数列表会转换成 TOP 1 的概率分布。并使用 cross-entropy 作为 loss function。

简评

本文有两个创新点,首先通过单独训练 seq2seq 模型,来学习对话语句的 encoder,从而降低了整个模型的学习成本,减少了需要标注的数据量。然后在排序模型中将对话的前几句语句有序输入到 LSTM,达到融入了 context 信息的目的。

A Context-aware Natural Language Generator for Dialogue Systems

作者

Ondrej Dusek, Filip Jurcicek

单位

Charles University

关键词

Context-aware, Seq2seq

文章来源

SIGDIAL 2016

问题

如何使得 task-oriented 的对话生成系统中生成更加自然的回复?

模型

本文是 ACL2016 short paper Sequence-to-Sequence Generation for Spoken Dialogue via Deep Syntax Trees and Strings 一文的拓展。原文提出基于 seq2seq 模型的将 DA(dialogue acts) 生成 response 的方案,其中输入是三元组(DA type,slot,value) 的 one-hot representation,输出是对应的 response。如下图:

延续原文的工作,作者为了使得生成的回复更加自然,将前面用户的提问也 encode 进来,具体是在原来模型的基础上加了两个 encode 的部分。Prepending context 是把用户的问题和 DA 三元组前后拼接成新的表示再 feed into encoder(这里要注意问题的 dictionary 和 DA 是不一样的)。Context encoder 则是把单独把问题 encode 成和 Prepending context 相同大小的向量,再将两个 encoder 得到的向量拼接就得到最后的 hidden states。最后 decode 部分仍然沿用 lstm+attention 的方法。如下图:

文章在 Alex Context NLG Dataset 数据集上进行了实验,在 BLEU/NIST scores 和人工评价两方面成绩都得到了一定地提升。

资源

本文 Code: https://github.com/UFAL-DSG/tgen
Alex Context NLG Dataset: https://lindat.mff.cuni.cz/repository/xmlui/handle/11234/1-1675

简评

本文的创新点在于将用户的问题也就是 context 显式的加入到模型中,相比之前的模型来说,生成的回复会更符合语境。先前的工作旨在将 rule-based 符号和 seq2seq 模型结合自动生成回复,本文的改进让一部分 context 得到保留,使得生成的回复内容更加丰富,从而显得自然不突兀。

Task Lineages: Dialog State Tracking for Flexible Interaction

作者

Sungjin Lee, Amanda Stent

单位

Yahoo Research

文章来源

SIGDIAL 2016

关键词

complex interactions in spoken dialog system, Task Lineage-based Dialog State Tracking

问题

如何将复杂的判别式模型来做 DST,并且应用于复杂场景对话系统?

模型

本文在之前 Dialog State Tracking 方法的基础上提出了 Task Lineage-based Dialog State Tracking(TL—DST)。本模型包括三个组成部分:
1、Task Frame Parsing,返回 K-best task frame parses, task frame parses 结构如下图:

2、Context Fetching,在不同的 phenomena 中,根据不同的 conversation history 返回不同的相关信息。
3、Task State Update,可以通过调节 context window 参数选择使用不同的 dialog state tracking 方法。

本文模型(TL-DST)处理流程如下图所示:

在 t 轮,给定句子 u,利用 task frame parsing 生成 K-best task frame parses H,给定 task frame f,task lineage l, agent output m,利用 context features 返回相关信息 c。

本文在 Dialog State Tracking Challenge 的 DSTC2 和 DSTC3 数据集上进行了实验,均取得了较 baseline 好的结果。

资源

Dialog State Tracking Challenge 比赛介绍: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/06/williams2016dstc_overview-1.pdf

简评

本文基于 DST 的方法来处理口语对话系统中的多任务,跨领域,复杂目标的问题,由于缺乏多任务,跨领域,复杂目标的口语对话系统的数据集,本文实验在 DSTC2 和 DSTC3 上进行, 并取得了比 baseline 好的效果。将来的工作是要将 TL-DST 方法应用于真实环境中的多领域对话评估。

总结

对话系统(Dialogue Systems) 是当前工业界最热门的方向之一,去掉语音部分,该问题退化为聊天机器人(chatbot) 问题,两者虽然在输入处理中存在一定的差异,但自然语言理解、对话管理和自然语言生成等核心部件都是一样的,面临的很多问题都是共同的,所以相关的研究或多或少都会有参考意义。上下文(context) 的理解和处理是一个重要的环节,直接决定了该 bot 是智能还是智障,挺多的 paper 都是针对这一问题进行研究的,但在实际应用当中,context 的处理仍然不尽如人意,过多依赖人工设置,更像是一种触发开关,存在大量的 if…else…。

seq2seq 生成式的解决方案初见效果,但离真正应用还有很长的路要走,template-based 和 rule-based 仍是主流解决方案,尤其是在面向具体任务的 bot 情景中。那么,直接生成回答很难的话,退一步来想这个问题,能否将 seq2seq 用在 template 或者 rule 的自动生成上?能否将 paper 中多信息融合(比如:user profile、dialogue context)的成果应用在当前 bot 的某一个阶段?能否训练一个 bot simulator 来丰富训练数据?每一篇 paper 都会有一些创新点,可能有的创新点是为了创新而创新,但总归会带来一定的思考和借鉴,尤其是针对某一个细节问题,我想这是 paper 对于工业界的参考意义,而不是说从 paper 中完全抠出一个成熟的解决方案来套,甚至把 dataset 和 code 都 release 出来,典型的“拿来主义”。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文