介绍信息时代到来后,我们被海量的信息所淹没。从新闻、广告、电商、直播、短视频等涉及这些场景的APP,大量个性化的信息被推到我们眼前。比如,在用得物APP购物的过程中,我们经常会听到这样的问题,你为什么会向我推荐这双鞋/衣服?为什么推荐流中反复出现浏览过、收藏过的商品?推荐流如何猜测我的喜好?推荐的排序逻辑是什么,考虑了哪些因素?能不能主动增加某些品类的曝光度?这些各种各样的问题都与我们的排序模型和排序逻辑有关。下面说一下如何在推荐系统中对商品进行排序。图1得物APP首页推荐瀑布式推荐系统首先简单说一下推荐系统的基本架构,用一张youtube论文的图片来说明。推荐系统的核心目标是从我们的总产品库中挑选出用户最感兴趣的一部分产品,从而节省用户的时间,提高平台的转化效率,为顺利上架提供帮助。交易的进展。抛开一些工程实现的细节不谈,整个过程大致可以分为两个阶段,即召回(candidategeneration)和排序(ranking)。召回的任务是从大量的商品中“高概率”地选出一些用户感兴趣的商品。排序负责仔细分析召回的中选商品,按照用户感兴趣的概率(probability)从高到低排序,展示给用户。整个过程在毫秒内完成。图2.引自论文:DeepNeuralNetworksforYouTubeRecommendations在召回层面有很多策略和逻辑,它们已经进化了很长时间,但这不是我们今天要讲的重点。让我们详细谈谈。当我们得到召回结果,在不到10000件的规模上,模型如何确定它们的顺序,机器又如何自动计算分数来评估用户对它们的兴趣。排序模型也已经发展了很长时间。自互联网逐渐兴起以来,为用户快速筛选出有价值的信息一直是一件非常核心的事情。让我们来看看为了完成这个任务所经历的演进过程。我们先看一个简单的例子。当一个女性用户来到我们的平台时,我们可以得到的信息包括她的性别、访问时间、行为历史等。假设她之前买过衣服,还收藏了一双鞋子。浏览吹风机,而我们的召回候选集恰好有衣服、鞋子、吹风机,我们应该如何定义排序逻辑呢?规则学习解决问题的第一阶段通常依赖于直觉。直觉告诉我们,每一条与用户或产品相关的信息都会影响用户的决策,而且必然存在一定的数量关系。排序有最初的想法:人为规则。顾名思义,就是根据平台运营者对业务的熟悉程度,直接定义项目的顺序。比如平台上的某件衣服最近很火,卖得很好,就应该排在前面,尽可能让顾客看到。考虑到个性化因素,而且是女性用户,那么统计一下女性用户最近购买的所有产品,按照销量从高到低排序,或者更近一步,女性用户在某区最近收了鞋子某区的女性用户...只要有足够多的数据流划分到特定的用户维度,规则足够清晰,最终所有的产品都会有一个针对特定用户的排序结果,并且就会形成一个粗略的推荐排序策略。那么上面的策略是不是我们的排序方案呢?很明显不是。上述方案有两个不合理之处:人为策略会因人而异,很难有一个统一的标准,几乎不可能将所有信息整合在一起使用。优化的目标是模糊的,要看线上实践的结果来评价好坏。一般来说,每个人都在努力让平台变得更好,但每一个具体的策略都是优化点击率,优化转化率,或者用户停留的时长。depth,给定规则后很难对结果有预期,在线实验成本高,方案的迭代周期可能无限长(人们总能想到规则的各种组合)。有没有一种解决方案可以整合利用所有可用的信息,在上线前对结果有一个合理的预期,甚至不需要线上实验就可以离线评估策略的好坏?这时候,机器学习的方法就出现在了我们的眼前。机器学习解决问题的第二阶段是引入基于直觉的可量化模型。模型是一个比较抽象的词。这里指的是对一个映射的抽象描述,即f(context,user,item)—>score。任何能够提供这个分数计算逻辑的具体公式的方案都可以。称为模型。衡量模型好坏的标准是假设的映射关系与现实中真实的内部关系之间的距离。例如,你越高,你的体重就越重。它是一种基于身高信息映射体重信息的线性模型。这个模型显然是不精确的,但在很多情况下也是如此。说到我们的排名模型,我们需要设计一个方案,从用户、产品和上下文信息(事件发生时间、场景等客观信息)中提取用户对产品的偏好。一个可以同时整合所有信息,形式上足够简单,并且在工业界大数据和高并发下有足够稳定性的模型,早就被数学给定了。那就是著名的逻辑回归模型,形式如下:图3.逻辑回归函数图这个模型虽然形式简单,但是思想足够深刻。它综合了数学界在参数估计、信息论、凸优化方向的研究成果,将变量以线性方式组合起来。定义(-∞,+∞)的自变量映射到(0,1)的取值范围,这里(0,1)之间的得分可以理解为用户感兴趣的概率,整个过程成为点击率预估问题。当我们以在线实时采集的用户行为数据为依据,将用户的点击行为转化为0或1的训练目标时,我们可以用非常成熟的数学方案快速计算出公式中的所有优化参数w。从而确定最终的计算过程。虽然逻辑回归模型在学术界已经是基础中的基础,但由于其稳定性和极高的计算效率,业界仍有很多业务场景使用该模型作为在线服务的主要责任或备用解决方案降级。除了逻辑回归,在排序过程中还有很多机器学习模型,比如NB、SVM、GBDT。比较成功的模型是GBDT,业界最著名的是陈天奇博士提出的XGBoost模型。它还具有广泛的应用。GBDT模型是基于决策树模型的组合模型。树模型更符合我们判断事物的方式。大致思路类似下图:图4.刚才提到的树模型决策思路简述GBDT该模型是对上述决策行为进行量化,采用多棵决策树进行联合决策的结果。与逻辑回归模型相比,提出了更符合人类直觉的视角,将排序问题分解为若干个特征的二分类组合,在决策过程中交叉了各种用户和产品特征,效果在实践中往往更好,这也符合我们“模型是对真实决策关系的模拟”的说法。看法。但是树模型也有它的缺点,比如优化性能低,对大量数据的计算性能差,对增量训练的支持差等等。总的来说,不管是逻辑回归还是GBDT模型,都是机器学习在推荐领域很好的实践和探索。它们各自都有一些明显的缺陷。对于这些不足,业界也有各种补充和建议。优化方案,经过几年的迭代,随着理论和硬件条件的双重发展,推荐系统迎来了它的深度学习时代。深度学习解决问题的第三阶段,是在成熟的行业解决方案的基础上,加入自己对具体业务场景的理解。逻辑回归公式简单,性能可靠,GBDT思路清晰,结果优秀,但它们是解决问题的最终方案吗?显然是不够的。如上所述,它们各自都有很多需要解决的问题:Logistic回归对特征之间关系的描述过于简单,只是对特征进行线性组合,而现实中存在大量的非线性关系,例如简单的加减女性、上海、数码产品的特征来描述用户的购买意愿与我们的认知不一致。这三个特征与购买意愿的关系更可能是非线性的,而GBDT在处理特征组合时使用的方法相对简单,很难描述更复杂的组合关系。数据的排序逻辑过于单一,都是以点击率为目标。单一目标的问题在于它很容易导致结果缺乏多样性。用户此刻想看的是数字产品,但不代表满屏推荐都应该变成数字产品,这可能反而会降低用户体验。从解决这两个问题出发,我们的思路细分为两个方向,即扩展模型的复杂度和多目标下的排序后干预。第一个问题是扩大模型的复杂性。在具体操作上,可以分为两个方面。第一个方面是在特征组合中提供尽可能复杂的特征。比如在我们的例子中,模型本身的输入信息是性别、地域、用户行为、商品属性,但是我们可以手动定义一些其他的复杂特征,比如用户是否购买过类似商品,购买次数次用户点击同一品牌产品等,通过增加特征的复杂度,来增加模型输入的信息量,将模型转化为线性模型,解决一些非线性关系。这样做的好处是有效的节省了计算资源,减少了在线推理带来的压力,对于提升效果也很有帮助;但是缺点也很明显,就是整体的思路又回到了我们一开始手工规则的老路子,靠人的经验来优化,但是这里的人换成了算法工程师,而不是平台运营人员。那么拓宽非线性关系的工作能否交给机器呢?这就是第二个方面,深度学习模型的引入。图5.GoogleDeeplearning提出的模型的Wide&Deep模型架构在当今业界早已广为人知。从2016年开始,在谷歌W&D模型的影响下,业界的推荐系统开始效仿,向深度学习大踏步前进,在学习统治的时代,各大厂商的主流推荐模型都是在深度学习的基础上发展起来的.深度学习的理论知识相关讲解很多,这里不再赘述。对于推荐系统,深度学习解决的核心问题是自动挖掘特征之间的非线性关系。这里的逻辑可以说是一个“以魔法战胜魔法”的过程。我对这个问题的理解是,特征的正确组合是存在的,但是组合形成几何级数的增长,遍历尝试的操作成本难以承受。这是第一个“魔术”;而深度学习从理论上证明了只要给定输入参数和目标,它可以拟合任何复杂的函数,但最终你不会知道拟合函数的具体形式是什么(可解释性仍然是一个迄今为止学术界非常重要的一个方向),这是第二层“魔法”;一面是你无法遍历的组合结果,另一面是你无法解释的组合结果,但最终却产生了符合你预期的业务效果,所以我称它为一个用魔法来实现的过程打败魔法,这也是为什么业内深度学习算法工程师被戏称为“炼金工程师”的原因。很多时候,工程师很难解释清楚模型的具体工作原理。他们唯一知道的是它是否“有效”。图6.阿里巴巴提出的ESMM多目标网络图7.阿里巴巴提出的重排序网络关于逻辑回归的第二个问题,多目标和多样性,不能简单的通过扩大模型的复杂度来解决,多目标优化和排序后的干预也是推荐排序端非常重要的逻辑,因为深度学习的魔力特别好用,业界也产生了很多相关的理论模型,比如阿里的ESMM和Re-ranking模型。但是,由于后排序直接影响到最终的用户体验,无法解释的神奇结果,就目前的实用性和可控性来说,还是比不上可以灵活调整的规则。因此,在模型排序的结果链接,添加一些人为的规则,比如打散品类,打散品牌,曝光过滤等,都是created满足一些主观需要。最终的排序过程是通过计算机模型和人工规则相互辅助来实现的。综上所述,以上就是推荐系统的大致排序逻辑。未来模型会越来越多,可能不会都局限在深度学习领域。整个行业还在探索什么样的模型能够描述人与人之间的关系,这个问题可能没有标准答案,需要算法工程师根据具体的业务场景和业务特点来构建和处理排序问题。最终的排序结果是在训练数据、特征选择、模型结构和排序后逻辑的共同干预下确定的。数据将成为排序逻辑的核心,而不是被人为的主观意识所控制和操纵。虽然小的细节还在调整和改变,但大方向一定是实现更好的业务指标,更复杂的特征,更合理的模型结构,更高效的迭代方式,更灵活的规则调整。
