智能问答机器人目前已经在自动化客服领域得到了广泛的应用,取得不错的效果。这种技术可以比较好地使用在各种咨询类的场景中,如售前的导购、售后的服务、医院的导诊、甚至医疗的辅助诊断等等。机器人可以迅速地响应用户的请求,提升服务的体验。也可以同时服务大量的用户,极大降低企业提供服务的成本。智能问答机器人一般采用一问一答的方式,高级一些的会采用多轮对话和主动对话的方式,主动澄清用户的问题,以提供精准的回答。总的来说,它是一种自动化的能力,将知识或信息,通过自然语言交互的方式准确地提供给需要的用户。
智能问答机器人能干什么
2011年IBM研制的Watson深度问答系统(DeepQA)在美国最受欢迎的知识抢答竞赛节目《危险边缘》中战胜了人类顶尖知识问答高手。展现了问答技术在大数据和深度学习的支持下所能具备的潜在能力。
在智能问答机器人的使用场景中,机器人根据用户的自然语言问题描述,进行精准的语义分析,定位用户问题或意图,提取用户问题或意图相关的信息,组织生成针对用户特定问题的解答。如下图对话所示,左侧是机器人,右侧是用户,讲述的是这样一个场景:用户购买了一箱水果和一双鞋子,收到货物后发现水果烂了,鞋子小了,内心满满的都是情绪。用户向商家的7x24小时在线客服机器人反映问题,询问解决办法。客服机器人立即响应,给出详细的解答和售后处理方法,用户问题得到及时处理,情绪得到安抚。
智能问答系统结构
在一个典型的问答过程中,用户的问题通过消息工具发送到机器人,机器人调用问答服务(QAS)对用户的问题进行语义分析,从知识库中定位相关信息或知识,然后生成问题的回答,最后将回答通过消息工具发给用户。其中,有两个主要因素决定了问答系统的用户体验:一个是知识库的质量,包括知识的覆盖面,知识的准确性;另一个是问答算法的准确性,包括语义分析、知识提取和回答生成。
知识库是智能问答机器人的核心。知识库可以是结构化的知识图谱,也可以是数据库表,可以是<问,答>对,也可以是非结构化的文档。不同的知识库结构,决定了上面运行的问答算法。我们的智能问答机器人目前主要使用基于<问,答>对的知识库,格式如下:
[
{
"id": 1,
"domain": "health",
"question": "吃了不干净的东西导致拉肚子怎么办",
"answer": "这个考虑是食物变质引起,建议你多喝水,适当运动锻炼,多吃蔬菜水果"
},
{
"id": 2,
"domain": "computer",
"question": "如何重装Windows 7",
"answer": "每6到12个月就重装Windows 7。和从不重装系统相比,能让你的计算机保持最佳状态。方法是插入Windows 7 CD。确保你的计算机设置为从光盘启动。在计算机启动后进入BIOS设置即可。"
}
]
以知识库为中心,我们的智能问答系统可以划分为两个大部分:离线的知识挖掘部分和在线的智能问答机器人部分,如下图所示。
离线的知识挖掘部分是降低知识库构建成本的关键,尤其是在冷启动构建某个业务的知识库时,需要从企业已有文档、记录、数据库等等数据源收集、挖掘、整理,以获得足够的业务知识覆盖。
在线的智能问答机器人部分,除了提供问答服务外,还围绕着知识库,构建了两个闭环系统:用户闭环和小二闭环。在机器人的服务过程中,这两个闭环中的信息会不断流动,用户的反馈和小二的反馈会被用来持续改善知识库质量,使得整个智能问答系统具备持续演化和学习的能力。
用户闭环:用户在使用机器人的过程中,可以通过反馈满意/不满意,帮助评估机器人的回答是否解决用户问题。对于用户经常反馈不满意的知识点,系统通过知识库工作台(ODC)推给企业小二,由小二来决定是否需要对知识点进行修正。
小二闭环:知识库工作台(ODC)周期性的检查用户访问日志和知识库,对于用户经常问但没有回答的问题、很少被访问到的知识点、检查有潜在冲突的知识点进行筛选,将最可能有价值的部分推给企业小二,由小二来评估、补充和修改,不断改进知识库。
智能问答系统算法
我们的智能问答系统目前主要采用<问,答>对知识库,相应的算法部分主要包括两块:一是关键词提取,用于从倒排索引的知识库中召回可能的候选答案;一是语义相似度计算,用于判断用户问题和知识库中的问题是否是同一个语义。整个算法和模型的技术体系如下图,语义相似度计算综合了由业务知识库训练出来的定制模型,以及业务无关的通用模型。
语义相似度计算过程中同时也考虑业务上的同义词和上下位关系词。以下列同义词和上下位词为例,可以精准地解决像“裤子破了”和“物品损坏”的语义匹配问题。
[
{
"name": "商品",
"synonyms": ["宝贝","货物","货","物品","东西","货品"], /* 同义词 */
"specifics": ["特殊商品","衣物","玩具"] /* 下位词 */
},
{
"name": "特殊商品",
"specifics": ["贴身衣物","生鲜水果"]
},
{
"name": "贴身衣物",
"specifics": ["内衣","内裤","文胸"]
},
{
"name": "衣物",
"specifics": ["衣服","鞋子","袜子","裤子","裙子"]
}
]
智能问答系统接入
在实际应用中,智能问答机器人往往需要和语音识别(ASR)、语音合成(TTS)搭配使用,以提供智能语音的交互能力。我们的问答服务还可以和对话引擎(DM)、预定义领域对话服务(NLU/NLG)等等其它对话组件无缝结合,根据租户的需要组合使用,提供一些通用的能力,如随机闲聊、查天气、查快递、查地图等等。问答服务和其它对话组件一起,采用统一的NLS API接口,作为一个整体对外提供服务。
总结和展望
我们的智能问答技术目前能比较好的解决一些重复的、相对比较简单的问题的自动解答。未来我们将进一步在以下几个方面推进:
- 降低知识库的获取和维护成本,运用更多的数据挖掘的手段从大量数据中挖掘知识,减少人工的参与。
- 支持多种知识库形式,文档、表格、本体、数据库等,充分利用企业已有的知识内容。
- 更精准的语义分析技术,理解复杂问题,解决简单的推理问题。