深度学习技术的应用和思考
云栖TechDay第33期,阿里巴巴iDST 算法专家辽玥带来题为“深度学习技术的应用和思考”的演讲。IDST有两个比较重要的职能,一是赋能电商,二是利用创新技术来使一些不可能的事情变成可能。在赋能电商部分,本文主要介绍深度学习技术在搜索、推荐和广告以及销量预测上的一些应用,第二部分主要介绍了最近做的一些深度学习模型压缩和加速的工作。
以下是精彩内容整理:
赋能电商
搜索推荐
深度学习的优势在什么地方?
第一是特征的抽取能力,以图像领域为例,我们很早之前做图像分类,我们的做法是拿到一幅图像,然后手工做它的feature,做好特征之后,再用分类器完成整个图像的分类,而Deep learning技术来了之后,输入的仍然是图像,但是只需要做好几个标签,而提取Feature或者抽象的过程是由Deep learning帮你完成的;第二是特征组合能力,因为Deep learning有更复杂的网络结构,而且有很多的非线性部分,所以它的特征组合能力是比较强的。
针对以上的特点,我们利用Deep learning技术。首先在我们的主搜上做了一些应用,我们在这个场景下,设计了一套训练框架,而针对的是最原始的行为数据,而最原始的行为数据应该就是用户的点击购买以及时序行为,然后自动的学习特征产生的对用户商品和query的精确描述,从而提升GMV。
我们的项目叫representation learning,简称就是RepL。用户搜索的过程,可以抽象成一个用户然后在搜索框里面输入一条query,然后产生一次点击或者购买,而之前排序方法大多是基于手工的Feature,比方说用户的年龄、购买力。
网络架构
我们采用的方案是输入全部是ID,对所有的用户进行编码,即输入的是一个one-hot的向量,也就是说输入的实际上是一个没有实际意义的一个ID数据。在搜索的场景下,可能很容易会有一亿的商品、两亿的用户,我输入的就是这样一个超高维的一个稀疏向量。我们要对向量做一个简单的处理,会把它做一个编码,但是输出仍然是一个非常稀疏的结构。编码后的向量输入一个sparse的全连阶层,这一层过后,会紧接着有两层全连接。把用户、商品和query的全连阶层输出concat在一起,然后又通过了两层全连接。而学习的目标就是用户是否点击和购买了这个商品。
编码
coding解决的是输入的超维问题,我们通过coding把输入的ID做降维,我们有三种的编码方式:
首先是随机编码,比方说是一个2亿维的输入,红色位置是1,其他位置都是0的,然后通过一个random的projection过程,把2亿维编程1000万维。但是降维向量与2亿维向量的区别在于,它是有多个位置可以有值的,这就是随机编码的过程。其次是挂靠编码,挂靠编码跟搜索关系比较紧密,搜索里面有i2i,用户同时购买了A商品和商品,那么B商品的编码和A商品的编码应该尽可能的让它们公用一部分key,就说它们两个编码的结果是相似的。
第三是分词编码,例如红色连衣裙,首先把它分词,分成红色和连衣裙两部分,再针对这两部分编码。
Sparse full connection layer
输入虽然也是有多个键值,但它还是非常稀疏,比方说它有2千万维,但是其中可能只有10个或者20个是有值的,其他大部分都是0,全部计算矩阵计算量是非常大的,我们只计算有值的部分。通过这个简单的处理,将原来多机多卡才能解决的问题,变成了一个单机单卡,然后参数规模就变成了原来的二十分之一,而且模型的收敛性是更好的。
Multi-task
模型上线后,我们发现一个问题,一个搜索过程是存在海选和精排的两个过程的,什么叫海选呢?比方说我要搜连衣裙,淘宝库里有2亿的连衣裙,不可能把这2亿连衣裙全部展现给用户,所以我首先要做一个海选,比如把2亿的连衣裙变成了一个5千的量级,再对5千的商品做精排。但是我们发现模型上线之后,一些优质商品在海选阶段都被去除了,我们针对这种情况就做了一个多任务的结构,将海选分与我们之前点击和购买的loss,两个loss同时作用于整个网络,相当于用一个网络完成了两个功能,同时输出海选分和精排分。
Online learning
我们与搜索的同学一起,针对双十一大促场景做了针对性优化。双十一当天的情况是瞬息万变的,如果不能实时的调整排序策略,这对用户体验是比较大的伤害,为了解决这个问题,我们首先引用了一些手工的实时feature,另外我们最后一层网络是实时更新的,按秒量级的更新模型,实时feature和实时更新模型共同来保证双十一的效果。
时序模型
我们对于点击序列也做了一些工作,深度学习当中有一个对时序建模比较好的工具叫ST M,我们把用户的行为想象成是一个点击序列,通过用户之前的点击序列来预测用户下一次的点击。
综上所述,通过deep learning算法,主搜的成交额、转化率、成交笔数在日常和双十一都有非常显著的提升,更值得一提是冷门商品提升更加的明显。
推荐场景
我们与推荐同学一起,在淘宝的详情页看了又看做了尝试。看了又看是手淘所有推荐场景中非常重要的一个大场景,它每天的引导成交额是破亿的,其特点是它有一个主商品,而且只能推荐同店中的其他商品,这就导致它的侯选集实际上是比较小的,所以说优化难度一直以来是比较大的。推荐行为跟搜索差别在什么地方?在Deep learning看来,搜索和推荐的唯一区别可能就是搜索多了一个query,就是搜索词,而推荐是没有的。所以我整个的建模过程就是输入一个用户ID和商品ID,然后我就会预测这个用户要点或者不点这个商品。模型上线之后我们就会发现,无论是客单价还有千次展现的成交金额,都有一个比较好的提升。
我们这套框架可以很好的用在搜索推荐,甚至于用在广告的场景,因此我们就想把RepL做一些产品化的东西。我们首先用全量的电商数据,基本上包含手机淘宝或者PC淘宝所有的点击和购买,用这些数据训练一个模型,产生的是用户和商品的特征。然后把用户和商品的特征输出到各个场景,我们就可以采用常规的机器学习的方法对目标进行优化。这个计算复杂度高的Deep learning只需要训练一次,所以说它极大的节省了训练资源。同时,它能输出用户和商品的特征,降低了技术门槛,并不是每个人都需要去搞复杂的Deep learning,你只做LR或者GPDT就可以利用特征把Deep learning的结果用起来。我们利用这套框架目前对接了主搜索,天猫搜索,店铺内搜索,以及推荐方面又接了详情页,看了又看,天猫国际,当然,目前我们也是在推广阶段,后面可能会有更多的业务和场景接入。
模型压缩与加速
深度学习的网络现在是越来越大,计算复杂度也越来越高,严重影响了在手机等智能设备上的应用。
下面是GoogleNet和一个34层的残差网络,你可能觉得这两个网络好像都比较复杂,实际上在图像领域,基本上是一个中等的网络规模。首先我们要解决模型的大小,第二是模型的计算问题。我们尝试了一个二值网络,会把Deep learning所有的参数限制为1或负1,这样用1BIT就可以存储原来32BIT需要存储的东西,它的存储空间是变成了原来的32分之一。同时,整个网络的计算完全没有了乘法,只有加减,这样计算速度也非常有明显加快。如公式所示,我们把它看成了一个优化问题,F(W)就是原始神经网络的优化目标,可以是你的图像分类,可以是你的CTR,然后后面有一个约束,参数必须是1跟负1。
为了解决这个问题,我们利用了ADMM算法,他是解决分布式优化常用的算法。利用上述解法,完成网络的binary化。无论是图像、视频场景,还是电商的多种场景,总体来讲效果还是不错的。这是我们在图像上做的一些结果,ImageNet是一个标准的图像分类集,可以看到网络基本无损。这是另外一个标准的检测公开集,可以看到我们的算法也基本可以做到无损。速度方面,无论是手机还是各种嵌入式的平台上,做到了20倍左右的加速,PC机上正在做优化。我们一直觉得,模型压缩虽然现在还没有太多的大的落地场景,但这是非常有前景的一个方向,通过我们的努力使得Deep learning网络在嵌入设备上成为了可能。
辽玥:阿里巴巴iDST 算法专家,毕业于中科院,拥有工学博士学位,iDST深度学习组负责人。致力于深度学习技术在商品搜索、推荐、销量预测、图像搜索等电商场景的应用和研究。
受阿里支持的深度学习及其应用课程认定为国家级课程 《深度学习及其应用》是一门理论和实践并重的课程,强调课程内容的深度和应用性,重视领域问题(项目沉浸)驱动式教学、配套实验案例和实验平台的建设、课程资源配套的建设以及与学生的交流。课程结合20多家企业的30多个实战合作项目实践,深入浅出地帮助学生钻研深度学习的算法以及应用;借助阿里等公司的人工智能开源平台,分享最新的算法、更多领域应用的相关实验。课程配套资料齐全,其中,利用主流的机器学习开源框架,开发了50多个机器学习案例,并在此基础上出版了多本实用案例丰富的教材,有效地支撑了课程实践教学的开展。课程在中国大学MOOC(爱课程)运行,已经有8万多名高校学生和社会学习者选修该课程,具有一定的影响力
领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(下) 本文首先介绍了用于2D和3D道路数据采集的传感系统,包括摄像机、激光扫描仪和微软Kinect。随后,对 SoTA 计算机视觉算法进行了全面深入的综述,包括: (1)经典的2D图像处理,(2)3D点云建模与分割,(3)机器/深度学习。本文还讨论了基于计算机视觉的路面坑洼检测方法目前面临的挑战和未来的发展趋势: 经典的基于2D图像处理和基于3D点云建模和分割的方法已经成为历史; 卷积神经网络(CNN)已经展示了引人注目的路面坑洼检测结果,并有望在未来的进展中打破瓶颈的自/无监督学习多模态语义分割。作者相信本研究可为下一代道路状况评估系统的发展提供实用的指导。
领域最全 | 计算机视觉算法在路面坑洼检测中的应用综述(基于2D图像/3D LiDAR/深度学习)(上) 本文首先介绍了用于2D和3D道路数据采集的传感系统,包括摄像机、激光扫描仪和微软Kinect。随后,对 SoTA 计算机视觉算法进行了全面深入的综述,包括: (1)经典的2D图像处理,(2)3D点云建模与分割,(3)机器/深度学习。本文还讨论了基于计算机视觉的路面坑洼检测方法目前面临的挑战和未来的发展趋势: 经典的基于2D图像处理和基于3D点云建模和分割的方法已经成为历史; 卷积神经网络(CNN)已经展示了引人注目的路面坑洼检测结果,并有望在未来的进展中打破瓶颈的自/无监督学习多模态语义分割。作者相信本研究可为下一代道路状况评估系统的发展提供实用的指导。
一文尽览 | 传统光流方法汇总及其在深度学习中的应用!(基于相位/能量/匹配/变分) 近年来,随着深度学习技术的快速发展,基于深度学习的光流估计技术已成为光流研究领域的热点与主战场。然而,当前很多刚接触光流算法研究的同学直接从深度学习方法开始,大跃进式的迈过了传统光流估计理论与方法。虽然,这并不影响他们产出高质量的研究成果,但是,对传统光流估计方法原理和理论还是有必要进行一定程度的学习。
深度学习 | 如何开发、部署 Serverless 应用? 本文将详细介绍如何开发和部署 Serverless 应用,并通过阿里云函数计算控制台与开发者工具 Serverless Devs 进行应用的初始化、部署;最后分享应用的调试,通过科学发布、可观测性等介绍应用的部署和运维总结,进而实现从应用初始化到调试、发布、运维基础流程、核心步骤的探索。
相关文章
- 【华为云技术分享】Nginx应用调优案例
- 【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得
- 王晶:华为云OCR文字识别服务技术实践、底层框架及应用场景 | AI ProCon 2019
- 开放下载 | 飞天技术峰会-云原生加速应用构建分论坛资料开放下载
- 如何通过 Serverless 技术降低微服务应用资源成本?
- 某技术大牛的帖子(android项目总结)
- 图片延迟加载技术-Lazyload的应用
- 营销是一场战争or一场游戏?——深谈预测技术的行业应用与挑战
- veth-pair技术在docker中的应用(docker网络通信)及tomcat Dockerfile示例
- 78期:ATF走进清华,阿里技术天团畅谈技术梦想
- Atitit 前端与ui开发的技术道术与艺术 attilax著 1. 概述2 1.1. 适用领域: ui相关领域(包括h5 web ios android安卓 cs桌面程序 游戏程序 等
- SAP Cloud for Customer 技术概述
- AI之FL:联邦学习(Federated Learning,分布式机器学习技术)的简介(背景/思想/特点/优势/未来展望/发展史)、系统及其架构、场景应用之详细攻略
- ML与Regularization:正则化理论即bias-variance tradeoff(权值衰减/提前终止/数据扩增/Dropout/融合技术)在机器学习中的简介、常用方法、案例应用之详细攻略
- Python语言学习:Python语言学习之网络爬虫/反爬虫技术相关的简介、案例应用之详细攻略
- DL之CNN:计算机视觉之卷积神经网络算法的简介(经典架构/论文)、CNN优化技术、调参学习实践、CNN经典结构及其演化、案例应用之详细攻略
- AI:人工智能领域具体应用场景案例介绍之以领域划分(CV领域/DS领域/NLP领域/金融领域/爬虫领域)、以项目划分(AI推荐/AI推断/AI法律咨询/AI挖掘)目录来理解技术交互流程
- AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能
- XAI之GS:全局代理(Global Surrogate,对黑盒机器学习执行模型可解释性的技术)的简介、常用工具包、案例应用之详细攻略
- DevOps on DevCloud|如何采用流水线践行CI/CD理念【华为云技术分享】
- 【华为云技术分享】#探索鲲鹏#之“在鲲鹏上使用编程语言——C语言
- 技术七Gitservergitolite要构建和操作方便
- 从小白程序员到大厂高级技术专家我看过哪些书籍?
- 企业智能转型对AI技术的挑战及应对,答案是MLOps
- 第十二讲:生成树概念及STP技术应用
- 基于深度学习的病毒检测技术无需沙箱环境,直接将样本文件转换为二维图片,进而应用改造后的卷积神经网络 Inception V4 进行训练和检测
- 学术分享 | 清华大学 康重庆:电力系统碳计量技术与应用(Matlab代码实现)
- 轻量级SaaS化应用数据链路构建方案的技术探索及落地实践