问题:
任务分为几类,针对什么场景?
(1)任务导向型(task-oriented)对话系统(如寻找商品,定酒店等任务)
(2)非任务导向型(non-task-oriented)对话系统(也称为聊天机器人)
两类对话有什么流程?
(1)任务导向型(task-oriented)对话系统
理解人类传达的信息 >> 对话状态定位(因为需要多轮对话才能玩完成任务) >> 采取策略 >> 转化为人类表达形式
(2)非任务导向型(non-task-oriented)对话系统(也称为聊天机器人)
方法分类:
(1)生成方法,例如序列到序列模型(seq2seq)(优点:灵活,缺点:回答语法错误,没有意义,不好评价质量)
(2)基于检索的方法(缺:依赖数据质量,优点:回答有意义,响应流畅)
检索式和生成式对话是针对哪一类的?
(1)生成式针对任务导向型最后一个阶段
(2)非任务导向型可利用检索式和生成式
检索和生成式分别的优缺点?
检索VS生成两类对话下分别有怎么样的做法,做法分别具有的优势和劣势?
任务导向型对话系统
1.管道(Pipeline) 方法(一个接一个子任务)
1)自然语言理解(Natural Language Understanding,NLU):它将用户输入解析为预定义的语义槽,其中slots和intent,Domain是指定的,且从前往后分三个级别,分别靠近用户目的。
2)对话状态跟踪(Dialogue State Tracker,DST):管理每个回合的输入和对话历史,输出当前对话状态。因为对话是多轮的,需要对每一轮进行处理。(在线购物场景中,如果对话状态是“推荐”,那么触发“推荐”操作,系统将从产品数据库中检索产品。强化学习方法的效果超过了基于规则和监督的方法)
此处运用较多的模型是multi-domain RNN dialog state tracking models和Neural Belief Tracker (NBT)
3)对话策略学习(Dialogue policy learning):它将选择操作进行映射并生成回复。
2.端到端(End-to-End)方法
缺点:大量的训练数据;由于缺乏对训练数据对话控制的进一步探索,它也可能无法找到一个好的策略。
或许可考虑强化学习做:
端到端强化学习的方法
人家提出的强化学习方法
非任务导向型对话系统
1. 神经生成模型(Neural Generative Models)
1.1 Sequence-to-Sequence Models
给出两个序列X,Y;极大化P(Y|X)的概率,一般会有(1) Encoder和(2) Decoder
1.2 对话上下文(Dialogue Context)
1)加入全部对话信息
2)加入词粒度,句与句之间信息
1.3 回复多样性(Response Diversity)
对话生成面临挑战:常生成无意义回答,如 I don't know, I am OK等
解决方法:1)增加模型复杂度
2)找到更好目标函数(使用 latent variable ,Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models)
1.4 主题和个性化(Topic and Personality)
1.5 外部知识库(Outside Knowledge Base)
模型能够通过参考知识库中的事实来生成对问题的自然和正确答案。
引入外部知识库
1.6评价
1)计算 BLEU 值
2)计算 embedding的距离
3)衡量多样性 distinct-ngram 的数量和 entropy 值的大小。
4)进行图灵测试
2. 基于检索的方法(Retrieval-based Methods)
2.1 单轮回复匹配
利用匹配算法匹配问题与回复
2.2 多轮回复匹配
1)不同于单轮:将当前与之前的话语作为输入
2)难点:上下文的关键信息的抓取;多轮对话之间的关系
3)目前模型缺点:将整个上下文表示为一个向量(推测),容易信息丢失
3. 混合的方法(Hybrid Methods)
将生成和检索方法结合起来能对系统性能起到显著的提升作用,即将回复也输入到网络中
发展展望?
研究方向:
1)快速适应。未来的趋势是对话模型有能力从与人的交互中主动去学习。
2)深度理解。产生的回复仍然缺乏多样性,有时并没有太多的意义(针对于对话生成任务)
3)隐私保护。对话助手可以无意中隐蔽地存储一些较为敏感的信息
网友评论