基于任意深度学习+树状全库搜索的新一代推荐系统

waj2018 waj2018     2023-01-03     697

关键词:

首先要感谢阿里,分享了这个美妙的技术。

以下是我结合了阿里技术对基于任意深度学习+树状全库搜索的新一代推荐系统的一些看法。


Part 0 背景

随着时代日新月异,推荐技术对各大互联网公司都起着越来越重要的作用,阿里针对大规模候选集上的匹配推荐问题,自主创新提出了一套崭新的、完整的基于树结构的匹配和推荐算法框架,希望借此赋能任意深度学习模型在推荐匹配中的使用,实现面向全量大规模候选集的精准匹配和推荐。

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

Part 1 理论及概念

首先我们要明确一点:

推荐=匹配+排序(Recommend=Match+Rank)

从上面公式不难看出,推荐问题可归纳为匹配阶段和排序阶段的问题。

推荐系统的核心就在于从全量Items中根据Users的behavior,召回TopK候选集的问题。

一、

先从排序来说,排序部分由于候选集较小,故可使用各类复杂模型(例如DL等)来优化TopK的选取,来达到最终效果,例如广告投放收益等。业界对此方面的研究进展很深,例如阿里就将排序阶段的CTR预估利用了基于Attention结构的深度兴趣模型,收益很大。

PS: 

Attention模型最初应用于图像识别,模仿人看图像时,目光的焦点在不同的物体上移动。当神经网络对图像或语言进行识别时,每次集中于部分特征上,识别更加准确。如何衡量特征的重要性呢?最直观的方法就是权重,因此,Attention模型的结果就是在每次识别时,首先计算每个特征的权值,然后对特征进行加权求和,权值越大,该特征对当前识别的贡献就大。

二、

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

三、

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

 
技术分享图片
公式1

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

Part 2 相关技术

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

 

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(混合逻辑回归)FM(因子分解)或者深度学习,但它们都依赖于匹配给出的候选结果,所以无论如何复杂的模型都突破不了匹配给定的上限

 

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

 

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

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

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

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

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

 

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

 

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

 

Part 3 技术方案

(I)最大堆树的提出和构建:

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

 
技术分享图片
图片2

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

然而问题是这棵树上的节点概率我们现在并不知道,但是我们可以想办法得到符合树节点概率的序的样本,然后用深度学习在这个样本上进行拟合也即得到了节点概率之间的序。具体地,对于任意一个用户有行为的叶子节点采样i,隐含了叶子层的序:

 
技术分享图片
图片3

根据我们的树节点概率定义(最大堆性质),可以向上递归推出每层节点概率的序。根据这个序我们进行负样本采样,用深度学习模型基于这个采样去学习,以逼近最大堆树上每层的序。

 

(II)最大堆树背后的方法论:

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

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

 

 
技术分享图片
图4 Tree-base Deep Match算法框架

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

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

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

 

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

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

 

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

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

 

Part 4 总结与展望

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

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

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



作者:谨慎卑微的野心家
链接:https://www.jianshu.com/p/88e3fba82e39
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。





深度学习在搜索和推荐领域的应用

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/                         &nbs 查看详情

深度学习核心技术精讲100篇(七十七)-主流推荐引擎技术及优缺点分析

...言在本文中,将详细介绍多种类型的推荐系统,具体介绍基于近邻算法的推荐引擎、个性化推荐引擎、基于模型的推荐系统和混合推荐引擎等,并分析介绍每种推荐系统的优缺点。主要介绍的不同类型的推荐系统包括:近邻算法... 查看详情

深度学习:从头设计一个tensorflow3一样的新一代深度学习系统,到底需要把握哪些要点?

...个讨论这个问题:如果想到从头设计一个TensorFlow3一样的新一代深度学习系统,到底需要把握哪些要点。计算单元:从layerabstraction到operator大家熟悉的第一代深度学习系统,以cuda-convnet21和caffe为代表。这些 查看详情

推荐系统推荐系统数据流的经典技术架构+微软阿里微软等10大深度学习ctr模型最全演化图谱

...数据部分2.2模型部分2.3推荐系统数据流的技术架构图三、深度学习推荐模型的演化趋势3.1前深度学习时代CTR预估模型的演化之路3.2谷歌、阿里、微软等10大深度学习CTR模型最全演化图谱【推荐、广告、搜索领域】3.3CTR基本模型结... 查看详情

深度学习在gilt应用——用图像相似性搜索引擎来商品推荐和服务属性分类

...领域。最近的一些算法的进步和GPU并行计算的使用,使得基于深度学习的算法可以在围棋和其他的一些实际应用里取得很好的成绩。时尚产业是深度学习的目标领域之一。闪购网站Gilt就一直在使用深度学习来进行产品推荐和服... 查看详情

深度学习在推荐系统的应用(代码片段)

...ningwithMulti-gateMixture-of-Experts模型架构模型原理。模型特点基于神经网络的多任务学习本质上就是在多个任务之间加一个共享表示层,从数学上可以证明这个共享表示层可以起到正则化的效果,提高模型的泛化能力 查看详情

1000个大数据/人工智能毕设选题推荐

...毕业设计题目选择方向。大数据/人工智能毕设选题:基于社交大数据的用户画像系统设计与实现基于TF-IDF和朴素贝叶斯方法的海量文本分类研究基于卷积神经网络的图像修复系统设计与实现智慧校园语音交互系统的设计与实... 查看详情

基于sparkmlllib的推荐系统学习笔记

背景大势所趋,几乎所有的项目都在向机器学习、深度学习靠拢:怎么在行为分析类项目中植入机器学习相关算法?目前,有两个可行的场景:智能路径与在线推荐。智能路径输入转化目标,按照转化率的... 查看详情

从手淘搜索到优酷短视频,阿里巴巴是如何在搜索推荐领域下应用深度学习的?

摘要:深度学习是一个既可以处理特征、学习特征又可以实现最后的排序打分的一套整体解决方案,借助深度学习的解决方案,搜索推荐的工作方式将发生巨大的变化。想知道阿里巴巴如何将在搜索推荐领域下应用深度学习技术... 查看详情

《搜索和推荐中的深度匹配》——2.5延伸阅读

...假设Query使用一种语言而文档使用另一种语言。【6】利用基于单词的翻译模型来执行任务。【7】提出使用基于短语的翻译模型来捕获查询中单词和文档标题之间的依赖关系。主题模型也可用于解决不匹配问题。一种简单而有效... 查看详情

后深度学习时代,推荐系统向何处去?

近年来,深度学习出现并统治了人工智能领域。推荐系统技术迎来了一次重大的革新,推荐系统正式进入了深度学习时代。学术界尝试用深度学习设计推荐算法,工业界也将深度学习广泛应用于实际项目。01推荐系统... 查看详情

深度学习在推荐系统上的应用

近些年,深度学习在语音识别、图像处理、自然语言处理等领域都取得了很大的突破与成就。相对来说,深度学习在推荐系统领域的研究与应用还处于早期阶段。  携程在深度学习与推荐系统结合的领域也进行了相关的研究与... 查看详情

《搜索和推荐中的深度匹配》——经典匹配模型2.1匹配学习

2.经典匹配模型已经提出了使用传统的机器学习技术进行搜索中的查询文档匹配和推荐中的用户项目匹配的方法。这些方法可以在一个更通用的框架内形式化,我们称之为“学习匹配”。除了搜索和推荐外,它还适用于其... 查看详情

构建基于深度学习神经网络协同过滤模型(ncf)的视频推荐系统(python3.10/tensorflow2.11)(代码片段)

...的流程,也就是说,我们大可不必自己手动构建基于神经网络的机器学习系统,直接使用深度学习框架反而更加简单,深度学习可以帮助我们自动地从原始数据中提取特征,不需要手动选择和提取特征。之前... 查看详情

[推荐系统]1.深度学习与推荐系统

...打分的偏差2.3.4矩阵分解的优点和局限性2.4逻辑回归2.4.1基于逻辑回归的推荐2.4.2逻辑回归的数学表达2.4.3逻辑回归的模型训练2.5自动特征交叉方案2.5.1POLY2模型2.5.2FM模型2.5.3FFM模型2.5.4模型演化过程1推荐系统1.1推荐系统的作用和意... 查看详情

[推荐系统]1.深度学习与推荐系统

...打分的偏差2.3.4矩阵分解的优点和局限性2.4逻辑回归2.4.1基于逻辑回归的推荐2.4.2逻辑回归的数学表达2.4.3逻辑回归的模型训练2.5自动特征交叉方案2.5.1POLY2模型2.5.2FM模型2.5.3FFM模型2.5.4模型演化过程1推荐系统1.1推荐系统的作用和意... 查看详情

tensorflow学习笔记(代码片段)

...广告点击率CTR预估、网页搜索排序、垃圾邮件过滤系统、基于内容的推荐系统等。深度学习深度学习是实现机器学习的一种技术,现在所说的深度学习很大层次上是指神经网络。神经网络是受人类大脑的启发:神经元之间的相... 查看详情

深度学习推荐系统领域的15个问题

深度学习推荐系统领域的15个问题转:https://zhuanlan.zhihu.com/p/1231032061.如果领导让自己同时带一个NLP团队和CV团队,而此时对CV却不熟悉,一般如何快速建立这样的多种类型的知识体系呢?和我的经历有一点像,我在职业生涯头五... 查看详情