深度学习在互联网广告中的应用

栏目: 数据库 · 发布时间: 6年前

内容简介:深度学习在互联网广告中的应用

以下内容精选自  2017全球机器学习技术大会系列直播  ——《深度学习在互联网广告中的应用》,本文原创,如需转载,请注明出处及原文链接。

分享嘉宾

深度学习在互联网广告中的应用

张若非 / 美国微软人工智能和研究部高级总监

美国微软人工智能和研究部高级总监,带领团队负责必应广告平台算法、机器学习模型及大规模离线和在线系统的研发和运营。支持包括必应和雅虎搜索引擎,亚马逊,AOL 等在内的众多应用。加入微软前任 Yahoo 研究院主任科学家和研发总监,管理数据挖掘和相关性优化部门,开发运营了雅虎面向全球市场的搜索及显示广告算法和系统。

张若非老师同时也是  2017全球机器学习技术大会   的演讲嘉宾之一,将于6月29-30日,在北京金茂万丽酒店与大家分享探讨《大规模深度学习在互联网搜索和广告中的应用》!

同时还有众多来自 Google, Facebook, Microsoft, Tesla, Uber, Netflix, Snapchat, 腾讯, 阿里.....…40多位国内外一线机器学习领域技术专家,与大家现场疯狂脑暴!

【文末直播预告】

直播回顾

1. 很多论者都在谈论人工智能 ( AI)  技术的影响是全产业链性的。我们也知道微软作为一个平台型企业,有很多  AI  的应用。张老师能否谈谈  AI 、以及机器学习目前在微软产品线上具体的应用现状?

微软不仅是一个技术公司,提供众多的产品和服务,她还是一个平台公司,培育和支撑由这些产品和服务连接起来的生态系统。在人工智能这个具有全局性,革命性的领域,微软对自己的定位是一方面为消费者提供更加智能的产品和服务,另一方面发展 工具 和平台来民主化人工智能,让机器学习不再是少数数据科学家,或者非常专业的公司才能完成的任务,而是提供工具和系统,让非专家也能根据自己的数据和需求生成机器学习模型,解决自己的问题,甚至提供服务给第三方。

为了实现这个愿景,微软整合研发资源,成立了一个7000多人的人工智能与研究部,对微软所有产品线提供人工智能技术支撑。可以说,几乎微软所有的产品都融入了人工智能的技术。搜索引擎  Bing , 在线广告系统是人工智能应用最多的产品之一。Windows, Office 365也都有大量的人工智能 feature 在里边,比如智能语音助手 Cortana(小娜), 还有  Office  里的  Word, PowerPoint, Excel  里边都集成了很多个性化推荐,自动完成任务,以及图像理解和分类等功能来提高效率和生成力。这些 F eature  都是由机器学习来提供后端的支持的 。Xbox  游戏机和  Xbox Live  里的游戏推荐和游戏对手匹配也都用到了大量机器学习的技术。在2B的产品中,比如  Dynamics 365 CRM  系统提供的客户流失预测和市场销售方案推荐用到了深度增强学习的技术。还有  Power BI  商业智能软件里提供了机器学习技术支撑的趋势预测,洞见生成等。在商业人工智能领域,微软正在开发智能对话机器人平台,服务于客服,人力资源,市场,销售等各种企业垂直功能。

深度学习在互联网广告中的应用

另一方面,我们把人工智能能力作为一种附加价值,在微软云计算平台 Azure 上予以开放,给企业和开发者提供很多  API  和服务,去直接使用微软的人工智能平台,用于各个领域和行业。在  Azure  上我们有认知服务,提供包括语音识别,图像理解,自然语言处理,机器翻译等等预先训练好的机器学习服务。我们也提供了  Azure Machine Learning  服务, 有机器学习库支持大量常用模型,让  Azure  用户可以定制训练自己的机器学习模型。

微软也是一个生态系统公司,我们给开发者提供很多平台和工具,辅助他们开发人工智能驱动的产品和系统。比如开发者可以用微软的机器人框架,  Bot Framework  开发各种功能的聊天和任务完成机器人。可以在云计算  Azure  上的  FPGA  或者  GPU  虚拟机集群上使用微软的深度学习工具包  CNTK ,训练和推理深度学习模型。所以可以说人工智能在微软产品线上的应用是非常全面而深入的。

2. 随着机器学习应用场景的丰富和训练数据的急速增长,很多机器学习的实战者都遇到了规模上的挑战。张老师能否谈谈大规模机器学习系统的主要挑战,以及应对这些挑战的总体方法?

这是一个很好的问题。深度学习模型和之前的机器学习模型比如逻辑回归,决策树等相比,模型更加复杂。深度神经网络一般都有好几层,有的甚至几百层。循环神经网络  RNN(Recurrent Neural Networks)  和长短时记忆网络 LSTM(Long Short-Term Memory) 有更加复杂的结构。因为这些特点,深度学习在规模化和泛化能力上比传统机器学习模型也有更大的挑战。

主要有以下几点和传统机器学习模型相比更加困难的地方:

1. 深度学习需要大量的训练数据。 因为深度神经网络深度和广度都有大量的增加,模型能力  Capacity  也相应的有大幅提高,所以需要大量的训练数据集以避免过适应,也就是  Overfitting  问题,以提高泛化能力。准备大量的训练数据是一个很大的挑战。因为很多时候采集高质量的训练数据是很昂贵的,尤其是有标记的数据,比如在医疗健康领域。在这方面的研究,主要侧重于 强化学习和非监督学习,可以用大量的无标记数据或者模型产生的数据来训练模型自己。最近比较热的神经图灵机模型 ( Neural Turing Machine)  和生成对抗网络  (Generative Adversary Network)  模型都是在这方面的尝试,有了一些成功。

深度学习在互联网广告中的应用

2. 因为需要大量的训练数据和更加复杂的模型结构,对计算资源 和 训练算法效率的要求也大幅提高。 往往在一个多核的  GPU  或者  CPU  上训练一个  RNN  或者  LSTM  需要5-6个  Epoch  才会收敛,而一个  Epoch  就要跑一个礼拜。那么如何加速模型训练呢? 这有几个技术方案,一个是在多台机器的集群上创建分布式训练平台,开发更高效的并行训练算法比如  All-Reduce  和  Parameter-Server ,提高数据吞吐量和迭代速度。令一个是优化深度学习库,使得矩阵操作和搜索算法更高效,以提高模型训练和推理的效率。这方面微软的深度学习工具包  CNTK  做了大量的工作,是领先的。

3. 做系统上的优化和改进,提高 GPU 和 CPU, GPU 和 CPU,还有机器之间的通讯速度和传输量, 这往往是模型训练的瓶颈。我们开发了大量的技术,比如  PCI  加速  NCCL ,和远程直接内存访问  RDMA  技术,来让通讯的速度更快,传输量更大。

4. 根据深度学习模型结构和训练算法的特点,另一个解决规模化的途径是设计专门适应深度学习模型训练和推理的硬件。 现在大家常用英伟达的  GPU  训练深度学习模型, Google  开发了专门的  TPU (Tensor Processing Unit)  芯片加速,微软在  FPGA  上做了大量的投资,现在一些深度学习模型都是在  FPGA  上训练,和在有  FPGA  的机器上实时执行的。因为  FPGA  的低功耗,高并行运算量和较为灵活的开发工具,它的应用领域正在不断扩大。

深度学习在互联网广告中的应用

3. 我们知道深度学习领域有非常多的框架和工具,比如 Tensorflow、Caffe、MXNet 等,微软也有  CNTK  这样的工具箱,张老师能否简单点评一下这些框架?微软具体的应用系统中是如何选择这些框架的?

正像你所说的,现在有很多开源的深度学习框架, Google  开发的  Tensorflow  用户群很大, Facebook  也推出了  Caffe 2 。亚马逊宣布他们会用基于  MxNet  的深度学习开发平台,我刚才也说了,微软开源了  CNTK 。这些框架和工具都提供了基本的机器学习模型比如卷积神经网络  CNN ,循环神经网络  RNN ,长短时记忆网络  LSTM , 还有序列到序列模型 ( Sequence2S equence)  等。这些基本的深度学习模型,这些机器学习框架都提供了支持。它们也提供接口给机器学习工程师,创建自己的模型结构,如模型参数,损失函数等,还实现了一些常用的优化方法供选择。

和很多事情一样,没有最好的优化框架,只有适合自己的优化框架。对具体一个项目,选择一个优化框架,除了它本身提供的功能之外,很多其他因素都要考虑。比如说工具库教学和帮助文档是否完善;学习的容易度,门槛,社区是否活跃;其他开发人员的贡献是否丰富,框架的灵活性和可扩展性如何;是否支持简单和快速地在不同规模的芯片和机器类型上可伸缩的执行;对  CPU, GPU, FPGA  的支持,分布式训练算法库的支持;接口是否灵活; 对常用编程语言比如  Python, C++, Java  的支持,对常用神经网络库,比如  Keras  的支持,开发和调试工具的丰富,以及和你已有的系统  Legacy system  的兼容性等等。要考虑的因素是非常地多。所以针对你的项目,针对你开发的经验,选择合适自己的框架。

微软上个礼拜刚刚发布了  CNTK 2.0 ,支持了  Keras , 增加了  Java API ,还有模型评估的  Spark  支持,模型压缩等等新功能,极大地提高了可用性。从我们对不同深度学习框架的评测来看,微软的  CNTK  在训练和推理速度的指标上是最快的,尤其是在  RNN,  LSTM  和  Sequence2Sequence  模型的训练和推理上。第三方的评测也验证了这一点。另外  CNTK  对多  GPU  上的分布式训练性能也是最高的,而且性能的优势随着规模越大变得越高。这使它很适合于需要高吞吐量,低延时的工业级的深度学习应用。

深度学习在互联网广告中的应用

CNTK  在微软内部广泛使用,很多产品里的的深度学习模型都是用  CNTK 在  GPU  集群上训练,在数据中心的  CPU  或者  FPGA  上,基于  CNTK  库运行的,包括  Bing ,广告, Cortana  (小娜)等等。但是就像我刚才说的,没有工具包是 P erfect  的,公司内部也有组在使用或者评估其他工具包在不同的基础架构上训练模型。微软的目的是为了帮助  AI  社区,丰富大家的选择,并且不断完善工具包。

4. 机器学习领域有很多流派,例如强调“推理、知识、学习”的人工智能派和强调应用统计学的统计学派。张老师如何看待这这些流派?以及如何把握它们在具体工程实践中的应用?

这个问题也很有意思。机器学习从提出,研究,发展至今有60多年了。这中间研究人员有过很多方法论的尝试,让机器能够像人一样思考,判断,预测。在这个过程,中在不同的时期有不同的方法比较流行,而在另外一个时期失去了吸引力,但后来可能又满血复活,获得新生。可以说,机器学习发展过程确实可以以波浪式前进,螺旋式上升概括。这也和每个时期其他的技术条件,研究水平,人的认知水平,尤其是对人大脑的了解,以及社会整体文明进步水平有关。

在80年代时研究主要集中在对知识的描述和表达,存储,以及用知识库进行推理上面。 符号表示人工智能 Symbolic AI 比较流行,集中在高层次的人类可理解的,对问题,逻辑和搜索的符号表达表示,以及基于其上的规则系统的构建,最具代表性的是专家系统。但是专家系统的功能和性能远远达不到人们的期望,而且专家系统也没有数学理论的支持,很难证明这种方法论的稳定性和正确性。在80年代末90年代初兴起了神经网络,但是因为计算能力和数据量的限制,以及可解释性的困难,后来逐渐失去了吸引力。

90年代后期,随着 Vapnik 统计学习理论的研究成熟,迎来了统计机器学习的黄金时期。众多的统计学习模型,比如贝叶斯网络,朴素贝叶斯,最大熵,支持向量机 SVM (Support Vector Machine) ,决策树  (Decision Tree) , 使用很普遍的梯度提升决策树 ( GBDT) ,随机森林  (Random Forest) ,矩阵分解模型等等,可以说是百花齐放,在各种分类,回归,聚簇问题上取得了很好的准确性,因此,在搜索,广告,推荐等大量的互联网场景下获得了极大的应用。

深度学习在互联网广告中的应用

统计机器学习模型成功的一个重要的原因是它有稳固的统计学和最优化等数学的理论支撑,为它们的研究和学习能力的提高提供了理论上的保证和方向上的指导。机器学习模型不是一个黑盒子,而是基于严格的数学之上,这非常重要。在整个21世纪的第一个十年,都是统计机器学习的天下,但是这些统计机器学习模型往往需要领域专业人士和数据科学家做大量的特征工程  (Feature Engineering)  的工作,设计有效的特征,才能输入模型,得到满意的效果。

2012年以来,由于大数据的发展,大量数据可用,计算能力的不断提升,神经网络卷土重来。同时,改善的模型机构以及训练算法的提高,使深度学习得到了爆发,尤其是直接操作在一些做特征工程非常困难的原始数据上的场景下,性能有突破性的进展,包括语音识别,图像理解,以及最近很热的自然语言处理  (NLP) ,机器翻译等,都取得了显著的改进。当然就象我刚才说的,深度学习也有很多的挑战,包括复杂度,运算量要求很高,规模化比较困难,可解释性差等等,所以需要联合算法和系统的研究合力去解决。

说到在具体工程实践中的应用,没有一个规则去套用。要根据要解决的问题,具体指标要求,实现上的工程约束和研发人员的经验去做判断。现在对比较复杂的应用,比如语音识别和合成,图像标注和理解,自然语言理解和匹配, 语言翻译,对话生成,阅读理解等问题,最领先的系统都是基于深度学习的。对于一般的分类,回归等问题,之前提到的很多统计机器学习模型都可以达到很好的性能,它们的准确率也很高,训练和推理的速度也很快,不需要专门的硬件,是比较适合的。

5. 据我们所知,张老师在2017全球机器学习技术大会上的演讲题目是《⼤规模深度学习在互联网搜索和广告中的应⽤》,能否提前剧透一下演讲内容?

在机器学习技术大会上的演讲,我除了会对深度学习进行一个简单介绍之外,我会讲一些在互联网广告,尤其是搜索广告系统和平台中深度学习的应用场景,以及为这些场景我们研发的很多深度学习模型,实践中遇到的问题和经验。

具体来说,包括深度学习模型在搜索广告中大量使用的自然语言理解 NLP,和信息检索等领域的应用和实践。还有我们研究的深度学习模型应用在商品图片识别和理解上的效果以及变现探索。另外,我也会展示我们如何使用  CNTK  加速深度学习模型的训练,使得大规模的深度学习模型训练和更新成为可能。复杂的深度学习模型在广告系统中的在线运行也有很多挑战。我会讲解我们如何优化深度学习模型的运行,以极大地提高模型运行速度,减少响应时间,大幅度增加流量处理能力和效率。总之,很多内容,希望到时候和大家分享交流。

深度学习在互联网广告中的应用

互动问答

@谈jiao Q:现在各种平台及工具都越发完善,对于普通研发工程师进入机器学习的门槛降低了,现正从事普通算法工程师的人员应该朝哪些方向努力去提升自己的竞争力呢?

我觉得因为机器学习和人工智能,它本质上还是需要很强的数学基础,但是它又是一个非常实验性的科学,需要大量的实验和比较 Hands-on 的直接动手能力,所以如果你之前没有做过或是并不了解机器学习的项目的话,我建议你可以先看一些  Online Course  在线的课程,或者是去下一些  Open Source  的深度学习或者机器学习的库,然后根据它的  Tutorial  先练习起来,然后你要真正参与到一个机器学习的一个小的项目里面。不管你是做  Email  的分类,检测欺诈邮件,还是说你去预测点击率,或者是做一个网页的分类,这些都是一些比较小的 Project,你可以尝试用不同的模型,  Build  这个训练数据,实践如何做  Hyper Parameter  的调优,如何把它部署到一个  Online  的  production system 上?

所有这些方面我建议你需要有一个真正的  Project ,可在里边一边做一边学,而不是说只是想像学校里边做作业一样去做一个练习,那样的话你不会遇到真正的问题,也无法提升真正的能力。在你有一定的实践经验了,你可以做一些更复杂规模更大的  Project ,在工作中学习,在解决问题中提高,你的机器学习项目经验越来越丰富,做过的场景越多,工程复杂性越大,你的实际能力就会越强,竞争力也会随之越强。

@鹤鸣 Q: 20多年前我们在Windows平台上利用windows api来编程,后来有了.net,但本质上其实还是API,人工智能时代的“编程”会是什么样子的?

我觉得将来的这个编程的话会形成两端,一个是 Cloud 云,一个是  Edge  边缘。在微软的开发者大会上我们也提到过,很多很复杂的这个运算,包括人工智能模型的运行可能会在云上,比如在  Azure  或者在  AWS 上 。所以我们会通过更多的传感器把数据传给云,它上面有非常大量的虚拟机,有  GPU, FPGA  进行运算,然后再把结果发回来,这是一种方式。但另外一种方式是随着深度学习模型的进一步的发展,以及我们有专用的深度学习模型的芯片或者是硬件,比如  FPGA ,它的功耗非常低,我们可以把一些深度学习模型其实放在一个移动设备上进行运行,像手机或者是平板电脑上,所以说它的运行速度也可以很快。

那么我们很多  Local  的一些任务,比如说  AR  的一些应用,在增强现实里边,照片物体的识别,然后根据物体自动显示出优惠券或者是附近有哪些商店在卖这个产品,这些应用都可以在在本地的机器上快速运行。所以在  AI  这个时代的编程模型我觉得还是会用  API ,但这个  API  要比过去的  API  要复杂很多,比如说一些云平台或者机器学习库本身提供了很多 API,像我刚才说的这个微软提供的认知服务,还有  Azure ML  这些都是以  API  的形式存在,接口很灵活,支持多语言跨平台。你可以直接去调用这些  API  做机器学习模型的在线推理。甚至你也可以自己  Build  一个  API, 然后放在一个市场里边,别人可以像买一个 APP 一样去买你的  API  来调用就行。

@吴文敏 Q: 张老师好!互联网广告的反作弊业务常常需要发现新的作弊模式,如何利用深度学习模型如 AutoEncoder 去发现新的作弊模式?

现在我们大部分还是用有监督的学习,你有一些少量的作弊的数据,然后大量的可能是正常的数据去提取很多的 Feature,在这个作弊或者垃圾邮件检测这种任务需要大量的特征工程,因为你如果是这个领域的专家,你会设计出很多很精细的或者说是很复杂的  Feature ,一些特征,它们用来做检测非常有效。当然了,如果你这个系统很有效,然后那些作弊的人都被查出来的话,就会变成矛和盾的关系,这个像猫捉老鼠一样,他们会去想新的办法,所以总是有个滞后。发明新的模式和发现新的作弊模式中间总是有滞后,所以我觉得自动提前发现这个新的模式还是比较困难的。但是我觉得可能能够设计一些机制发出预警,比如监测你认为有可能会因为作弊而引的起异常行为,一旦监测发出预警的话,那么你去看这些数据,看看能不能在里边发现一些新的作弊模式。

@xiaofeiQ:请问关于深度学习模型可解释性上,未来需要什么样的研究?谢谢~

我觉得深度学习可解释性是一个比较难的问题,尤其是对一些领域,我们需要这个模型能够可解释。比如说像在医学领域,你判断这个病人有某种疾病,或者说他的检查片子上有问题,那么医生或者病人他会问你为什么做这个判断?为什么预测是这样的?这个必须有可解释。所以说这个我觉得在学术界还有政府的一些研究项目里边现在都给予很大的重视,因为我知道像美国的  NSF(National Science Foundation)  自然科学基金,他们有一个专门的项目就是做这种可解释的机器学习模型的研究。

在以往可解释方面的机器学习模型上比较好的一个是逻辑回归,因为它是个线性模型,每一个  Feature  的权重,都有一个含义。你可以解释这个  Feature  如果它的权重高的话,说明这个  Feature  有正向的影响,如果它是负的话,有负向的影响,这个是就是比较利于解释;另外一个可解释的模型就是决策树,当然如果你变成那种  Boosting Tree ,就是说有很多树形成的一个森林的话,那个解释性也会下降。但是在深度学习模型方面,我觉得至少目前没有看到很好的方法,当然现大家逐渐在往非监督模型尤其是半监督,或者是深度强化学习模型,我觉得那个方面的可解释性可能比纯粹的  CNN  或是  RNN  要容易一些。

深度学习在互联网广告中的应用

2017全球机器学习技术大会,距离大会开始仅剩  12   天,欢迎大家前往大会现场聆听最前沿的技术分享,与各位技术专家深度脑爆!

计算机视觉先驱,OpenCV创始人 / Gary Bradski 

Google 数据科学主管 / Ying Lu

Facebook 应用机器学习部门主管 / Huang Fei

美国微软人工智能研究部高级总监 / 张若非

Etsy 数据科学主管 / 洪亮劼   

Uber 机器学习平台技术主管 / Li Erran

Tesla 机器学习高级工程师 / Zhenhua Yu

Snapchat AI 团队负责人 / Yunchao Gong

腾讯云机器学习平台负责人 / 黄明

阿里巴巴资深数据科学家 / 杨红霞

饿了么技术副总裁 / 张浩

…………

6月23日中午12:30-13:10,将由机器学习大会演讲嘉宾——

Tesla 机器学习高级工程师 @ Zhenhua Yu,将为大家带来更多精彩分享,这同时也是大会开始前最后一场直播分享,不可 错过!

阅读原文 ”速来占座报名,查看大会更多最新议题!@_@


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序员修炼之道(影印版)

程序员修炼之道(影印版)

Andrew Hunt、David Thomas / 中国电力出版社 / 2003-8-1 / 39.00

本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视——即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。一起来看看 《程序员修炼之道(影印版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具