算法和模型是推荐系统的核心,直接决定了推荐效果的好坏。
在推荐系统中,算法要从两个方面来考虑:算法本身准确性和算法的效率。相对算法准确性,推荐系统工程化更关注的是算法效率。算法和模型层面主要包含如图所示。
从推荐算法的理论来讲,主要可以从召回层和排序层两个方面来说,虽然召回层和排序层都是使用算法和模型来做,但是针对于不用的阶段,所用的模型也有一定的差别。
召回层
在召回层中,我们又可以分为3类方法,即传统算法、机器学习和深度学习模型。
传统算法就是利用传统推荐系统理论中所采用的算法,例如计算用户之间的相似度、物品之间的相似度等,而这两类算法从大体上来讲,都可以用协同过滤算法来表示,只不过一个是基于用户的协同过滤算法,一个是基于物品的协同过滤算法。
机器学习模型指使用机器学习相关算法来得到召回层结果的方法,例如NMF(Nonnegative Matrix Factor,非负矩阵分解)算法、LFM模型(Latent Factor Model,基于潜在隐因子模型)、FTRL(Follow The Regularized Leader)算法、PersonalRank算法等。
的深度学习模型指使用深度学习相关算法来得到召回层结果的方法,包括深度神经网络(DNN)和Embedding等方法。
排序层
而在排序层中,我们也可以使用机器学习和深度学习两种方式来对召回结果进行排序,这里的排序一般采用点击率预估,并将预估得到的概率降序排序取前N得到最终的排序结果。
在使用机器学习进行排序层排序时,我们也可以将其分成2个大类,分别为线性模型和树模型,实际上,在真正的使用过程中,我们会将这两类模型结合起来使用。
- 在线性模型中主要使用逻辑回归作为主要的排序算法,而逻辑回归又属于线性回归的一种变形,因此,要想学习好逻辑回归,就得对线性回归有一定的了解。
- 树模型是排序算法中用得最多的一种模型的统称,在排序层中常用的树模型又分为决策树模型和集成学习模型,常用在推荐系统中的有随机森林、Boosting、GBDT、XGB、LGB。
虽然排序层的机器学习算法会被分为线性模型和树模型两种,但是进行排序时一般将二者结合使用,其中常见的组合方式就是使用GBDT LR的方式进行点击率预测和排序层的排序。
而使用深度学习模型进行点击率预测和排序层排序也是推荐系统中常用的方式,尤其对于大量的数据和特征,渐渐成为目前各大企业的主流排序方式,常见方式是DeepFM和xDeepFM。DeepFM顾名思义就是深度模型(Deep)和因子分解机(FM)结合使用。而xDeepFM是DeepFM的升级版,主要改进的是DeepFM模型中的DCN模型的缺点。
本文作者黄鸿波,著有《TensorFlow进阶指南:基础、算法与应用》一书。
—— 图书推荐 ——
▊《TensorFlow进阶指南:基础、算法与应用》
黄鸿波 编著
本书是由人工智能一线从业专家根据自己日常工作的体会与经验总结而成的,在对TensorFlow的基础知识、环境搭建、神经网络、常用技术的详细讲解当中穿插了自己实战的经验与教训。帮助读者轻松搞懂GANCNNRNN等各式神经网络,真正完成AI从想法到产品的全过程。