深度 | 两个案例,掌握AI在大数据领域的前沿应用 - 阿里技术
阿里妹导读:近日,全球技术学习技术大会首次在京举行,阿里巴巴数据技术及产品部资深算法专家杨红霞(鸿侠)作为特邀嘉宾出席并发表主题演讲。鸿侠从什么是数据新能源说起,接着介绍了阿里目前比较成功的两款数据产品,一个是是自动化标签生产,另外一个是大规模分布式知识图谱,以及在此之上的一些重要应用。最后是她对机器学习和人工智能技术对数据新能源产业中有效落地的一些建议和期望。
下面是基于鸿侠现场演讲内容摘要:
如果大家对阿里巴巴的新闻比较关注,最近可能会频繁听到阿里巴巴谈到“五新”这个词,“五新”中的其中一个概念是新能源。其实新能源就是大数据本身。技术、数据和算法三个方面结合在一起,才可以把数据真正用起来。
大家都知道,Google的数据量很大,但是它的数据源本身其实比较单一。以Google search,Google map等为主导。再来看看Facebook,它更多的是社交行为数据,缺少出行数据、 浏览器数据、或者类似优酷的视听数据。但是,对于阿里来说,上述的这些数据我们都有。我们面临的极大挑战是:怎么样有效的把这些全域数据融合在一起。
首先我们需要把数据有效地收集起来。把数据有效地收集、存储起来之后,接着要做的就是怎么通过算法把这些数据打通,并且真正有效、智能地把这些数据提炼出来。
这是阿里的一个生态体系图。最底层是阿里云,这是我们的一个计算存储框架。上面是阿里妈妈,阿里妈妈是负责整个阿里巴巴计算广告的一个部门,再上面是菜鸟、支付宝和蚂蚁金服。然后是与电商业务相关的,像淘宝网、天猫、聚划算等等,或者是跟文娱相关的,优酷土豆,还有像阿里旅行,口碑之类的业态。
阿里巴巴数据中台要做的事情是什么呢?举一个最简单的例子,之前有一个比较火的电视剧《三生三世》。《三生三世》火热上映的时候,与之相关的商品元素,比如饮食或者穿戴之类的商品,也会瞬间在淘宝网上火爆起来。那么如果我提前就知道某一类人群是《三生三世》的粉丝,我就可以在淘宝网上做非常高效的、准确的定位推广。阿里数据要做的是:把数据真正打通,深度挖掘数据的价值,为业务创新应用提供数据决策基础和依据。
下面具体介绍一下数据融合的技术框架。因为在真正进入算法之前,我们一定要对数据进行非常认真、仔细地进行清洗过程。俗话说,如果你的数据不清洗,其实就是“learn trash from trash”。所以数据本身一定要做得非常干净。
首先来看一下架构图,第一个数据层中有各种各样的数据,比如有消费数据,有广告数据,出行数据等等。把这些数据层经过有效结合在一起之后,接下来得到这种特征层的提取。在阿里数据内部,大概有这样几个比较抽象的维度:像账号设立的静态特征,电商行为的特征,或者设备的特征等等。
在特征层之上,我们会有模型层, 这里面有基于业务规则的模型,也有其他的例如异常检测,有监督或者无监督的学习,然后特征的联合校验等模型。因为我们的数据源非常多,因此我们也可以通过部分的数据源验证另外一个数据源,看数据的增长或者留存是否处于一个正常范围。另外还有一些比较好的方法,比如基于Graph的一些算法,实时的反作弊算法等等。在算法层之上,就是评估层。在评估层内,我们可以判断留下来的数据是否是真正有效的数据。
在上述这些数据层的上面,会有一个应用层,也同时会抽象出一些产品来帮助内部员工或者外部商家进行使用。所以,整个数据中台实际上是从底到上对数据进行清洗的一个架构。
当我们有了非常干净的数据之后,我们要做的就是把数据打通。我刚才说了,阿里生态体系会呈现出几百个不同的数据源,这些数据源本身的数据量非常大,收集模式也各不相同。那么我们是如何进行数据之间的融通的呢?
上图是这是我们关于怎么把数据打通的一个技术架构。大家可以看到,整个技术体系都是,先把数据接进来,再通过一些机器学习或者深度学习的办法(像word2ve,node2vec, TFIDF,归一化等)处理特征层,之后映射到一些比较抽象的高纬度Level(比方说像用户的身份信息,网络的环境相似度,文本的相似度,APP相似度等等)。抽象完这些特征层之后,我们究竟怎样去判断。
这期间的方法大致可以分为四种有效的办法:
- 深度学习的模型
- 非线性模型
- 线性模型
- 图模型
此外,还有一些基于规则的强召回,就是比如说用户有相同的账号登陆不同的地方。这些是所谓的强召回,它可以非常准确地被判断出来。弱召回就是基于算法特征层的这些模型,有效地判断出所有信息是否真正属于同一个自然人。下面,基于刚才的打通融合的数据之后,介绍两个数据应用类产品。
1、自动化标签的生产
在电商业务中,我们想知道这个人背后更多的其他方面的特征。所以,我们会有一个自动化标签生产的体系,快速地进行标签生产。比方说上传一些种子用户,比较类似于像Facebook 的Look alike audience,可以快速在几千万个特征中选出来最重要的那些特征,然后通过最重要的这些特征对于那些还没有打标的庞大人群进行打标。
在阿里数据中台,我们研发了一个叫“自动化标签生产”的体系。这个体系需要满足三个需求:
- 需求的响应速度一定要快。
- 标签生产的负荷能力要强。
- 对于这个标签生产数据源是有一定要求的,就是你要做出判断,不是他上传了一批种子用户,他对某一些标签有需求,我们的数据量,或者数据就一定是足够帮你产生这些标签的。
所以,基于刚才的一些要求,我们推出了“标签工厂”的这一套服务体系。它可以达到几个目的:
- 降低成本。现在我们有一个可视化界面,只要你上传一个种子用户,按照你自己的要求,大概在一两个小时之内,帮你快速生产标签。
- 质量。当你在产生第一轮标签的时候,其实更多的还是基于对算法本身的一个评估判断。标签真正上线之后,在业务的指标上面会不停产生反馈,所以我们实时的把这些业务反馈放进在标签生产体系,不停地帮助优化标签的产生。
- 保证数据安全。
下面具体看一下我们的技术架构:
第一,数据源。你可以认为,整个数据新能源的数据源都是接到下面,经过数据清洗、打通之后,来到一个标签工厂的体系。在标签工厂,首先会进行一定特征学习(feature engineering),比方说有一些像类型判断、分层、降维,因为数据量非常大,通过深度学习,深度表征去学习出特征之间的非线性关系,和它们之间的high order interaction。
接下来就是打标。首先可以传一批种子用户,由于你打标签的这部分种子用户是非常小的一部分用户,所以还涉及到快速扩充Label,或者通过不停的这种adaptive learning去训练完之后,可能通过算法的输出,可以增加一些更有效的确实是能反映出你的Label真实的样本集。
如果你的标准样本很多,很丰富的情况下,你可以用有监督的学习。有监督的学习,其实有线性的、非线性的或者是基于深度学习的。真实情况是有label的sample很少,在更多情况下我们需要使用半监督的算法,例如self-training, co-training等。
2、大规模分布式知识图谱
讲完标签工厂之后,介绍另外一个产品,大规模分布式知识图谱。大规模知识图谱抽象也是一种图计算。首先谈一下基于大规模分布式知识图谱做了哪些工作,以及我们为什么要做这样一件事情。
阿里巴巴的生态非常丰富,而丰富的业态背后给我们数据工作者带来的困难就是,我们常常需要接入各种数据,并将他们有效地管理和整合起来,传统的方法,我们可能需要花几个月,投入几十个人做这样一件事情,对数据进行打标。
但是,假设我们已经知道数据和数据之间的一些关系,而且也知道数据表中哪些表之间调用的血缘关系。那么,如果我只是对调用次数最多的表进行非常精确地打标,然后用基于知识图谱的方法,对剩下的90%表进行推理式的Label打标,就能极大节约了人力成本。所以这就是我们为什么要用知识图谱去做数据接入这样的事情。那么,对于数据管理也是同样的道理。
假如只有1G的数据,你可以很快地回答出数据分布的情况和质量。而我们的现状时,我们的数据达到ZB级别的规模。因此对数据管理来说,挑战不容小觑。同样地来看看数据应用方面的情况。我们基于数据应用,实际上也有一款产品叫做“数据地图”。
数据地图是干什么呢?其实就是当你进行一个查询,在这个产品里会自动帮你反馈出一个最相关的表。延伸开来的是我们想要做得下一步工作:当你下一次进行查询后,能直接返回出相应的SQL,再产生出相应的表和相应的结果——这是我们想做的智能取数。
下面介绍一下知识图谱在数据管理和数据应用方面的落地进展。目前我们开发了一些基于几十万张、上百万张ODPS表的知识图谱。说一下我们的结果:
在数据资产管理中,有一项重要的工作就是判断数据的归属。我们有上百万张的线上表,其中可能有几万张到几十万张的表能够比较清楚判断是属于哪个团队,可以在数据版图上打标。但是,还有上百万张没有打标的表,因为这个表属于异构的。在之前,通过一些人工的规则,它的归属判断准确率大概是55%,而通过前面介绍的知识图谱框架,准确率可以提升到88%。所以,它对数据资产管理的准确性起了显著的提高作用。
接下来讲一下知识图谱在数据应用当中的一个技术框架,其实也是比较类似的:
首先,数据层。因为是一个知识图谱的构建,所以上面要加个辞典层和语义层。再上面就是基于推理层。在推理上,用的方法有大家比较熟悉的像随机游走和延伸等。那基于标注的,我们其实尝试了很多种方法,比方说张量分解等。
目前为止比较成功的是PRA(path rankingalgo),我们研发了几个主流的graph feature model,PRA在大规模分布式知识图谱推理上,在我们的问题中,表现是最好的。什么是PRA,其实是把这些路径抽象出来,然后就是学习一下再推荐这个路径,但是它对于我刚才说的很多文本信息并没有有效的利用起来,比如对于这些表的描述,在最原始的PRA当中路径本身的位置是有考虑进去的,当然我对于这些描述,可能会知道也许这个路径更有效。所以,后来我们看了一下这个Trans系列,其实类似text analysis 中的word2vec vs tfidf。确实在我们整个的刚才说的案例当中也是有比较大的提高。
看一个具体的例子,在数据地图当中,知识图谱到底是怎么工作的:
你打出一个查询,首先就是基本的分词与分析,其实大家可以看到,我们这个场景也是相当于搜索反馈一个结果,但是其实它和传统的搜索是不一样的:传统的搜索像Google、百度,其实它关心的指标是你准确的那个值是不是在TOP5或者TOP10。
但是,我们这个场合下一定要反馈唯一的、准确的表。所以,接下来我们会有一些模板匹配,所以这里非常重要的一部分是人机交互这一块,把人机交互的结果,就是人要告诉你说,这个结果是否是他想到的,然后知识图谱整个刚才的框架有效的结合在一起,然后产生出你真正想找到那张表,然后整个的这个过程,其实这些是一些抽象出来的模板,这些模板可能是不够的。因为随着人的查询越来越多,模板也需要慢慢的扩展。现在我们还是基于一些规则判断一些模板,未来我们也会尝试,让这个机器自动产生一些模板。
所以总结一下,我刚才给大家大概介绍了一下什么叫数据新能源,以及我们在数据新能源上两个成功产品,一个是自动化标签的生产,可以在非常快速的在几个小时之内,为几亿人打上有效的标签,并且快速的验证落地。另外一个是大规模分布式知识图谱,以及两个应用的比较好的产品,一个是数据资产管理,另外一个是数据地图,就是快速的查询这个有效的表。未来我们想做的不只是一个表本身,也许就是一个query对应的sql,对应的你最后的结果。
最后再讲一下我们对于整个工业界中机器学习怎么才能成功落地的一些建议:
第一,必须要有大数据。如果没有大数据,其实很多的挑战你是看不到的。而且大数据本身一定是要丰富多样的,如果数据源本身过于单一,其实对模型的挑战是比较小的。所以你的数据源本身多样性比较要多,机器学习才会发挥出更大的作用;
第二,一定要有计算平台。像现在阿里云给我们提供了一个非常好的保障;
第三,你开发的算法一定是要通用的。就是大家可能是在这个公司工作会发现,每开发一套算法,投入的人力和时间和成本都是比较高的。所以说你的算法本身可延展性一定是要比较好的。
我今天的演讲就到这里。谢谢大家!