关于推荐:得物技术聊聊推荐系统是如何做排序的

6次阅读

共计 5338 个字符,预计需要花费 14 分钟才能阅读完成。

引言

信息时代到来当前,咱们被各种各样海量的信息所吞没,从新闻、广告、电商、直播、短视频等各种波及这些场景的 APP 中,大量个性化的信息被推送到咱们眼前。例如在应用得物 APP 购物的过程中,咱们也经常会听到这样的问题, 为什么会给我推这双鞋 / 这件衣服?为什么浏览珍藏过的商品重复呈现在举荐流中?举荐流是怎么猜想我的爱好的?举荐的排序逻辑是怎么的,都思考了哪些因素?能不能被动减少某些类目标曝光量? 这些种种的问题,都和咱们的排序模型、排序逻辑无关,上面就让咱们来聊聊举荐零碎中是如何对商品做排序的。

图 1. 得物 APP 首页举荐瀑布流

举荐零碎

首先来简略说一下举荐零碎的根本架构,借用 youtube 论文中的一张图片来阐明。举荐零碎的外围指标是从咱们的总商品库中,为用户挑选出他最感兴趣的一部分商品,从而节俭用户工夫,也进步平台的转化效率,为交易的顺利进行提供助力。除开一些工程实现局部的细节,整个过程能够大抵分为两个阶段,即召回(candidate generation)和排序(ranking),其中召回的工作是从海量商品中选取局部用户“大概率”感兴趣的商品集,而排序则负责将召回选出来的这部分商品仔细分析,依照用户可能感兴趣的水平(probability),从高到低进行排序,展现给用户观看,整个过程在毫秒级的工夫内实现。

图 2. 援用自论文:Deep Neural Networks for YouTube Recommendations

召回层面的策略和逻辑有很多,也演变了很长一段时间,不过这不是咱们明天聊的重点,咱们来具体聊聊,当咱们拿到了召回后果,大略在一万件以内的规模下,模型是怎么确定他们的先后顺序的,机器怎么自动化地计算出分数来评估用户对他们的感兴趣水平的。

排序模型的倒退也有很长一段时间了,从互联网逐步衰亡开始,为用户疾速筛选出有价值的信息始终是一件十分外围的事。咱们无妨来看看,为了实现这项工作,都经验了哪些演变过程。

先看一个简略例子,一位女性用户来到咱们平台,咱们能够拿到的信息有她的性别、拜访工夫、行为历史记录等,假如她之前逛了逛衣服,珍藏了一双鞋,最近又在浏览吹风机,而咱们的召回候选集中又恰好有衣服、鞋和吹风机,咱们应该怎么来定义排序的逻辑呢?

规则学习

解决问题的第一阶段,往往是依赖于直觉的,直觉通知咱们,每一个和用户或者是商品无关的信息,都会影响到用户的决策,这之中又必然存在着肯定的数量关系,排序便有了最后的思路:人工规定。顾名思义,就是依据平台经营人员对业务的相熟水平,来间接定义物品的先后顺序,例如平台最近某件衣服是爆款,卖的很好,所以要排在后面,尽可能让顾客看到,思考到个性化因素,这位又是女性用户,那么就把最近所有女性用户购买的商品做一个统计,依照销量从高到低排序,或者更近一步,某个地区的女性用户,最近珍藏过鞋子的某地区的女性用户…. 只有划分用户特定维度后的数据流足够多,规定足够明确,最终所有商品对一个具体用户都会有一个排序后果,一个毛糙的举荐排序策略也就成型了。

那么以上策略是否就是咱们的排序计划呢?显然并不是的。以上计划有两个不太正当的中央:

  1. 人工的策略会因人而异,很难有一个对立的规范,而且简直不可能把所有信息整合在一起利用起来。
  2. 优化的指标含糊,依赖于线上实际后果来评估好坏,总体而言大家都是为了让平台更好,然而每一个具体的策略,到底是优化点击率还是转化率还是用户的停留时长、下拉深度,很难在给出规定时对后果有一个预期,线上试验的老本很高,而且计划的迭代周期可能是有限长的(人总能想到各种不同的规定组合)。

有没有一个计划能整合利用所有能拿到的信息,并且在上线前对后果有一个正当预期,甚至不须要上线试验,离线就能评估策略的好坏呢?这个时候,机器学习办法呈现在了咱们眼前。

机器学习

解决问题的第二阶段,就是在直觉的根底上引入可量化的模型。模型是一个比拟形象的词,在这里它指的是对一种映射的形象形容,即 f(context,user,item)—> score,任何能用具体公式提供这个分数计算逻辑的计划,都能够叫做模型。 掂量一个模型好坏的规范,就是这个假如进去的映射关系与事实中实在的外在关系的间隔。 比方个子越高,体重就越大,就是一个依据身高信息去映射体重信息的线型模型,这个模型显然是不谨严的,但在很多时候也是成立的。说回咱们的排序模型,咱们须要设计一个计划,从用户、商品和上下文信息(事件产生的工夫、场景等主观信息)中,提炼出用户对商品的偏好水平。

一个能同时整合所有信息,在模式上足够简略,在工业界的大数据和高并发下又领有足够稳定性的模型,早就曾经被数学所给出,那就是驰名的逻辑回归模型,模式如下:

图 3. 逻辑回归函数图像

这个模型的模式尽管简略,但思维足够粗浅,外面整合了数学界在参数估计、信息论和凸优化等方向的研究成果,将变量用线性的形式联合起来,把定义在(-∞,+∞)的自变量映射到(0,1)的值域上,这里的(0,1)之间的分数能够了解为用户感兴趣的概率,整个过程便成了一个点击率预估问题。当咱们用线上实时收集到的用户行为数据作为根底,把用户的点击行为转化为 0 或 1 的训练指标,便能够用很成熟的数学计划疾速地求出公式中的所有最优化参数 w,从而确定下最终的计算过程。尽管逻辑回归模型在学术界曾经是根底中的根底,但因为其稳定性和极高的计算效率,工业界也仍然有很多业务场景中应用这套模型作为线上服务的次要担当或者降级备用计划。

除了逻辑回归以外,还有许多机器学习的模型被利用在排序环节中如 NB, SVM 和 GBDT 等,其中比拟胜利的模型是 GBDT,这外面又以陈天奇博士提出的 XGBoost 模型最为驰名,在工业界也有宽泛的利用。GBDT 模型是以决策树模型为根底提出的组合模型,树模型的特点是更加合乎咱们人对事物的判断形式,大略的思维相似下图:

图 4. 树模型决策思路简述

方才提到的 GBDT 模型就是将以上这种决策行为给定量化,并且应用多棵决策树进行组合决策的后果,相比于逻辑回归模型,它提出了一个更合乎人类直觉的视角,将排序问题拆解为对若干特色的而二分类组合,将各种用户和商品特色在决策过程中进行了穿插,实际中成果往往是更优的,这也合乎咱们提到的“模型是对实在决策关系的模仿”这一观点。然而树模型也有它的有余,比方它优化性能较低,对大数据量的计算性能较差,对增量训练的反对度较差等等。

总的来说,无论是逻辑回归还是 GBDT 模型,都是机器学习在举荐畛域很好的实际和摸索,他们各自都还存在一些显著的有余,业界针对这些有余的中央也都有各种补充和优化的计划,通过几年的迭代,随同着实践和硬件条件双重倒退的根底上,举荐零碎迎来了它的深度学习时代。

深度学习

解决问题的第三阶段,是在成熟的工业界计划根底上,退出本人对具体业务场景的了解。逻辑回归公式简洁,性能牢靠,GBDT 思路清晰,成果杰出,但他们是否就是问题的最终解决方案呢?显然还是不够的,如下面提到的,他们各自都还有不少的问题须要解决:

  1. 逻辑回归对特色间关系的刻画过于简略,对特色仅仅做了线性组合,与事实中大量的非线性关系的存在是违反的,比方女性、上海、数码产品这几个特色的简略加减法来形容用户购买偏向,与咱们的认知不符,这三个特色和购买志愿的关系,更有可能是非线性的,而 GBDT 在解决特色组合时应用的形式也比拟繁多,难以刻画更为简单的组合关系。
  2. 数据的排序逻辑过于繁多,都是以点击率作为指标,繁多指标的问题在于,很容易导致后果不足多样性,用户此刻想看数码产品,并不意味着满屏的举荐都应该变成数码产品,这可能反而会升高用户体验。

从解决这两个问题登程,咱们的思路又细分到了两个方向上,别离是拓宽模型的复杂度和多指标下的后排序干涉。

第一个问题是拓宽模型的复杂度,在具体操作中能够分为两个方面的工作,第一个方面,是在特色组合上尽可能提供简单的特色,比方咱们例子中,自身模型输出的信息是性别、地区、用户行为、商品属性,然而咱们能够人工定义一些其余的简单特色,比方用户是否购买过同类商品,用户对同品牌商品的点击次数等,通过减少特色的复杂度,来减少模型输出的信息量,把一些非线性的关系转化到线性模型上来解决,这样做的益处是无效节俭了计算资源,也加重了线上推断所带来的压力,对成果晋升也很有帮忙;不过弊病也是显著的,那就是整体思路又回到了咱们一开始人工规定的老路上,依赖于人的教训来做优化,不过这里的人由平台经营换成了算法工程师。所以能不能把拓宽非线性关系的工作也交给机器来实现呢?这便是第二个方面,引入深度学习的模型。

图 5. Google 提出的模型的 Wide&Deep 模型架构

深度学习在现在的工业界早已是赫赫有名,从 2016 年起,在谷歌的 W &D 模型的影响下,工业界的举荐零碎开始纷纷效仿,大踏步地迈进了深度学习所统治的时代,现在各大厂的支流举荐模型,都是在深度学习的根底上做的开发,对于深度学习的理论知识,相干解说有很多,这里就不具体开展。对于举荐零碎来说,深度学习所解决的外围问题,就是特色间非线性关系的自动化开掘。这外面的逻辑,能够说是一个“用魔法来战胜魔法”的过程。我对这个问题的了解是这样的,特色间正确的组合形式是存在的,只是组合成几何级增长,遍历尝试的操作代价难以承受,这便是第一重“魔法”;而深度学习从实践上证实,只有给定入参和指标,它能够拟合任意简单的函数,然而最终你也不会晓得拟合进去的函数具体模式是怎么的(可解释性目前为止也是学术界的一个很重要的方向),这便是第二重“魔法”;一边是你无奈遍历的组合后果,另一边是你无法解释的组合后果,但最终产出了合乎你预期的业务成果,所以我称之为一个用魔法去战胜魔法的过程,这也是业内深度学习算法工程师又被戏称为“炼丹工程师”的起因,很多时候工程师对于模型的具体作用原理也是难以解释的,惟一晓得的,就是它是否“无效”。

图 6. 阿里巴巴提出的 ESMM 多指标网络

图 7. 阿里巴巴提出的重排序网络

对于逻辑回归的第二个问题,多指标和多样性,就不能简略通过拓宽模型复杂度来解决了。多指标优化和后排序干涉也是当初举荐排序侧很重要的逻辑,因为深度学习这个魔法特地好用,所以业界也产出了很多相干的实践模型,比方阿里的 ESMM 和 Re-ranking 模型。不过因为后排序这块是间接影响到用户最终体验的,不可解释的魔法后果在目前的实用性和可控性上还是比不上可能灵便调整的规定,因而在模型排序的后果环节,又退出了一些人工规定,比方类目打散、品牌打散和曝光过滤等,来满足一些主观需要。最终的排序流程,还是一个计算机模型和人工规定相互扶助来实现的。

总结

以上便是举荐零碎的大体排序逻辑,当前的模型还会越来越多,也未必都会局限在深度学习的畛域,整个业界也还在探寻什么样的模型能以最小的代价刻画出人与物的协同关系,这个问题很可能没有一个标准答案,须要算法工程师依据具体的业务场景和业务特点去结构和解决排序的问题。最终的排序后果是在训练数据、特征选择、模型构造和后排序逻辑的独特干涉作用下决定的,数据会是排序逻辑的外围,而不是人工主观意识在驾驭和操纵的。尽管小的细节还在一直地调整和扭转,然而大的方向肯定是以更简单的特色、更正当的模型构造、更高效的迭代形式,更灵便的规定调整来实现更好的业务指标。

参考资料

[1] Covington, Paul, Jay Adams, and Emre Sargin. “Deep neural networks for youtube recommendations.” Proceedings of the 10th ACM conference on recommender systems. 2016.

[2] Cheng, Heng-Tze, et al. “Wide & deep learning for recommender systems.” Proceedings of the 1st workshop on deep learning for recommender systems. 2016.

[3] Ma, Xiao, et al. “Entire space multi-task model: An effective approach for estimating post-click conversion rate.” The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. 2018.

[4] Pei, Changhua, et al. “Personalized re-ranking for recommendation.” Proceedings of the 13th ACM Conference on Recommender Systems. 2019.

[5] Chen, Tianqi, and Carlos Guestrin. “Xgboost: A scalable tree boosting system.” Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. 2016.

文|John
关注得物技术,携手走向技术的云端

正文完
 0