“对话系统”其实分为很多种:
任务型对话:
- 辅助性:如客服、问答、完成相关预定或下单购买指令
- 合作性:双方在对话中完成一项任务
- 对抗性:双方在对话中是竞争的,比如谈判
社交型对话:
- 闲聊
- 咨询或心里辅导
考虑到开放式NLG的难度,pre-neural
经常通过预定义模板或者从答案库中检索合适的答案来完成对话。
正如在摘要生成的探索过程,2015年开始,人们试着将seq2seq的方法应用于对话系统中,早期的论文如下:
- A Neural Conversational Model, Vinyals et al, 2015
https://arxiv.org/pdf/1506.05869.pdf - Neural Responding Machine for Short-Text Conversation, Shang et al, 2015 https://www.aclweb.org/anthology/P15-1152
2.1 基于Seq2seq的对话系统
如果直接照搬标准seq2seq那一套构建对话系统,会出现很多问题,整理了一些比较重要的问题和相关解决办法。
2.2 谈判对话
2.2.1 Deal or not deal?
2017年,Lewis等人收集整理了一份谈判对话数据集,在这个数据集中,双方需要通过对话的方式对物品进行分配,这些物品有不同的分值,但是总分对双方是一定的。有趣的是他们只能知道这件物品对自己值多少分,并不知道对对方价值多少。而谈判的结果不仅需要达成一致,还需要让自己得分更多。
游戏规则如下图左所示,数据准备过程如下图右所示。
这篇论文中提出了四种对比的模型,在这里简单写,后续再补相关算法细节:
使用的模型结构图如下:
利用ROLLOUTS
的解码过程如下图所示:
细节搞不懂就先来看看实验结果吧 ==
首先一个最激动人心的实验结果就是,这篇论文首次让基于增强学习的模型超过了有监督学习的模型,并且超了一大截。如下图所示
当然作者还是分析了一下新模型的优缺点(主要是优点)
- 使用强化学习训练的机器人在谈判上表现的更努力,主要表现为和人的平均对话轮数上看,高于
Likelihhod
模型(前者7.2轮后者5.3轮),表明这种模型更愿意再争取一下而不会随意达成一致。当然,这种能力带来的反面效果就是容易和人谈崩,因为面对毫不妥协的对手,人们更愿意选择谈崩的结果,这样谁都得不了分。不仅如此,利用强化学习训练的模型,更容易在每一轮重复相同的命令,比如“我要两个球,你拿走其他的”,这对Likelihood
的模型很有效,但是对人则不行,这也是日后需要改进的地方。
下图展示的是谈判过程中,强化学习模型训练的机器人未达到目的有多固执
- 模型学会了骗人,这种手段在谈判上非常奏效。刚开始时,模型表现出对某件物品特别感兴趣,结果最后却是选择了对他更有力的。举个例子如下:
- 模型生成了非常新颖而且还比较有意义的句子,当然作者也怀疑只是简单地从训练样本中一字不差的重复了若干文字,但也可能是他们自己的语言。作者在文中并没有给出这些句子长什么样。但是他表示会在日后进行特定领域下的模型训练来优化多样性效果。
- 在多个句子的一致性上的表现差强人意。该模型在语法上的一个明显错误就是用有结束意味的词语开头,比如(“我同意了”“成交”),但下一句就开始谈判。这种出尔反尔的行为会让人干到沮丧。一种原因可能是,有监督训练中,模型发现通常“我同意了”这类话之后,对手不再说话了,他以为这样会推进谈判的进度(也是可爱的机器人。。)
2.2.2 Strategic Dialogue
2018年,Yarats等人提出了一种新的谈判对话模型,将策略制定单独拎出来。
在该模型中,每一句话utterance
x
t
x_{t}
xt都对应一个离散隐变量
z
t
z_{t}
zt,它被用来预测未来可能发生的事情(比如下面的谈话,最终策略的结果),就是说
z
t
z_{t}
zt表示的是
x
t
x_{t}
xt对对话的影响,所以它是一个策略制定者,可以通过不同的算法去控制影响
z
t
z_{t}
zt。
结构图如下: