近年来,随着人工智能技术的不断发展,智能对话系统开始在私人助理、智能客服、现代搜索引擎等领域逐渐应用,为大众提供不同程度的智能高效服务。本书旨在指导初学者轻松进入智能对话领域,并逐步深入实战中,同时通过项目案例将理论与实战相结合,使读者不仅能系统地学习智能对话的基本理论,还能快速地将其应用于实践。
本书共分为12章,分为三部分。第一部分是理论基础篇,主要介绍了概率统计、统计学习、深度学习和强化学习等方面的基本理论。第二部分是技术篇,着重讲解了智能对话系统中常见的功能系统及几个著名企业的智能问答架构实现,帮助读者理解智能对话的工程架构和实践理论。这里的常见功能系统包括FAQ问答、知识图谱问答、任务型问答和表格问答等内容。第三部分是实践篇,涵盖了智能对话开源框架和问答系统实例介绍,从多个角度让读者完整地了解对话系统的架构实现,并具备自己搭建智能对话系统的能力。
本书内容通俗易懂,案例丰富,实用性强,特别适合对智能对话系统感兴趣的入门读者和进阶读者阅读,也适合初中级自然语言处理(NLP)工程师或人工智能(AI)算法工程师等其他编程爱好者阅读。此外,本书也适合作为大专院校及相关培训机构的教材使用。
吴科
----------------------------
吴科,博士,八维教育集团人工智能学院院长。曾任阿里巴巴搜索研发专家,智齿科技首席科学家和AI研究院负责人,天壤智能高级研究员,上海交通大学教师。THU-EE第9届清华大学自然语言处理研讨会和2021企业数据智能峰会演讲嘉宾。曾获微软亚洲研究院明日之星称号,拥有多项中美专利、深度学习译著一部。
目录
第1章 概率统计基础 5
1.1 概率基础 6
1.1.1 从概率到条件概率 6
1.1.2 随机事件的关系 7
1.1.3 贝叶斯定理 9
1.2 随机变量 11
1.2.1 随机变量的引入 11
1.2.2 常见概率分布 13
1.2.3 多元随机变量(联合、边缘与条件 | 独立与相关) 17
1.2.3 多元正态分布 23
1.3 统计推断 24
1.3.1 最大似然 25
1.3.2 最大后验 26
1.4 随机过程 27
1.4.1 马尔可夫链 27
1.4.2 马尔可夫链的极限与稳态 29
1.4.3 马尔可夫链蒙特卡洛方法 30
1.5 本章小结 32
第2章 统计学习 33
2.1 朴素贝叶斯 33
2.2 支持向量机 36
2.2.1 支持向量机的理论基础 36
2.2.2 SMO算法原理 37
2.3 最大熵 39
2.3.1 信息熵 40
2.3.2 最大熵推导 41
2.3.3 最大熵模型 41
2.4 条件随机场 43
2.4.1 马尔可夫随机场 43
2.4.2 条件随机场原理 45
2.4.3 推断算法 46
2.5 本章小结 48
第3章 深度学习 48
3.1 神经网络 48
3.1.1 神经元 48
3.1.2 网络结构 53
3.1.3 反向传播算法 55
3.2 卷积神经网络 57
3.2.1 卷积层 57
3.2.2 汇聚层 58
3.2.3 CNN句子建模 59
3.3 循环神经网络 62
3.3.1 简单循环网络 63
3.3.2 长短期记忆网络 64
3.3.3 LSTM句子建模 66
3.4 Attention机制 68
3.4.1 什么是注意力机制 69
3.4.2 Encoder-Decoder框架 70
3.4.3 Attention模型 71
3.4.4 Attention机制的原理 73
3.5 预训练模型 74
3.5.1 非上下文感知模型 75
3.5.2 上下文感知模型 79
3.6 本章小结 88
第4章 强化学习 89
4.1 什么是强化学习 89
4.1.1 强化学习的组成要素 90
4.1.2 马尔可夫决策过程 92
4.1.3 最优价值函数和最优策略 97
4.1.4 价值迭代和策略迭代 98
4.2 深度强化学习: 从Q-Learning到DQN 101
4.2.1 Q-Learning 101
4.2.2 价值函数近似 102
4.2.3 DQN 104
4.3 策略梯度 107
4.3.1 基本原理 107
4.3.2 策略参数化 111
4.3.3 Actor-Critic方法 113
4.4 探索策略 116
4.4.1 ??贪心策略 116
4.4.2 置信区间上界策略 117
4.4 本章小结 118
第5章 FAQ问答 118
5.1 基本概念 119
5.1.1 知识库相关概念 119
5.1.2 FAQ问答系统的业务架构 121
5.1.3 FAQ问答引擎 122
5.2 文本匹配模型 123
5.2.1 规则匹配 124
5.2.2 字面特征的匹配 125
5.2.3 深度学习语义匹配 130
5.3 本章小结 149
第6章 知识图谱问答 150
6.1 什么是知识图谱 150
6.1.1 知识图谱定义 150
6.1.2 知识图谱的数据模型 152
6.1.3 知识图谱的存储方式 156
6.2 基于模板的方法 164
6.3 基于语义分析的方法 167
6.3.1 语义表示 167
6.3.2 逻辑表达式生成 168
6.3.3 语义分析实例 172
6.4 基于答案排序的方法 176
6.4.1 基于特征的答案排序 177
6.4.2 基于子图匹配的答案排序 179
6.5 本章小结 181
第7章 任务型问答 181
7.1 管道方法 182
7.1.1 自然语言理解 182
7.1.2 对话状态跟踪 186
7.1.3 对话策略学习 190
7.1.4 自然语言生成 201
7.2 端到端方法 203
7.2.1 复制机制 203
7.2.2 记忆网络 204
7.2.3 GLMP模型 205
7.3 本章小结 209
第8章 表格问答 210
8.1 什么是表格问答 210
8.2 表格检索 211
8.3 语义解析 212
8.3.1 规则模板 212
8.3.2 端到端模型 214
8.3.3 文法模型 218
8.4 本章小结 223
第9章 企业级智能问答的架构实现 224
9.1 阿里小蜜 224
9.2 微软小冰 226
9.3 美团智能客服 231
9.4 本章小结 236
第10章 人工智能标记语言(AIML) 236
10.1 AIML基础 237
10.1.1 基本标签 237
10.1.2 上下文能力 239
10.1.3 同义能力 242
10.1.4 标准启动文件 244
10.2 源码框架剖析 245
10.2.1 核心代码组成 245
10.2.2 语法解析 246
10.2.3 核心问答代码 248
10.3 设计与实现 253
10.3.1 中文适配处理 253
10.3.2 知识库设计 256
10.3.3 运行展示 261
10.4 本章小结 261
第11章 Rasa多轮对话开源框架 261
11.1 Rasa基础概要 262
11.1.1 Rasa系统结构 262
11.1.2 Rasa环境部署 263
11.2 Rasa NLU 265
11.2.1 NLU管道 265
11.2.2 NLU训练数据 270
11.3 Rasa Core 276
11.3.1 故事 277
11.3.2 规则 281
11.3.3 动作 283
11.3.4 表单 289
11.3.5 策略 292
11.4 多轮对话设计实现 295
11.4.1 基于对话驱动的开发 295
11.4.2 对话设计 297
11.4.3 简单的订餐示例 304
11.5 本章小结 307
第12章 问答系统几个实例 308
12.1 FAQ问答实例讲解 308
12.1.1 问题分析 309
12.1.2 检索 311
12.1.3 匹配 312
12.1.4 重排 314
12.1.5 索引模块 314
12.1.6 SimNet模块 316
12.2 图谱问答实例讲解 318
12.2.1 图谱介绍 318
12.2.2 主代码介绍 320
12.3 基于RL的问答系统实例讲解 323
12.3.1 训练架构介绍 324
12.3.2 DQN智能体 330
12.3.3 对话状态跟踪器 334
12.3.4 用户模拟 341
12.3.5 错误模型控制器 350
12.3.6 智能体运行 352
12.4 本章小结 354