热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器学习技术如何推动工业界发展?看完你就知道了

点击上方“云加社区”,选择“置顶或星标”第一时间获取技术干货我们都知道随着内容和数据的爆炸,如何找到用户真正喜欢的内容,已经成为各大平台的

点击上方“云加社区”,选择“置顶或星标”

第一时间获取技术干货

我们都知道随着内容和数据的爆炸,如何找到用户真正喜欢的内容,已经成为各大平台的核心要素。本次分享将从机器学习特别是深度学习技术在腾讯内部多年实战运营经验出发,以推荐场景为切入点,介绍一下机器学习技术在工业界大数据场景的普适化、普及化进程的推动。

深度学习和人工智能是当下非常热的一个概念,甚至经常出现在娱乐板块。但对工业界和企业界来说,我们更希望让它真正产生价值,解决我们的实际问题。

我大概会从这几个方面进行阐述,结合推荐场景,我们要知道大数据深度学习技术的价值,首先是理解推荐,它到底需要什么,碰到了什么问题和困难;第二是需要理解深度,对大数据场景而言,仅仅就是把网络深度加深吗,它有什么优势,能够解决什么问题,所以我们把这个理解之后,才能更好的让深度学习为推荐服务;在这个过程中,我会同时介绍一下我们自己的一些技术实践,具体下来是两个技术产品神盾推荐系统和DeepR深度学习框架,最后再做个小结。

理解推荐

首先我们理解一下什么是推荐,大家知道当千人千面的需求碰到海量信息的时候,推荐就产生了。从一般的视角来看,学术通常会把这个问题转化成评分的问题,即如何评估一个用户在一个场景下对一个物品的喜好(打分)程度,所以大部分对推荐的理解是围绕着如何评分去展开。

怎么去做评分?

一般来说有两种思路,第一种思路是协同过滤的思想解决推荐问题,通过某个维度,比如一些相似的人群或者物品,找到用户的倾向性,然后衡量倾向的程度,这种思想在推荐里有非常多的算法。

第二种思路是在机器学习框架下解决推荐问题,因为在互联网里有大量的显式反馈和隐式反馈。机器学习方法通常会用这些反馈近似用户的期望,并设法找到一个合适的function去拟合这个期望,要么求均值,要么求方差,这是现在的做法。

在我们工业界来看,推荐是否仅仅就是解决评分的问题。

首先学术界经常会把推荐看成是一个评论矩阵去解决它,实际上在真实的场景下,这个矩阵是不存在的,或者说这个矩阵是一个开集。从商业上来讲,我更喜欢从类似计算广告的角度去看推荐问题,如果我们把推荐看成市场的话,会有很多参与者,而每个参与者的诉求是不一样的,甚至经常是矛盾的,所以工业界的推荐是要做一个Best Match,这个match不是指技术上的检索匹配,而是指诉求的match。

诉求是一个比较虚的概念,那么我们如何去衡量和落地这个诉求?

我们一般用目标驱动这个诉求,我们可以把这个诉求拆成很多小的目标,从这个角度看,推荐问题决不是一个简单的评分问题,所以他会考虑和均衡很多因素。

为了达到这个目的的话,仅仅做一个打分器是远远不够的,它需要一个整体的体系去支撑。经过这么多年的发展,工业界基本上都会采用Offline-Nearline-Online的架构,实践证明也比较有效。

这套架构在腾讯内部的一个具体实践,就是神盾推荐系统,目前已经形成了比较完备的体系,包括经过实际验证的很多有效的算法库。

神盾推荐系统目前支撑了大量的腾讯内部和外部的推荐场景,单日调用峰值达到数百亿次,形成了丰富的生态,也取得了比较好的效果。我们也希望能够让神盾推荐系统在云市场上透出更多的能力,更多的支持到B类用户。

从Recommendation到Deep Recommendation

现在我们再来理解一下深度的问题,大数据的深度和CV或者NLP的深度是否是一个意思?现在讲深度学习,如果不搞个网络,把层数堆上去,就不叫深度。但对大数据,比如推荐来说,深度到底指的是什么,所以我们需要理解一下这个深度。

从我的观点来看,深度主要两层意思,第一个是这个深度相较于传统的模型,对这个市场,包括用户、内容、环境等理解的更深,更本质性的东西,更多是往语义空间的一种映射;第二个是需要能够切实帮助我们解决大数据里面碰到的一些比较重大而难以解决的问题,在这个地方,我列了大数据的三个非常典型的问题,这三个问题是现在一直都没有解决好的问题。包括复杂数据形态的问题,个性化精细学习的问题,数据分布动态变化的问题,比如大数据里面的一个重要特点就是,它是一个动态的过程,它会不停地变化,我们搞大数据的非常头疼的一个问题就是变量漂移和概念漂移,在线下训练,模型都很好,放在线上效果就不太好,其中的一个重要原因是数据的分布在不停地迁移。

随着人工智能技术的发展,特别是深度学习、强化学习的不断发展,这三大问题不能说现在已经解决的多么好,但至少已经提供比较好的思路和愿景,让我们越来越多的看到希望,有很多解决途径去解决这些问题。我现在大概从感知、学习和决策,就是人工智能的三大优势方面大概讲一下我们应用的一些实例。

首先感知方面,对推荐来说是非常有价值的一个应用。它是把两个传统模型看来不相关的两个概念映射到同一个空间,使得语义上比较近的概念在空间上的距离比较近,比如特朗普或者奥巴马,它是两个完全不同的字符串,但映射以后他们可能靠的比较近,因为他们都是美国总统,而且是表现比较糟糕的美国总统。 当然这个语义可以和场景、业务相关。

这是我们关于数据表征方面在应用宝推荐上的一个应用,仅仅通过用户行为学习,就能把一些相同类型的app聚合在一起,提升了推荐的效果。

讲到学习,学习实际上就是如何找到一个合适的function,让它能很好的去拟合我们的数据和目标,这是一个非常重要的环节。整体来说,为什么深度学习或者大规模的神经网络是比较有优势的?首先大规模的神经网络实际上能够把VC维做的非常高,因为我们找function的过程就像寻宝的过程,我们在池塘里面寻宝和到大海里面去寻宝,肯定在大海里找到宝藏的概率更大。大规模神经网络把VC维提上来之后,我们有更加机会找到我们最优的function。同时它的缺点是海域太大了,所以整个方差特别大。所以在大数据里面在应用深度神经网络的时候有一个重点,就是我怎么通过加入约束条件和设计网络结构限制好这个方差;另一方面,相较于kernel,boosting这样的方法,NN的方法更加民主化,可以用更低的门槛通过搭积木的方式寻找function。

这是我们用到的其中一个比较有效的网络结构,相较于全交叉,它其实是通过分组交叉的方式引入了人工先验知识的约束来提升性能。

在决策阶段,现在强化学习方面的应用是一个热点,主要是在这种动态变化的环境当中,我怎么去做有效的和高效的决策。相较于传统的在线学习的方式,首先是以长期的收益期望为目标,同时,我们线上获得的反馈通常是延迟的,强化学习的模式更符合真实场景;另外,强化学习的学习方法可以将动作学习目标和收益目标分开,不要求收益数学形式上可微,非常灵活,这一点非常有吸引力。

在业界,一个非常有价值的应用就是用强化学习做动态的策略选择。随着时间轴的推移,很难保证有一个始终最优的模型或策略,我们能不能组合多个时间维度局部最优的模型去获取更大的收益,这是强化学习很有优势的地方。这个方面很多大厂都有实际应用。

另外一个应用是在腾讯的微视推荐场景。一般的推荐场景强调精准,微视推荐的特点是发现更有趣,所以它会更强调探索和多样性。这种特性也很适合强化学习的应用。

另外一个有非常大价值的方向,就是Transfer Learning,我前面提到的用户兴趣漂移或者数据分布漂移的问题,其实就是Transfer Learning的解决方向之一。

这是迁移学习在电商领域多语言市场推荐的一个典型应用,比如在英文市场积累了大量的数据,但是多语言市场存在冷启动的问题,但用户的习惯和物品存在关联性,我们能不能从做的比较好的应用市场迁移,解决启动的问题,迁移学习也提供了比较好的解决方法。

另外一个例子是我们用迁移学习来解决feeds流产品中的推荐和广告整体优化的问题,推荐强调用户体验,广告强调营收,它们的目标其实存在比较大的gap,迁移学习的一些思路也可以用来寻找那些能尽量同时满足这两个目标的内容。

这是我们经常碰到的另外一个现实的问题,机器学习的生命周期特别长,会涉及到非常多的环节。每个环节相对割裂,而且它们的优化目标各自不同,比如说我们在建模的时候,我们看loss,离线评测看AUC,等等。所以整体上看,效果是一种漏斗的方式,上线之后综合效果的收益挺小。所以我们自然会想到能否把中间的过程省掉,直接对最终目标做优化,那么这就涉及到一个问题,我们现在通常的机器学习算法,其实都要求你的目标是可导的,但我们在线上很多业务目标不可导,强化学习就提供了一个很好的解决思路和方法,这也是现在强化学习比较有应用价值的一个地方。

关于直接优化业务目标,我们也做了一些尝试,主要是通过粒子群进化的思路来进化出网络,这种方法取得了一定的效果,主要问题是计算量比较大,收敛性比较差。目前主流的AutoML的方法可能会是更好的一个解决途径。

DeepR

所以,从机器学习到深度机器学习的转向是整个业界的一个共识。为了支撑从推荐到深度推荐的转向,我们自研开发了一个叫DeepR的深度学习框架,它是针对大数据、面向开发人员,打造高效、专业的工业级深度学习一站式解决方案。为什么要做Deep这个东西?一般通用的深度学习平台对CV和NLP解决的比较好,但是工业级大数据的深度学习有很大差别, 我这里大致列出了大数据的深度学习比较显著的一些特点,这是一般框架解决不太好的地方。针对这些特点,现在正在建设DeepR一站式深度学习的解决方案,同时在这个里面,我们有一些特色化的机制和算法。

这是DeepR整体的架构图。其中比较核心的一个组件就是我们自研的深度学习框架RCaffe,由于时间关系,下面就只对RCaffe做一个简单介绍

这是RCaffe的整体结构图,我们是基于Caffe骨骼来深度定制开发的,在Caffe清晰简单的框架设计基础上,针对大数据特点,在机制和算法功能组件上做了定制开发

机制方面,RCaffe逐步形成了一些自己的特色机制,第一个是分组的数据输入机制,带来的好处是把数据按某种方式分组之后,以组为单位的话,往上走能够很灵活的接入不同的操作分别处理,这是非常灵活的。这种方式对样本权重,多目标等常见应用也能更方便的支持;第二个就是BDM机制,主要是解决大规模模型参数的一个问题,它只加载当前处理batch数据所需要的参数,按batch生成动态模型,解决了内存和显存不足的问题。第三个是多GPU的通讯方式,采用了数据并行和部分的模型并行结合的方式,把输入层和网络层切开,用不同的并行机制去做。第四个是大规模稀疏数据的存储和OP。

这是BDM机制的一个示意,采用内外存交互的设计,按batch动态加载模型参数,在内存/显存的开销上有巨大优势,理论上单机可完成大规模的参数训练

RCaffe在算法功能组件方面,除基本OP外,以“功能Layer”形式抽象,更加组件化和高效。一期为大数据任务提供了14个定制化功能组件。

以Attion组件为例,Attention组件在搜索、推荐、广告中起到了很大的作用,Attention的算法有几十种。在算法组件上,我们可以做一个抽象,转化成一个检索的过程,通过算和key的相关性,把query映射到key对应的value空间,最后在value空间中做一个组合。Attion组件实现了这个过程,其中算query与key的相关性的过程一般通过一个子网络计算,这个子网络可以通过配置文件来组织网络结构。

这是我们DeepR大致的一个路线图,计划在明年上半年能够使功能更加完备和完善。

小结

最后做一个总结,其实在大数据深度学习中,深度的含义不一样。我们的深度更多是被用户、被内容更语义性的一些理解,而不是简单的记忆。我们随着深度学习技术的发展和进步,我们应该让它更多的解决大数据遇到的一些实际的问题,没有先进和落后的算法,只有合适的算法。第二个是数据为王,数据决定效果的上限:模型只是用来拟合数据。第三个是工程的重要性,工程和高效实验的能力决定人工智能的应用水平。

推荐阅读:

如何构建一个相对安全的账号体系?

腾讯AI技术专家教你从0到1学习计算机视觉技术

1个开发如何撑起一个用户过亿的小程序

海媛:小程序·云开发助力开发者快速构建小程序

关注云加社区,回复 3 加读者群

点击阅读原文,获取本文PPT

喜欢就点个“好看”



推荐阅读
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • plt python 画直线_机器学习干货,一步一步通过Python实现梯度下降的学习
    GradientDescent-梯度下降梯度下降法(英语:Gradientdescent)是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找 ... [详细]
  • 安装Tensorflow-GPU文档第一步:通过Anaconda安装python从这个链接https:www.anaconda.comdownload#window ... [详细]
  • 2017亚马逊人工智能奖公布:他们的AI有什么不同?
    事实上,在我们周围,“人工智能”让一切都变得更“智能”极具讽刺意味。随着人类与机器智能之间的界限变得模糊,我们的世界正在变成一个机器 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
author-avatar
民海育来仁湖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有