敏捷AI | NLP技术在宜信业务中的实践【构建用户画像篇】

2023-11-22 11:10

本文主要是介绍敏捷AI | NLP技术在宜信业务中的实践【构建用户画像篇】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

高级场景之构建客户画像

在许多企业中,每天业务人员和客户的沟通都会产生大量记录,这些记录可能包括了客服的沟通数据(通话记录、通话小结),也可能包括了各式各样的报告数据(陪访报告、征信报告等)(见图1)。

图1 业务人员与客户产生沟通记录

前者可能口语会多一些,后者则主要是书面用语。但两者之间有一个共同的特点,就是其中都蕴含着丰富的客户信息。想要把这些信息提取出来,我们就需要利用到(NLP)技术。

图2为一段客户陪访报告的节选,观察其文本特征,发现有许多业务所关注的信息,比如职业方面,客户是“大学教授”;在可投资产方面,理财金额有“100万”,投资类型是“银行理财”,对公司的态度是“不了解”等。

图2 客户陪访报告示例

所以我们完全可以通过NLP分析文本,对其中的客户特征进行标签化提取,最终利用得到的标签构建出客户画像。这样做的好处很多,比如方便我们的业务人员随时发现关键问题,便于跟进;自动化处理,提高工作效率。根据挖掘出的信息构建出客户标签画像之后,就可以方便地盘点特定时间范围内的需求特点,为新产品设置提供系数参考,或者补充、验证结构化字段内容。

总体的实施路线如图3所示,先通过业务分析来定义业务关注的标签库,然后针对定义出来的标签训练相应的提取模型,最后利用模型对数据进行分析,得到一系列客户标签,再对其进行汇总,最终形成客户画像。

图3 总体实施路线

总体的路线是这样的,但具体的实施过程中我们也有一些细节需要关注。通过对之前的数据进行分析,我们发现了一些特征,比如文本之中信息高度集中,信息表述通常以短句为单位,但是单一短句语义存在模糊性,还需要结合一定的上下文对其进行分析。所以我们需要对复杂句进行适当的切割,确定合适的数据粒度,同时配合一个适当大小的短句滑动窗口来捕获相关的上下文语义。

此外对于内部的业务文本来说,其内容涉及大量产品的专有实体名称和术语,以及较多的数字。针对这种情况,我们建立了专门的词库和实体库,对相应的实体名称和术语进行准确的切割和识别。对于数字的处理,我们先后比较字向量、标识符替换、规则识别+后处理等等技术方案,并且选择了其中效果最好的方法。

当然我们也面临着普遍存在的标注语料不足的问题,因此在这个项目中,我们侧重于研究怎么在小样本条件下进行Few-shot learning。

实际中,在大多数专业领域AI项目实施过程中,都存在着标注数据不足的情况,所以针对小样本进行学习的Few-shot learning也越来越凸显其重要性。Few-shot learning包括很多种技术,有常见的迁移学习+fine-tuning技术,典型的如Bert;也有基于半监督训练的一些技术,如基于相似性度量的一些神经网络模型,基于最近邻算法的样本标注扩散这些技术等;还有meta learning的相关技术,例如OpenAI在ICLR 2018上的best paper;甚至还有一些图网络的相关技术。

在以上种种技术当中,比较适合工程化的、比较容易实施的还是基于迁移学习的方法。在我们的项目中,发现迁移学习,也就是基于预训练模型,迁移到目标训练任务上,再加上半监督学习的标注辅助,可以比较好的满足我们的需求。

下面介绍一下我们的算法流程:先对复杂句进行清洗与切割;之后可以选择性的加入一些过滤规则,快速地去除那些比较明显的噪音数据;然后将数据流入到标签提取模型之中,得到具体的标签;最后在画像构建阶段对得到的所有标签进行去重、消歧,形成最终的客户画像。

具体到算法模型,我们也先后比较许多方法,本质上我们认为标签识别模型是一个短文本分类算法,我们尝试了基于统计的方法(SVM, Random Forest, XgBoost),也尝试了基于神经网络的模型(FastText,Text CNN/RNN/RCNN, HAN),最终我们选择了HAN模型,也就是层次注意网络(Hierarchical Attention Network)模型,通过在词一级和句一级分别进行RNN和Attention计算,最终得到一个合理的文本向量表征,用于最后的分类,整个过程如图4所示。

图4 HAN模型架构

图5是本实例的总体处理流程,经过数据预处理之后,文本被并行地分配到各个业务关注标签提取模型之中,输出各个业务标签,最终汇总到客户画像构建模块,在此进行去重、消解歧义和矛盾,最后得到客户的画像。

图5 实例处理总体流程

另外我们结合公司的敏捷实时数据平台设计了一个相应的实时AI解决方案,如图6所示,这里用到了我们团队开源的一些技术,包括DBus(数据总线平台),Wormhole(流式处理平台),Moonbox(计算服务平台)以及Davinci(可视应用平台),这四个平台构成了敏捷大数据平台栈。

在这个方案里,我们通过DBus来采集各类数据存储中的自然语言数据,经过一些可选的技术(如ASR等)得到相应的文本;再通过Wormhole来进行实时的流式处理,标签模型在Wormhole的实时数据流上运行,对数据流中的文本自动提取相应的标签,再由Wormhole输出到指定的数据存储中;之后由Moonbox对标签进行后续的汇总处理,先从存储介质之上把之前计算得到的标签提取出来,使用画像模型对画像进行构建,输出到如Redis之类的存储介质之中,最后推送给业务系统供其使用。这就是我们实现的一个实时用户画像处理流程。

[外链图片转存失败(img-saaMba2G-1568772188117)(http://college.creditease.cn/resources/upload/image/20190117/1547716556313012641.jpg)]

图6

此外,在图6下方的数据流分支里,我们通过在Wormhole上流转的生产数据流进行一个选择性抽样,之后同样利用标签模型和画像模型,计算出客户画像,此后将原始数据、标签数据和客户画像通过Davinci展示给我们的模型维护人员,用于评估检查模型的运行情况,这样就实现了一个实时的模型效果监控系统。综合这两者,我们就得到了一个实时的、基于文本分析的画像构建系统。

总结

随着各企业实体对自然语言数据愈发关注,NLP+AI技术在各领域都成了非常重要、核心的基础技术服务。领域知识与NLP技术的结合带来了新的技术产品,创造出了新的商业价值,比如我们目前常用的一些产品:Siri、小爱同学等等,这种Conversational UI带来的不仅是一种全新的交互模式,更是开辟了一个新的产品领域。

在数据方面,虽然自然语言的数据存量很大,但目前来看无论是通用领域还是专业领域,经过加工整理的高质量自然语言语料数据资源还是比较缺乏,因此其具有非常高的价值。领域语料的积累可以极大提升AI产品的效果,在一定程度上帮助企业形成新的数据壁垒、技术壁垒。

在NLP的算法方面,就未来一段时间来看,如前文所述,面对小语料任务的Few-shot Learning会越来越受关注,尤其是以Bert为代表的迁移学习技术,将给现在的一些NLP任务带来一场革命。此外还有针对NLP语料的数据增强技术,我们知道在图像领域数据增强技术已经比较成熟,是一种常见的数据处理方式,但是在NLP领域数据增强技术的发展还不够成熟,如果能在这方面有所突破的话,相信会对各类NLP任务都有很大帮助。

NLP技术的发展还需要业界各企业、各位算法与工程专家的共同努力,相信未来我们能够更准确、更快速、更方便地理解各领域的自然语言数据。

作者:井玉欣

这篇关于敏捷AI | NLP技术在宜信业务中的实践【构建用户画像篇】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/409709

相关文章

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

SQLite3命令行工具最佳实践指南

《SQLite3命令行工具最佳实践指南》SQLite3是轻量级嵌入式数据库,无需服务器支持,具备ACID事务与跨平台特性,适用于小型项目和学习,sqlite3.exe作为命令行工具,支持SQL执行、数... 目录1. SQLite3简介和特点2. sqlite3.exe使用概述2.1 sqlite3.exe

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Springboot整合Redis主从实践

《Springboot整合Redis主从实践》:本文主要介绍Springboot整合Redis主从的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言原配置现配置测试LettuceConnectionFactory.setShareNativeConnect

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结