智能聊天机器人在汽车领域的应用实践

1. 智能聊天机器人在汽车领域的应 用实践 雷涛 汽车之家高级算法工程师
2. 个人简介 姓 名:雷 涛 所在公司:汽车之家 部 门:用户产品中心(认知智能团队) 参与项目:家家小秘 职 位:高级算法工程师 学 历:博士(北京邮电大学) 邮 箱:[email protected]
3. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
4. 1 聊 天 机 器 人 的 热 门 应 用 汽车之家-家家小秘 京东-小咚 淘宝-小蜜 百度-度秘 易车-小艾 Google-assistant MS-cortana Apple-Siri 去哪-Qmi 咪咕-灵犀 Amazon-echo 百度地图 腾讯地图 天猫精灵 小爱同学
5. 1 覆盖范围 聊天机器人 l 开放领域 l 垂直领域 答案来源 闲聊机器人 聊 天 机 器 人 基于任务的 机器人 l 检索式 l 生成式 问答方式 l 主动式 个人助理 智能客服 机器人 l 被动式
6. 1 语⾳音识别ASR! 聊 天 机 器 人 基 本 框 架 ⾃自然语⾔言理理解NLU! 对话状态跟踪DST! 知识库/问答库/服 务接⼝口! 语⾳音合成TTS! 语音处理模块 ⾃自然语⾔言⽣生成NLG! 对话策略略Policy! 自然语言处理模块 对话管理模块 答案生成模块
7. 1 • 热门产品 汽 车 领 域 应 用 现 状 • • • • 汽车之家-家家小秘 易车-易小车 懂车帝-AI小懂 汽车大师-轮胎智能问 答 •…… 主要功能 • 智能问答 • 闲聊 • 智能写作 主要技术 • • • • • 语音识别与合成 语义理解 知识图谱问答 问答对匹配 阅读理解
8. 1 单轮会话 依赖于知识图谱、问答库、阅读理解,实现完 整语义理解,给出答案 1.全景天窗! 1.选⻋车! 2.⼝口碑碑! 3.百科或者使⽤用⽅方法! 2.油耗! 3.⻋车身ESP! 宝⻢马三系耗油吗?! 同类问题的不同处理方式 宝⻢马三系油耗如何! 汽 车 领 域 应 用 挑 战 宝⻢马三系的省油吗?! 宝⻢马三系油耗! 宝⻢马三系跑100公⾥里里需要多少油?! 宝⻢马三系⼏几个油?! 相同问题不同表达 1.宝⻢马三系好吗?! 1.⼝口碑碑! 2.选⻋车! 3.对⽐比! 2.⽐比宝⻢马三系好! 3.⽐比宝⻢马三系好吗?! 不同语义的相似表达
9. 1 多轮会话 参考上下文信息,主动或被动进入下一轮 回话,直到准确回复用户 准确的语义理解 宝⻢马三系与奔驰C 级对⽐比?! 汽 车 领 域 应 用 挑 战 宝⻢马三系…! 奔驰C级 …! 与奥迪A4对⽐比呢?! 宝⻢马三系…! 奥迪A4 …! 多少会话成功结束 状态管理 预先构建多种多轮场景 北京 宝⻢马经销商! 返回定位北北京的宝 ⻢马经销商! 看车 买车 用车 上海海呢! 返回上海海的宝⻢马经 销商! 设置多少会话轮次较为合适 对话流畅自然与否 测评指标
10. 1 答案生成与管理 如何根据异构数据搭建答案生成系统?如何根据语义 理解结果,综合考量知识图谱、问答库、阅读理解的 结果并返回最终结果? 答案仲裁! 汽 车 领 域 应 用 挑 战 图谱问答 检索式问答 阅读理解 知识图谱 知识匹配! 快速查询! 图谱构建 Query快速匹配! ⽂文章定位! 答案抽取! 数据清洗! 数据整合! 知识表征! 经销商 保养 配置 汽车手 册 论坛问 答对 资讯
11. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
12. 2 应 用 层 技 术 层 语义搜索 知识推 理引擎 知识 体系 主 要 架 构 数 据 层 数 据 源 意 图 识 别 数据 存储 个性化推荐 智能问答 Text-CNN算法 Word2Vec构建 实 体 识 别 字典树匹配 知 结构化数据 识 获 取 非结构化数据 知 知识对齐 识 管 理 知识消歧 问 句向量生成 答 库 基于语义距离 的相似度计算 知 图库 识 结构 图 关系 库 生成 问答 口碑 推 理 规 则 Bi-LSTM+CRF 咨询 答 案 体 系 节点生成 属性构建 辅助决策 表达式生成 Slot生成 表达式\slot转 答 SQL 案 查 询 答案动\静态查询 语 数据 料 处理 处 理 手册 问 题 定 向 分词 拼写检 查 分类 词性标 注 论坛 答 案 处 理 答案分类 知识定位 答案生成 答案过滤 语 句法分 析 料 分 焦点提 析 取 其他 答 案 排 序 词法分 析 主题提 取
13. 2 实体识别 句⼦结 构解析 整 体 流 程 结果返回 Query请求 语义特 征提取 多轮依 存解析 意图识别 语 义 因 子 解 析 引 擎 语 义 理 解 否 多轮判定 是 对 话 管 理 答案生成 知识图谱 单轮对话 多轮对话 任务型 引导型 开放型 对 话 策 略 QA问答 阅读理解
14. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
15. 3 1 实体冲突 l 多义词:北京-->城市 or 品牌 l 解决真包含问题:宝马三系2017款318Li时尚型-->包含宝马 实 体 识 别 主要挑战 2 实体纠错 l 拼写错误:宝妈三系-->宝马三系 l 顺序错误:三系宝马-->宝马三系 3 实体对齐 l 数字、英文、汉字转换:宝马叉三-->宝马X3 l 简称识别:X5-->宝马X5、汉腾X5、景逸X5、大迈X5、北斗星X5
16. 3 Query 是 badcase检测 Badcase库 否 规则匹配 冲突信息 字典树匹配 Bi-LSTM+CRF 规则 实 体 识 别 混合相似度 否 识别结果 处理结果 冲突检测 是 仲裁 否 是 最终识别结 果
17. 3 处理实体 读取实体库中的所有实体,并对其中的特 殊字符做处理. 转化拼音 将所有实体转为拼音. 字 典 树 匹 配 构建字典树 对query特殊处理 对用户输入的句子query进行特殊处理, 包含去特殊字符等. 转化成拼音 把用户输入query转化为拼音. 与字典树匹配 以单个字母为单位,从根节点开始构建字 放入构建好的字典树进行匹配,如果从 典树,将实体信息放入叶子节点中. 根节点沿树边可以打到叶子节点则把叶 子节点的实体信息取出来.
18. 3 Str Entity transform Str_pinyin! Str_char! Pinyin_simi! E S transform Entity_pinyin! combination 混 合 相 似 度 算 法 Levenshtein distance编辑距离算法 combination combination Char_simi! 0! 1! 2! 3! 4! e1! 1! x1! y1! z1! f1! e2! 2! x2! y2! z2! f2! e3! 3! x3! y3! z3! f3! e4! 4! x4! y4! z4! f4! Entity_char! Text_simi! Mixed calculation score! max_length = max(len(S), len(E)) simi=1-Levenshtein.distance(S,E)/max_length
19. 3 CRF Layer ——Bi-LSTM+CRF 冲 突 处 理 Bi-LSTM encoder char embedding B-cx! I-cx! I-cx E-cx B-kbc! I-kbc! E-kbc ​𝑝↓1 ! ​𝑝↓2 ! ​𝑝↓3 ! ​𝑝↓4 ! ​𝑝↓5 ! ​𝑝↓6 ! ​𝑝↓7 ! ​𝑟↓1 ! ​𝑟↓2 ! ​𝑟↓3 ! ​𝑟↓4 ! ​𝑟↓5 ! ​𝑟↓6 ! ​𝑟↓7 ! ​𝑙↓1 ! ​𝑙↓2 ! ​𝑙↓3 ! ​𝑙↓4 ! ​𝑙↓5 ! ​𝑙↓6 ! ​𝑙↓7 ! 宝! ⻢马! 三! 系! 怎! 么! 样! 用户输入:宝马3系的怎么样? 规则: ['宝马', 0, 1, 1.0, '宝马', 'pp'] ['宝马3系', 0, 3, 1.0, '宝马3系', 'cx'] BiLSTM+CRF: ['宝马3系', 0, 3, 1.0, '宝马3系', 'cx']
20. 3 • 用户输入:宝马2017款油耗怎么样? • 规则: 实 例 • —— 冲 突 处 理 • ü ['宝马', 0, 1, 1.0, '宝马', 'pp'] ü ['宝马2’, 0, 2, 1.0, '宝马2系', 'cx'] ü [‘2017款’,2, 6, 1.0,‘2017’, nd’] ü ['油耗’, 7, 8, 1.0, '油耗', 'kb’] 匹配出所有可能实体情况 冲突检测: ü [‘宝马2', 0, 2, 1.0, ‘宝马2系', 'cx’] ü [‘2017款’,2, 6, 1.0, 2017, ' nd’] 处理出现冲突实体 融合结果: ü ['宝马', 0, 1, 1.0, '宝马', 'pp’] ü ['2017款’,2, 6, 1.0,2017,' nd’] ü ['油耗’, 7, 8, 1.0, '油耗', 'kb’] 最终结果
21. 3 5.64%! 3.89%! 0.39%! 9.92%! 51.17 %! 油耗低 ---> 选车 油耗低吗 ---> 口碑 全景天窗 ---> 选车 车身ESP ---> 百科 28.99 %! —— 意 图 识 别 挑 战 分布不均匀 特征不明显 需求不统一 实际数据分布不均匀,top5类别占据 Query主要以短句居多,表达形式多 语义区分结果和整体答案返回结果不 了90%的数据量 变,类别之间的特征区别不明显 一致,导致相同类别需求不同
22. 3 query! 宝马三系油耗怎么样? 实体识别结果! 宝马三系\油耗\怎么样\? 实体替换结果! [车系]\[车身配置]\怎么样\? —— 意 图 识 别 基 本 流 程 模型库! 模板库! 口碑 无匹配 结果判定! 意图! (None,口碑) 口碑
23. 3 意 图 识 别 Text-CNN模型 ​𝑋↑1 , ​𝑋↑2 , ​ 𝑋↑3 ,…, ​𝑋↑𝑛 ​𝑋↑𝑛 , ​𝑋↑𝑛−1 , ​ 𝑋↑𝑛−2 ,…, ​ 𝑋↑1
24. 3 基本单位:节点set l 每个set包含多个槽位 l 槽位既可以是实体,又可以是条件 逻辑:and、or l 每个set的逻辑由一个and或者or构成 l and表示set中所有槽位都必须为真 l or表示set中有一个槽位为真即可 语 义 因 子 模 板 限制条件:函数 l 𝑓_𝑖 (𝑛𝑢𝑚)表示包含数量 l have(𝑥)\nohave(𝑥)表示包含与否 模板选择算法 𝑆={​𝑠↓1 ,​𝑠↓2 ,…,​𝑠↓𝑙 } ,能填充的数量h,Query包含的实体 l 模板槽位 数量n,未被填槽的数量m 𝑓=​𝑙/ℎ l 计算模板的最后期望:𝑒=𝑓∗WS∗ℎ∗​ 𝑛/𝑚 l 计算模板的的完成度: W={​ 𝑤↓1 ,​ ,其中 𝑤↓2 ,…,​ 𝑤↓h }为每个槽位的权重信息,由于m可能为0,故给m加一个偏 移量b,则 𝑒=​ 𝑙/ℎ ∗(∑𝑖=1单实体 ↑𝑙▒​ 𝑤↓2配置 )∗ℎ∗​ 𝑛/𝑚 +𝑏 =​ 𝑙𝑛/ 配置口碑 𝑚+𝑏 (∑𝑖=1↑𝑙▒​⻋车系 𝑤! ↓2⻋车系)! ⻋车身配置 ! ⻋车系 ! ⻋车身配置 ! ⼝口碑碑词 ! 输入:宝马三系油耗怎么样 max​{​𝑒↓1 ,​𝑒↓2 ,…,​𝑒↓𝑁 } l 选择得分最高的模板: 识别:宝马三系\cx 油耗\pz 怎么样\kbc 填槽: cx ! cx ! pz! cx ! pz! kbc ! 计算(假设车系槽位、车身配置槽位、口碑词槽位权重分别为0.3、 0.2、0.1,b取1): 单实体:0.3*1*3/3=0. 3 配置:(0.3+0.2)*2*3/2=1.5 配置口碑:(0.3+0.2+0.1)*3*3/1=5.4 选择结果:配置口碑
25. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
26. 4 问句句! 单轮 历史状态! 论元滤⽹网! 多轮滤网 多轮 语义结构滤⽹网! 反问滤⽹网! 多 轮 对 话 管 理 框 架 答案滤⽹网! 单轮实体识别! 意图切换! 实体融合! 指代消解! 省略略恢复! 实体+意图! 单轮意图识别! 记录状态! slot filling 是否要反问 反问话术! 返回答案!
27. 4 意图 滤网:定义多轮的形式 是否直接返 回答案 l 反问滤网:缺失实体,反问用户 l 答案滤网:对现有答案进行进一步操作 l 语义结构滤网:继承意图、实体转换 l 论元滤网:对论元进行各种操作 是否判断车型 槽位是否严格排序 多 轮 对 话 管 理 反问滤网! 答案滤⽹网! 语义结构滤⽹网! 论元滤⽹网! 多轮形式和内容 模版特征分析! 深度学习! 上下⽂文信息! 语义分析! 语序解析! 语义因⼦子! 历史语序!
28. 编辑话术 4 槽位是否严格排序 返回答案编辑 反问话术编辑 多 轮 对 话 管 理 制作标签
29. 4 多 轮 对 话 管 理 反问滤网 答案滤网 语义结构滤网 论元滤网
30. 4 多轮长依存 l 多轮沙箱:借鉴沙箱的思想,建立多轮沙箱 环境,意在捕捉用户的潜在意图 意图沙箱 历史信息解析 问:想贷款买个车 反问:请问您想买一辆怎么样的车呢,例 如(比较火的车推荐) 问:宝马3系和奥迪A4L哪个好 答:返回车系对比 l 多轮历史信息解析:对历史多轮信息进一步 做语义分析 问:30万以内的轿车吧,不要日本车 答:返回一堆车系提供选择 多 轮 对 话 管 理 多轮⻓长依存解析! 多轮沙箱! 深度学习! 上下⽂文信息! 问:不要国产车,最好带全景天窗的 答:进一步筛选,并返回车系提供选择 问:那就要宝马3系吧 答:为您推荐以下宝马三系的贷款方案 (提供贷款计算器) 多轮历史语义! 语义因⼦子! 强化学习! 问:口碑怎么样 答:返回宝马3系口碑 问:另一个呢 答:返回奥迪A4L的口碑
31. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
32. 5 知识图谱 意图识别结果、实体识别结果 利用来自产品库、汽车资讯等数据构建知识图谱,以回答汽车 领域常规类问题 知识图谱 图谱构建 主 要 结 构 车型 检索式问答 ③ 阅读理解 ② 检索式问答 利用积累的QA对,回答不易结构化和整理的观点类、操作 类、故障类等用户问题 汽车 资讯 产品库 用户手 册 阅读理解 图谱构建 ① 知识图谱 —— 答 案 生 成 社区问答 车系 汽车百 科 配置 口碑 社区问 答对 综合语料 (资讯、百 科、用户手 册问答等) 阅读理解 直接从各种非机构化综合语料(包括汽车资讯、百科、用户手 册等)中,找到问题相关的关键句,并提取答案
33. 5 构建方式方式 保养项目 品牌 采用自上而下的方式,主要由手工构建 数据类型 结构化数据—配置、口碑、经销商、保养等 非结构化数据—汽车手册、新闻资讯等 标签 厂商 保养周 期 配置 车系 级别 车型 知 识 图 谱 构 建 实体类型 版型 口碑 车系、厂商、车型、品牌、经销商等 经销商 零部件 口碑 关系类型 车系—>品牌 车系—>厂商 车型—>车系 经销商—>车型 ...... 手册知识点 颜色 报价
34. 5 构建步骤: 小秘query分析 设计标签体系 —— 知 识 图 谱 构 建 图谱更新 设计一套可扩展的标签体系,针 对各零部件的操作、保养、故障 等,利用标签来表示知识 解析知识点相关的零部件、标 签,以(部件,标签,知识点) 三元组的方式来表达知识。 将三元组更新到图谱中 ....... 调整座椅 位置(知 识点) 指示灯出现下 列情况时必须 检测系统 ....... 边类型: 操作 部件:座 椅 佩戴安全 带(知识 点) 操作 型: 带 类 边 全 :安 部件 XX车系 边类型:更换 部件:轮胎 手 册 为 例 手册知识点解析 按零部件分析,确定图谱构建 重点 安全带未系 警告灯(知 识点) 更换车轮 用下部固 定儿童座 椅 作 :操 椅 型 边类 儿童座 : 部件 钥匙
35. 5 知 识 图 谱 目 前 状 况 知识构建情况 l l l l l l l l l l l 车系:~4000 品牌:327 车型:~4万 配置:~670万 经销商:~3万 保养:~1.5万 经销商-车型:~230万 发动机:~3万 轮胎:~2万 口碑:~18万 版型:~6万 存储规模 l 实体数目:~10万 l 三元组数目(属性+关系):~3000万
36. 5 图谱问答一般流程 知识图谱 问句分发 知 识 图 谱 答 案 生 成 问题形式化语义解析 图检索及推理 答案评分排序 答案生成 针对手册知识问答—问题语义解析 针对手册知识问答—答案评分排序 实体:景逸X6 句法分析— 推荐(核心词) 关键词匹配—机油 评分标准: - 标签相似性 - 标题相似性 绅宝X25怎么更换蓄电池 蓄电池充电和蓄电池更换 候选答案 候选答案 问句 语义标签 语义标签 蓄电池更换 怎么更换蓄电池 蓄电池充电和蓄电池更换 推荐、机油 蓄电池,更换 更换,蓄电池 充电,蓄电池,更换 景逸X6推荐使用什么机油呢 蓄电池更换 知识点标题 知识点标题 0.87! 0.99!
37. 5 应用背景 l 拥有社区论坛总结的200多万精华问答对 l 补充图谱和阅读理解还不能覆盖的知识,完善整个答案体系 l 根据问句语义相似度,检索相关问题答案,返回给用户 问句:长安逸动有必要安装发动机护板吗 检 索 式 问 答 问题语义相似度: •翼虎机油加几升合适? •翼虎换机油换多少升? 问题语义相似度: •卡罗拉多久更换变速箱油? •卡罗拉多少公里需要更换变速箱油?
38. 5 模型训练 问句相似度计算 Cos<Hx, Hy> softmax h1 检 索 式 问 答 h3 LSTM\GRU Encoding 学习问题的语义表征 Embedding x1 x2 x3 Hy Hx h4 LSTM\GRU Encoding —— 具 体 方 案 h2 x4 问句对: Embedding X: (x1, x2,...,) Y: (y1, y2,...,)
39. 5 应用背景 l 存在大量知识数据是更新快、时效性强或者不易通过先验知识结构化或者结构化效率极低的场景,比如:新车上市、活 动规则等场景。 l 通过机器阅读理解的运用,可以减少人工知识点拆解工作,让机器直接对文档进行阅读,为用户提供文档解读服务,是 最自然的交互方式。 答案 新闻资讯 阅 读 理 解 揽胜是哪个部门的产品? 新款秦Pro什么时候上市? 捷豹路虎SVO 依据:此款新车是捷豹路虎SVO部门(特 别车辆运营团队)的产品,其是主要负责 设计和定制高性能、豪华车型的专属团队。 9月20日 依据:新车正式上市时间为9月20日,不 过目前已经开启预售,感兴趣的网友可以 到店里了解下,接下来我们先看下展厅里 的这台秦Pro DM版本新车。
40. 5 <问题:> 指针层 问句解析 文档检索 文档片段定位 具 体 方 案 阅读理解模型 调用 —— 阅 读 理 解 解析实体及关 系等 相关文档集 交互层 结构化预处理 上下文相关词表述 N-BiSRU 编码表示 输出概率排序 N-BiSRU 特征计算 词嵌入层 答案输出 问题 文本
41. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
42. 6 输入: 20万以内,不要日本车,百公里加速度10秒内,推荐一款车 实体识别 类别 逻辑关系 应 用 实 例 值 意图识别 国别 百公里加速度 小于 ⾮非! 小于 20万 日本 10秒 价格 查询条件 查询表达式 选车 逻辑表 答案类型 查询格式 Find car s.t. (price<200000) and (Country!=Japan) and (accelerated<10) 帕沙特 朗逸 速腾 … 知识图谱 结果
43. 目录 CONTENTS 1 背景简介 2 架构与流程 3 语义理解 4 对话管理 5 答案生成 6 应用实例 7 总结与展望
44. 7 实体冲突: 采用了模型(CRF+Bi-LSTM)加规则(匹配算法),解决实体冲突的大部分情况,准确率达到了95%,召回率达到93% 未来可在模型上进一步改进,提高其召回率,减少规则的使用 意图识别 利用改进text-CNN模型、HCapsNet模型和模板进行意图识别,提高了其准确率(92%)和召回率(90%),并实现了可配置。 未来可在此基础上设计新的增量学习模型,以减少迭代过程中对模板的依赖 总 结 与 展 望 对话管理 设计了语义因子解析引擎,实现了多轮对话的可配置。 支持了常规汽车领域的多轮对话场景 目前正在构建汽车领域的语言模型,实现多轮对话的场景的去模版化 答案生成 结合了知识图谱、QA问答以及阅读理解,采用了RNN、LSTM、语义相似度相融合的方法,实现广度和深度上对汽车领域知识实现全覆盖。 未来可在此基础构建以知识图谱为核心的汽车领域知识平台,全面覆盖汽车内容,提供汽车领域的智能化基础服务