技术开发 频道

机器人现身数据库大会:机器学习不难懂

 【IT168 技术】机器学习是专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。这项技术是人工智能的核心,是使计算机具有智能的根本途径。深度学习是近年机器学习领域的重大突破,有着广泛的应用前景。随着Google公开Google Brain计划,业界对深度学习的热情高涨。近年来机器学习领域的热点,在语音识别、图像识别等领域均取得了突破性进展。2015年4月18日,第六届中国数据库技术大会(DTCC)的第三天,我们特别开设了《机器学习与挖掘》的专场演讲。

机器学习与数据挖掘

  第一位出场的嘉宾是京东推荐搜索部高级经理刘思喆,他于2012年加入京东商城,现任推荐搜索部高级经理,主要负责推荐产品的策略改进以及算法优化。京东技术学院金牌讲师,"数据达人"称号,同时兼任中国人民大学大数据分析实验班硕士导师。在加入京东前主要为电信运营商提供数据挖掘及业务咨询等顾问服务。在2015中国数据库技术大会的第三天,他给我们带来的演讲主题是《京东商城推荐系统实践》。

机器学习与数据挖掘

  京东具有庞大的用户量和全品类的商品,能够根据用户浏览、点击、购买、评论数据以及品牌、品类、描述等商品自身的数据的积累,分别做基于用户和基于商品的协同过滤,更精确地进行个性化推荐。站内流量的引导对于商业型网站作用非常大,小型网站可以靠人工编辑链接的形式引导站内流量,而对于大型站点,则主要依靠推荐算法对站内流量进行引导的。一个优秀的推荐算法能极大的增加用户黏度,降低跳出率,增加成交率。

  京东已经在新版首页上线了“今日推荐”和“猜你喜欢”两项功能,基于大数据和个性化推荐算法,实现了向不同用户展示不同的内容的效果(俗称“千人千面”),该系统目前在PC端和移动端都已经为京东贡献了10%的订单。如何打造千人千面的个性化推荐引擎呢?背后有哪些秘诀呢?刘思喆为我们重点讲解了四大方面,其一是京东推荐产品及架构、其二是通用模型的应用、其三是离线CTR预测实例、最后是实验与监控。

  京东研发了移动端和Web端的80多款推荐产品,提供了支撑EDM、广告、微信端的20多个推荐服务,遍布了用户网购的各个环节。想象一下,从用户的角度来看,推荐系统有哪些价值呢?它可以挖掘用户的潜在购买需求,缩短用户到商品的距离,但用户购买需求不明确时,可以提供一些好的建议,满足用户的好奇心。不管是模型本身优化的需求,抑或因为用户偏好随着时间或条件变化,持续的迭代都是必不可少的,也就是说特征的增加、修改或者不同的组合,这些工作几乎都是常态。事实上,京东平均每周就有7个新的算法实验上线。这需要一个很好的推荐架构来支持算法的高速迭代。基于HBase、Storm、Spark以及MapReduce等,京东搭建了自己的推荐架构。皮皮在这里废话就不介绍了,先来晒晒京东推荐系统架构图吧。

  典型的推荐系统技术有两大分类,一种是按照数据的分类,比如常见的协同过滤、内容过滤、社会化过滤;另一种是按照模型的分类:比如基于近邻的模型、矩阵分解模型、图模型等。

  想想看,假如你在京东上购买了瓜子,猜猜看京东可能向您推荐些什么呢?是锅巴,还是薯片?

  例如逻辑回归,本来被寄予厚望,却效果不佳;本来不屑一顾的最近点击和最近关注模型,反而能实现100%的转化提升。

  最后,刘思喆结合京东团队分享了一些个人感受,推荐系统是完整的工程实现,推荐产品架构,怎么去做好,不是说一个算法就能搞定,他在现场分享了下如何做实验以及如何做监控。京东评判模型效率采用了先验和后验结合的方式,先验是用一些排序预测算法去预测模型,得到一个最佳模型组合的方案,配备给每个用户,后验即基于更精细化的模型效率分析,找出能够提升效率的最佳模型。例如逻辑回归,本来被寄予厚望,却效果不佳;本来不屑一顾的最近点击和最近关注模型,反而能实现100%的转化提升。

  第二个出场的嘉宾是百度基础架构部高级架构师刘伟,他是2009年加入百度,现任基础架构部高级架构师,负责各种大规模机器学习算法及其框架研发;在百度工作期间从事过凤巢大规模模型训练、广告触发、海量语料机器翻译、语义深度学习、搜索网页排序和深度学习平台等公司战略级核心项目,其中深度学习平台项目还获得2014年百度最高奖。

机器学习与数据挖掘

  大规模机器学习云平台简称BML(Baidu Machine Learning),是由百度基础架构部自主研发,面向百度开放云的机器学习、数据挖掘、数据分析的用户,致力于引领大数据时代模型技术的浪潮,通过大数据建模技术,为各行各业带来实实在在的业绩提升,让各行业的开放云用户使用上与百度搜索,广告,地图等各种产品一样高效前沿的机器学习技术。刘伟在2015中国数据库技术大会的现场为我们带来了《BML百度机器学习云平台》的精彩演讲。

  刘伟和我们重点分享了下百度BML平台,这款平台非常强大,支持的算法很丰富,目前 BML平台已包含 20 多种大规模并行机器学习算法。

  在性能方面,BML平台所有算法均为分布式实现,经历数年持续优化,用上几乎所有可能的计算/通信优化技术,速度业界一流。这款BML平台经历线上大规模使用部署考验,承载公司内各种重要业务线上使用,包括凤巢广告 CTR 预估,搜索排序。这款平台易用,通用,支持多种方式调用,文档详尽,配置灵活。

  BML平台有哪些功能呢?

  预处理:

  •   分词

  •   TF-IDF 计算

  •   专名识别

  •   采样

  •   特征转换/抽取

  •   特征统计

  •   大规模 ID 化

  •   大规模相似度计算

  分类算法:

  •   逻辑回归

  •   SVM

  •   最大熵分类

  •   深度神经网络

  •   随机森林

  •   GBDT

  聚类算法:

  •   K-Means

  •   凝聚层次聚类

  •   谱聚类

  主题模型:

  •   PLSA

  •   半监督 PLSA

  •      LDA

  深度学习:

  •   RBM

  •   RNN

  •   Word2Vec

  •   LSTM

  •   CNN

  推荐算法:

  •   矩阵分解

  •   协同过滤

  •   KNN

  可视化:

  •   PCA

  •   MDS

  •   t-SNE

  序列模型

  •   CRF

  •   半监督 CRF

  •   HMM

  •   机器学习 Solver:

  •   SGD,ASGD

  •   L-BFGS

  •   ADMM

  在线学习:

  •   online DNN

  •   FTRL

  •   online HMM

  •   online SVM

  API:

  •   统一样本,模型,特征,各种词典的格式

  •   Restful API 调用各种机器学习方法

  模型上线部署

  •   在线预测、模型分析和可视化 API

  •   访问基于百度大数据预训练的各种模型

  •   ELF(Essential Learning Framework):

  •   适合在百度公有云上自研算法使用

  •   类 Spark 的全内存 DAG 计算引擎

  •   高性能,高可用的分布式 Parameter Server

  据刘伟介绍,百度用到最多的算法是逻辑回归,其中包括百度外卖、百度糯米,最后刘伟和我们分享了下深度学习应用。

  前两位来自京东、百度,相信大家或多或少也能猜到第三位出场的嘉宾了,没错,他是腾讯数据平台部高级工程师金涬。金涬于2005年毕业于清华大学计算机系,现任腾讯数据平台部高级工程师。主要研究方向为机器学习、深度学习、基于大数据的精准广告推荐技术。

机器学习与数据挖掘

  金涬表示,腾讯做云识别的时候,广告系统的请求量可能是几百亿,我们做些抽样啊,可能也是一个很大的量级,数据很多,模型很大,使得计算非常耗时,我们需要一个并行化的实践平台来解决类似的问题。

  需要大量的尝试,所以我们的平台应运而生了,它就是腾讯深度学习平台Mariana。

  •   第一个框架是深度神经网络的GPU数据并行框架Mariana DNN,将语音变成文字,

  •   第二个框架是深度卷积神经网络的GPU模型并行和数据并行框架Mariana CNN,常用于图像识别。

  •   第三个框架是深度神经网络的CPU集群框架Mariana Cluster,主要用于广告推荐。

  金涬坦言,为什么两个框架都是基于GPU的,一个框架是CPU?CPU像是将军,每个将军都很厉害,GPU像士兵,冲锋陷阵。

  

  在设计Mariana 的时候,腾讯有哪些考虑呢?

  针对稀疏连接模型,GPU的优势发挥不出来,这个时候选择CPU并行比较合适。

  在数据并行与模型并行上该如何取舍呢?数据并行适合参数交换相对较少的情况,模型并行适合输出值交换相对较少的情况。在GPU里,我们会选择同步SGD,在CPU里,我们可能会选择异步SGD。

  说了这些理论的知识后,到底语音识别、图像识别、广告推荐在设计上该如何选择呢?皮皮在这里卖个关子。

  从逻辑上说,基于PCIe互联的架构如何实现多GPU间参数交换呢?一起来看看Mariana DNN的多GPU数据并行参数交换架构吧。

  从这张图里,你能读懂多GPU卡通信性能模型呢?

  1.读取远程GPU内存计算(Unified Virtual Addressing),对小数据能简化编程;但对大块数据访问,其性能不如将数据Copy到GPU本地内存再计算。

  2. GPU计算和GPU间通信会产生干扰,单个GPU的多个通信也会产生干扰,任意一对GPU卡间的双向通信会干扰。除了引入不同的流隔离上述操作,在适当的地方加入同步点也可以提升效率。

  3.任意两组GPU卡(如GPU1 GPU3和GPU2 GPU4)组间读写没有干扰,可并行,和GPU卡的位置无关,即使跨IOH也没有显著差别。

  4.支持GPU Direct Peer to Peer Access:减少GPU间通信延迟

  我们再来看看Mariana DNN参数交换的线性拓扑结构

  Mariana CNN:三阶段流水线加速

  在图像识别的Mariana CNN应用里,我们采用1,000,000+样本,50,000,000+参数,4 GPU模型并行+数据并行相对单GPU取得了2.5倍加速比。

  最后,金涬重点介绍了团队里的一个项目广点通广告,用户点不点广告取决于广告的内容,通过CNN网络提取特征,抽取图片中的用户点击相关特征,输出给Logistic Regression等浅层模型,DNN用于模型训练和预测构造深层模型。

  所有的任务都可以在GPU集群里提交,我们可以构建高速网络,连接GPU服务器,实现性能、成本、功耗的平衡。

  最后一位嘉宾是来自北京物资学院信息学院讲师金仁浩,他是数理统计博士,2014年毕业于爱尔兰都柏林大学,在北京理工大学完成数理统计本科与硕士的学习; 有多年数据分析经验,曾与爱尔兰农业部合作完成对动物传染病数据的挖掘项目; 对统计与数据挖掘算法有较深的理解; 目前正在与北京市XX政府合作对工商业数据进行深度分析(店铺选址的空间统计建模及可视化,企业生命周期研究,以及对高危企业的分类预测)。

机器学习与数据挖掘

  数据维度高(变量数多)是大数据的一个重要特点。虽然充足的变量数有助于获得更具体的客户行为信息,并建立稳定的模型,但是变量太多却会带来一系列的问题,譬如:1. 众多变量彼此相关会造成决策树的结果难以理解,会导致回归模型难以发现真正有显著性影响的变量,也会无意识地导致聚类算法中某些特征的权重过大;2. 变量太多也会带来相关数据挖掘模型过拟合,以及算法收敛时间较长等问题。本次演讲主要讲述在面对挖掘项目时,如何通过简单高效的变量约简技术解决聚类,决策树,logistic回归及神经网络模型中遇到得变量过多问题。

  金仁浩还给我们举例说明,以一个银行客户数据为例,里面有15000个客户观测值, 85个列变量(1个是目标变量,65区间型输入变量,19个分类变量). 如果只对其中65个区间型输入变量使用变量聚类技术,聚出20个子群,如前图所示. 变量缩减的效果非常明显。

  那么该怎么办呢?在对观测值进行聚类前,如果输入变量太多,可以用变量聚类技术先对输入变量进行缩减.往往会取得比较好得结果,尤其是当很多输入变量都彼此相关时。

     为大家介绍完机器学习专场的东东后,我给大家爆料一个彩蛋,别看它个子小,它的能量超乎你想象,它就是萌萌哒机器人,会不会是下一个小白呢?我们一起来看看展台的互动花絮视频。

机器学习与数据挖掘

       作为国内数据库与大数据领域最大规模的技术盛宴,来自BAT、360、京东、美团、58同城、Ebay、新浪、网易、搜狐、易车网、去哪儿网、携程网等互联网企业,微软、南大通用等数据库厂商、以及北京大学等学术机构等百余名顶尖专家现身演讲,为大家奉献了极为宝贵的干货演讲。

      在2015中国数据库技术大会上,现场展台人员爆满,来自微软、百度、星环科技、宝存科技、云和恩墨、听云、永洪BI、Greeliant、Action Technology、巨杉数据库、联想、慧科、云智慧等厂商强力加盟,大会现场有互联网家庭机器人展台,现场参会的朋友有机会与机器人互动,同时大会现场还安排了填调查赢取奖品互动环节。更多惊喜,尽在2015中国数据库技术大会现场。更多大会资讯,请查看专题大会报道专题:http://www.it168.com/redian/DTCC2015/#m07


3
相关文章