概述
人机交互备受学术界的关注,人机对话是人机交互的核心。
对话系统是模拟人与人交流的计算机系统。
对话系统有很多分类方法。按照应用场景的不同,可分为开放域(闲聊式)和封闭域(检索式、知识问答式、任务式)
闲聊式对话系统的关键技术
代表:微软小冰
闲聊式对话系统是一种针对开放域的生成式对话系统,目前主流的技术是seq2seq+attention。
现有的API:微软小冰、图灵、腾讯、青云客等;成熟的开源项目:chatterBot。
这类对话系统的难点在于聊天属于开放域,没有标准答案,评估难,需依赖人工评定;对话需上下文,对话的内容中隐含了说话人的属性。
检索式对话系统的关键技术
代表:智能客服 阿里小蜜
主要思想:检索出与当前输入最相近的FAQ库语句,如下图。
1)如何表征文本?
① 基于频次的词袋模型
优:简单易用 缺点:未考虑次序,会丢失重要信息
② TF-IDF
优:简单易用 缺点:无上下文重要信息
③ 句向量均值模型、IDF加权平均、SIF加权平均、基于幂均值
④ 算法:word2vec、Glove、FastText
⑤ skip-Thought(seq2seq,通过当前句预测文章当前句的上一句和下一句)、Quick-Thought(将skip-Thought的预测问题转换为分类问题)
2)如何计算文本间距离?
WMD 词移距离(来源于EMD 运输问题),文档1转化为文档2付出的总代价,词与词之间的移动代价由语义距离决定。
优:无监督、无须调参、有全局最优
缺:无语序信息、否定词能力偏差
3)如何快速计算?(粗排)
BOW、TF-IDF、编辑距离(删除、加入、替代)、倒排列表、BM25
BM25:每个单词的权重、搜索query中每个单词与文档d之间的相关性、单词与query之间的相关性
知识回答式对话系统的关键技术
代表:基于知识图谱、知识库(珠峰有多高、昊然的新电影)
示例:基于医疗知识图谱的问答系统
问答类型定义流程:问句输入、意图解析、关键信息解析、查询语句、知识图谱查询、结构化答案、自然语言答案
任务式对话系统的关键技术
代表:订票系统(多轮对话)
主要实现方式:管道和端到端
pipeline四部分:
NLU(自然语言理解)识别用户意图 词槽填充
DST(对话状态跟踪)保存更新对话状态(历史信息、当前词槽填充、数据库等)
DPL(对话策略学习)基于当前的对话状态,用户输入做出合适的反馈
NLG(自然语言生成)反馈转化成自然语言
词槽:用户话中的关键词(平级槽、依赖槽)
接口槽:用户画像