2018-03-28 00:00:00 b0Q8cpra539haFS7 阅读数 3957
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

阿里妹导读:电商时代,消费者对推荐系统已经不再陌生。蓦然回首,你会发现喜欢的商品就在显眼处。如何设计推荐系统,让消费者更方便地从海量商品中找到自己的最爱,阿里工程师一直在不断探索更优的算法和技术。


阿里妈妈精准定向技术团队,针对大规模候选集上的匹配推荐问题,自主创新提出了一套崭新的、完整的基于树结构的匹配和推荐算法框架,希望借此赋能任意深度学习模型在推荐匹配中的使用,实现面向全量大规模候选集的精准匹配和推荐。下面让我们一起来深入了解、探讨。


I 背景


推荐、搜索、广告投放是互联网内容提供商进行流量分配的核心业务,也是大数据和机器学习技术的典型应用场景。无论是推荐,搜索,还是广告投放问题,都可以描述为从大规模候选中给用户提供有限的展现结果以获取用户的正向反馈(广告投放还需额外考虑广告主意愿和体验)。


在具体实现中,由于在线业务对性能尤其是响应时间的严格要求,我们往往会把上述过程拆分为两个阶段——匹配(Match)+排序(Rank)。以淘宝推荐系统为例,匹配阶段的核心在于如何从全量商品(Item)中根据用户(User)信息召回合适的TopK候选集合,排序阶段则是对TopK候选集合进行精细化打分并排序输出最终展现的结果。排序阶段因为候选集小,可以引入诸如深度学习等非常复杂的模型来优化目标,达到最终效果(相关性、广告收益等)的提升,业界对此阶段的研究比较集中和深入,比如阿里妈妈精准定向广告业务团队在排序阶段的CTR(Click-through Rate)预估上引入了基于Attention结构的深度兴趣模型(DIN,https://arxiv.org/abs/1706.06978),取得了非常好的业务效果。


而匹配阶段由于问题规模大,复杂模型在此阶段的应用存在一定的局限性,所以业界对这方面的研究尤其是深度学习在此阶段的应用仍处在发展阶段。回到上述关于两阶段的描述,可以看出匹配阶段产生的候选集的质量会成为最终效果的天花板,因此如何创新和发展匹配技术是对业务有着重大意义的问题,也一直是业界和学术界关注的重点问题。


以推荐为例,在工业级的推荐系统中,匹配阶段往往面临很多技术挑战。例如当候选集非常大的时候,要从全量候选集中挑选TopK集合,我们无法接受随着全量候选集大小而线性增长的时间复杂度,这使得一些学术界研究的需要计算全量 {User,Item} 兴趣度的方法并不能真正应用于实际推荐系统中的匹配阶段。在有限的计算资源下,如何根据用户信息从全量候选集中快速得到高质量的TopK候选集,需要在计算效率和计算准确性上做精巧的平衡。作为真实应用的推荐系统,其匹配阶段的计算时间需要被限制,简单用以下公式表示:

公式(1)

其中T表示单次计算的时间消耗,N可以认为是为单个用户召回TopK需要的总体计算次数。在上述公式的约束下,围绕如何提升匹配效果,工业界的技术发展也经历了几代的演进,从最初的基于统计的启发式规则方法,逐渐过渡到基于内积模型的向量检索方法。然而这些方法在技术选型上都在上述计算效率约束下对匹配效果进行了很大的牺牲。如何在匹配阶段的计算效率约束下引入更先进的复杂深度学习模型成为了下一代匹配技术发展的重要方向。

 

II 相关技术


如上文所述,结合工业级推荐系统的约束,匹配技术经历了从基于统计的启发式规则方法到基于内积模型的向量检索方法的转变,具体描述如下:


I)第一代——基于统计的启发式规则方法


这一类方法的经典代表就是Item-based Collaborative Filtering(以下简称Item-CF),也是业界应用最广的推荐算法之一。Item-CF的算法原理是:首先通过统计计算得到Item to Item(I2I)的相似关系,其次启发式地获取用户近期行为作为Trigger Item集合,用它们进行I2I扩展,最后以某种打分规则对扩展后的Item集合进行排序,截断得到TopK作为候选集进行后续排序流程。结合公式(1),我们可以知道这种方法有效的控制了总体计算次数N,因为用户的Trigger Item集合是有限的,相似关系圈定的候选集合也是有限的,从而避免了对全量候选集的计算,同时简单的打分规则可以有效地控制单次计算时间T,两者使得最终整体方法的计算量较少,满足了在线应用的要求。


这类方法简单有效,应用也比较广泛,但从算法原理不难看出,这种方法天然存在一大弊端:它限制了尝试推荐给用户未曾行为过但可能感兴趣的Item的可能性。这种将候选限定在历史兴趣相似范畴内的启发式规则对推荐效果的提升有限,它降低了用户体验(尤其是推荐结果的惊喜度),也制约了系统整体的可持续发展能力。尽管后续的排序环节可以引入复杂的机器学习方法,例如MLR(混合逻辑回归,https://arxiv.org/abs/1704.05194),FM(因子分解)或者深度学习,但它们都依赖于匹配给出的候选结果,所以无论如何复杂的模型都突破不了匹配给定的上限

 

II)第二代——基于内积模型的向量检索方法


引入机器学习方法来提升匹配能力是业界共识和趋势。机器学习本质上是一个衡量模型,可以衡量用户对商品的兴趣度。这种基于模型的匹配方法理论上要衡量一个用户对所有商品的兴趣度,从而挑选出最优的推荐结果。这就带来了问题:对于大规模商品候选集的场景是计算不可行的。


如何化解计算不可行的问题?研究人员提出了以向量距离的方式衡量用户和商品兴趣度的方法,用户和商品被表示成向量形式,并以此为基础建立基于向量聚类的索引结构进一步加速衡量效率,于是这个计算问题变成了在有限时间内是可解的(近似求解),具体实现也落到了向量引擎的范畴。结合公式(1),T代表简单的向量内积计算时间,而N则通过建立向量索引结构从而控制在O(桶候选集规模)的较小范围内。


所以内积式模型和向量引擎成为了最近几年匹配领域技术革新的最重要技术(图像检索问题最早就是采用的这种方法)。尤其是去年Facebook的Faiss框架开源,极大降低了业界尝试向量引擎的难度,对行业发展起到了极大的促进作用。至此,基于内积模型的向量检索方法引领了第二代匹配和推荐技术的潮流,在各类学术会议和工业实践中大放异彩。


然而问题是,这类方法并未实现充分利用机器学习解决匹配问题的初衷,对机器学习模型的限制太大。高阶深度学习大部分都不可划成内积形式,比如CTR预估里用户和商品特征交叉非常有用,大部分不可用内积表示。而在现有深度学习中内积模型的表达能力被证明是有限的,比如将内积模型中最后的内积运算直接换成多层感知机能大幅提升模型能力,而多层PNN(概率神经网络),DIN等对用户兴趣更有洞察力的复杂模型效果被证明能极大的超越内积模型。


与此同时,我们也发现在具体实践中,向量检索算法要求User和Item能够映射到统一的向量空间。User输入信息和Item输入信息一般并不同质,如何保证映射到统一目标向量空间下的检索精度对映射算法提出了严格的要求,换言之,统一的向量空间映射对运用向量检索来解决推荐问题带来了精度损失的风险。

 

III)下一代匹配和推荐技术


结合上文的描述,匹配技术发展的核心点在于系统性能限制下尽可能提升兴趣的衡量精度(从规则算法到引入先进模型)和覆盖范围(从限定候选集到全量候选集)。为此我们尝试对下一代匹配和推荐技术进行研究,自主提出了一种更通用的匹配和推荐算法框架,它允许容纳任意先进模型而非限定内积形式,并且能够对全量候选集进行更好的匹配。无论在公开数据集还是在阿里数据集上,新方法的召回率和新颖性对比前两代技术都有飞跃性的提高。我们的方法以推荐问题为例进行展开,实验也是在推荐应用的场景下进行的。值得指出的是,匹配问题本身作为推荐、搜索、广告投放业务中的核心模块,使得我们的方法具有很强的普适性。

 

III 技术方案


承上所述,第二代基于内积模型向量检索的方案,限定模型结构以实现检索效率的提升,因此要想进一步释放模型能力就必须使得整体检索结构的设计与模型结构的设计解耦(向量内积检索与内积模型即是一种强耦合关联)。面对一个复杂问题,人脑常有的一个思考方式是先从大的层面入手,确定大方向后具体细化。我们也从这个角度入手,思考是否可以有一种从粗到细的检索方式,逐步判断并细化,最后给出最优推荐。基于这个思考,我们把探索方向定位在了使用层次化树结构增加检索效率上。


然而,模糊的上层概念想起来容易,概念上万物皆通,真正难的是否能在数学和技术上构建出一条真正可行的路径。就匹配问题而言,树检索结构的引入伴随着一系列的问题要解决:1、树结构是如何构建的;2,如何基于树进行匹配建模;3、如何围绕树结构实现高效的兴趣计算和检索。

 

概率连乘树并不适用匹配问题:


在有了使用层次化树结构来增加检索效率的思路后,我们首先尝试了概率连乘树的形式。这个形式在Natural Language Processing(自然语言处理)中已经有了一些工作和探讨(例如Hierarchical Softmax,Word2Vec等)。虽然最后不幸的发现,这个优美的概率形式并不能对匹配问题带来实质的帮助,但它对真正理清匹配问题的要点和难点从而提出真正可用的方法是很有帮助的。


以Hierarchical Softmax(以下简称HS)为例,每一个叶子节点(词)都有到根节点编码唯一的一条路径,而给定前置上文,下一个词出现的概率被建模为编码路径上分类概率的连乘。传统的多分类Softmax里归一化项依赖所有类别项的计算,所以即使计算一个类别的概率的计算量也很大,而通过概率连乘树的方式,HS有效避免了在传统Softmax建模中需要遍历所有叶子节点计算分母归一化项的过程。


假设我们通过类似HS的方式建立了叶子节点为商品的树,把上下文认为是用户输入,把输出的叶子节点概率认为是用户对商品的兴趣度,看上去HS可以解决我们的匹配问题。但经过我们的分析和实践,事实并非如此。


 1)HS方法解决了给定上文进行节点概率快速计算的问题,即通过引入Hierarchical Structure避免了对全量候选集的逐一计算和归一化,直接计算得到节点概率。但对于匹配和推荐TopK这类全局寻优问题HS并不适用,因为当给定用户输入时,寻找最优的TopK候选我们仍然需要遍历所有的叶子节点,计算各个叶子的连乘概率,对概率排序得到最优的K个。而任何贪心的检索方法如BeamSearch,都无法保证检索得到的TopK是全局最优的,即HS建模方式下每一层的最优连乘并不保证全局最优。所以需要遍历全部叶子计算的HS方法并不适合大规模候选集的匹配和推荐问题。


2)与此同时,HS方法在建树时往往会考虑将某种具有相似关系(语义、词频等)的节点靠近组成兄弟。而HS方法在计算路径概率时把每一个节点的概率计算看作是二分类问题,用于判断接下来选择哪个孩子节点继续走下去。这种判断优与次优的分类方法对于HS是适用和有效的,但对于匹配和推荐问题却是无法成立的,因为当两个孩子具有某种相似关系时,用户往往是同时喜欢或者同时不喜欢。也就说在单层节点上,匹配和推荐要求的是该层上的全局序判别问题,而HS方法解决的是同一父亲下两个孩子节点谁更优的问题。


在采用HS方法进行匹配和推荐的实践中,包括YouTube团队在他们的内积模式向量检索做匹配的文章中提到了他们采用HS方法学习用户和候选Video的偏好关系,但是效果并不理想。而我们最先也在阿里妈妈广告测试集上进行了HS方法的尝试,效果也不如预期。

 

最大堆树的提出和构建:


推翻概率连乘树方法的思路,我们需要构建一套全新的方法体系来实现树结构的构建、基于树的训练采样和TopK检索、以及节点兴趣度计算的统一。回到匹配问题本身,假定全量候选集中的每一个商品都是一个叶子节点,当前用户对所有叶子节点背后都存在一个真实的兴趣度,用表示。我们并不知道其具体值,只有根据概率采样出来的样本(用户真实反馈)。对于一般的模型,我们可以对叶子节点的概率建模,但是要找TopK需要遍历所有节点,计算量太大。因此我们创新性的提出了兴趣最大堆树(Max-heap like Tree)的概念,其定义树上节点的概率如下:


公式(2)


即用户对第j层父亲节点兴趣的偏好概率正比于用户对第j+1层孩子节点兴趣的偏好概率最大值,其中是第j层节点兴趣概率的归一化因子。根据最大堆树的定义,如果已知这棵树上的每层节点概率之间的序(同层内),我们可以快速找到全局TopK,即从根节点出发找当前层的TopK,然后在上层TopK节点对应的下层孩子节点集合中继续找TopK,递归向下直至叶子。


然而问题是这棵树上的节点概率我们现在并不知道,但是我们可以想办法得到符合树节点概率的序的样本,然后用深度学习在这个样本上进行拟合也即得到了节点概率之间的序。具体地,对于任意一个用户有行为的叶子节点采样i,隐含了叶子层的序:。根据我们的树节点概率定义(最大堆性质),可以向上递归推出每层节点概率的序。根据这个序我们进行负样本采样,用深度学习模型基于这个采样去学习,以逼近最大堆树上每层的序。

 

全局分类器的设计理念:


承上文所述,我们构建每一层的兴趣节点模型要严格满足最大堆概率公式是很困难,但是可以得到符合树节点概率的序的样本。而且在检索过程中,我们只需要每一层的节点概率序确定TopK即可,这里面需要特别说明的是虽然每一层的TopK候选集由上层父亲决定,但该层TopK的排序选取本身并不受父辈的影响,也即每一层的TopK排序都是独立的,父辈的排序分数不参与子辈的排序计算,这一点也是我们的方案区别与概率连乘树在计算形式上的不同。


于是我们可以将每层节点的兴趣判别单独建模,构建针对单层节点的全局分类器来保证在单层上的精确分类能力。从叶子节点层建模出发确定采样方式,同时结合最大堆的概率定义,确定每一层的采样方式和建模方式。如果用户对叶子节点感兴趣,那么对于其他不感兴趣叶子节点,有,根据公式(2),对于叶子节点的父节点的父节点,有


这种设计使得训练得到的模型在单层分类上有更好的判别能力,即使在上层分类发生偏差的情况下,在当前层的分类也具备“去伪存真”的能力。当然,分层全局分类能力的设计对样本采样提出了新的要求,后续模型训练章节详细阐述了具体采样方式。以上的综合设计使得对全库TopK检索的计算次数限制在log(候选集规模)量级,有效控制了N的大小,而且单次计算并不要求限定于内积等简单形式,从而允许其容纳更先进的模型。


最大堆树背后的方法论:


最大堆树结构定义背后描述的直观意义是用户兴趣的层次结构,如果用户对具体的商品感兴趣,例如iPhone,那么用户对更高层的节点,例如iPhone所在的类别--手机,也是感兴趣的。用户的兴趣结构具有天然的层次性,最大堆树结构定义了用户从细粒度兴趣到粗粒度兴趣的传递过程,也在刻画用户的这种兴趣的层次结构。当然描绘用户的兴趣层次结构不限于最大堆树结构,但是我们提出的最大堆树结构在方法上具有独到之处,其从方法论层面统一了树结构的构建过程,树节点的兴趣建模和采样方式,兴趣树背后的TopK检索流程。

 

综上所述,从最大堆树结构定义出发,我们提出了Tree-based Deep Match(以下简称TDM)算法框架(图1)。TDM以淘宝商品体系为初始化依托,自顶向下构造从粗到细的兴趣层次树(Tree),并在此基础上应用深度学习网络进行用户兴趣的推荐建模,赋能单点计算上的复杂模型,运用层次检索方法实现全量候选上的用户TopK商品兴趣推荐。

图1 Tree-basedDeep Match算法框架


基于如上的设计和实现,TDM的贡献包含以下几点:


  • 创新的最大堆树检索结构使得使用任意高级深度学习模型变得可能,带来推荐效果的极大提升


TDM采用树来组织用户兴趣层次,并将之做为兴趣推荐的层次检索结构载体,良好的亚线性O(log(候选集规模))时间复杂度使得TDM的检索过程非常高效,这种高效为TDM引入先进复杂模型提升检索精度提供了强大支持。在单独计算每个兴趣节点的偏好时,TDM不局限于特定的模型结构(如内积等),可以引入更加切合数据特性的复杂模型结构来优化预测结果,例如基于用户历史行为的Attention结构,树节点Embedding下沉到输入层,用户和树节点的历史交叉信息引入等等。无论上述哪种复杂计算的引入,在TDM的对比实验中都取得了更优的推荐效果。


  • 全库检索能力可以有效提升召回准确度和新颖性


TDM实现了面向全量候选集的检索能力,通过对用户兴趣进行层次切分和逐层圈选,TDM避免了直接在全量候选集上的超大计算,它采用将大问题切割成多个小问题递归求解的方式实现全库检索。受益于全库检索的实现,TDM可以提升结果的新颖比例并保持了召回效果,而借助于先进模型计算能力的引入TDM可以达到新颖性指标提升的同时进一步优化召回的准确度。


  • 再创新的树-模型联合训练实现树结构和模型能力的双优化,进一步大幅提升效果


在基础TDM算法框架之上,我们继续创新性地建立了树-模型联合训练框架,通过初始树-模型训练-树重建-模型再训练的循环迭代,树的结构随着模型的演进不断得到优化,使得树更契合用户的兴趣组成和分布,而模型训练也受益于优化后的树结构,进一步降低Loss提升测试效果。联合训练为TDM带来了10%以上的测试效果提升,具体对比可参见后文实验效果部分。

 

下述章节将详细阐述TDM在模型训练、结果预测(TopK检索)和树联合训练方面的设计和实现。

 

IV 方案细节


一,模型训练


如上述章节所陈,我们将大规模候选集上的TopK匹配和推荐问题转换成一系列前后相依的全局分类问题,也即我们需要在树的每一层建立一个全局分类器,计算该层节点概率的序,得到最优TopK个候选。我们选择负样本采样(Negative Sampling)的方式进行样本生成,以最大似然估计的方式对这些分类器进行训练。


具体地,设n为树中的某个节点,我们有用户u对节点n的偏好预测概率为:

根据公式(2),用户u对感兴趣,隐含了u对的父亲 也感兴趣,所以假设为某叶子节点,那么我们就有了一条唯一的路径:

表示在第j层的祖先,m为树的高度。当用户u对产生了行为时,我们认为 是用户的一个兴趣,由上我们认为用户u也对路径 中的各个祖先节点也产生了兴趣,于是我们选择这些节点作为训练的正样本,而根据全局分类器的设计要求,我们对这些正样本节点所在层进行随机采样构成负样本。


具体地,记对于用户u,为正样本集合, 为负样本集合,我们有如下的似然公式:


 相对应的,我们有损失函数为:


 其中, 代表用户u对节点n偏好的真实Label(0或1)。

图(1)形象的描述了TDM(带Attention版本)训练时的模型结构,其中树是一棵完全二叉树(但TDM框架本身并不要求树必须是二叉结构)。


在实际的样本构建中,我们采用了用户当天的行为叶子节点及其上溯路径上的祖先节点为正样本,而随机采样各个正样本节点的同层兄弟为负样本。在特征上我们使用了(0,8 * 24)小时的行为特征作为用户特征输入。

 

二,结果预测


遵循TDM层次检索的原理,我们只需要从根节点出发,自顶向下依次逐层选取该层候选孩子中最优的K个节点即可。也即我们有层次检索算法:对于最终要求K个叶子目标推荐的情况下,选择当前层概率最高的K个节点,然后往下层扩展他们的孩子节点,对下层孩子节点进行概率估计,选取概率最高的K个,递归计算和选取直至所有路径都到达叶子层,最后从候选叶子集合(可能大于2K个)中取概率最高的K个返回即可。具体的检索逻辑可参考图2的伪代码描述。在TDM的实验中,层次TopK的检索被实验证明是有效的,甚至是优于平层暴力(Brute-force)检索的,这一点也侧面验证了兴趣树的层次结构可以有效促进检索的精度提升,具体的提升效果可参见后文实验效果部分。


图2 TopK层次检索算法


三,树联合训练


TDM中的树是支撑高效检索效率的兴趣层次组织的载体,同时树的结构直接决定了层次检索的候选集组成以及模型训练的样本组成,所以树结构的优化与否对TDM模型的性能好坏具有直接影响。在实践中我们发现,基于淘宝商品体系为依托构造的树所得的TDM模型,在离线评估指标(召回率等)上会显著的优于随机构造的树所得的TDM模型,这一结果印证了树结构对TDM的巨大影响。鉴于此,我们尝试建立了树优化学习的方法,同时为了最大程度联合TDM模型训练取得更优效果,我们在这基础上进行了树-模型联合训练的迭代实验,实验结果证明联合训练的模型可以取得比初始模型更优的效果提升(10%+),详细提升可参见后文实验效果部分。具体而言我们建立了如下的联合训练迭代方法:


1)依托淘宝商品体系构造初始化的兴趣层次树

2)基于构造样本,训练得到TDM模型

3)根据学得的节点Embedding,通过KMeans聚类重建新树

4)基于重新构造样本,训练得到TDM新模型

5)继续步骤3)和4)直至模型测试指标稳定,得到最终模型


需要说明的是,步骤1)中借鉴淘宝商品体系构建初始化树有助于TDM建立较好的树迭代起点。对于一般领域而言,可以采用随机方式构造的树作为初始树的选择。


图3具体展现了树联合训练在离线测试上的效果。

图3 联合训练树模型和初始树模型的测试结果对比

 

V 实验效果


我们在公开数据集MovieLens和阿里妈妈构建的广告数据集UserBehavior上进行了TDM的实验对比,评价指标包括精度、召回率、精度召回率调和F1和新颖性等方面,对比的方法包括:

 

  • Item-CF采用的是业界广泛使用的基于商品的协同过滤方法,

  • YouTube product-DNN实现的是YouTube视频推荐的向量检索方法(采用和TDM统一的网络结构和特征Embedding维度,负采样只在最底层商品层进行且负样本总个数和TDM保持相等),

  • 基于Attention结构使用(attention-DNN)与否、树节点Embedding是(DNN)否(product-DNN)进入输入层TDM也有多个版本。

 

一,召回率评估


表1 Tree-basedDeep Match实验效果对比


从表1的对比效果中我们可以看出:


1)无论是MovieLens上还是UserBehavior上,带Attention的TDM在召回率上都显著超越了现有推荐匹配算法,包括YouTube向量检索方法和Item-CF统计规则方法;

2)在基础product-DNN版本上引入更复杂和先进的深度模型(节点Embedding进入输入层和引入Attention)可以进一步大幅提升召回率。

 

二,新颖性评估


表2 Tree-basedDeep Match在新颖类目上的效果


在电商领域内,类目(Category,商品分类体系内较粗的级别,例如商品iPhone的类目是手机,商品任天堂Switch的类目是家用游戏机)级别的新颖效果也是非常重要的关注指标,我们对各个模型的推荐结果做了用户行为过的类目的过滤,并对过滤后的结果进行了Precision、Recall、F1等的对比(如表2)。


从中可以看到,attention-DNN的TDM方案在全部的指标上都有极大提升,包括相对于广泛使用的Item-CF方案召回率提升292%,相对于业界主流YouTube方案召回率提升34%,而经过树联合训练后Learnt Tree TDM方案效果进一步得到提升,包括相对于广泛使用的Item-CF方案召回率提升355%,相对于业界主流YouTube方案召回率提升56%。指标的提升极大的说明了TDM方案在类目级别的新颖结果上有很好的表现,并从侧面验证了树-模型联合学习对效果的巨大提升。

 

三,树结构对效果的促进


图4 树检索和暴力检索在每一层上的召回率对比


我们知道TDM中的树作为检索的载体具有良好的时间复杂性,极大赋能了单点的复杂计算。而树本身就是兴趣层次结构,它将推荐匹配的大问题切割成多个层次化的全局分类小问题递归求解。在实验中我们发现树的这种层次化结构可以更加促进效果的提升。从图4我们可以看到在树层数达到一定高度(9+)后TopK层次检索方法(图2)在召回率上会显著优于在该层上的暴力检索方法。究其原因,我们认为TDM的层次化树检索有效防止了上层差的节点对下层节点序计算的影响,将下层候选圈定在上层好的(TopK)节点的孩子中,相对于暴力检索大大降低了序计算的难度,使其具有更好的分类能力,实现召回效果的提升。

 

VI 总结与展望


一,总结


Tree-based Deep Match(TDM)自主创新提出了一套完整的基于树的复杂深度学习推荐匹配算法框架,它通过建立用户兴趣层次树结构实现了高效的全库检索,并以此为基础赋能深度模型引入Attention等更先进的计算结构,达到了在精度、召回率以及新颖性等指标上相对于传统推荐方法的显著效果提升。进一步的,TDM设计实现了一套完整的初始树-模型训练-树重建-模型再训练的联合训练迭代框架,更加促进了效果的提升。联合训练赋予了TDM算法框架较好的通用性,为TDM向新场景、新领域的迁移扩展提供了良好的理论基础和极大的工程可行性。


由阿里自主创新提出的这套TDM框架是对学术界和工业界关于匹配和推荐理论技术发展的一次重大促进,它为解决匹配问题提出了一套崭新的、完整的支持任意深度学习的树状全库检索方案,取得了算法效果的巨大提升,并为广泛的行业、领域迁移提供了极大的可行性。

 

二,展望


TDM建立了一套完整的基于树结构的深度学习推荐匹配理论和技术,并在阿里妈妈广告业务上取得了初步的成果和进展。但相对来说TDM还处于开端阶段,后续还有较多可改进的地方,比如在树学习方法上暂时采用的是无监督学习的KMeans聚类,未来可以考虑采用有监督的方式对树进行调枝、剪枝等调整来实现树结构的进一步优化。

 

PS: 我们也对TDM进行了系统总结并撰写成了论文发表于arXiv上,请大家不吝指正! Learning Tree-based Deep Model for Recommender Systems https://arxiv.org/abs/1801.02294

 

阿里妈妈精准广告算法团队常年诚招大数据处理和机器学习算法方向的能人志士!有意者可发简历联系:jay.hj@alibaba-inc.com。


关于阿里妈妈精准广告算法团队,你还可以阅读这篇来自靖世的经典分享:

从清华到阿里,他只用6年时间,影响了数亿用户


最后告诉大家一个消息:“IJCAI 2018-阿里妈妈国际广告算法大赛”正在火热进行中!获奖团队可以分享37000美金的奖金池,Top3团队还可额外获得去斯德哥尔摩IJCAI-18主会的差旅赞助,面向全球人工智能大拿分享自己的研究成果。各路算法精英亮出你们的智慧吧!


大赛详情、报名可点击文末“阅读原文”了解。



你可能还喜欢

点击下方图片即可阅读



架构师如何应对复杂业务场景?

领域建模的实战案例解析



分布式存储系统的一致性是什么?



知识图谱数据构建的“硬骨头”,

阿里工程师如何拿下?



关注「阿里技术」

把握前沿技术脉搏

2020-04-03 15:46:20 Galbraith_ 阅读数 25
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

前言

推荐导购场景在电商中是重要的满足用户“逛”和“买”的场景,本次主要聚焦在深度学习在阿里B2B电商推荐系统中的应用,其中包括商品推荐中的召回(多兴趣Deep Match)、排序(自研DMR)的相关工作,在新兴的互动内容场景(直播、短视频)中通过异构网络来解决异构信息的精准匹配问题。


本文分享大纲如下:

  1. 发展历史
  2. 商品召回:Deep Match
  3. 商品排序:DIN-DIEN, DMR
  4. 内容排序:直播排序

1. 发展历史

1688推荐系统这三年发展的一个roadmap:
在这里插入图片描述

1.1. 2017年

从17年开始,我们才更加的专注于个性化的分发,不管是搜索还是推荐。如果做推荐的同学们也知道:一开始,我们要做召回、排序、业务的定制以及类似的一些工作。所以我们在17年的时候,主要借助阿里之前淘系的基建,比如SWING&E-TREC这些I2I方法,这其实就是协同过滤的升级版本,然后去进行一个基本的召回方式,以及用LR到GBDT去做一个最初是的CTR预估。到去年年底的时候,我们从LR到GBDT转换到W&DL,因为当时,大概是16年吧,谷歌的W&DL的论文出来后,然后17年在阿里有一个比较大的场景的一些实践。可能针对业务定制的使我们的Unblance I2I,这个I2I的意思呢?是我们总有一些业务是一些小小的商品池,它是一个比较特定的,他不是一个全域可推荐的范围,当我们进行一个大的商品出发的时候,就是定向的往这个商品池里触发。

1.2 2018年

18年深度学习在业界越来越火,所以我们顺着这个潮流,在排序当中走到了DIN和DIEN,这两个工作是阿里妈妈背景的团队做的在广告上的一个CTR的模型的排序,以及顺着Youtube的Deep Match的工作,我们也做了我们这边的Deep Match,以及一些机制的构建,不足了之前我们只有CTR模型没有CVR模型的短板,一些标题党商品会往下落。

1.3 2019年

在最近的一年,我们在召回上去进行一个多兴趣点的Deep Match的尝试,在粗排上从GBDT走到了双塔,以及在排序当中,之前是借鉴公司以及业界的一些先进的经验。我们这边有一些自己的更多的创新工作,比如在CTR中有一些DMR,等一下会详细讲到(AAAI 2020),还有就是在CVR模型当中走到了ESMM+MMOE这样子的模型。最近特别火的就是直播了,以及直播这种内容化的一些推荐。

2. 商品召回

大家知道,一开始做召回的话主要就是协同过滤的方法,例如比较经典的是I2I召回和U2I召回,1688使用过的是Deep Match U2I召回。
在这里插入图片描述
LFM: 隐语义模型

2.1. I2I召回

  1. 采用了Swing/e-trec等启发式方法,效果好,普适性高;
  2. 因为有i2i的关系,用户如果有新的行为,马上能够进行一个触发,可以进行实时的召回
  3. 可解释性有保障;

2.2. U2I召回

  1. 采用了优化方法,通常比启发式方法更加靠谱
  2. 主要由user ID来进行一个embedding召回,新的行为进来后,比较难进行实时更新(实时效率低可以进行弥补)
  3. 可解释性比较差(并没有办法解决)

2.3. Deep Match U2I召回

在这里插入图片描述
16年YouTube提出的Deep Match的方法主要是解决了之前召回效率低的问题,因为这种方法是把用户的历史序列记忆对应的user profile 进行一个embedding之后,然后通过一个MLP得到一个用户的表征。这个表征由于是实时生成的,用户的足迹是不断往里面增加的,那么这个效率是比较高的。Deep Match模型可以更多的用到一些商品侧的自身的一些行为、类目和属性信息,从而能更好地构建模型。但是他的可解释性比较差。另外召回的badcase还是惊喜是一个各花入个眼的方法,需要新上ABTest给出答案。
在这里插入图片描述
在Youtube Deep Match的基础上,我们基于序列上下文的Attention,构建用户表征,即通过时间衰减/行为类别/停留时间等信息对用户序列进行建模,模型结构图如上所示:
在这里插入图片描述
经过线上测试uv点击率+0.92%,人均点击次数+9.81%,发现性曝光占比+8.04%。


2.4 Practical Lessons

  1. 因为是一个match过程,所以我们选择了随机负采样作为负样本;
  2. Position Embedding很有效,用户行为的远近是比较重要的
  3. Item Features Sequence能有效增加信息量

2.5 迭代方向

  1. 用户多兴趣提取
  2. 双塔结构,利用target的side information辅助

3. 商品排序

  1. DIN
    在这里插入图片描述
    17年的时候,我们演进到了WDL的过程,然后18年的时候,因为阿里妈妈在KDD18的时候发表了DIN的那篇paper,同时也在公司内部做了一些介绍。我们就顺着这个潮流从WDL走到了纯的用户向量表征再接MLP的范式;

DIN是显性的用户表征学习,对behavior和candidate引入了Attention,使得用户表征随着候选的不同而发生了变化。DIN结构如上图所示。
在这里插入图片描述

3.1 线上效果(baseline:WDL)

  1. CUN: CTR+5%,CVR+11%
  2. 1688: CTR +4%,CVR +1%

3.2 关于Attention

  1. concat(keys,querys,keys*querys,keys-querys)+Relu+MLP
  2. 运算量=400候选*50sequence+400MLP
  3. 线上DIN在400个候选RTP打分的相应时间为15ms

3.3 DIN没有考虑的信息:

用户长期兴趣偏好(广告区别于推荐)词袋模型,序列不敏感(对最近的行为无额外的偏好)没利用raw feature

4. LSRMM

在这里插入图片描述
基于DIN存在的一些问题,我们做了一些改进,提出了LSRMM(long short-Range Mixture Model),该模型能够去抽取一些长期的用户偏好。这个兴趣偏好不是end-to-end学习出来的,而是直接通过离线的方式统计出来用户在各个时间是否都对于一个特定的类别的东西有一个偏好。比如我喜欢羽毛球,那么再额外的候选中会出现羽毛球。

4.1 LSRMM的特点:

  1. 长期兴趣偏好:长期兴趣提取后,缩减候选,形成单独序列
  2. 行为时序信息利用:近期(session)短序列截取,形成单独序列
  3. 利用raw-feature信息:GBDT EMBEDDING处理统计类raw-feature

4.2 线上效果

CUN CTR+1.5%, CVR + 3.32%(baseline: DIN)

5. DIEN

在这里插入图片描述
当我们知道DIN和DIEN的时候,这两篇paper都出来了,但是为什么我们没有直接上DIEN而是用了DIN呢?主要原因在于DIEN在用户表征例有两层GRU结构,用GRU跑起来还是一个串行结构,它不能并行。我们预估起来,他这个耗时比较厉害,存在一定上线的工程风险,所以我们这边线上了DIN在上了DIEN。

5.1 模型演化过程

  1. GRU+Attention+GRU
  2. GRU+Attention+ATGRU
  3. GRU+Attention+ATGRU+Auxiliary Loss

在这里插入图片描述

5.2 Practical Lessons-rt降低之路(1000个item打分时长)

这是我们做的一些优化以及改进DIN效率,原版DIEN(350ms):

  1. user feature只传一次,节省通信开销(340ms)
  2. 第一层RNN只跑一次(250ms)
  3. Embedding size降低至32(140ms),(这个会影响效果)
  4. 简化attention后(140ms)
  5. 分batch并发请求(100ms内)
    各种方法benchmark结果比较:
    在这里插入图片描述

6. DMR:Deep Match to Rank

在这里插入图片描述
DMR使我们最新发表在AAAI2020上的论文(oral),在Ranking中融合了Matching的思想,建模u2i相关性。DIN和DIEN都是聚焦用户兴趣相关性的建模。而DMR又往前走了一步,对u2i相关性进行建模。这个相关性可以直接衡量用户对商品的偏好程度,从而提升模型的效果。这个u2i相关性是无法通过统计的方法得到的,因为通常不会给用户推荐重复的商品。也无法从召回得到,因为通过是有多路召回,没路召回的相关性不能比较。
DMR提供了一个统一的任意u2i相关性的建模方法。DMR中采用两个子网络建模u2i相关性,其中user-to-item Network直接通过user和item向量内积建立u2i的相关性,并且用一个辅助的deepmatch任务联合训练,促使更大的内积表征更强的相关性,从而提升效果。item-to-item网络采用简介的方式建模u2i相关性,类似于DIN网络,我们先做一个target Attention,这个attention权重可以理解成i2i权重。在讲权重求和得到第二种u2i相关性。DMR提供了一个u2i相关性建模的范式,可以很方便地加入到其他深度模型中。

6.1 DMR实验

在这里插入图片描述

6.2 线上效果

  1. uv-ctr相对提升1.23%
  2. 人均点击次数相对提升9.13%
  3. pv-ctr相对提升3.61%
  4. L-O转换相对提升1.81%

7 内容推荐

1688自2019年开始大规模的去做直播业务,最近直播有多火呢?连法院拍卖这件事都开始上直播了。
在这里插入图片描述

7.1. 1688直播推荐的业务背景

  1. 电商内容化重要方向,提升用户的时长与黏性
  2. B类采购批发,小商家为主,主要类目为女装/童装/配饰/食品等。
  3. 转化率高,目前频道页UV转化率17%,全导购场景第一;
  4. 核心考察指标为买家数(转化率),同时关注点击与用户时长。

7.2. 直播在1688上面临的一些问题

  1. 只用排序就OK了的场景,因为每个时段同场次在线的直播数还不过1000,不过1000的话那未必有一个召回的诉求。给1000个打分我们的模型还是能罩得住的,所以我们对召回的诉求就不强。
  2. 直播是一个多目标学习的过程,在哪里建模也都是一个多目标的过程,比如既要点击率又要在观看时间长,又要转化率高,还有粉丝亲密度的问题。
  3. 还有一个问题:直播这个东西,本来我们是推商品的,这边又开始推直播了。我们就像商品和直播之间是一个什么样的关系。是不是商品很不错,那么它对应的老板做直播就不错的。其实答案是否定的。就是商家和商家的直播之间还是不一样的,有很多商检日常商品经营的好的,未必就是直播做的好的。所以它是一个内容的异构网络。

7.3. 直播排序迭代V1:特征工程+机器学习

在这里插入图片描述

业务初期选择了特征工程+机器学习LR/GBDT,核心在于实时数据、实时交叉特征打点日志的建设。在特征工程上,选取了经典的user,item(live),user X item三个维度,这相比于之前排权重,uv和转换率都有一个明显的提升。

7.4 直播算法排序迭代V2:深度学习双序列模型+多目标学习(multi seq MTL Model)

在这里插入图片描述
我们通过拆解用户行为轨迹中,直播和商品作为两条不同的行为序列去进行分别的Attention,直播中每一个卖家都在贴一个正在介绍的商品,所以图中会有一个candidate Item。

此外,由于DNN类模型难以处理Scale不一的实时统计特征,我们采取了DNN+GBDT embedding的模型结构,实时统计特征预训练GBDT模型,线上实时获取多棵叶子节点的Multi-Hot encoding当做表征,在连接Dense层映射为表征向量。相比于V1版本离线测试显示CTR和CVR AUC均有增长,线上预测UV CTR + 2.2%,CVR+5.2%,AST+17.6%。

7.5 直播算法迭代V3:Item到Live异构行为激活(HIN Attention)

在这里插入图片描述


动机

  1. V2中用户行为是同构的,即item->Item Att,Live->Live Att,但是对于大多数用户,但是对于大多数用户,尤其是直播新人仅有Item行为的用户。最重要的是基于用户商品行为到直播的Item->Live的异构推荐排序。
  2. 引入一路Candidate Live到Item Seq的兴趣提取单元,并在Live和Item表征中尝试了几种方法:
    1. End2End Share Embedding,与V2模型中的其他部分Live和item embedding共享,共同训练End2End not share embedding,为该路HIN Attention单独声明和训练embedding。
    2. HIN Pre-train,基于Live2Item 的边关系,User2Item和User2Live的异构网络,集合HIN Metapath2vec的方案预训练的embedding,与其可融入更多信息。
  3. 效果: 当前上线:End2End not share CVR + 2.47%, 停留时长AST+3.92%。

Future

预期要完成的工作

  1. 粗排网络
    1. 同时开播业务体量达到一定量级后,基于基于双塔向量召回的粗排模型。
  2. 多目标MTL:
    1. MMOE结构,多个Expert Net 建模不同的目标,多业务场景已经验证有效。
    2. 多目标级联Bayesian Net结构优化;
  3. 异构网络HIN:
    1. 引入更多关系(如粉丝关注)的预训练向量,也可以用于召回和商业化的商品分销。
    2. 端到端的HIN2Rec建模,如直接在模型中直播间本次讲解的多个商品去实时表征直播
  4. 内容理解
    1. 业界正在探索的方向,还没有很成熟的落地。

URL: https://mp.weixin.qq.com/s/OU_alEVLPyAKRjVlDv1o-w

2018-11-30 15:45:45 baichoufei90 阅读数 56
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

推荐分享

流量变现-广告

推荐核心:
匹配 相似性 : 人和人、物品和物品、用户特征和商品特征
排序

算法

  • 协同过滤:数据要的少,效果可以 使用普遍
  • 广义线性模型: 特征拟合,找用户特征
  • 深度学习: 数据中自动找特征
  • 强化学习: 人工干预很少,封闭系统。类似人主动学习。

趋势:

  • 搜索和推荐融合
  • AI和传统算法
  • 隐私政策强时,数据少,就用小样本和端(实时记录)、云(历史记录)协统技术

协同过滤

矩阵分解
聚类

问题

  • 稀疏,品类太多,用户购买同一个几率小

  • 相似度度量:微信和陌陌对相似度权限贡献相同

  • 可扩展性:计算量随着user item增加而增加O(m*n)

  • 聚类

  • 矩阵分解
    user-item 交互信息中 矩阵分解来挖掘

冷启动、数据热点(流行)

广义线性

p(click|show) = w.x

比如逻辑回归,其实不是绝对线性,但是线性思维,所以叫广义线性

高维稀疏特征-

  • ID型、离散型特征可用one-hot独热编码
  • 特征组合,丰富特征
  • 如果人工找的特征效果不好,就可以用机器方法找特征(GBDT)、特征组合学习-因子分解机(FM)、实时机器学习(流计算)

在线学习

FTRL(Google,2013)
特征学到了就直接丢掉了,不需要迭代学习
不会出现数据量一直增大导致学习计算量持续增长情况
实时推荐系统

基于树的特征挖掘
gbdt

深度学习

设计多个神经元,每个神经元都判断某个特征
比如多个神经元分别判断猫 眼睛 头 尾巴 体长等 ,如果达到某个数值的神经元超出了判断阈值,就认定这个物体是猫

问题:

  • 高维稀疏特征不适用,因为有全连接,导致连接数太多

广度&深度学习模型

宽特征用LR
窄特征用DL

强化学习

样本少时可以用

建立 推荐引擎到环境(用户)的闭环

人特别容易变化,所以强化学习是未来趋势

目前效果还不太好,收敛速度慢,生产环境使用很少

推荐指标

  • 用户满意度 点击率 转化率
  • 多样性 推荐之间差异化 不相似
  • 准确性
  • 新颖性
  • 鲁棒性 反作弊 稳健性
  • 覆盖率 长尾物品和用户
  • 惊奇性
  • 实时性
  • 用户信任度-推荐理由?

除了固定的一些数据指标,还可以加上一些用户问卷,比如给用户交互点击是否喜欢推荐的

2019-06-11 19:51:30 erujo 阅读数 120
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪

深度学习的用途和应用

机器学习技术在现代社会的各个方面表现出了强大的功能:从Web搜索到社会网络内容过滤,再到电子商务网站上的商品推荐都有涉足。并且它越来越多地出现在消费品中,比如相机和智能手机。
机器学习系统被用来识别图片中的目标,将语音转换成文本,匹配新闻元素,根据用户兴趣提供职位或产品,选择相关的搜索结果。逐渐地,这些应用使用一种叫深度学习的技术。传统的机器学习技术在处理未加工过的数据时,体现出来的能力是有限的。

深度学习出现的原因

几十年来,想要构建一个模式识别系统或者机器学习系统,需要一个精致的引擎和相当专业的知识来设计一个特征提取器,把原始数据(如图像的像素值)转换成一个适当的内部特征表示或特征向量,子学习系统,通常是一个分类器,对输入的样本进行检测或分类。特征表示学习是一套给机器灌入原始数据,然后能自动发现需要进行检测和分类的表达的方法。深度学习就是一种特征学习方法,把原始数据通过一些简单的但是非线性的模型转变成为更高层次的,更加抽象的表达。通过足够多的转换的组合,非常复杂的函数也可以被学习。对于分类任务,高层次的表达能够强化输入数据的区分能力方面,同时削弱不相关因素。比如,一副图像的原始格式是一个像素数组,那么在第一层上的学习特征表达通常指的是在图像的特定位置和方向上有没有边的存在。第二层通常会根据那些边的某些排放而来检测图案,这时候会忽略掉一些边上的一些小的干扰。第三层或许会把那些图案进行组合,从而使其对应于熟悉目标的某部分。随后的一些层会将这些部分再组合,从而构成待检测目标。深度学习的核心方面是,上述各层的特征都不是利用人工工程来设计的,而是使用一种通用的学习过程从数据中学到的。

深度学习正在取得重大进展,解决了人工智能界的尽最大努力很多年仍没有进展的问题。它已经被证明,它能够擅长发现高维数据中的复杂结构,因此它能够被应用于科学、商业和政府等领域。除了在图像识别、语音识别等领域打破了纪录,它还在另外的领域击败了其他机器学习技术,包括预测潜在的药物分子的活性、分析粒子加速器数据、重建大脑回路、预测在非编码DNA突变对基因表达和疾病的影响。也许更令人惊讶的是,深度学习在自然语言理解的各项任务中产生了非常可喜的成果,特别是主题分类、情感分析、自动问答和语言翻译。我们认为,在不久的将来,深度学习将会取得更多的成功,因为它需要很少的手工工程,它可以很容易受益于可用计算能力和数据量的增加。目前正在为深度神经网络开发的新的学习算法和架构只会加速这一进程。

监督学习

机器学习中,不论是否是深层,最常见的形式是监督学习。试想一下,我们要建立一个系统,它能够对一个包含了一座房子、一辆汽车、一个人或一个宠物的图像进行分类。我们先收集大量的房子,汽车,人与宠物的图像的数据集,并对每个对象标上它的类别。在训练期间,机器会获取一副图片,然后产生一个输出,这个输出以向量形式的分数来表示,每个类别都有一个这样的向量。我们希望所需的类别在所有的类别中具有最高的得分,但是这在训练之前是不太可能发生的。通过计算一个目标函数可以获得输出分数和期望模式分数之间的误差(或距离)。然后机器会修改其内部可调参数,以减少这种误差。这些可调节的参数,通常被称为权值,它们是一些实数,可以被看作是一些“旋钮”,定义了机器的输入输出功能。在典型的深学习系统中,有可能有数以百万计的样本和权值,和带有标签的样本,用来训练机器。为了正确地调整权值向量,该学习算法计算每个权值的梯度向量,表示了如果权值增加了一个很小的量,那么误差会增加或减少的量。权值向量然后在梯度矢量的相反方向上进行调整。我们的目标函数,所有训练样本的平均,可以被看作是一种在权值的高维空间上的多变地形。负的梯度矢量表示在该地形中下降方向最快,使其更接近于最小值,也就是平均输出误差低最低的地方。

在实际应用中,大部分从业者都使用一种称作随机梯度下降的算法(SGD)。它包含了提供一些输入向量样本,计算输出和误差,计算这些样本的平均梯度,然后相应的调整权值。通过提供小的样本集合来重复这个过程用以训练网络,直到目标函数停止增长。它被称为随机的是因为小的样本集对于全体样本的平均梯度来说会有噪声估计。这个简单过程通常会找到一组不错的权值,同其他精心设计的优化技术相比,它的速度让人惊奇。训练结束之后,系统会通过不同的数据样本——测试集来显示系统的性能。这用于测试机器的泛化能力——对于未训练过的新样本的识别能力。

当前应用中的许多机器学习技术使用的是线性分类器来对人工提取的特征进行分类。一个2类线性分类器会计算特征向量的加权和。当加权和超过一个阈值之后,输入样本就会被分配到一个特定的类别中。从20世纪60年代开始,我们就知道了线性分类器只能够把样本分成非常简单的区域,也就是说通过一个超平面把空间分成两部分。

但像图像和语音识别等问题,它们需要的输入-输出函数要对输入样本中不相关因素的变化不要过于的敏感,如位置的变化,目标的方向或光照,或者语音中音调或语调的变化等,但是需要对于一些特定的微小变化非常敏感(例如,一只白色的狼和跟狼类似的白色狗——萨莫耶德犬之间的差异)。在像素这一级别上,两条萨莫耶德犬在不同的姿势和在不同的环境下的图像可以说差异是非常大的,然而,一只萨摩耶德犬和一只狼在相同的位置并在相似背景下的两个图像可能就非常类似。

多层神经网络

多层神经网络(用连接点表示)可以对输入空间进行整合,使得数据(红色和蓝色线表示的样本)线性可分。注意输入空间中的规则网格(左侧)是如何被隐藏层转换的(转换后的在右侧)。这个例子中只用了两个输入节点,两个隐藏节点和一个输出节点,但是用于目标识别或自然语言处理的网络通常包含数十个或者数百个这样的节点。
重点为链式法则

一个线性分类器或者其他操作在原始像素上的浅层分类器不能够区分后两者,虽然能够将前者归为同一类。这就是为什么浅分类要求有良好的特征提取器用于解决选择性不变性困境——提取器会挑选出图像中能够区分目标的那些重要因素,但是这些因素对于分辨动物的位置就无能为力了。为了加强分类能力,可以使用泛化的非线性特性,如核方法,但这些泛化特征,比如通过高斯核得到的,并不能够使得学习器从学习样本中产生较好的泛化效果。传统的方法是手工设计良好的特征提取器,这需要大量的工程技术和专业领域知识。但是如果通过使用通用学习过程而得到良好的特征,那么这些都是可以避免的了。这就是深度学习的关键优势。

深度学习的体系结构是简单模块的多层栈,所有(或大部分)模块的目标是学习,还有许多计算非线性输入输出的映射。栈中的每个模块将其输入进行转换,以增加表达的可选择性和不变性。比如说,具有一个5到20层的非线性多层系统能够实现非常复杂的功能,比如输入数据对细节非常敏感——能够区分白狼和萨莫耶德犬,同时又具有强大的抗干扰能力,比如可以忽略掉不同的背景、姿势、光照和周围的物体等。

反向传播来训练多层神经网络
在最早期的模式识别任务中,研究者的目标一直是使用可以训练的多层网络来替代经过人工选择的特征,虽然使用多层神经网络很简单,但是得出来的解很糟糕。直到20世纪80年代,使用简单的随机梯度下降来训练多层神经网络,这种糟糕的情况才有所改变。只要网络的输入和内部权值之间的函数相对平滑,使用梯度下降就凑效,梯度下降方法是在70年代到80年代期间由不同的研究团队独立发明的。

用来求解目标函数关于多层神经网络权值梯度的反向传播算法(BP)只是一个用来求导的链式法则的具体应用而已。反向传播算法的核心思想是:目标函数对于某层输入的导数(或者梯度)可以通过向后传播对该层输出(或者下一层输入)的导数求得(如图1)。反向传播算法可以被重复的用于传播梯度通过多层神经网络的每一层:从该多层神经网络的最顶层的输出(也就是改网络产生预测的那一层)一直到该多层神经网络的最底层(也就是被接受外部输入的那一层),一旦这些关于(目标函数对)每层输入的导数求解完,我们就可以求解每一层上面的(目标函数对)权值的梯度了。

很多深度学习的应用都是使用前馈式神经网络(如图1),该神经网络学习一个从固定大小输入(比如输入是一张图)到固定大小输出(例如,到不同类别的概率)的映射。从第一层到下一层,计算前一层神经元输入数据的权值的和,然后把这个和传给一个非线性激活函数。当前最流行的非线性激活函数是rectified linear unit(ReLU),函数形式:f(z)=max(z,0)。过去的几十年中,神经网络使用一些更加平滑的非线性函数,比如tanh(z)和1/(1+exp(-z)),但是ReLU通常会让一个多层神经网络学习的更快,也可以让一个深度网络直接有监督的训练(不需要无监督的pre-train)。

达到之前那种有pre-train的效果。通常情况下,输入层和输出层以外的神经单元被称为隐藏单元。隐藏层的作用可以看成是使用一个非线性的方式打乱输入数据,来让输入数据对应的类别在最后一层变得线性可分。

在20世纪90年代晚期,神经网络和反向传播算法被大多数机器学习团队抛弃,同时也不受计算机视觉和语音识别团队的重视。人们普遍认为,学习有用的、多级层次结构的、使用较少先验知识进行特征提取的这些方法都不靠谱。确切的说是因为简单的梯度下降会让整个优化陷入到不好的局部最小解。

实践中,如果在大的网络中,不管使用什么样的初始化条件,局部最小解并不算什么大问题,系统总是得到效果差不多的解。最近的理论和实验表明,局部最小解还真不是啥大问题。相反,解空间中充满了大量的鞍点(梯度为0的点),同时鞍点周围大部分曲面都是往上的。所以这些算法就算是陷入了这些局部最小值,关系也不太大。

2006年前后,CIFAR(加拿大高级研究院)把一些研究者聚集在一起,人们对深度前馈式神经网络重新燃起了兴趣。研究者们提出了一种非监督的学习方法,这种方法可以创建一些网络层来检测特征而不使用带标签的数据,这些网络层可以用来重构或者对特征检测器的活动进行建模。通过预训练过程,深度网络的权值可以被初始化为有意思的值。然后一个输出层被添加到该网络的顶部,并且使用标准的反向传播算法进行微调。这个工作对手写体数字的识别以及行人预测任务产生了显著的效果,尤其是带标签的数据非常少的时候。

使用这种与训练方法做出来的第一个比较大的应用是关于语音识别的,并且是在GPU上做的,这样做是因为写代码很方便,并且在训练的时候可以得到10倍或者20倍的加速。2009年,这种方法被用来映射短时间的系数窗口,该系统窗口是提取自声波并被转换成一组概率数字。它在一组使用很少词汇的标准的语音识别基准测试程序上达到了惊人的效果,然后又迅速被发展到另外一个更大的数据集上,同时也取得惊人的效果。从2009年到到2012年底,较大的语音团队开发了这种深度网络的多个版本并且已经被用到了安卓手机上。对于小的数据集来说,无监督的预训练可以防止过拟合,同时可以带来更好的泛化性能当有标签的样本很小的时候。一旦深度学习技术重新恢复,这种预训练只有在数据集合较少的时候才需要。

然后,还有一种深度前馈式神经网络,这种网络更易于训练并且比那种全连接的神经网络的泛化性能更好。这就是卷积神经网络(CNN)。当人们对神经网络不感兴趣的时候,卷积神经网络在实践中却取得了很多成功,如今它被计算机视觉团队广泛使用。

卷积神经网络

卷积神经网络被设计用来处理到多维数组数据的,比如一个有3个包含了像素值2-D图像组合成的一个具有3个颜色通道的彩色图像。很多数据形态都是这种多维数组的:1D用来表示信号和序列包括语言,2D用来表示图像或者声音,3D用来表示视频或者有声音的图像。卷积神经网络使用4个关键的想法来利用自然信号的属性:局部连接、权值共享、池化以及多网络层的使用。

一个典型的卷积神经网络结构(如图2)是由一系列的过程组成的。最初的几个阶段是由卷积层和池化层组成,卷积层的单元被组织在特征图中,在特征图中,每一个单元通过一组叫做滤波器的权值被连接到上一层的特征图的一个局部块,然后这个局部加权和被传给一个非线性函数,比如ReLU。在一个特征图中的全部单元享用相同的过滤器,不同层的特征图使用不同的过滤器。使用这种结构处于两方面的原因。首先,在数组数据中,比如图像数据,一个值的附近的值经常是高度相关的,可以形成比较容易被探测到的有区分性的局部特征。其次,不同位置局部统计特征不太相关的,也就是说,在一个地方出现的某个特征,也可能出现在别的地方,所以不同位置的单元可以共享权值以及可以探测相同的样本。在数学上,这种由一个特征图执行的过滤操作是一个离线的卷积,卷积神经网络也是这么得名来的。

卷积层的作用是探测上一层特征的局部连接,然而池化层的作用是在语义上把相似的特征合并起来,这是因为形成一个主题的特征的相对位置不太一样。一般地,池化单元计算特征图中的一个局部块的最大值,相邻的池化单元通过移动一行或者一列来从小块上读取数据,因为这样做就减少的表达的维度以及对数据的平移不变性。两三个这种的卷积、非线性变换以及池化被串起来,后面再加上一个更多卷积和全连接层。在卷积神经网络上进行反向传播算法和在一般的深度网络上是一样的,可以让所有的在过滤器中的权值得到训练。

深度神经网络利用的很多自然信号是层级组成的属性,在这种属性中高级的特征是通过对低级特征的组合来实现的。在图像中,局部边缘的组合形成基本图案,这些图案形成物体的局部,然后再形成物体。这种层级结构也存在于语音数据以及文本数据中,如电话中的声音,因素,音节,文档中的单词和句子。当输入数据在前一层中的位置有变化的时候,池化操作让这些特征表示对这些变化具有鲁棒性。

卷积神经网络中的卷积和池化层灵感直接来源于视觉神经科学中的简单细胞和复杂细胞。这种细胞的是以LNG-V1-V2-V4-IT这种层级结构形成视觉回路的。当给一个卷积神经网络和猴子一副相同的图片的时候,卷积神经网络展示了猴子下颞叶皮质中随机160个神经元的变化。卷积神经网络有神经认知的根源,他们的架构有点相似,但是在神经认知中是没有类似反向传播算法这种端到端的监督学习算法的。一个比较原始的1D卷积神经网络被称为时延神经网络,可以被用来识别语音以及简单的单词。

20世纪90年代以来,基于卷积神经网络出现了大量的应用。最开始是用时延神经网络来做语音识别以及文档阅读。这个文档阅读系统使用一个被训练好的卷积神经网络和一个概率模型,这个概率模型实现了语言方面的一些约束。20世纪90年代末,这个系统被用来美国超过10%的支票阅读上。后来,微软开发了基于卷积神经网络的字符识别系统以及手写体识别系统。20世纪90年代早期,卷积神经网络也被用来自然图形中的物体识别,比如脸、手以及人脸识别(face recognition )。

使用深度卷积网络进行图像理解
21世纪开始,卷积神经网络就被成功的大量用于检测、分割、物体识别以及图像的各个领域。这些应用都是使用了大量的有标签的数据,比如交通信号识别,生物信息分割,面部探测,文本、行人以及自然图形中的人的身体部分的探测。近年来,卷积神经网络的一个重大成功应用是人脸识别。

值得一提的是,图像可以在像素级别进行打标签,这样就可以应用在比如自动电话接听机器人、自动驾驶汽车等技术中。像Mobileye以及NVIDIA公司正在把基于卷积神经网络的方法用于汽车中的视觉系统中。其它的应用涉及到自然语言的理解以及语音识别中。

尽管卷积神经网络应用的很成功,但是它被计算机视觉以及机器学习团队开始重视是在2012年的ImageNet竞赛。在该竞赛中,深度卷积神经网络被用在上百万张网络图片数据集,这个数据集包含了1000个不同的类。该结果达到了前所未有的好,几乎比当时最好的方法降低了一半的错误率。这个成功来自有效地利用了GPU、ReLU、一个新的被称为dropout的正则技术,以及通过分解现有样本产生更多训练样本的技术。这个成功给计算机视觉带来一个革命。如今,卷积神经网络用于几乎全部的识别和探测任务中。最近一个更好的成果是,利用卷积神经网络结合回馈神经网络用来产生图像标题。

如今的卷积神经网络架构有10-20层采用ReLU激活函数、上百万个权值以及几十亿个连接。然而训练如此大的网络两年前就只需要几周了,现在硬件、软件以及算法并行的进步,又把训练时间压缩到了几小时。

基于卷积神经网络的视觉系统的性能已经引起了大型技术公司的注意,比如Google、Facebook、Microsoft、IBM,yahoo!、Twitter和Adobe等,一些快速增长的创业公司也同样如是。

卷积神经网络很容易在芯片或者现场可编程门阵列(FPGA)中高效实现,许多公司比如NVIDIA、Mobileye、Intel、Qualcomm以及Samsung,正在开发卷积神经网络芯片,以使智能机、相机、机器人以及自动驾驶汽车中的实时视觉系统成为可能。

分布式特征表示与语言处理

与不使用分布式特征表示(distributed representations )的经典学习算法相比,深度学习理论表明深度网络具有两个不同的巨大的优势。这些优势来源于网络中各节点的权值,并取决于具有合理结构的底层生成数据的分布。首先,学习分布式特征表示能够泛化适应新学习到的特征值的组合(比如,n元特征就有2n种可能的组合)。其次,深度网络中组合表示层带来了另一个指数级的优势潜能(指数级的深度)。

多层神经网络中的隐层利用网络中输入的数据进行特征学习,使之更加容易预测目标输出。下面是一个很好的示范例子,比如将本地文本的内容作为输入,训练多层神经网络来预测句子中下一个单词。内容中的每个单词表示为网络中的N分之一的向量,也就是说,每个组成部分中有一个值为1其余的全为0。在第一层中,每个单词创建不同的激活状态,或单词向量(如图4)。在语言模型中,网络中其余层学习并转化输入的单词向量为输出单词向量来预测句子中下一个单词,可以通过预测词汇表中的单词作为文本句子中下一个单词出现的概率。网络学习了包含许多激活节点的、并且可以解释为词的独立特征的单词向量,正如第一次示范的文本学习分层表征文字符号的例子。这些语义特征在输入中并没有明确的表征。而是在利用“微规则”(‘micro-rules’,本文中直译为:微规则)学习过程中被发掘,并作为一个分解输入与输出符号之间关系结构的好的方式。当句子是来自大量的真实文本并且个别的微规则不可靠的情况下,学习单词向量也一样能表现得很好。利用训练好的模型预测新的事例时,一些概念比较相似的词容易混淆,比如星期二(Tuesday)和星期三(Wednesday),瑞典(Sweden)和挪威(Norway)。这样的表示方式被称为分布式特征表示,因为他们的元素之间并不互相排斥,并且他们的构造信息对应于观测到的数据的变化。这些单词向量是通过学习得到的特征构造的,这些特征不是由专家决定的,而是由神经网络自动发掘的。从文本中学习得单词向量表示现在广泛应用于自然语言中。
特征表示问题争论的中心介于对基于逻辑启发和基于神经网络的认识。在逻辑启发的范式中,一个符号实体表示某一事物,因为其唯一的属性与其他符号实体相同或者不同。该符号实例没有内部结构,并且结构与使用是相关的,至于理解符号的语义,就必须与变化的推理规则合理对应。相反地,神经网络利用了大量活动载体、权值矩阵和标量非线性化,来实现能够支撑简单容易的、具有常识推理的快速“直觉”功能。
在介绍神经语言模型前,简述下标准方法,其是基于统计的语言模型,该模型没有使用分布式特征表示。而是基于统计简短符号序列出现的频率增长到N(N-grams,N元文法)。可能的N-grams的数字接近于VN,其中V是词汇表的大小,考虑到文本内容包含成千上万个单词,所以需要一个非常大的语料库。N-grams将每个单词看成一个原子单元,因此不能在语义相关的单词序列中一概而论,然而神经网络语言模型可以,是因为他们关联每个词与真是特征值的向量,并且在向量空间中语义相关的词彼此靠近(图4)。

递归神经网络

首次引入反向传播算法时,最令人兴奋的便是使用递归神经网络(recurrent neural networks,下文简称RNNs)训练。对于涉及到序列输入的任务,比如语音和语言,利用RNNs能获得更好的效果。RNNs一次处理一个输入序列元素,同时维护网络中隐式单元中隐式的包含过去时刻序列元素的历史信息的“状态向量”。如果是深度多层网络不同神经元的输出,我们就会考虑这种在不同离散时间步长的隐式单元的输出,这将会使我们更加清晰怎么利用反向传播来训练RNNs(如图5,右)。

RNNs是非常强大的动态系统,但是训练它们被证实存在问题的,因为反向传播的梯度在每个时间间隔内是增长或下降的,所以经过一段时间后将导致结果的激增或者降为零。

由于先进的架构和训练方式,RNNs被发现可以很好的预测文本中下一个字符或者句子中下一个单词,并且可以应用于更加复杂的任务。例如在某时刻阅读英语句子中的单词后,将会训练一个英语的“编码器”网络,使得隐式单元的最终状态向量能够很好地表征句子所要表达的意思或思想。这种“思想向量”(thought vector)可以作为联合训练一个法语“编码器”网络的初始化隐式状态(或者额外的输入),其输出为法语翻译首单词的概率分布。如果从分布中选择一个特殊的首单词作为编码网络的输入,将会输出翻译的句子中第二个单词的概率分布,并直到停止选择为止。总体而言,这一过程是根据英语句子的概率分布而产生的法语词汇序列。这种简单的机器翻译方法的表现甚至可以和最先进的(state-of-the-art)的方法相媲美,同时也引起了人们对于理解句子是否需要像使用推理规则操作内部符号表示质疑。这与日常推理中同时涉及到根据合理结论类推的观点是匹配的。

类比于将法语句子的意思翻译成英语句子,同样可以学习将图片内容“翻译”为英语句子(如图3)。这种编码器是可以在最后的隐层将像素转换为活动向量的深度卷积网络(ConvNet)。解码器与RNNs用于机器翻译和神经网络语言模型的类似。近来,已经掀起了一股深度学习的巨大兴趣热潮(参见文献[86]提到的例子)。
RNNs一旦展开(如图5),可以将之视为一个所有层共享同样权值的深度前馈神经网络。虽然它们的目的是学习长期的依赖性,但理论的和经验的证据表明很难学习并长期保存信息。
为了解决这个问题,一个增大网络存储的想法随之产生。采用了特殊隐式单元的LSTM(long short-termmemory networks)被首先提出,其自然行为便是长期的保存输入。一种称作记忆细胞的特殊单元类似累加器和门控神经元:它在下一个时间步长将拥有一个权值并联接到自身,拷贝自身状态的真实值和累积的外部信号,但这种自联接是由另一个单元学习并决定何时清除记忆内容的乘法门控制的。

LSTM网络随后被证明比传统的RNNs更加有效,尤其当每一个时间步长内有若干层时,整个语音识别系统能够完全一致的将声学转录为字符序列。目前LSTM网络或者相关的门控单元同样用于编码和解码网络,并且在机器翻译中表现良好。

过去几年中,几位学者提出了不同的提案用于增强RNNs的记忆模块。提案中包括神经图灵机,其中通过加入RNNs可读可写的“类似磁带”的存储来增强网络,而记忆网络中的常规网络通过联想记忆来增强。记忆网络在标准的问答基准测试中表现良好,记忆是用来记住稍后要求回答问题的事例。

除了简单的记忆化,神经图灵机和记忆网络正在被用于那些通常需要推理和符号操作的任务,还可以教神经图灵机“算法”。除此以外,他们可以从未排序的输入符号序列(其中每个符号都有与其在列表中对应的表明优先级的真实值)中,学习输出一个排序的符号序列。可以训练记忆网络用来追踪一个设定与文字冒险游戏和故事的世界的状态,回答一些需要复杂推理的问题。在一个测试例子中,网络能够正确回答15句版的《指环王》中诸如“Frodo现在在哪?”的问题。

深度学习的未来展望

无监督学习对于重新点燃深度学习的热潮起到了促进的作用,但是纯粹的有监督学习的成功盖过了无监督学习。在本篇综述中虽然这不是我们的重点,我们还是期望无监督学习在长期内越来越重要。无监督学习在人类和动物的学习中占据主导地位:我们通过观察能够发现世界的内在结构,而不是被告知每一个客观事物的名称。

人类视觉是一个智能的、基于特定方式的利用小或大分辨率的视网膜中央窝与周围环绕区域对光线采集成像的活跃的过程。我们期望未来在机器视觉方面会有更多的进步,这些进步来自那些端对端的训练系统,并结合ConvNets和RNNs,采用增强学习来决定走向。结合了深度学习和增强学习的系统正处在初期,但已经在分类任务中超过了被动视频系统,并在学习操作视频游戏中产生了令人印象深刻的效果。

在未来几年,自然语言理解将是深度学习做出巨大影响的另一个领域。我们预测那些利用了RNNs的系统将会更好地理解句子或者整个文档,当它们选择性地学习了某时刻部分加入的策略。

最终,在人工智能方面取得的重大进步将来自那些结合了复杂推理表示学习(representation learning )的系统。尽管深度学习和简单推理已经应用于语音和手写字识别很长一段时间了,我们仍需要通过操作大量向量的新范式来代替基于规则的字符表达式操作。

2018-01-06 12:35:36 weixin_33885676 阅读数 53
  • 机器学习&深度学习系统实战!

    购买课程后,可扫码进入学习群,获取唐宇迪老师答疑 数学原理推导与案例实战紧密结合,由机器学习经典算法过度到深度学习的世界,结合深度学习两大主流框架Caffe与Tensorflow,选择经典项目实战人脸检测与验证码识别。原理推导,形象解读,案例实战缺一不可!具体课程内容涉及回归算法原理推导、决策树与随机森林、实战样本不均衡数据解决方案、支持向量机、Xgboost集成算法、神经网络基础、神经网络整体架构、卷积神经网络、深度学习框架--Tensorflow实战、案例实战--验证码识别、案例实战--人脸检测。 专属会员卡优惠链接:http://edu.csdn.net/lecturer/1079

    40550 人正在学习 去看看 唐宇迪
以下内容根据演讲PPT及现场分享整理。

d6e3c9e385c85fa4091dba0503fe0d08fe4632b4

淘宝搜索相当于带有Query的推荐系统,不同于网页搜索,每天都会面临大量的数据信息,想要从上千万的相关商品中挑出与用户更匹配的商品,提高流量效率(点击率、转化率相关指标),解决更加重要更加复杂的排序问题,需要利用个性化的技术。这些年里,淘宝在电商搜索领域里做了许多尝试,对大数据和机器学习进行了探索。

探索期:质的转变

eb4571518df9a4647b92ad0cfd1e0cb861275791

早期,淘宝排序是基于销量、下架时间等规则的排序,需要人工进行排序,这种排序很大程度上依赖人的经验,有时会出现人为性错误,因此需要应用机器学习的技术来代替人工。一开始淘宝搜索采用了MPI和 Hadoop,MPI是一种基于分布式算法的跨语言通讯协议,Hadoop是一种离线存储数据、处理数据的平台。通过使用线性回归模型和非线性的GDBT基础模型等模型,预测每一个商品的效率,即每个商品的点击率和转化率,把效率高的商品提到前面,从而提升整个平台的效率。在得到很多模型之后,会根据Learning to Rank的算法,把这些模型最终融合成一个分数,表示为商品的综合效率分,最后将分数从上到下进行排序。

发展期:由内而外

ad8e5545fea971b321b5a9a46f936d66ff3ca4b4

用户的兴趣在不同时段可能发生变化,商品由于上架、下架、流行或不流行等因素会产生更大的变化,之前的离线模型从产生到被使用需要一定的时间差,因此不能达到一定的时效性,无法满足用户的需求。淘宝的智能搜索需要在线学习,将用户的每一个数据实时地流入到训练系统当中,因而采用了Porsche和Igraph两个框架。Porsche是一种分布式的在线参数服务器,将用户数据流入然后对模型进行更新,Igraph是一种分布式的图计算平台,能够比较好地处理用户与商品的关系数据。使用在线学习,需要一些新的模型,例如FTRL、Online MF等,收益往往来自于大促场景。

突破期:由浅入深

c09bfbc3a4d37b3f18a5f40665d40c2fb808bf58

随着排序的要求更加复杂,模型的发展遇到瓶颈,浅层模型对离线、在线的指标提升形成阻碍,从而引入了深度模型。Blink平台支持TensorFlow的大多数操作,在TensorFlow的基础上做出了很多底层优化,AI4B是基于java开发的平台,有助于更方便的代码编辑和开发。

深度用户认知网络的原理机制
运用个性化技术需要考虑怎样认识一个用户和怎样根据用户进行相关的推荐或排序两个问题,在认识用户方面,传统的两个方法是用户画像(根据用户基本信息进行推荐)和协同过滤(根据点击的商品来表示用户),往往两种方法的准确性比较低。淘宝采用了深度用户认知网络,通过多任务学习得到一个用户的通用表达。

47299c716b62484967c4c2747714276f6dbaaea6

深度用户认知网络从整体上看,分为根据用户的行为得到用户的表达和根据用户的表达对用户以后的行为进行预估两个部分,具体的网络结构分为商品embedding、Session-based RNN、Query attention、User representaion和Multi-task learning五层。输入是用户在淘宝上的所有行为,包括搜索、点击、成交等行为。

38f3b4581a922dc12df18520cfda51ebb0091826

用户在淘宝上的每一个行为都对应一个商品,如何认识一个商品成为最基础的部分。商品embedding将商品的ID、图片、文本、卖家标签等多种异构属性进行融合成为一个信息。

在得到一个商品的表达之后,用Session-based RNN将商品的各种表达串联起来,即把用户的各种行为串联起来去表现一个用户。

33b1d5eb57e6f0178f82a9d3a93926e9b4a365d4

Query attention的目的是确定哪种行为是重要的。在用户输入一个Query时,并不是每一个行为都同等重要,Query attention可以根据用户输入的Query以及用户本身的信息自动识别用户行为序列中重要的行为,再将重要的行为重新整合为当前的用户,此时得到一个真正的用户表达。

4d77756b72e2de0c419d3c0716016c5d758415f0

为了使用户的表达具有基础性和可移植性,需要一个多目标学习结构。多目标学习使得每一个目标学习的效果都比单目标学习的效果好,多目标相互之间不会形成阻碍;各个模型通过共享,无需为每一个模型都提供一个很大的网络,减缓了对在线性能和存储带来压力。

深度学习算法应用

f708f255be73003c20cff9a638f0ff08297ea0df

深度学习应用广泛,不仅仅表现在深度用户认知网络,还可以应用在排序、query理解、强化学习、优化算法、决策与商业化和前沿探索(语音、图像、内容生成)等多种场景。

本文由云栖社区志愿者小组丁匀泰整理。编辑:郭雪梅。
没有更多推荐了,返回首页