电商时代,消费者对推荐系统已经不再陌生。蓦然回首,你会发现喜欢的商品就在显眼处。如何设计推荐系统,让消费者更方便地从海量商品中找到自己的最爱,阿里工程师一直在不断探索更优的算法和技术。
以深度学习为代表的人工智能在图像、语音和 NLP 领域带来了突破性的进展,在信息检索和个性化领域近几年也有不少公开文献,比如 Wide& Deep 实现了深度模型和浅层模型的结合,DSSM 用于计算语义相关性,DeepFM 增加了特征组合的能力,Deep CF 用深度学习实现协同过滤,RNN Recommender 采用行为序列预估实现个性化推荐等。工业级的信息检索或个性化系统是一个复杂的系统工程,深度学习的工业级应用需要具备三个条件:强大的系统计算能力,优秀的模型设计能力和合适的应用场景。
阿里妈妈精准定向技术团队,针对大规模候选集上的匹配推荐问题,自主创新提出了一套崭新的、完整的基于树结构的匹配和推荐算法框架,希望借此赋能任意深度学习模型在推荐匹配中的使用,实现面向全量大规模候选集的精准匹配和推荐。
在即将到来的 AICon 全球人工智能与机器学习技术大会 上,阿里妈妈精准定向技术部高级技术专家李晗老师将会带来关于《深度树匹配——下一代推荐技术的探索和实践》的精彩演讲,下面是 InfoQ 中国对李晗老师的采访:
我是 2013 年从清华硕士毕业之后加入阿里妈妈,主要从事广告投放算法这一块的工作。目前在阿里妈妈主要负责三块工作,一块是信息流广告业务的算法策略,一块是整体展示广告的匹配召回技术体系建设,还有一块是云营销业务中的数据算法工作。这次 AICon 我会重点介绍一下我们团队当下在推荐技术方面做的一点探索和创新,我们内部称为深度树匹配(Tree-Based Deep Match)。
推荐的本质是完成用户(User)和物品(Item)的匹配。但用户的兴趣多种多样,物品的候选集也非常大,所以推荐技术的核心就是如何从海量物品候选集里面高效挑选相关商品并排序展示给用户。这里面有几个关键词,第一个是“高效”:高效描述的是性能上的要求,其意味着推荐系统要在尽可能短的时间内完成物品的推荐,暴力计算用户对所有商品的兴趣在商品库非常大的情况下并不适用。第二个是“相关”:相关描述的是算法上的要求,其意味着我们需要利用数据和算法尽可能准确建模和预测用户对物品的潜在兴趣。
结合上述要求,推荐技术也经历了从基于统计的启发式规则方法到基于内积模型的向量检索方法的转变。基于统计的启发式规则方法经典代表就是 Item-based Collaborative Filtering(Item-CF),也是阿里集团现在应用最广的推荐算法之一。Item-CF 的算法原理是:首先通过统计计算得到 Item to Item(I2I)的相似关系,其次启发式地获取用户近期行为作为 Trigger Item 集合,用它们进行 I2I 扩展,最后以某种打分规则对扩展后的 Item 集合进行排序,截断得到 TopK 作为候选集。
我们可以知道这种方法可以有效的控制总体计算次数,因为用户的 Trigger Item 集合是有限的,相似关系圈定的候选集合也是有限的,从而避免了对全量候选集的计算,同时简单的打分规则可以有效地控制单次计算时间,两者使得最终整体方法的计算高效,满足在线应用的要求。而通过用户历史行为找相似的做法也能在一定程度上保证相关性。
这种方法在业务初期简单有效(对比非个性化的方式),在很多推荐场景都有它的身影。但从算法原理不难看出,这种方法天然存在一大弊端:它限制了尝试推荐给用户未曾行为过但可能感兴趣的 Item 的可能性。这种将候选限定在历史兴趣相似范畴内的启发式规则对推荐效果的提升有限,它降低了用户体验(尤其是推荐结果的惊喜度),也制约了系统整体的可持续发展能力。尽管后续我们可以引入更复杂的机器学习方法来优化排序,例如 FM(因子分解)或者深度学习,但它们都依赖于前序阶段给出的候选结果,所以无论如何复杂的模型都突破不了候选集给定的上限。
要进一步提升推荐的效果,就必须在两个方面破局:第一个是打开全量检索的天花板,推荐技术真正能对全量候选集进行挑选,而不只是利用启发式规则限定候选集;第二个是打开模型能力的天花板,利用数据和模型的能力提升用户对商品的兴趣度预估,而不是像 item-CF 一样基于简单的打分规则就得到最终的候选。图像检索领域的进展在驱动推荐技术的发展上起到关键作用,在以图搜图的具体应用中,研究人员将图片的相似关系作为学习的目标,通过表征学习将图片转化 embedding 向量,用向量之间的距离(欧式或者内积等)表示图像的相似关系,构建向量检索引擎来实现具体应用。沿着这条思路,人们在推荐问题上提出了以向量距离的方式衡量用户和商品兴趣度的方法,用户和商品被表示成向量形式,并以此为基础建立基于向量聚类的索引结构进一步加速检索效率。
采用向量检索的技术方案首先完全打开了全量检索的天花板,因为用户兴趣表征的向量和全量商品的向量计算距离可以利用距离的性质高效找到最近邻。其次在模型能力上也有一定提升,我们引入机器学习的理念学习内积式模型来刻画用户和商品的兴趣度,能有效的提升精准度。所以内积式模型和向量引擎成为了最近几年匹配领域技术革新的最重要技术。尤其是去年 Facebook 的 Faiss 框架开源,极大降低了业界尝试向量引擎的难度,对行业发展起到了极大的促进作用。至此,基于内积模型的向量检索方法引领了第二代匹配和推荐技术的潮流,在各类学术会议和工业实践中大放异彩。
内积检索这类方法虽然在模型能力有提升,但并未实现充分利用机器学习解决匹配问题的初衷,对机器学习模型的限制太大。高阶深度学习大部分都不可划成内积形式,比如 CTR 预估里用户和商品特征交叉非常有用,大部分不可用内积表示。而在现有深度学习中内积模型的表达能力被证明是有限的,比如将内积模型中最后的内积运算直接换成多层感知机能大幅提升模型能力,而多层 PNN,Deep Interest Network(DIN),Deep Interest Evolution Network(DIEN)等对用户兴趣更有洞察力的复杂模型效果被证明能极大的超越内积模型。
与此同时,我们也发现在具体实践中,向量检索算法要求 User 和 Item 能够映射到统一的向量空间。User 输入信息和 Item 输入信息一般并不同质,如何保证映射到统一目标向量空间下的检索精度对映射算法提出了严格的要求,换言之,统一的向量空间映射对运用向量检索来解决推荐问题带来了精度损失的风险。
在谈这个框架之前,先谈一下我们做这个框架的初衷,结合前面所言要推动推荐技术进一步发展,核心要在全量检索和模型能力两个方向上破局。因此我们构思能否设计一套全新的推荐算法框架,它允许容纳任意先进的模型而非限定内积形式,并且能够对全量候选集进行更好的推荐。
第二代基于内积模型向量检索的方案,限定模型结构以实现检索效率的提升,因此要想进一步释放模型能力就必须使得整体检索结构的设计与模型结构的设计解耦(向量内积检索与内积模型即是一种强耦合关联)。假使我们能够使用类似点击率预估问题一样的复杂模型完成用户对具体商品的兴趣度预估,但是考虑到要全量检索的要求,在系统能力有限的情况下,简单粗暴完成对全量商品打分再排序的方案明显是不现实的。这里就有一个思路转换,我们要实现全量检索,但并不意味着我们需要通过全量计算来实现,如果我们能够设计一种高效的检索结构来缩减计算次数实现全量检索,则有可能承载先进模型的使用。
面对一个复杂问题,人脑常有的一个思考方式是先从大的层面入手,确定大方向后具体细化。我们也从这个角度入手,思考是否可以有一种从粗到细的检索方式,逐步判断并细化,最后给出最优推荐。基于这个思考,我们把探索方向定位在了使用层次化树结构增加检索效率上。
模糊的上层概念想起来容易,概念上万物皆通,真正难的是否能在数学和技术上构建出一条真正可行的路径。就推荐问题而言,树检索结构的引入伴随着一系列的问题要解决:
如何围绕树结构实现高效的检索;
如何基于树进行匹配建模;
树结构是如何构建的。
结合这几个问题的解法,我们构建了深度树匹配技术 Tree-based Deep Match(TDM)这一全新的推荐算法框架的内核。首先是基于树结构如何进行高效的检索,如果假定全量商品对应于树结构的叶子节点,则 topK 检索意味着我们要从叶子结点中挑选 topK 用户感兴趣的节点。我们知道树结构都是自顶向下逐层检索,而进行高效检索的关键点在于自顶向下过程中要能快速剪枝,因此我们采用了 beamsearch 的方案,根据用户对树上节点的兴趣度预估逐层挑选 topk 节点,将其子节点作为下一层挑选的候选集合,这样每层非 topk 节点就可以停止搜索,要完成 topK 的挑选,整体的计算量是 O(C*log_C N*K),C 是树的分叉数,N 是全量叶子商品数。
讲完检索策略,自然而然就会引出来一个问题:我们为什么可以在树结构采用类似 beamsearch 的高效检索策略?为了配合树结构上的高效检索策略,我们进而提出了兴趣最大堆的匹配建模,其假定用户对树上各个节点的兴趣正比于对其子节点兴趣的最大值。基于兴趣最大堆的假设,我们能够保证在树上做 beamsearch 可以找到最优 topk。在具体的实现层面,我们通过构建符合最大堆概率的样本去牵引模型逼近最大堆性质来完成模型学习。值得注意的是,在这里我们只要求兴趣模型去拟合我们根据树结构生成的样本,而对模型结构没有限制,因此实现了模型结构和检索方式的解绑,打开了模型能力的天花板。对于树结构如何构建这个问题,我们从降低样本混淆度的视角提出一套方案。
综上所述,我们提出的深度树匹配技术 Tree-based Deep Match(TDM)这一全新的推荐算法框架,整合了推荐技术中索引构建(树结构生成),兴趣建模(最大堆兴趣建模)和检索策略(树上 beamsearch)三大环节,并同时打开了全库检索和模型能力的天花板。
在迭代深度树匹配方案的过程中,我们也发现打开了工业级推荐技术进一步发展的潘多拉魔盒。在上文中我们讲到了,深度树匹配技术通过最大堆的性质链接了索引构建,兴趣建模和检索策略三个推荐技术的核心模块,而最大堆性质是从数据中学习得到的。因此我们思考下一代推荐技术不止于全库检索 + 先进模型,而是数据驱动下三大模块(索引构建,兴趣模型,检索策略)的联合端到端优化学习。
而沿着这个发展的思路,深度树匹配技术还面临一系列的挑战:首先是如何真正的实现数据驱动的端到端三大模块联合优化,例如索引构建能否和兴趣模型交替优化;其次在面向业务实际应用的过程中,我们如何从兴趣类召回切换到面向业务目标最大化召回,例如广告领域要考虑收益最大化召回;最后在技术框架层面,我们需要抽象公共可复用的框架来支持整体技术的平台性输出,实现不同业务场景的快速灵活复用并取得效果,才能真正成为影响一代推荐技术发展的核心技术。
我们认为数据驱动下的索引构建、兴趣模型和检索策略的联合端到端学习,是推荐技术下一步发展的重要方向。而深度树匹配这套框架则是我们沿着这个方向做的一些有益的探索和尝试,目前还在不断完善和迭代过程中。我们希望通过我们的努力给业界推荐技术的发展起到抛砖引玉的作用,希望启发大家的智慧聚焦到数据驱动的联合优化学习这一方向上,群策群力给推荐技术带来真正突破性的变革。从技术演进的视角来看,我们提出的这套框架要考虑技术和业务的横向扩展可能,对于互联网主流的广告,搜索,推荐三大业务,深度树匹配框架能否进行通用性的支持,而不只是把格局限制在一两个特定业务上还有很多的路要走。
AICon 将于 12 月 20-21 日在北京国际会议中心举办,学习来自 Google、微软、亚马逊、BAT、字节跳动、京东、美团、华为等 40+AI 落地案例总结,干货满满,不可错过。大会日程已新鲜出炉,更多大会详情欢迎点击“阅读原文”了解,也可咨询票务小姐姐 Amy:18514549229(微信同号)