来源:Deep learning for chatbots, Part 1 – Introduction


业界

大玩家:微软,Facebook,Apple Siri,Google,微信,Slack

初创:Operatorx.aiChatfuel

开发框架:Howdy’s Botkit, bot developer framework


分类

基于信息检索的模型与生成模型

  • 基于信息检索 (容易): 规则明确,回复内容限制在事先确定的范围内;只要准备得好,不会有语法错误
  • 基于生成模型 (较难): 把问题“翻译成”回答;需要大量数据来训练;回答可能包含语法错误
  • 目前多数可用的系统是第一类

长对话与短对话

  • 短对话只需要针对特定问题给出恰当回答
  • 而长对话需要多重转折并保持历史记录
  • 客服对话一般属于长对话

开放式对话与封闭式对话

  • 社交媒体上的讨论一般是开放式对话,对话可以从一个点发散到任何话题
  • 客户技术支持或者购物助理一般属于封闭式对话;超出范畴的对话即便出错也可以容忍

挑战

语言场景与物理场景的引入

一致的人格特征

  • 对不同问题给出的答案应该对应一致的人格实体
  • 比如对“你多大”与“你几岁”的回答应该相同,对“你住哪儿”与“你所在的城市是哪个”的回答不应该有矛盾;反面例子见图 1
  • 基于人格的神经对话模型

图 1: 回答不自洽的反面例子。来自基于人格的神经对话模型

模型的评估

  • 常常需要人工评定
  • 有时候没有良好定义的目标
  • 用于评定机器翻译的 BLEU 评分不适合用来评价聊天机器人
  • 常用的自动评价系统与人工判定的结果不一致

意图与多样性

  • 没有人喜欢敷衍的回答 (早期 Google 的智能回复倾向于对任何问题都回答“爱你”;由训练数据和训练目标导致)
  • 故意通过改变目标函数来促进多样性也不好,因为人类回答问题一般是带有意图的
  • 开放式对话系统的生成模型的训练目标不涉及意图,所以缺乏这种能力

实际表现

  • 开放系统的生成模型几乎相当于通用人工智能了; 离这个目标还差得远
  • 基于生成模型或信息检索的封闭系统
    • 众包生成初始训练数据;仅适用于非常狭窄的领域
    • 为人工服务提供辅助,这是可行的
  • 语法错误代价高昂
    • 可能会赶走用户
    • 通过信息检索模型避免语法错误和冒犯性言语
    • 生成模型给出的回答必须由其它技术辅助以免脱线 (微软 Tay 的错误)