查看原文
其他

CBIS大会演讲速记 | 高维深度网络及其应用

2016-12-15 程大伟 星环科技


大家下午好,我是来自星环科技数据挖掘团队的程大伟,很高兴在人工智能专场和大家分享我们公司在这方面的实践,主要是深度网络在数据挖掘过程中的主要应用和经验分享。


深度网络和深度学习是近年来在人工智能非常活跃的分支,它已经在图像处理、语音处理、自然语言识别等方面获得了瞩目的成果。近些年来,深度网络在数据挖掘的领域也显示出越来越重要的作用。引用韩家炜的定义,数据挖掘,就是从大型数据库中抽取有意义的(非平凡的,隐含的,以前未知的并且是有潜在价值的)信息或模式的过程。我们的客户,其中一部分是来自于金融行业,遇到的主要问题是现在的数据量越来越大,数据的结构也不像从前那么结构化和简单了,这使得挖掘其中“非平凡的,隐含的”价值越来越难。接下来,我们从其中的典型场景,金融行业用户价值体系和推荐系统说起。



这里面有三个主要的来自于业务场景的挑战。第一,现在有一个新的理财产品,这里就会有冷启动的问题,如何从它历史的数据仓库中找到合适的用户来购买这个理财产品。第二,现在已有的这些储蓄卡用户中,如何挖掘出可以发展信用卡业务的客户。第三,如何预测出未来客户的流失情况等。那么,对应的三个关键点,获客、活客和留客。获客,就是精准定位有新业务需求的客户群体;活客,即挖掘现有客户的潜在需求;留客,就是建立客户流失预警,尽早的采用相应的措施挽留客户。最后的客户收益,可以精准定位业务产品针对的客户群体,深度挖掘客户潜在的分期、贷款等需求,减少客户的流失,提升总体客户价值。



接下来我们看一下客户终身价值的概念框架,市场营销的活动是紧紧围绕着这三个主题来展开的,即客户获取、保持和发展。围绕这三个方面可以对客户资产终身价值有个预测,对应到不同的业务,最后对客户的业务产生价值。



那我们先了解一下传统的客户终身价值预测系统。经典的方法分为三个阶段。第一阶段是评分卡模型,其中要数RFM模型最为典型,分别根据三个维度Recency(客户最近一次购买的时间)、Frequency(客户最近一段时间内购买的次数)和Monetary(客户最近一段时间购买的金额)把客户分类,不同象限中客户的类别是不同的。这种方法的缺点就在于它依赖于人的经验,当客户的分数达到多少算高的,达到多少算比较低的都是依赖于金融行业专家的知识。


第二个阶段是使用回归模型。回归模型用的最多的依然是Logistic回归,这个模型在历史上有非常成功的应用案例,比如我们的征信评分系统。但是它的缺点是模型中的变量同样需要人工处理,而且在大数据的环境下,如果输入的是稀疏矩阵,那么会极大程度干扰Logistic模型的最优化过程。另外,只能衡量单变量和结果变量的联系,无法衡量变量交叉的特征。



因此,近些年,第三个阶段 Factorize Machine在实践中被引入进来,该方法在数据挖掘过程中产生了比较好的效果。主要模型表达式见公式,前面两部分是简单的线性回归,重要的是后面的部分,它把每个两两之间的关系用向量相乘的方式来表示,当中的向量可以看成是特征相关性矩阵低秩分解的表示。通过这样的方法很大程度上可以解决两两特征交叉的问题。



在以上方法的基础上,接下来我们介绍星环在解决当前业务问题中的实践。图中是星环的Discover营销模型架构,底层主要有客户信息平台,采集客户信息、商户信息、财务信息等;卡消费系统主要采集客户的卡交易信息;理财业务系统中包含了理财交易、产品信息和产品收益信息;最后核心业务系统,包含定期存款、活期存款等业务信息。然后在这之上搭建营销平台,基于深度学习和迁移学习的方法,我们建立了客户终身价值预测系统,来分别应对最上方的获客营销、流失预警、智能推荐、贷款预测、量化营销这些场景。这每一个场景都对应着一个模型,就是需要针对不同的场景建模。



从模型结构上来说,从底至上一次是数据源获取, embedding layer,hidden layer, output layer。大家应该比较熟悉上面这一层,每个业务都有一个对应的目标函数,中间hidden layer的设计主要取决于算法人员的建模能力。底下这两层是今天介绍的重点。大家可以看到下面这两层有很多稀疏数据,那为什么会有这些稀疏数据呢?似乎实际场景中,稀疏数据不是很明显。在建模处理过程中,稀疏数据是从category 特征而来的,数据处理经验比较丰富的朋友可能比较熟悉,实际使用中category特征非常多。例如用户的地理位置信息,这些地址信息在处理的时候会使用one-hot encoding,也就是要把每个地址,例如北京、上海等,都要做成一个维度,所以每个地址都是一列,这就导致最后出来的可能是几十甚至上百个维度。同样的情况还有商户ID,年龄binning之后的特征等等。神经网络是不适合处理高维稀疏数据的,所以我们需要添加Dense Embedding layer,关于Embedding的理论系统可以参考word embedding,在自然语言处理中,做完TD-IDF之后,比如每个词都是一列,如果直接把Sparse的特征做相乘,那很多隐含特征是体现不出来的。例如,苹果和梨直接相乘结果肯定是0,但实际上苹果和梨都属于水果,他们之间的距离应该是要比苹果和凳子之间的距离近的,所以Embedding是用来解决这样的问题的。



在这里举两个和我们系统实现比较接近的学术界的研究作为例子个大家做分享。第一个是如图所示的例子,左边方法的最下面一层都是Sparse Features,它利用FM提前训练好的权重等作为它的初始参数来做迭代。右边的方法是最底层只把1的特征提取出来做采样,主要目标是提高整个网络的训练时间和防止过拟合。



第二个方法是Entity Embedding,其主要的motivation来源于:由于类型变量做完one-hot encoding之后,其维度取决于类型的枚举类型的个数,而实际中,不同维度的one-hot encoding后的类型变量其权重应该一样,不应该被枚举类型多的变量误导了。所以其过程是先把一个类型的one-hot encoding提前做dense embedding,然后在hidden layer中再把它们全部连接起来。可以看出,他们的实验数据也体现了一定的统计规律性。



接下来我们上面一层最终的目标预测,我们预测下来主要是两个部分,一个是获客目标客户群体,另外是流失客户群体。我们把每个客户对应的点放在图中的这个坐标中,根据点的分布来找到有效个目标群体。





所以结合到场景来说,包括理财的业务系统,储蓄的业务系统等,通过这种方法来找到哪些是休眠客户,哪些是活跃客户等等。同时,目标函数还可以设定针对一定时间周期的预测。在实践中,通过我们星环的TDH大数据平台inceptor将各种各样的数据集采集进来,再通过Discover机器学习的组件进行处理。这个方法在生产系统的实际应用中体现出了比较好的精度。我们还有一部分的工作是找到传统方法没法找到的某部分客户,发现它的规律在哪里。反过来在进行业务实现,那么就行成了一个机器学习在管理应用当中的闭环。



在最后,我们对之前提到的方法进行了评估,可以看出,Deep Model比传统方法有一定的优势。





最后,我们如何将这些技术应用到自己的业务生产呢?最高效的方法是使用星环的Discover产品,我们提供了便捷高效的API供客户快速搭建自己的数据挖掘业务系统。DISCOVER是在星环科技TDH大数据平台上面的数据挖掘的框架,从下向上一次是数据层,算法层,接口层和应用层。对于交互式数据挖掘分析,我们提供了主要两种方法:一个是R语言的界面,总所周知,单机版的R语言数据处理最高值大约在1G以内,无法进行大数据量的交互式探索。在我们平台上用户可以像写原生R语言一样来分析几十G甚至上百G的数据,其中数据是分布式的,模型的运行也是分布式的,模型结果返回和原生R语言的完全兼容。第二个是我们公司最新研发的Midas,供交互式数据分析和挖掘的图形化的界面工具,如下面这张PPT是我们Midas的图形界面,以及最后R语言界面的图。


谢谢大家。





回复关键字,获取更多资讯


简介 | 产品 | 技术 | 案例集 | 培训 | 白话大数据评测  投资 | 新手上路 | Holodesk | TED视频金融 | 电力 | 视频监控 | 运营商 |交通 税务 | 电商 | 智能金融 | 医疗 | 快递


























您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存