1
本文作者: 温晓桦 | 2017-04-12 10:45 |
在实验室中开发算法难,将AI研究成果带出实验室更是难上加难。怎样将AI变成产品并实现商业价值?产品和技术方面有什么改进要点?如何控制企业应用AI技术的成本?有效的AI产品化可以怎样优化银行反欺诈体系?我们可以期待一个智能的未来吗?
AI已经诞生了60多年,即使伴随着计算能力的突飞猛进和大数据时代的来临,但AI的理论到实践之路仍不是那么好走。机器学习面临高维海量数据的现实挑战,求解企业自建机器学习技术产品设计和工程优化是当前众多行业从业者苦苦探索,试图翻越的“AI鸿沟”。
本次是雷锋网AI金融专场公开课之第三期,我们有幸邀请到第四范式联合创始人、首席架构师胡时伟,以及产品经理周开拓来分享他带领团队完成AI首个全流程产品的心得。
胡时伟,第四范式联合创始人、首席架构师。在百度任职期间作为系统架构负责人,主持了百度商业客户运营、凤巢新兴变现、“商业知心”搜索、阿拉丁生态等多个核心系统的架构设计工作;作为链家网创始团队成员,完成了链家网新主站、经纪人新作业系统、绩效变革系统的整体架构设计以及研发团队的建设管理。现任第四范式研发总工程师,带领团队打造出国内首款人工智能全流程平台“第四范式·先知”,“先知”平台2016年荣获中国智能科技最高奖——“吴文俊人工智能科学技术奖”创新奖一等奖。
以下是本次公开课实录,雷锋网做了不改变原意的编辑:
今天我们给大家分享的主题是如何以产品化的形式实现AI的商业价值,主要分成3个部分:第一部分是商业价值;第二部分是产品化;第三部分,请开拓给大家讲一讲他为公有云客户提供平台化产品的经验和体会。
如何发掘AI的商业价值
谈到AI的商业价值,首先谈一下AI是什么。今天教育、医疗、金融等各行各业的人都在憧憬人工智能,并且尝试实践,利用人工智能的技术来给行业提供价值。这里面定义很复杂,今天先不讲概念,首先缩小一下范围,谈一下数据驱动的人工智能。
当今大多数的AI系统由两个基石组成:一个是大数据,一个是机器学习的技术。比如AlphaGo,它的成功首先是因为吸纳了KGS的网站上30多万张棋谱——这个是AlphaGo第一波数据。此外,结合深度学习和强化学习等机器学习的技术,AlphaGo可以比以前基于规则或者基于浅层神经网络的对弈程序,拥有更好的表现。
所以我们认为,人工智能=大数据+机器学习。如果说大数据是原材料——米,机器学习是工具——电饭煲,那么人工智能就是白米饭。
所谓有效的AI应用,指至少可以替代人去做一件事情,比如下棋,打游戏,或者安全防护。对此,我们总结了产生一个有效的AI应用的5个要素:
我们对下围棋可以定义一个数字化的目标,即数子或数目的胜负。而如果定义的目标是下得有艺术,那就不是一个清晰的问题边界,因为这些是主观化的定义。
此外,也需要持续的外部反馈。只给一张棋谱是无法让机器自动下棋的,需要持续的外部或者内部的系统产生反馈信号。AlphaGo自我对弈的功能,就是持续地产生内部反馈。
足够多的数据
如果只有反馈信号,没有特征,也是不可。
举例来说,用AI技术识别欺诈交易,那么交易相关主体的属性,例如人的性别、年龄、居住地址就特别重要,否则,如果我们只知道某天某个卡,交易了多少钱,那么这些数据是不够的——因为这种情况下得到的只有反馈信号,没有特征。
培养一个成功的AI科学家要6年到10年的时间,但同时带来的价值也特别大,但今天世界上顶尖的AI科学家,其实并不多,因为作为一个顶尖的AI科学家,也要横跨很多很多不同的领域。
下面我们通过银行的交易反欺诈来讲一下,AI可以做到的事,究竟是什么。
信用卡盗刷、电信诈骗等这种事情都是典型的欺诈交易。根据相关报告调查,中国是信用卡欺诈以及银行卡欺诈发生最为严重的地区,并且欺诈手段越来越多元化。应该这么说:这个世界上最聪明的脑袋,一部分在做坏事,另外一部分在防止做坏事。
过去银行解决欺诈问题有4个主要的方法,比较直观的方法有:法规政策、信息安全技术,例如借助token等通过防守和法律的方式来解决问题。
另外两个相对智能:一是专家规则,二是模型。
当前而言,国际上做反欺诈做得最好的厂商有100多名专家,每年投入数千万美元的研发成本来维护专家的规则。这些规则少则几千条,多则上万条:比如同一张卡短时间在两个城市交易首次取现密码错误等。通过规则来防守,其有效性是毋庸置疑的,但同时也存在着缺点:
一方面,这种方法比较依赖于专家的主观性。专家行业积累越深,越有经验,但是面向较新的技术时,并不一定能够应付。
另一方面,规则需要持续维护,以便应对犯罪分子的变化。比如,规则设定为“交易八千元以上要进行审核”,或者“某个年龄点以上要进行审核”等,这时犯罪分子会通过试探来找到规则的边界,从而实行欺诈,比如正好盗刷7999元。
最后一点是,多种规则之间存在排斥关系,规则A能解决一个问题,但解决不了另外一个问题。
值得一提的是,传统上也有基于神经网络的模型的解决方案,然而这种神经网络是指原先基于反向传播技术的浅层神经网络,由于其结构较为简单,导致数据利用不充分,所以多数情况下也无法提供足够多的效果。
在反欺诈技术上我们和银行的合作,首先做的是把以前在互联网企业做的高维模型技术移植过来,然后用全量的历史交易取代采样的历史交易——利用几百G,甚至上T的数据来做基础建模工作。
比如,通过使用持卡人的属性、商务信息、交易通道等特征,进而衍生出一定的二阶特征。举例来说,持卡人的属性,组合上商户的属性——即什么样的人在什么样的店里,是否发生异常的行为,比如一个宅男,突然到了一个奢侈品店里高额消费,那就有可能是盗刷行为。
根据经验,越多的特征和越多特征组合可以更好地刻画客观的规律,但由于人的想象空间有限,在挖掘二阶特征之后,对于三阶特征、四阶特征便出现了瓶颈。
这个时候,我们就引入了一个新的技术——特征的自动组合和探索。依靠这个技术,我们把特征的最高阶数做到了五阶甚至六阶,然后把特征的维度——模型可以覆盖的情况的数量,做到了数以十亿计。基于这样的高阶特征,机器可以快速地学出各规则,防范欺诈。
如果一个犯罪分子欺诈成功了,银行就要赔付损失,每个月至少增加千万级别的支出。而技术就在这个新的场景中发挥出效益,这个是商业的价值。
下面我们从技术的角度上来分析,究竟是什么技术使得业务的提升成为可能。
首先,是高维度的大规模机器学习。对于用AI解决业务问题整体上来说,主要是考虑用VC维的概念。
VC维度是什么?学术一点来说是“Vapnik-Chervonenkis Dimension”,一个由Vapnik和Chervonenkis于1960年代至1990年代建立的统计学习理论,它反映了函数集的学习能力——VC维越大则模型或函数越复杂,学习能力就越强。
大脑的维度大概就是大脑脑细胞的个数,所以可以把VC维度理解为脑细胞维度。而机器的维度也需要更多的脑细胞,才能更聪明,才能学习更多的知识。机器的误差随着模型维度的提升而降低。
此外还有奥卡姆剃刀原理——如无必要,勿增数据。但是这个理论其实是二三十年之前才是正确的理论,今时不同往日的是,今天的手机和那个年代的超级计算机差不多,今天整个互联网一秒钟累积的数据也许就已经可以达到过去一年所累积的数据水平。因此,今天我们有更大的数据,也要有更大的利用数据的方式。
所以衡量一个模型的智能水平,就是VC维越高越好。过去因为没有足够的数据,所以无法做高。第四范式创始人戴文渊说过:“人做事情是越简单越好,机器做事情是越复杂越好。因为机器既不知疲倦,而且做重复性工作的战斗力特别强。”因此,从技术来角度来讲,我们就要把维度提高。
维度提升之后,紧接着的问题是:高维度的大规模机器学习需要有算法框架的支持。
原来的系统中,无论是数的算法,还是回归算法或者神经网络算法,一旦层数或者并行变量的数量增加以后,运行会变得极其缓慢。如今深度神经网络的进步,也得益于英伟达的GPU。
因为算法的效果是最终价值的关键,所以这个方面必须要达到最极致的优化,针对这个问题,市场上有一些开源的框架。而我们自己开发了一个框架,叫GDBT,即通用的分布式框架。
通用型分布式框架的特点,首先体现在内存全分布式,也支持用硬盘的方式来训练;另外具有较好的扩展性,传统中比如Spark或者SparkSQL,其实可以做到数据的并行,但是做不到模型并行;最后也是最重要的一点:快。
在数据横向扩展快速的算法,以及维度提升的结合下,这个分布式架构可以将以前两个小时训练完一千维的效率,提高到现在两个小时训练完1000万维的速度。
大数据本身需要大规模的数据处理能力,因为在模型训练之前,还需要做复杂的特征工程。这一点来讲,我们用spark,加上一些自主开发的特征训练算法,并且在spark接口上开发一些聚合函数,以此使得单位的时间内可以处理更大吞吐量的数据,帮助有限的计算资源获得更好的效果。
反欺诈中,通过模型提升5到6倍的效果,才完成了整个工作的30%。另外的70%,就是把该技术用到生产上。用到生产上就要有高性能。
银行业和互联网行业很不一样。互联网行业,比如在百度搜索,一天的搜索请求普遍超过十亿,甚至20亿次,而银行业的交易数据,即便在当前的互联网支付时代,也没有那么多,但其特点是,会要求比如在二十毫秒之内把整个流程处理完,并且准确度保证在99.9%以上。也就是说,稳定性是特别重要的问题。
而在高性能角度来讲,我们做了如下几件事情:
第一个是特征库,就是常说的实时变量计算。比如机器学习最后做出来的特征集里,包含历史上“某个人曾经去过的5个地点”一类特征,那么就要在线上建立实时数据库,以便让机器能够取到历史上的5次甚至是更多——比如最多可能要取到1000条历史行为数据。
第二个是模型库。原先无论是数模型、线性模型都相对简单,一两千个变量甚至都可以在代码文件里直接去读取 if else。
但如今,模型的维度上升至1000万,甚至上亿,十几亿,我们就要将其储存于分布式的存储。这当中也要用到很多技术,比如模型的特点是一次性地就把整个模型读取进来;当然大家就想用hashtable,在hashtable上也可以进行大量的数据结构优化,以便总体提升性能。
有了这种高性能的线上预估服务,我们才能满足反欺诈一类极其苛刻的业务需求。
还有一点就是高可用。“高可用”实现起来有比较明确的做法,因为银行也是基于交易,所以有自动切换,或者说分片、副本等的技术。
利用Master-Agent结构,它可以自动完成高可用的机制,不需要再手动写代码。从中我们可以看到,离线的数据模型发布到模型仓库后,可以在线地把模型拉上来,包括分片,以及内存的数据库。
技术问题解决之后,我们又面临一个很大的问题是:复制。下面是我们这两年内在各个领域里面的尝试和实践:
到底需要多少人才能完成如此多的业务?其实我们用的人很少,特别是数据科学家。我们有一些特别的做法可以增强人的能力,降低其他人的进入门槛——我们把它叫做产品化。
产品化最核心的思路是:把A的能力固化下来,让它被更广泛的人群所用。一开始A能做的事情,我们想办法让B也能做;B有可能是比较擅长业务,但是不一定擅长深入的技术。
另外一个产品化的诉求和目标是,让这个能力用起来更舒服。
产品化的基础下,我们可以调整机器学习科学家的工作,让整个过程形成指数级的放大关系。第四范式产品化的平台叫做“先知”,有3个组成部分:
第一个叫调研平台,调研平台是一个纯粹向下的过程,可以认为是做一个建模的过程。因为我们要用AI去预测一个业务,就要做一个模型,包括刚刚讲的反欺诈模型。
第二个过程是自学习平台。反欺诈模型每天都会有新的数据、新的欺诈场景反馈回来,这些新的欺诈场景和内容在打上数据的标记后,我们需要更新模型。更新模型就用历史的数据再训练一遍。所以自学习平台就是,如果能够做一套系统,每天用调研人员做出来的套路,固定地把数据变成新的模型参数文件。
最后是预估平台。我们已经有了一个模型,预估平台要解决两个问题:用什么数据去预估,因为数据在线上和线下可能并不一致,要做大量的转换;第二是是数据进来以后,如何把数据转化成一个分数。
里面的技术难点在哪里呢?第一是自动机器学习。在这样一个界面中,如何保证最终模型的效果?
正常来讲,一个非机器学习或者人工智能数据挖掘专业博士的人,并不懂那些理论,但是上图中的结构是可以做出来。如何做得比别人好?其中包含以下几项技术:
第一是自动调参。从技术上来讲,第一个部分就是我们如何能在尽可能少的迭代次数之下获得一个较优的解,这是成本和收益的关系。
第二是自动特征工程。什么样的算法相对能够更多地代替人的工作?反欺诈中,传统的方式上,我们需要分别对用户和商户刻画画像,这已经是两个模型。假如有了高适应性的算法,对于既可以用线性数据也可以用离散数据的情况,就用连续值和离散值同时训练的算法,降低门槛。
第三是高适应性算法,比如线性分型、嵌入式的高维模型。
第四是性能的优化和实际性能参数。自动调参和自动特征工程,本质上是一个搜索的过程。但我们不能穷举,所以需要智能的算法,研究如何能尽可能地减少次数。
我们现在给客户提供服务,只要建模人员建出来的模型,上线过程在web上面一键就可以点出来,这个事情是如何做到的呢?
线上线下有一致性
线上线下的一致性是指,线下怎么处理一个字段,线上就要怎么一起取;线下用什么样的算法训练,线上就要用什么样的算法预估。这个一致性是通过对代码进行控制的。
线上自动实时拼表
即特征预处理和转换过程的线上版本自动生成。举例来说,线下要统计过去一个月的最高消费数值,是可以用一个circle解决,但由于线上的数据是不停积累的,我们就需要一个自动转换的线上版本,简称线上自动实时拼表。
自动发布
正在提供服务的模型,怎么能够一键无缝替换模型?怎么做访问请求迁移?还有一点是发布。现在发布的每个单元,其实要放在容器里才能做到资源和运行环境的隔离。
基于算子的自学习架构
自学习的架构来讲,分成3个部分:
数据的自动引入。
整个训练过程的知识增量学习——因为一方面是学习代价的问题,另外一方面其实还有很多模型是要求有稳定性。
调度机制,比如如何产生新的模型,如何判断新的模型。
所以还需要一个架构,就是计算机和自学架构。
这张图是调研平台、自学习平台、预估平台的整个生命周期流程,先知平台必须要做到全生命周期才能真正给人像拥有钢铁侠能力的一种装备。基于这整个系统的外延的完整边界,我们就可以在上面产生基于AI的应用,并且能够尽可能地降低成本。成本降低了,无论是速度还是效率都能够得到提升。
对于先知平台的演示,请看视频(大概在40:00开始):
雷锋网公开课视频实录
雷峰网原创文章,未经授权禁止转载。详情见转载须知。