免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

机器学习在好分期资金适配中的应用实践

吴迪、孙丽川、郭帅

  • 2021-07-21
  • 本文字数:3830 字

    阅读完需:约 13 分钟

机器学习在好分期资金适配中的应用实践

作者|吴迪、孙丽川、郭帅


机器学习和深度学习技术在很多领域扮演着越来越重要的角色,以资金适配领域来说,它们在成本节约、推荐排序、收入机会和风险监控等方面可以带来明显的好处。但目前,机器学习和深度学习技术在资金适配方面的应用和探索仍缺乏一些经验。因此,消费分期产品“好分期”团队编写此文进行实践记录,同时也希望大家能提供一些宝贵意见。

业务流程简介

以下是好分期业务的大致流程图,资金方是服务的源头,目前好分期对接数十家资金方,每个资金方对用户的审核规则各有不同。好分期的作用主要是为用户进行适配、挑选最合适的资金方,因此需要在前期进行用户数据收集和分析,从而形成用户画像,通过各种计算方法为用户匹配最合适的资金方。

资金适配的痛点及应用挑战

高效、便捷、最大化的利益是用户关心的重点,资金适配的主要任务就是满足用户的需求,但好分期在实践的过程中还是碰到了一些痛点。


首先,随着接入的资金方越来越多,通过传统的计算方式来从众多资金方中挑选出最适合用户的资金方,变得越来越困难。


其次,传统路由模式中,所有用户共用一套资金体系,虽然支持手动配置,但是效果十分机械化,无法对每个用户进行针对性适配。


在尝试解决这些痛点的过程中,我们面临着新的挑战:

  1. 资金方越来越多的情况下,如何为用户进行快速适配;

  2. 每个用户都有适合自己的资方,通过数据分析摸索用户之间的关系,找到资金适配的规律。


为解决问题,我们开始将机器学习等技术应用到系统中。


机器学习在资金适配系统的实践

在金融领域,机器学习的应用越来越多,金融领域庞大的数据量也为机器学习提供了支持。机器学习项目的成功主要依赖于构建高效的基础结构、收集适当的数据集和应用正确的算法。

用户画像

想要解决上面所说的问题,需要先尝试生成用户画像,这里面用户数据的收集和清洗是至关重要的。用户的数据安全需要高度重视,凡是涉及到用户隐私的数据都需要进行异常严格的加密机制以及脱敏机制来进行处理。


  • 用户画像建模第一步是要实现统一化。

用户唯一标识是整个用户画像的核心,我们以一个 App 为例,它把“从用户开始使用 App 到下单再到售后、整个流程中用户的所有行为”进行串联,这样就可以更好地去跟踪和分析一个用户的特征。


  • 用户画像建模第二步是要实现标签化。

用户行为分析:

用户标签:它包括了性别、年龄、地域、收入、学历、职业等,这些是用户的基础属性。

消费标签:消费习惯、购买意向、是否对促销敏感。这些用于分析用户的消费习惯。

行为标签:时间段、频次、时长、访问路径。这些是通过分析用户行为,来得到他们使用 App 的习惯。


如果按照数据流处理的阶段来划分用户画像建模的过程,可以分为数据层、算法层和业务层。在不同的层,都需要打上不同的标签。


数据层指的是用户消费以及借款金额、借款用途、常住地等标签,这些可以打上“事实标签”,作为数据客观的记录。算法层指的是透过这些行为算出的用户建模,可以打上“模型标签”,作为用户画像的分类标识。业务层指的是获客、粘客、留客的手段,可以打上“预测标签”,作为业务关联的结果。


拿到用户画像后,再针对资金适配和相关业务场景来选择合适的算法。

基于用户的协同过滤算法

基于用户行为分析的推荐算法是个性化推荐系统的重要算法,我们一般将这种类型的算法称为协同过滤算法(Collaborative Filtering Algorithm)。顾名思义,协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求。


既然是基于用户的行为分析,就必须要将用户的行为表现出来,下面给出了一种用户行为的表现方式(当然,在不同的系统中,每个用户所产生的行为也是不一样的),它将用户行为表现分为 6 部分,即产生行为的用户和行为的对象、行为的种类、产生行为的上下文、行为的内容和权重。


随着对协同过滤算法的深入研究,学术界提出了很多方法,比如基于邻域的方法(neighborhood-based)、隐语义模型(latent factor model)、基于图的随机游走算法(random walk on graph) 等。在这些方法中,最著名的、在业界得到最广泛应用的算法是基于邻域的方法,而基于邻域的方法主要包含下面两种算法:


  1. 基于用户的协同过滤算法(User-based Collaborative Filtering),简称 UserCF 或 UCF,这种算法给用户推荐和他兴趣相似的其他用户喜欢的物品。

  2. 基于物品的协同过滤算法(Item-based Collaborative Filtering),简称 ItemCF 或 ICF,这种算法给用户推荐和他之前喜欢的物品相似的物品。


在一个个性化推荐系统中,当一个用户 A 需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户 A 没有听说过的物品推荐给 A。这种方法称为基于用户的协同过滤算法。


基于用户的协同过滤算法主要包括两个步骤:


  1. 找到和目标用户 A 兴趣相似的用户集合。

  2. 找到用户集合中其他用户喜欢的且目标用户没有听说过的物品推荐给目标用户。


步骤 1 的关键就是计算两个用户的兴趣相似度。这里协同过滤算法主要利用行为的相似度来计算兴趣的相似度。


通过以上概念,我们可以作出设想,协同过滤算法通过找到用户感兴趣的物品,计算用户之间的相似度,进行推荐,那么,好分期在资金适配的时候,也可以引入此方法,从而提高计算效率。比如可以通过用户 A 的基本信息,找到和用户 A 基本信息相似的用户,此类用户会成为一个集合,然后统计此类用户适配的资金方,通过计算,得到一个资金方对此类用户集合的排序,从而可以为 A 用户提供更优秀的计算顺序。


(1)基于用户的最近邻推荐概述


基于用户的最近邻推荐(user-based nearest neighbor recommendation)主要思想是:首先,对输入的评分数据集和当前用户 ID 作为输入,找出与当前用户过去有相似偏好的其它用户,这些用户叫做对等用户或者最近邻;然后,对当前用户没有适配过的每个资金方 P,利用用户的近邻对资金方 P 的评分进行预测;最后,选择所有资金方评分最高的 TopN 个推荐给当前用户。


(2)前提/假设


如果用户过去有相似的偏好,那么该用户在未来也会有相似的偏好,用户的偏好不会随着时间而变化。


(3)计算方式


使用皮尔森/皮尔逊相关系数(Pearson Correlation Coefficient)来表示两个用户之间的相关性,取值范围为[-1,+1],-1 表示强负相关,+1 表示强正相关,0 表示不相关。

应用实践

下图展示了好分期数据平台的总体架构。对于数据平台来说,最重要的是保证数据的时效性和准确性。


拿到数据之后,根据费率、利息、金额、用途等一系列条件,进行实时计算(结合每个资金方的特定准入条件),根据用户的情况和资金方的情况进行适配性打分,最终为用户适配到最合适的资金方。下面用基于用户的协同过滤算法介绍好分期的计算逻辑:


举例而言,当需要为用户 A 匹配资金方时,首先检查它们之间的相似度。当我们发现用户 A、用户 B、用户 C 的相似度较高时,就可以将这三个用户看作一个群体,他们拥有相同的偏好。分析这个群体之前已经适配过的资金方,优先对该资金方进行计算和排序,可以大大提高计算效率。


资金适配中,我们可以将用户的用途、费率、户口所在地、住址等基本条件进行分类。本文只通过用途和费率举例。


相似度计算举例:


根据用户的基本信息。检查它们之间的相似度列表,同时也可以对类别进行标签和分组,最终得到用户与资金方的适配度,比如 A 用户的标记性信息有 N1、N2、N3,D 用户的标记信息有 N2、N3、N4。


接下来尝试计算 A 和 D 之间的相似度:


从“基本信息”可以看出,A 和 D 都拥有的基本信息是 N2。用户 A 标记性信息=3,用户 D 标记性信息=3。所以 A 和 D 的相似度为 1/3。


在得到用户之间的相似度之后,接下来要做的就是进行适配性推荐了,假设用户 C 和用户 D(群体)都已成功与资金方 X 进行适配(之前计算的最合适的资金方),那么就优先去计算用户 A 与资金方 X 的适配程度。最后,根据适配度计算的结果,进行相应的推荐,把相对应的资金方适配给用户。


计算示例:

axf += x * y;nxf += x;xfx += y;kfx += Math.pow(x,2.0);//x的平方求和nfx += Math.pow(y,2.0);//y的平方求和
doublemolecule = axf - (nxf * xfx) / n;doubledenominator = Math.sqrt((kfx - (Math.pow(nxf,2) / n)) * (nfx - (Math.pow(xfx,2) / n )));log.info("molecule:"+ molecule+",denominator"+ denominator);returnMath.abs(denominator ==0?1: molecule / denominator);
复制代码


效果如下:

张峰海与 userColA 集合的相似度为:0.8654335698926632

张峰海与 userColB 集合的相似度为:0.6558297417698652

张峰海与 userColC 集合的相似度为:0.3202118523990502

张峰海与 userColD 集合的相似度为:0.5862446890012758


当然,基于用户的协同过滤并不会这么简单,判断两个用户的相似度也不是简简单单的使用余弦相似性就可以了。实际业务场景中我们还需要用到更复杂的逻辑,才能达到最终的目的。本文只是让读者有一个简单的概念,具体企业应用中的变化,就不详细开展了。


通过对数据的收集和清洗,以及一系列计算规则(包括上面所说的相似度计算),最后我们发现资金方的适配成功率提高了将近 10%。X 轴为时间,Y 轴为适配成功率,如图所示:

总结

总的来说,资金适配的应用实践是有一定效果的。对于未来可能面临的情况,我们也展开了一些思考。未来将会有更多的资金方接入到系统中来,用户对于线上的金融需求也会越来越多。挖掘用户信息、提供更高效、更优质的服务将一直是好分期追寻的目标。未来我们会探索更多的模型、更优秀的计算方式,并将其运用到资金适配系统中来。


作者介绍

吴迪,微财科技技术总监

孙丽川,微财科技资深工程师

郭帅,微财科技高级工程师

2021-07-21 00:131735
用户头像
罗燕珊 InfoQ中文站编辑

发布了 352 篇内容, 共 177.2 次阅读, 收获喜欢 684 次。

关注

评论

发布
暂无评论
  • 标签个性化数据在推荐排序中的应用

    本文share的这个项目,是我们在个性化推荐上的一个小小的尝试。通过捕捉用户实时的标签快速捕捉用户兴趣变化,用机器学习算法挖掘用户兴趣与实际消费行为的联系,及时调整推荐排序,提高推荐效果。

  • 推荐算法综述(五)

    近年来社交媒体已经越来越流行,可以从中获得大量丰富多彩的信息的同时,也给我们带来了严重的“信息过载”问题。推荐系统作为缓解信息过载的最有效方法之一,在社交媒体中的作用日趋重要。区别于传统的推荐方法,社交媒体中包含大量的用户产生内容,因此在社交媒体中,通过结合传统的个性化的推荐方法,集成各类新的数据、元数据和清晰的用户关系,产生了各种新的推荐技术。本文总结了推荐系统中的几个关键研究领域,进行综述介绍。本文是推荐算法综述的最后一部分。第一部分主要介绍了推荐算法的主要类型。第二部分,主要涵盖了不同类型的协同过滤算法,突出他们之间的一些细微差别。第三部分详细介绍了基于内容的过滤算法。第四部分主要介绍了混合引荐技术和基于流行度的推荐方法。在这篇文章中,我们在回顾了所有基本的推荐算法之后,介绍了如何选择最合适的推荐算法。

  • 春节加餐 1 | 用户增长模型:怎么利用 AI 技术判断新渠道性价比?

    你知道用户增长模型是什么吗?怎么利用AI技术判断拉新渠道的性价比,以及怎么评估模型的效果?

    2021-02-10

  • 设备指纹:面对各种虚拟设备,如何进行对抗?

    设备指纹是风控系统中的核心数据来源。那设备指纹是如何对手机进行追踪的?又是如何判定异常行为的呢?

    2020-03-02

  • 用户分层成交

    2022-11-09

  • 有赞推荐系统关键技术

    本文介绍有赞微商城的个性化推荐系统,在关键节点增加推荐入口,进行场景化推荐。

  • 精读 2017 年 EMNLP 最佳长论文之二

    如何利用自然语言处理技术来解决一个社会问题,正逐渐成为很多社会科学和机器学习研究的交叉领域。

    2017-11-08

  • 推荐算法综述(二)

    推荐系统在各种系统中广泛使用,推荐算法则是其中最核心的技术点,InfoQ接下来将会策划系列文章来为读者深入介绍。推荐算法综述分文五个部分,本文我们将会详细介绍这些算法的区别,让你能够深入理解他们的工作原理。

  • 社会化推荐在人人网的应用

    推荐引擎随着电子商务的蓬勃发展越来越受到业界的关注,再加上web2.0的兴起,推荐引擎在SNS领域也越来越发挥出巨大的潜力。本文介绍了人人网社会化推荐框架,详述了推荐引擎如何帮助用户迅速建立自己的社交圈子,以及给用户提供优质和个性化的资讯和内容。

  • 大数据如何助力营销(2)用户画像

    用户画像是指根据用户的数据,构建出用户的特征和兴趣,从而对用户进行分类和个性化的过程。用户画像可以帮助营销人员更有效地触达目标客户,提高营销效果和转化率。

    2023-05-12

  • 推特的个性化推送算法

    来自推特的软件工程师Gary Lam在2017 London QCon上谈论了个性化推送功能。他总体概览了推特的个性化及推荐算法,并解释了这些算法是如何在推特的大数据量及二元特征下进行大规模运行的。

  • 贝壳用户偏好挖掘的思考与实践

    用户偏好,即对用户内在需求的具体刻画。通过用户的历史行为和数据,对用户进行多角度全方位的刻画与描述,利用统计分析或算法,来挖掘出用户潜在的需求倾向。

  • 基于二代征信报告的信用评估模型实践

    与一代征信系统相比,二代征信系统在收录数据、信息更新、信用分计算、用户权益保护等方面有所改进。

    2023-04-04

  • 如何预测用户的喜好?

    推荐引擎主要就是依靠各种推荐算法,常用的推荐算法有:基于人口统计的推荐、基于商品属性的推荐、基于用户的协同过滤推荐、基于商品的协同过滤推荐。

    2019-01-26

  • 达观数据个性化推荐系统实践

    本文从数据处理、用户行为建模到个性化推荐,分享达观数据在个性化推荐系统方面积累的一些经验。

  • 调研目标:在差异性洞察中找到爆破点

    用户调研中,你要如何确定调研目标,又如何针对调研目标进行数据收集呢?

    2019-05-01

  • 从算法到案例:推荐系统必读的 10 篇精选技术文章

    推荐系统近几年来一直十分火热,目前几乎所有的电子商务系统、社交网络,广告推荐,搜索引擎等等,都不同程度的使用了各种形式的推荐系统。想知道电商如何向你发送广告的?想了解社交网络怎么推荐好友的?想自己搭建一个推荐系统?想了解一些算法或架构从而将自己的推荐系统做得更好?InfoQ为你整理了一系列的有关推荐系统的算法文章,以及主要从电商和社交网络方面选取了一些优秀的案例,来看看这些关于推荐系统的优秀文章吧。

  • 基于网络购物场景的三种推荐系统原理

    本文给出了推荐系统的定义以及应用场景,通过网络营销和购物的场景举例说明了推荐系统存在的重要意义。基于知识的推荐系统、基于内容的推荐系统和基于协同过滤算法的推荐系统是推荐系统的三种基本实现方式。文章的最后解释了协同过滤的三种算法实现方式以及工作原理。

  • 推荐算法综述(四)

    近年来社交媒体已经越来越流行,可以从中获得大量丰富多彩的信息的同时,也给我们带来了严重的“信息过载”问题。推荐系统作为缓解信息过载的最有效方法之一,在社交媒体中的作用日趋重要。区别于传统的推荐方法,社交媒体中包含大量的用户产生内容,因此在社交媒体中,通过结合传统的个性化的推荐方法,集成各类新的数据、元数据和清晰的用户关系,产生了各种新的推荐技术。本文总结了推荐系统中的几个关键研究领域,进行综述介绍。本文是推荐算法综述的第四部分。第一部分主要介绍了推荐算法的主要类型。第二部分,主要涵盖了不同类型的协同过滤算法,突出他们之间的一些细微差别。第三部分详细介绍了基于内容的过滤算法。在本文中,我们将介绍混合引荐技术,它是建立在我们前面介绍过的算法之上的。我们也将简要讨论针对协同过滤算法和基于内容的过滤方法中存在的不足,可以如何通过融入item的流行度来缓解这些局限性。

  • 大数据杂谈微课堂 | 数据挖掘技术和房地产的有效结合

    数据挖掘依托房地产行业累积的海量数据,从中挖掘出最有价值的数据, 从而改善行业体验,推动行业进步。 本文内容主要包括如下两个部分: 1)数据挖掘在房产领域的可行性和必要性 2)数据挖掘在链家网的实践详情

发现更多内容

【实战】自定义 Github Action 库

小鑫同学

前端 Node 10月月更

DevOps 与 DataOps 相关吗?

雨果

DataOps

走进“yarn create vite”的源码学习

小鑫同学

前端 Node 10月月更

贤鱼的刷题日常--P2671 [NOIP2015 普及组] 求和

贤鱼很忙

c++ 10月月更 题解

read、select、poll、epoll区别

wzh

网络 Linux Kenel epoll IO多路复用 poll

2022 Java零基础必备 简单易学 Eclipse免费下载安装+JDK环境搭建一站式捆绑服务到底的教程 足够全、足够详细、足够劲爆 最关键可以一直让你免费使用!

极客小俊

eclipse 工具 开发工具 环境搭建 Java 开发

数据质量监控,你一直都做错了

雨果

数据质量

Java Lambda 表达式

Yeats_Liao

后端 Java core 10月月更

io的实质

wzh

Linux 面试 后端 io java 编程

数字经济时代,企业应该如何搭建数字体验平台(DXP)?

Baklib

客户体验管理

我决定以后一直使用Eclipse了 因为它也可以安装集成PyDec插件来实现Python开发了 哇哈哈哈

极客小俊

Python 开发环境搭建 eclipse+pyhton Python编译器 新手学编程

干货|什么是特性团队/功能团队(FeatureTeam)

laofo

Scrum 研发效能 PMO 敏捷精益 敏捷研发

cstdio的源码学习分析10-格式化输入输出函数fprintf整体分析

桑榆

源码刨析 10月月更 C++

同行四载,法大大携手SAP共筑数智未来

ToB行业头条

【愚公系列】2022年10月 Go教学课程 026-结构体

愚公搬代码

10月月更

Vue组件入门(三)插槽和动态组件

Augus

Vue 3 10月月更

贤鱼的刷题日常--P1548 [NOIP1997 普及组] 棋盘问题

贤鱼很忙

c++ CSP 10月月更

Java 序列化与反序列化

Yeats_Liao

后端 Java core 10月月更

Spring Boot「04」Annotations 01

Samson

Java spring 学习笔记 spring-boot 10月月更

2022-10-12:以下go语言代码输出什么?A:1;B:2;C:panic;D:不能编译。 package main import “fmt“ func main() { m := m

福大大架构师每日一题

golang 福大大 选择题

支撑阿里“双十一”的消息中间件,带你云淡风轻面对高并发

图灵教育

RocketMQ 中间件 架构师 消息中间件

VUE 组件的计算属性

默默的成长

Vue 前端 10月月更

设备端零改动迁移实战——实践类

阿里云AIoT

安全 物联网 开发工具 迁移 企业实例

又一家!天数智芯天垓100 产品卡与龙蜥操作系统完成产品兼容互认证

OpenAnolis小助手

开源 适配 龙蜥操作系统 天数智芯 兼容

支撑阿里“双十一”的消息中间件,带你云淡风轻面对高并发

图灵社区

RocketMQ 中间件 架构师 消息中间件

MySQL高级--性能优化查询截取分析

Java学术趴

10月月更

内网渗透-IPC$横向控制OA系统【网络安全】

网络安全学海

网络安全 信息安全 渗透测试 内网渗透 漏洞挖掘

微服务与 API有什么区别?

雨果

微服务 数据api

利用fs-extra实现"yarn create tlist"创建项目

小鑫同学

前端 Node 10月月更

一颗石榴给QA带来的启示

BY林子

软件测试 敏捷测试 测试工程师 敏捷QA

Go 语言泛型编程之切片

宇宙之一粟

Go 泛型 泛型编程 10月月更

机器学习在好分期资金适配中的应用实践_文化 & 方法_InfoQ精选文章