腾讯云【专访】数美CTO梁堃:从北大学霸到技术大神

[摘要]数美是国内顶尖的大数据公司,依托积累的海量数据和核心技术,提供领先的大数据风控产品与服务。目已服务数千家客户。

【编者按】:数美是国内顶尖的大数据公司,依托积累的海量数据和核心技术,提供领先的大数据风控产品与服务。目已服务数千家客户。

\

本期腾讯云要访谈的嘉宾是数美的一员虎将,他是数美联合创始人&CTO粱堃。

从震惊全球的Alphago、到能识别出你图片中的面孔和地点;从上路奔跑的无人驾驶、从千人千面的营销推荐,再到大数据帮你分析做好理财。脑洞大开的“黑科技”,大数据、人工智能,正在改变着我们的生活的方方面面。

现在就让我们一起了解一下梁堃眼里的大数据以及数美公司:

数美的大数据能力优势是什么?具体做了哪些算法层面的优化呢?

先做下自我介绍,我是梁堃,数美的联合创始人兼CTO,很荣幸参加此次的采访。

首先我先说一下数美大数据方面的优势。主要来自三个方面:

1)数据量要够大,维度要够多,数据更新要及时。

2)架构方面:创始团队来自百度等一线互联网企业,经历过数万台设备级别的大数据架构和算法开发,因此数美的在线技术架构实现了微服务化,目前我们所有的客户请求可以在10ms之内完成风险识别 ,文本过滤准确率可以达到99.8%以上,误杀率低于1/1000。

离线架构:基于Hadoop生态的比较标准离线数据仓库,基于Scracpy去获取数据。

数据架构:对什么人在什么时间做了什么事情有一个基础层,再上一层是数据主题层,还有实现在内存缓存层的应用层,使得线上应用可以基本不做二次处理,通过查询的方式获得所需要的数据。

\

3)策略方面的优势:在于理解数据和常见的算法,把数据在某个领域真正的用起来,比如数美的客户就有不少像金融类的,比如中信银行等。

举个例子,比如大数据用于互联网金融领域的信贷风险管理,两个人年度收入都是X,但是A是每月收入X/12,B的前6个月收入为0,第7个月收入是X/2,后5个月收入又是0,第12个月又是X/2,前者A的收入稳定性明显好过B,我们需要参考不少类似收入稳定性这样的指标,来综合计算。

2.数美的大数据能力应用集中在哪几个行业,和腾讯云的哪些产品有结合?

我先说一下数美产品集中应用的领域,数美现在集中的领域为:

金融领域,可以帮助减少违约和逾期,最大限度消灭欺诈类用户,对于金融行业风控是核心能力。

社交领域 ,在社交类应用里面有不少恶意用户会到里面去刷小广告,色情类文字,会对于企业带来运营压力和政策风险,我们可以提供文本过滤的功能。

直播领域 ,直播类经常会有充值送的活动,但是有些主播和黄牛党会作弊,可以通过大数据的能力来避免被少数恶意用户给刷走,同时也可以帮助平台识别注册的新用户是不是机器人用户。

我们现在与腾讯云产品的结合,主要用到的是腾讯云CVM、云数据库Mysql和Redis等,腾讯云对于云数据库Mysql进行了不少定制优化,而且云服务这种方式也大大地减少了我们数美的IT运维成本。

\

3.您在BAT担任数据架构师多年,也经历过大数据计算框架流行趋势从Hadoop到Spark的迁移,能见下两种计算框架的差异和适用范围么?Spark在哪些具体领域表现要好过Hadoop?

是这样的,Hadoop本身已经是一个大数据的生态了,在Hadoop生态中Mapreduce计算框架和 Spark计算框架是基本对等的。都属于大数据集的并行计算,都有一个shuffle,对数据进行分组,然后分别计算,碰到一定的逻辑的时候,再次进行分组,两个计算框架的计算泛型都是一样的。

1)Spark对Mapreduce的重要改进是可以把分组数据存在内存中,反复进行计算。

2)Mapreduce->Spark 基于问题的改进,最早用于统计分析,只用Mapreduce就够了,现在数据的使用到了下一个阶段,引入更多的维度进行数据挖掘,K-Means等算法需要基于一份数据进行反复的迭代计算。

Mapreduce上进行迭代,每一次迭代都要写入磁盘,还要在I\O队列中排队,在Spark计算框架中减少了这两部分的消耗,效率更高。

\

3)Mapreduce对于离线数据处理适用性比Spark更高,在这种场景下使用Mapreduce有助于提升集群整体的使用率。

Mapreduce中50个Map、50个Reduce任务中跑完了 10个MAP任务就可以释放这部分计算资源,而对于50个Spark任务而言,只跑完了10个任务是不能够释放10个已完成任务的资源的。

4.您见过的数据架构师犯过的最大的错误是什么?导致了什么后果?

我可以举例讲解一下:

1)组成一个数据架构师团队,来避免数据问题的出现,在数据设计上有一些成熟的方案,比如说数据仓库这方面就有很多方案,可以多思考其他人。

2)09年做过一个数据项目,对于元数据的重视度不够,同一份数据存在两个位置,会引发一定的数据不一致和存储资源浪费,现在的数据架构师在数据仓库设计的初始阶段,会开始更重视元数据的规划。

3)数据表设计信息缺乏团队内共享导致计算资源的浪费,在基础数据表上建了中间数据表,但是其他业务不知道有中间数据表,也是再从基础数据表开始重新计算,对于整体的计算资源存在一定浪费。

5.对于希望实施大数据的CTO们,有怎样的实施顺序建议?

我这边总结过三个阶段:怎样从前端服务器收集数据,如何可靠的传输数据,如何对数据进行分布式的计算。

1)搭建大数据基础设施,开始收集来自业务系统的数据,需要重点做好元数据的规划,同时对于历史日志数据、非结构化数据需要进行批量的结构化。

2)从统计分析阶段入手,一方面可以通过统计直接支持业务决策,比如新产品上线进行A/B对比,来判断新特性是否会提升用户体验和活跃度,实现用数据来指导产品。

3)更深刻的理解数据,并且将数据和业务结合起来,2.0阶段需要考虑把业务系统和数据系统对接起来,让大数据系统智能地发现业务的机会,控制风险,比如说广告投放领域的CTR预估(点击率)就是大数据实施2.0阶段的典型场景。

\

6.目前发现企业实施大数据项目最主要的三个问题是?

其实,你希望实施大数据的项目的时候,常见的问题包括如何获取高质量的数据,高质量的数据是指数据的维度要够多。很多从Mysql数据库中迁移来的数据就缺少很多和用户使用场景相关的数据,可以考虑通过日志等方式补齐维度。

另一个问题就是企业有大量的非结构化数据,需要批量转化成结构化数据,有不少企业甚至于会在IT系统设计中强制要求,全部使用结构化数据。大数据系统的建设更多是个周期较长的过程,和一般的产品功能不太一样,不容易立杆见影,所以建议参考前面的三步走逐步实施,需要有管理层的强力支持。

让数据和业务结合起来,让系统自动的完成一些传统需要人力完成的工作,当前的电商网站的推荐算法,在没有大数据能力之前基本上是难以想象的一件工程。从企业当前的问题挑出一些无法用简单分析完成的工作,尝试用大数据的方式来分析和解决。

7.对于希望成长为大数据工程师的大学生,您建议的技术学习路径是?

我个人的建议是这样的:

基础知识:计算机体系结构和统计学知识

分布式架构:HDFS+Mapreduce开始学习分布式计算的核心思想

数据架构:学习一些经典数据仓库的理念,维表、星形模型,当然现在的技术进步了,传统的技术不一定适用

策略相关:数据挖掘和统计学习相关的知识

8.推荐三位您觉得有意思的程序员,简述理由?

我要说的这位是我百度的同事陈建,数美的首席架构师,比我早半年到百度,他对在线的高实时性架构特别熟悉,当出现了一些技术问题的时候,可以从上层表现一直追到TCP协议栈的层面。在别人那边很难解决的问题,在他那边很容易解决。




免责声明:

本站系本网编辑转载,会尽可能注明出处,但不排除无法注明来源的情况,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本网联系, 来信: liujun@soft6.com 我们将在收到邮件后第一时间删除内容!

[声明]本站文章版权归原作者所有,内容为作者个人观点,不代表本网站的观点和对其真实性负责,本站拥有对此声明的最终解释权。