闲聊机器人介绍(二)

举报
木头123 发表于 2020/10/21 15:17:13 2020/10/21
【摘要】 对话机器人是一种通过自然语言处理模拟人类,进而与人进行对话的程序,是目前非常火热的一个人工智能研究方向,方法从当初的规则匹配逐渐演变成如今的深度学习方法,很多公司重点研发其相关技术,并陆续推出了自己的对话机器人产品,比如微软的小冰,苹果的Siri,阿里的小蜜,百度的度秘等等。 如此多的对话机器人很容易给人一种百花齐放的感觉。那么为什么那么多的公司都要推出自己的对话机器人产品呢?原因还是在于其巨大

三、闲聊机器人技术问题的简要介绍

1.      多轮对话的上下文问题

一个例子如下图所示,针对于第二个问题“为什么?”,考虑上下文后,用户正确的意思是“为什么不发表情包?”

image.png                                             

深度学习来解决多轮会话的关键是如何将上下文聊天信息Context引入到Encoder-Decoder模型中去的问题。很明显,上下文聊天信息Context应该引入到Encoder中,因为这是除了当前输入Message外的额外信息,有助于Decoder生成更好的会话应答Response内容。

目前不同的研究主体思路都是这样的,无非在如何将Context信息在Encoder端建立模型或者说具体的融入模型有些不同而已。

其中论文Building end-to-enddialogue systems using generative hierarchical neural network models [Serban2015]https://arxiv.org/abs/1507.04808)提出了一种层级神经网络(Hierarchical Recurrent Network Dialog,简称HRED),主要是为了解决这种问题。

image.png

HRED也是在Encoder-Decoder框架下进行改进的,主要区别是在Encoder中采用了二级结构,首先第一级对上下文context中的每一句中的每个单词进行编码(Sentence RNN),然后第二级的RNN则将第一级所有句子的编码结果按照出现顺序先后编码进第二级的RNN,所以第二级的RNN被称作Context RNN,然后Encoder中最后一个节点就是之前所有Context语句的编码和当前语句的编码,把这个信息作为Decoder的输入,这样就可以把Context信息考虑了进去。

2.  个性信息一致性问题

对于聊天助手等对话系统来说,通常会被用户看作是一个虚拟人,所以经常会被问道:“你几岁了?”“你是男的女的?”“你是什么星座?”等等。若把聊天机器人当作一个虚拟人,那么他的年龄、星座、爱好等相关的个性化信息应该保持一致性(consistency)。

image.png

利用经典的Encoder-Decoder模型训练出来的聊天助手往往很难保证个性化信息的一致性,例子如上图,这是因为Encoder-Decoder模型训练的语句一般都是单句到单句的映射,模型并没有维护个性化信息,所以不能保证相似问题能够产生统一的答案,比如上图三个message都是询问“住在哪里?”,但是聊天机器人回答的response截然不同。

另外,不同用户可能喜欢不同的聊天风格,比如有些喜欢活泼开朗,有的喜欢认真严谨的,所以聊天机器人应该能够提供不同性格的人设和聊天风格,针对具体用户可采取相对应的个性化定制。    

image.png

那么如何在Encoder-Decoder框架下采用技术手段维护聊天助手的个性一致性问题呢?论文A Persona-Based Neural Conversation Model [Li,2016]https://arxiv.org/abs/1603.06155)给出了一种比较典型的解决方案,模型架构如上图。

基本框架还是采取Encoder-Decoder模型框架,改变之处就是把聊天助手的个性化信息通过Word Embedding方式导入到Decoder的输出过程中,也就说在采用RNNDecoder生成Response的过程中,在每个i时刻,神经网络节点除了RNN的标准输入外,也将个性化信息的Word Embedding一并输入进去,这样系统就会倾向于生成符合个性化信息的Response

3.  “安全回答”(Safe Response)的问题

在传统的Encoder-Decoder模型中,模型倾向于生成一些“安全”的“万能回复”,比如“哈哈哈”、“我不知道”、“呵呵”之类的句子,我们称之为“安全回答”。虽然这些安全回答在对话中不能算错,但是我们也可以想象,无论用户说什么,聊天机器人总是用“呵呵”两字回复用户,这是一种极差的用户体验。虽然那些有意思的回答在候选的list中,但往往这类回答的ranking很低,所以通常会返回这些所谓的“安全回答”,原因是因为模型的Loss值的优化方向会使得出现这类“安全回答”的概率非常高,所以为了解决这个问题,使得回答多元化,论文A Diversity-Promoting Objective Function for Neural Conversation Models [Li,2016] (https://arxiv.org/abs/1510.03055) 提出了一种新的目标函数MMI来构建Encoder-Decoder模型。

在传统的Encoder-Decoder模型中,标准的目标函数是由log-likelihood来建模的:

image.png

这个Loss就会导致在训练集出现越多的“安全回复”,在测试生成回答语句Response的时候,生成这些“安全回复”的概率就会变高。

所以,在论文中对这个Loss进行改进,使用互信息来衡量生成语句的优劣,即最大化互信息(Maximum Mutual InformationMMI):

image.png

我们可以很明显的看出MMI与之前相比多了一个logp(T)的惩罚项,这个惩罚项的意义在于对于训练集经常出现的安全回答,其概率p(T)会高于其他回复,那么减去这个惩罚项就会使这个回复的得分下降。实验结果如下图所示:

image.png

我们可以从实验结果看出,MMI生成的语句在多样性和相关性中要比传统Encoder-Decoder模型生成的语句要好很多。

上述介绍的几种技术解决方案是深度学习框架下针对Encoder-Decoder框架下进行的改进版本,很明显还可以衍生出更多的其它方案,但是其技术思路应该是类似的,核心思想是把需要加入的features加入到encoder或者decoder中。

当然现在针对闲聊对话机器人来说,比较关键的问题是缺乏优质的标准化的大量训练数据,现在的训练语料大部分是来自于贴吧,微博,电影对话等,但是对话质量一般不高,训练出来的模型表现还有待于提升。如果未来能够有大量的优质的人与人对话的训练数据,将会很明显的改善模型的表现成果。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。