当前位置: 首页 > 科技观察

小白都能懂的推荐算法入门之一,从上古时期的LR开始聊起_0

时间:2023-03-16 10:58:49 科技观察

没有人能看懂的推荐算法介绍之一。我是从古代开始和LR聊天的。苦于沉淀不足,有货倒不出来。最近充电总结了一段时间,也积累了一些积累,就给大家说说吧。既然是介绍推荐系统,那我们先从最简单最简单的模型说起。说起推荐算法领域最简单的模型,自然是LR。LR模型是机器学习领域的基本模型。我想接触过这个领域的同学应该不陌生。为什么是LR,什么是LR?大家都已经知道了,但还有一个问题没有得到解答。这就是早年LR模型如此火爆的原因?难道不能用其他看起来更高级的模型,比如决策树、随机森林、GBDT?是不是XGBoost在各种比赛中的表现都非常好呢?为什么业界不将其作为推荐?尤其是看了2014年Facebook推出的GBDT+LR的论文,这种困惑就更加明显了。这篇论文非常经典,在业界有着非常重要的地位。甚至可以说是推荐领域的必读论文之一。在深度学习兴起之前,很多公司和厂商都沿用这种方式。论文中的方法并不难。据说这是一种创新的方法。其实它本质上是利用GBDT预测时样本落在的节点作为multi-hotcode,然后将其转换为编码后的01数组作为新的特征,然后将转换后的特征用于训练LR。可以说它的本质还是在训练LR,所谓的GBDT无非就是一个encoder而已。当我读这篇论文时,我已经明白了其中的意思,但有一个问题我想不通。既然用了GBDT,结合其他模型不是很好吗?一定要和LR结合?这个问题估计很多推荐领域的从业者都答不上来。回答。推荐领域的特征有哪些特点?在算法领域,提到效果、特征和模型是一个身体的两个方面,很难分开。好的模型也需要好的特征支持,好的特征需要好的模型来充分表达。所以我们先把模型的问题放在一边,想想特性。推荐领域只有三个主要特征。以电子商务为例,它们是商品、用户和上下文。即产品、用户和环境信息,如时间、地点、展示位置等。上下文特征比较少,来来回回也就那么几个,先放着吧。剩下的就是用户和产品。我们围绕用户和产品形成的特征可以分为两部分,一是基本特征,二是统计特征。以商品为例,基本特征是品牌、价格、品类、评价,统计特征是近期点击率、近期销量、近期转化率等。这些特征按类别可以分为两类,一类一个是浮点数连续特征,一个是品类特征,比如商品品类,品牌等等。到这里为止都很正常,没有什么不明白或者奇怪的地方。我们再往下看模型要预测的目标——点击率。让我们结合模型预测的目标,然后观察上面列出的特征。你会发现,除了历史点击率、历史转化率等少数指标与最终结果有很强的正相关性外,其他浮点数特征并没有特别明显的正相关或负相关。难道说产品的价格和点击率是负相关的吗?事实上,它不是很好。产品越便宜,质量可能越差,没有人会点击它。用户的购买力如何?产品越丰富,产品越多吗?这也不是真的。也正是因为上面提到的原因,在推荐领域,能很好发挥作用的浮点特征非常少,大部分都是类别特征,也就是01特征。那么你认为GBDT、随机森林、XGboost等模型效果好吗?不好说,因为这些模型的强项往往是浮点特征,也就是连续特征。这些树模型将设计规则来分割这些连续的特征。如果大部分特征都是01特征,怎么切分呢?那么,答案来了,为什么在深度学习模型兴起之前,推荐领域常见的都是用LR,而不是那些看起来牛逼的树模型。LR模型的原理LR模型也是一个纯线性模型,可以简单理解为几个特征的加权和。每个特征的权重有大有小,最后相加得到一个预测概率。这并没有错,学过的人都知道。但是我们再往下一层,有没有想过这在推荐领域意味着什么?这意味着模型实际上“记住”了每个特征与最终结果之间的关系。我们将模型拟人化,将其视为机器人的语言。机器人看到样本有特征A,点击了,所以特征A的权重增加了一点,样本有特征B但没有点击,所以减少了特征B的权重。该模型是在这样的策略之间找到最佳平衡。这意味着一些容易记住的特征往往会发挥更好的作用。例如,男性通常买香烟,女性通常买口红,那么我们可以设计men_cigarettes和women_lipstick的组合特征。当模型看到大多数男性点击烟雾时,它可以知道这个组合是一个很强的特征,并赋予它一个相对较高的权重。这样,只要我们尽可能找出这些特征的组合,模型就能得到好的结果。所以到这里大家就明白了,LR模型在推荐领域发挥作用,本质上是靠“记忆”。因为它可以记住那些分类特征和分类特征的组合,所以它往往优于那些看起来更高端的树模型。这就是为什么在LR时代后期,算法工程师的工作就是整天挖掘一些类别特征的组合,以期望模型取得好的结果。LR模型的优缺点就说到这里,LR模型在推荐领域的应用也差不多讲完了。先简单总结一下,先从它的优点说起。LR模型的优点在教科书上已经说了很多,比如训练速度快。由于参数空间相对较小,LR模型可以快速收敛,其训练速度比那些树模型和后续的深度学习模型要快得多。二是可解释性强。由于我们可以检查所有特征的权重,因此我们很容易解释哪些特征发挥了作用,哪些特征起到了抑制作用。但是LR在推荐领域也有很大的短板。它是什么?这是很多肮脏的工作。因为几乎所有的特征组合都需要人工挖掘,所以需要人工遍历很多特征组合,甚至要一个一个地尝试找到最好的组合。这个过程需要大量的人力,几乎可以说是纯人力。因此,对于LR时代的算法工程师来说,螺丝钉的感觉可能比现在要严重得多。基本上不用考虑优化模型。LR这么简单的模型,没有优化的余地。剩下的基本上只是试验功能。俗话说,前辈的不足,是后辈努力的方向。那么如何弥补或优化LR模型的这些缺点呢?本文转载自微信公众号「TechFlow」,可通过以下二维码关注。转载请联系TechFlow公众号。