abf00c4dd5bcf75c587b95ddfb55c322.gif

导语:对于银行业来说,数字员工可以通过自然语言对话、语音等低门槛的人机交互模式,降低企业中后台软件的操作复杂度,达到节省企业用工成本的目的。那么,数字员工应该如何构建呢?

新程序员 005:开源深度指南&新金融背后的技术力量》特邀中国工商银行软件开发中心来分享他们在数字化员工建设方面的实践与总结,通过对意图识别、对话抽取、模型蒸馏、回流学习等技术的介绍,对用户理解进行了深入探索。

作者 | 工行软件开发中心       责编 | 张红月

出品 | 《新程序员》编辑部

近年来,商业银行在经营精细化管理上的要求日益增加,因而中后台业务系统处理的功能也日趋复杂,业务人员参与到业务开展中的劳动成本日渐增高。为解决这些痛点问题,中国工商银行开展了数字员工的探索,通过大数据平台、机器学习等基础技术底座,依据数据中台的数据资产,实现通过对话交互方式快速获取数据资产、调度业务服务的业务处理模式。

同时,为实现数字员工响应迅速、交互体验良好的效果,工行软件开发中心在技术上通过NLP多轮对话实现了理解用户意图,并通过良好的人机交互工程设计,达到了这一目标。

本文节选自《新程序员 005:开源深度指南&新金融背后的技术力量》,本期杂志将开源开发者最关注的核心开发者与技术栈,以及与企业最关心的开源行业化应用以及商业化前景、治理风险等问题进行深度解析。

与此同时,还将围绕“新金融背后的科技力量”带来最前沿的观点、实践案例与技术剖析!小伙伴可扫码下方二维码提前预定!

 

用户理解探索:意图识别、对话抽取、模型蒸馏、回流学习

数字人作为用自然语言与用户交互的人工智能系统,基于用户意图识别、对话实体抽取、模型蒸馏、回流数据学习等核心技术组成的AI中枢,通过人机交互来完成与用户的沟通。

智能对话交互的模型算法部分包括实时联机和离线两部分(见图1),实时联机部分是对用户请求实时响应,离线部分主要完成模型训练、测试与知识库整理。

3f8154bc73c5573436cfbab1486c21eb.png

图1智能对话交互框架

智能对话交互体系的技术核心要点主要有以下四个方面:

用户意图识别

用户意图识别是指通过文本分类的方法将问题分到对应的意图种类,准确识别用户真实意图,缩短交互时间,提升用户体验。在中后台业务场景中,意图识别一般分为2层,领域识别和每个领域下的用户行为意图识别。领域识别通常发生在多个业务方接入,但不同业务方之间未做节点物理隔离的场景,需要根据用户请求判断属于哪个业务领域。每个领域下的用户行为意图识别是指业务领域下对服务进一步划分,如信贷领域下的泛知识查询、业务知识检索、报表录入与下载、闲聊等。从领域识别到领域下的用户行为意图识别,用户意图得以更精确地识别,数字人得以更好地理解用户,更智能地提供相关服务。

在模型选择方面,综合考虑数据特点、业务场景等因素,最终选择BERT模型作为意图识别模型结构(见图2)。BERT模型是一种自编码语言模型,采用transformer encoder部分,通过Masked语言模型和next sentence预测两个任务预训练,快速迁移到下游任务中。实践中结合特定场景的数据对该模型进行微调,即可达到良好的效果。

29bbb08fc1d3dbbead523707a51216ac.png

图2 BERT模型

在模型训练方面,主要有样本准备、文本预处理等步骤。样本准备包括:收集业务数据,为每条数据打上业务标签;采用文本相似度、关键词抽取等方式扩充数据集;主动学习方法,闭环标注。准备好样本后,需要对文本进行预处理,包括样本清洗、分词、去除停用词、预训练语义词向量初始化等。

对话实体抽取

在银行中后台业务场景中,用户对话通常有报表下载等任务需求,且这些任务需求对话通常有若干语义槽的槽位需要填充,当有槽位未填充时,需要回复话术引导用户回答,填满所有槽位。每一个槽位对应一种实体,对槽位填充的过程即对话实体抽取过程。

在模型选择方面,综合考虑数据量级、工程建设等因素,最终选择BERT+CRF模型作为实体抽取模型结构(见图3)。Bert模型通过海量数据的预训练,学习到普适性的知识,再通过上层添加CRF约束,对token级别的识别具有良好的效果。

3c5f2b234bc3e249e21447071a821063.png

图3 BERT+CRF模型

在模型训练方面,与用户意图识别类似,包括样本准备、文本预处理过程等步骤,此处不再赘述。

模型蒸馏

为提升模型运行效率,同时考虑到生产环境对模型容量等的限制,在业务场景中通常需要对模型进行蒸馏。

模型蒸馏采用Teacher-Student迁移学习方法(见图4),将Teacher模型的性能迁移到Student模型上,因Teacher模型网络更为复杂,具有良好的泛化能力,可以用它学习到的soft knowledge来指导Student模型的学习,使得参数量更少、更简单的Student模型也能够具备与Teacher模型相近的学习能力。

实践中,将上述意图识别和实体抽取的两个Bert系列模型作为Teacher,Bilstm模型作为student,通过Teacher-Student知识传递,最终将模型在效果未打折扣的情况下进行规模压缩,实现顺利部署上线。

b3315db832e2d6b05c5f1f0857c44eff.png

图4 迁移学习

回流数据学习

数字人收集用户反馈信息(投诉、回答错误反馈等)、新问题、新语料等数据,重新开始数据预处理、特征工程、模型训练等过程,即自我学习,其中模型训练依然使用前文提及的BERT、CRF等算法获得新NLU模型,定时对原模型进行更新,并重新部署。在部署过程中如遇效果不如原模型的情况,则会启动回滚模式,回滚到上一版本NLU模型(见图5)。

7c44bc813c67348966cf4a3ae98aef32.png

图5 数据回流

回流知识信息还包括埋点信息、业务术语、属性关联等,这些知识信息通过各种途径进入数据湖沉淀、加工、组合,并形成索引后存储在Elasticsearch

等知识库中。数字人对接知识库,通过意图识别等模型进行分词检索和匹配来获取知识概要或索引,并对接数据湖底座,借助索引获取数据资产等业务要素,丰富与精细化库内模板,并不断进行离线模型训练和迭代。

数字人在面对法务、运维等新场景时,模型与QA数据库也能自我驱动与更新,及时响应新领域的问答与对话,快速适配新场景,同时也在用户的不断使用中进行升级。

数字人交互实践:通过“微前端+微服务”模式嵌入业务

数字人交互工程通过落地意图配置、数据可视化、服务热插拔等能力来达到整合业务服务、降低用户使用门槛的目的,并通过“微前端+微服务”的模式以组件化低侵入的方式嵌入到业务系统。

意图配置

数字人提供页面支持用户配置意图,意图配置包括用户问题、槽位、词典、服务实现、自动回复等模块。用户在配置带槽位的问题时,需要为各个槽位设置对应的词典和追问问题,并通过设置服务信息来完成意图与服务的映射。当发生对话时,数字人工程通过意图识别模型判断用户意图,通过实体抽取模型提取任务关键词补齐槽位信息,根据配置好的意图和服务映射完成服务的调用,并将处理结果以可视化的形式呈现给用户。

数据可视化

数字人的前端工程封装了表单、卡片容器组件;同时,引入ECharts组件,配合ECharts定制和数据转化适配工具,支持将查询返回的数据结果以图表、折线、波浪、扇形等直观的形式展示。数字人支持自定义配置数据服务与展示组件的绑定关系,为用户提供灵活多样的数据可视化能力(见图6)。

b32d6c8950f468f4bafde07de99aaa68.png

图6 数据可视化

服务热插拔

数字人底座能力基于Java服务动态扩展机制(Dubbo SPI)编写,SPI(Service Provider Interface)本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件来加载实现类,这样可以在运行时动态为接口替换实现类。

在Java中,SPI是被用来给服务提供商做插件使用、基于策略模式来实现动态加载的机制。我们在程序中只定义一个接口,具体的实现交给不同的服务提供者;程序在启动的时候,通过读取配置文件来确定要调用哪一个服务提供者。同时,Dubbo重新实现了一套功能更强的SPI机制, 支持AOP(Aspect Orient Programming)与依赖注入,并且利用缓存提高加载实现类的性能,支持实现类的灵活获取。基于SPI的能力,接入方可自行替换基础能力,并整合存量功能组件形成新业务能力。

(1)基础能力热插拔替换。以意图识别组件为例,意图识别组件本身为基础组件之一,接入方可根据框架规定的边界开发全新的意图识别组件进行基础能力替换;同时意图识别组件内部可分为意图获取、多意图处理、意图扩展等二级组件,接入方亦可只针对二级组件进行功能替换。

(2)功能服务整合。接入方可基于数字人整合存量业务服务,深度定制开发细分专业方向上的数字人,比如财报分析、产品体验、安全顾问、审批监督等数字人。

微前端+微服务

为了多渠道触达用户,兼容各业务系统和平台,数字人交互工程采用“微前端+微服务”模式进行开发,并对人机对话的基础功能进行解耦和瘦身,支持云原生部署。

微前端借鉴了微服务的架构理念,将一个庞大的前端应用拆分为多个独立灵活的小型应用,每个应用都可以独立开发、独立运行、独立部署,再将这些小型应用联合为一个完整的应用。数字人基于iframe隔离的微前端方案,通过窗口变量与主系统完成数据交互来保证子应用的正确加载、执行和更新。通过微前端技术,数字人既可以与业务应用融合为一,又可以减少应用之间的耦合。

数字人微前端工程主要开展两方面工作:一方面,工程内底层处理逻辑封装为npm依赖(例如iframe集成与微前端子工程加载等功能),并实现插件依赖自动注册,降低工程代码复杂度;另一方面,router、store等公共文件与功能代码分离,实现功能代码之间完全解耦,将公共文件中涉及功能代码的部分抽取后放置在各功能文件夹内部,收敛开发区域,方便移植和增删功能代码。

数字人的后端工程基于微服务架构搭建,主要包括会话管理、意图识别、智能问答与智能检索、能力分发、任务管理、辅助能力(邮件发送、短信发送、持久化存储等)等多个功能组件。通过对功能组件进行画像,确定边界、输入输出,统一交互总线。在工程框架层面,在接入层核心组件设计时进行设计模式抽象,再针对各基础能力组件进行第二层的松耦合设计,将技术代码和业务能力代码分层。接入方只需针对业务需求编写微服务,通过意图配置挂接服务,即可扩展数字人的业务处理能力。同时,数字人自身也可以通过微服务的方式接入业务系统,实现无侵入式引入。

“混合型”人机团队的新型工作方式已成为一种趋势

目前,数字人带来的业务模式变革已初见效果:在报表下载汇总,审批文件归档,合同方章鉴别等重复性、机械性高的业务处理环节,数字人可为整体流程缩短约20%,降低20-50%的人力成本。在掌握了机器学习、微前端、微服务等开发技能后,不同产品线的开发者也可根据使用场景快速搭建具备相应专业技能的数字人,为企业降本提效。

在银行中后台业务领域,根据人机各自优势积极构建包括数字员工在内的高效人机团队已逐渐成为趋势,将进一步推动业务工作质效快速提升。随着人工智能技术的不断成熟,数字人的服务范围将进一步拓展,在对客服务、流程自动、运营提效、内部管理、风险管控等方面发挥更大的作用。同时,数字人将越来越专业、越来越智能,以更人性化的方式与自然人交互,降低新老业务的使用门槛,促进更高效的人机协同作业,应对企业未来发展过程中面临的机遇和挑战。

— 推荐阅读 —

新程序员005-008》期正在制作中,目前可以提前预约订购!

 

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐