前不久,OPPO 旗下的人工智能助手“小布助手”月度活跃用户数突破一亿,成为国内首个月活用户数破亿的手机语音助手。
经过 2 年多的成长,小布助手在能力上实现大幅升级,也融入了我们身边便捷的服务功能。小布团队亦克服了诸多技术难点,为用户带来了更智能的服务。为此,小布团队撰写了一系列文章,详细介绍小布助手背后的技术支撑,本文是揭秘小布背后技术的第三篇。
1. 对话系统的基本架构
智能对话交互已逐步成为新一代的人机交互趋势,而OPPO研发的小布助手也已覆盖手机、手表、电视、耳机等多类终端设备,是一款集成任务型技能、知识问答、聊天、对话推荐、主动对话等综合能力的智能助手。
小布助手功能可分为五类:
- 系统应用类:确定的命令需求,如系统设置、时间技能、应用技能等
- 信息查询类:客观知识的查询/搜索需求,如“今天天气怎么样”等
- 泛娱乐类:满足用户娱乐需求,包括听歌、看电影等
- 生活服务:满足用户日常生活需求,包括导航、打车、订餐等
- 聊天类:主观类的闲聊需求,包括人设问答、闲聊问答、话题多轮等
小布助手架构是融合了任务型、知识问答型、聊天对话型的综合对话系统。
对于任务型对话系统,由用户输入语音,首先经过ASR模块识别为文本,下发到NLU服务进行自然语言语义模块,生成语义表征结果,如领域Domain+意图Intent+槽位Slot,然后下发给DM对话管理模块,然后对话状态跟踪更新上下文的对话状态,通常为词槽表征的对话状态。
对话策略模块基于当前对话状态选择最佳的回应action,下游不同BOT的action可能涉及到检索、推荐、系统问、意图澄清以及API调用;对话action的结果经过NLG模块生成合适的自然语言,最后经过TTS语音合成输出回复语音。
聊天对话系统主要包括以下几层。
Offline闲聊知识库索引层:主要负责基于离线训练好的语义编码模型得到所有问题Query的语义向量,然后基于高维向量索引工具生成语义索引,同时基于分词生成文本索引,最后服务于线上服务;
Online在线服务层:主要是Query话题识别情感识别等处理后,下发给应答引擎包括模板应答、检索式应答、生成式应答,以及主动对话引擎,然后融合排序模块基于应答模块输出的候选回复进行深度语义排序最终输出最佳回复,回复更新到对话上下文辅助Query理解;
另外最下面的Offline离线的用户兴趣挖掘层,主要基于用户query挖掘用户兴趣主题,最后服务于主动对话引擎,用来发起新话题吸引用户长程交互。