推荐算法相关总结

推荐系统是解决信息过载,通过用户信息、物品信息和场景信息预测用户喜好,生成个性化推荐列表的技术。它涉及数据处理、模型构建,包括召回层、排序层和个性化策略。常见的推荐算法有协同过滤、矩阵分解、逻辑回归、FM和深度学习模型。随着技术发展,深度学习模型如NeuralCF、PNN和DIN等引入了更多特征交叉和注意力机制,增强了推荐的准确性和多样性。
摘要由CSDN通过智能技术生成

什么是推荐系统(人与信息)

  • 推荐系统:拉通供需问题,解决信息差带来利益损害的系统
  • 用户角度:推荐系统解决“信息过载”情况下,用户如何快速高速获得感兴趣的信息的问题
  • 公司角度:推荐系统解决产品能够最大限度的吸引用户、留存用户、增加用户粘性、提高用户转化率的问题

推荐系统逻辑架构

在获知“用户信息U”、“物品信息I”、“场景信息C”的基础上,利用构建好的函数F,预测用户的对某一产品(或多个商品)的喜好程度,再根据喜好程度对候选物品进行排列,生成推荐列表。

 

推荐系统技术架构

在搭建系统的过程中,需要工程师需要将抽象的概念和模块具体化、工程化。

推荐系统主要可以分为两类

  • 数据处理部分:需要考虑数据如何清洗、专家特征如何提取、不同数据如何保存。
  • 模型部分:如何训练、如何预测、如何更精准的进行推荐

 

对推荐系统模型的补充说明(有别于机器学习在其他领域的应用):

  • 召回层:简称粗排,利用高效的召回规则、算法或者简单模型,快速从海量的候选商品中挑选出用户可能感兴趣的物品。
  • 排序层:简称精排,利用排序模型对初筛的候选集合进行精排
  • 补充策略与算法层:简称个性化推荐,综合考虑多样性、实时性、流行度等因素,作为补充策略

推荐算法演进史

推荐算法的演进史反映着人工智能算法的发展历史,从一开始的基于相似特征,到利用深度模型拟合数据,数据在中间过程可解释性在逐渐减弱,但是模型的泛化性在不断增强。所谓一生二,二生三,三生万物,返璞归真,才能真正实现工业级通用性模型。

但即使是深度学习在大行其道的同时,我们仍需要客观地承认传统机器学习凭借着其可解释性强、资源要求低、以及快速训练和部署,拥有大量的应用场景。其次,传统机器学习亦可是深度学习的基础,将其作为深度学习中某一个神经元,老树换新颜,郁郁常青,比如FNN,DeepFM,NFM。

好了,在开始装逼之前,先问一个问题:推荐系统是帮人找他感兴趣的商品,还是帮商品找合适的人卖掉!

协同过滤

方法理论:

协同用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。

用户相似度的计算方法:

  • 余弦相似度,衡量了用户向量i,与用户向量j之间的夹角,夹角越小说明相似度越大,两个用户越相似(样本对样本)。

 

  • 皮尔逊相关系数(样本对整体),将用户平均分对各独立评分进行修正,减少用户评分偏置的影响。

 

最终排序结果的生成:

  • step1: 权重,用户U与用户S之间的相似度进行表示
  • step2: 得分,用户S对商品P的打分
  • step3: 预测新用户对该商品的喜欢程度。

优劣性分析

  • 优点:

可解释性强

  • 缺点:

泛化能力差

举例说明:热销商品具有很强的头部效应,容易跟大量相似物品相似,而尾部商品由于特征比较稀疏,很少与其他商品相类似,几乎得不到推荐。

矩阵分解法

方法理论:

为了解决协同过滤模型泛化能力差的问题,提出举证分解的方法,该方法在协同过滤的“共现矩阵”的基础上,使用更加稠密的隐向量来表征用户和商品,一定程度上,弥补了由于特征矩阵稀疏导致的过拟合问题。

我们将用户与商品之间组成的矩阵叫做“共现矩阵”

 

我们将“共现矩阵”R(m*n)的矩阵,分解为m*k维的用户举证U和k*n维的物品矩阵V,k的大小决定了隐向量表达能力的强弱,k的取值越小,隐向量包含的信息越小,模型的泛化能力越强,反之,k的取值越大,影响量的表达能力越强,但泛化程度相应降低。

 

不同矩阵分解方法的比较

  • 特征值分解法:一定要是满秩,(满秩了直接用协同过滤好了)
  • 奇异值分解法:任何矩阵都可以分解为一个矩阵*对角矩阵*一个矩阵,完美的解决办法,但是对“共现矩阵”要求稠密(不一定满秩,但一定要尽可能多),其次,计算复杂度太高(O(mnn)),对上百万种商品上千万的用户类似于淘宝这种,是对服务器毁灭性的打击,但对于工业级小数量级,还是不错的选择(我的判断)
  • 梯度下降

     多么熟悉的算法,不一定是全局最优解但一定能帮你找到局部最优解

优缺点分析:

优点:

  • 泛化能力强:一定程度上解决特征系数的问题
  • 空间复杂度低:指的梯度下降法,
  • 扩展性强:与深度学习,尤其是embedding思想不谋而合,同样都是矩阵计算,融合无代差。

 

逻辑回归

方法原理:

这里逻辑回归是由感知机和sigma函数组成的,如果说深度学习是多细胞生物,那么逻辑回归是就是一个简单的单细胞生物,通过从其他维度引入特征,实现“全面”的推荐结果。

价值:将传统推荐问题转变为点击率预估问题(CTR)

公式 :

 

优劣性比较

优势:

  • 数学含义上的支撑:商品或不买和逻辑回归的底层逻辑一直,都是属于泊松分布
  • 可解释性强:“单细胞生物”可以直接看出每一个特征的权重
  • 工程化需要:因为逻辑回归算法简单,且易于并行化、模型开销小,适合工程落地

劣势:

无法进行特征交叉和特征筛选等“高阶”功法。

 

FMFFM技术演化(自动特征交叉)

较上一版改进:逻辑回归推荐算法已经能够将相关特疼作为模型的输入,丰富了特征可输入的内容,但是逻辑回归模型表达能力不强,会不可避免的造成信息的损失,甚至会导致“辛普森悖论”的发生。所以赋予逻辑回归模型特征交叉能力是这一版迭代的重点。

特征交叉的方法:

1、POLY2模型

公式:

 

 

该模型实现对所有特征之间两两交叉,并对所有权重赋予权重,POLY2模型本质上还是线性模型,训练过程与逻辑回归模型一致,因此便于工程实现。

但是其也存在两个弊端:

  • 现实中特征矩阵十分稀疏,通过POLY2无差别交叉只会使得特征矩阵更加稀疏。
  • 权重个数由n扩大到n^2,极大地增加了训练复杂程度。

2、FM模型——隐向量特征交叉

从矩阵分解过程中,我们知道特征矩阵可以分解为两个矩阵相乘。FM用两个向量的乘积代表单一的权重矩阵,简单说,FM给每一个特征学习到一个隐权重矩阵,在特征交叉时,则使用两个特征矩阵隐向量的内机作为交叉特征的权重。

公式:

 

 

3、FFM模型——特征域概念的引入

FFM在FM的基础上引入特征域的概念,使模型的表达能力更加强大。

公式:

 

 

深度学习推荐算法

推荐系统模型经过了机器学习阶段充分的发展后,终于进入了深度学习时代。与传统机器学习模型相比,深度学习模型具有表达能力更强,模型结构更灵活更贴合业务场景的优点。下图为深度学习阶段主流推荐模型的演化图谱:

 

正如图谱所示,深度学习阶段的推荐模型从多层感知机MLP出发,通过改变神经网络的结构,演变为各种各样的深度学习推荐模型。总结起来,有七个演变方向:

  1. 改变神经网络的复杂程度:增加深度神经网络的层数和结构复杂度。
  1. 丰富特征交叉方式:改变特征向量的交叉方式,如NeuralCF,PNN(Product-based Neural Network)。
  1. 组合模型:组合两种不同特点、优势互补的网络,主要是指Wide&Deep及其后续各种改进模型如Deep&Cross、DeepFM等。
  1. FM模型的深度学习演化:对FM模型的各种改进,包括NFM(Neural Factorization Machine)使用神经网络提升FM二阶交叉部分的特征交叉能力、FNN(Factorization-machine supported Neural Network)利用FM的结果进行网络初始化、AFM(Attention neural Factorization Machine)在FM中引入注意力机制。
  1. 引入注意力机制:主要包括上述的AFM和DIN(Deep Interest Network, 深度兴趣网络)模型
  1. 融合序列模型:使用序列模型模拟用户行为或用户兴趣的演化趋势,如DIEN(Deep Interest Evolution Network,深度兴趣进化网络)
  1. 结合强化学习:主要是为了模型的在线学习和实时更新,包括DRN(Deep Reinforcement Learning Network, 深度强化学习网络)

*以下内容感兴趣看看就行

首先直接在DNN上演变的模型有:

  • AutoRec:将自编码器(AutoEncoder)与协同过滤结合的单隐层神经网络模型,利用协同过滤中的共现矩阵,完成物品/用户向量的自编码,基于自编码的结果得到用户对物品的预估评分,进而排序。AutoRec模型结构和word2vec结构一致,相对简单,但优化目标和训练方法有所不同,AutoRec表达能力有限。
  • Deep Crossing:由微软于2016年发布,用于其搜索引擎Bing中的搜索广告推荐场景。Deep Crossing完善了深度学习在推荐领域的实际应用流程,提出了一套完整的从特征工程、稀疏向量稠密化、多层神经网络进行优化目标拟合的解决方案,开启了无需任何人工特征工程的时代。其模型结构如下:

 

NeuralCF:2017年的NCF用“多层神经网络+输出层”的结构替代了矩阵分解中的简单内积操作,让用户/物品向量做更充分的交叉,引入更多的非线性特征,增强模型表达能力。作者还提出一种“广义矩阵分解”(Generalized Matrix Factorization)模型融合了简单内积操作与多层神经网络两种特征交叉方式。NCF模型同协同过滤一样只利用了用户物品的共现矩阵,并没有融合其他特征信息。模型结构如下图:

 

 

PNN:2016年的PNN模型在Deep&Crossing的基础上使用乘积层(Product Layer)代替Stacking层。即不同特征的Embedding向量不再是简单的拼接,而是通过Product操作两两交互。这里的Product操作包含两种:内积操作和外积操作。PNN模型如下图所示:

 

如上图所示 ,其中乘积层由两部分组成,z来自于输入Embedding的线性变换,p来自于上述Product操作的结果,这里Product如果选择的是内积,则称为IPNN,若是外积,则称OPNN。经过反复比对,书中关于这一点的描述和论文是有出入的,这里以论文为准。PNN的出发点是丰富特征交叉方式,增强模型表达能力,而实际落地时,关于OPNN还是IPNN的选择以及各自对应的效率优化是需要根据业务场景权衡的。

  • Wide&Deep:Google于2016年提出Wide&Deep模型,模型使用单输入层的Wide部分处理大量稀疏的id特征,提升记忆能力;使用Embedding和多隐层的Deep部分处理全量特征,赋予模型泛化能力。Wide部分的输入特征除了原始的id特征(已安装应用和曝光应用)外,还包括转换后的特征,如叉乘变换(Cross Product Transformation),其实就是将单独的特征转换为组合特征,给模型增加非线性能力。

 

Deep&Cross:斯坦福和Google合作基于Wide&Deep的改进。主要思路是使用Cross网络替代Wide部分,目的是通过多层交叉(Cross layer)增加特征之间的交互力度;Deep部分则与Wide&Deep保持一致。模型结构如下图所示:

 

其中Cross网络的交叉方式与OPNN的外积操作十分类似, ,其中  表示第l层和第l+1层Cross网络的输出, 是第l层的权重和偏置。每一层Cross网络都会在特征交叉变换后加上该层的输入,即变换函数f拟合的是残差  。具体过程如上述右图所示。

Wide&Deep融合传统模型的记忆能力和深度模型的泛化能力,工程实现简单高效,在很多公司都成功落地,也正是从Wide&Deep之后,深度推荐模型开始朝着结构多样化复杂化发展。其中之一就是FM与深度学习结合产生出FM交叉特征系列的演变模型

  • FNN:出自2016年伦敦大学论文《Deep Learning over Multi-field Categorical Data – A Case Study on User Response Prediction》,相比DNN,改进之处在于使用FM参数初始化其Embedding层的权重,  ,下图Dense Real层中的各权重  与公式中是对应的,只是在训练FM的过程中,没有区分特征域,而FNN中特征被分成了不同的特征域,特征域内的Embedding是全连接,特征域之间无连接。

 

  • DeepFM:2017年由哈工大&华为提出,使用FM替换Wide&Deep的Wide部分,加强浅层网络组合特征的能力。DeepFM的改进目的和Deep&Cross的目的是一致的,只是采用的手段不同。
  • NFM:2017年新加坡国立大学提出NeuralFM模型,目的是使用表达能力更强的函数替换原本FM中二阶隐向量内积的部分,由  变为  。其中f(x)如下图所示。NFM在Embedding层和多层神经网络之间增加了交叉池化层(Bi-interaction Pooling layer),用于将一组Embedding向量转换成一个向量,具体操作是对所有的Embedding向量做两两元素积,再对所有的元素积向量取和作为池化层的输出,输入上次的全连接网络。

 

然后是Attention机制、序列模型与推荐系统的结合

  • AFM:AFM既是FM系列模型的延续演化,也是Attention机制与推荐系统的结合发展。
  • DIN:阿里巴巴根据其典型的电商广告推荐场景,于2017年提出DNN结合Attention机制的DIN(Deep Interest Network)模型。利用候选商品和用户历史交互商品之间的相关性得出注意力权重,以此根据用户历史交互商品计算出用户的加权和Embedding,

 ,其中  是用户的Embedding向量, 是候选广告商品的Embedding向量,  是用户u的第i次互动行为的Embedding向量, 为注意力得分,即候选广告与用户第i次行为的相似度。模型中注意力激活单元的设计是输入两个Embedding向量,经过元素减操作(element-wise minus)后,与原Embedding向量拼接后送入全连接层得出注意力分值。如下图右上角所示。

 

DIEN:2019年阿里提出DIEN(Deep Interest Envole Network)在DIN的基础上融合了序列模型,用于模拟用户兴趣随时间的变化过程。在电商广告推荐场景中,序列信息加强了用户最近行为对下次行为预测的影响,能够学习用户的购买趋势。出于这样的目的,阿里巴巴在DIN的基础上引入了兴趣进化网络学习用户的兴趣Embedding。模型结构图如下:

 

DIEN的兴趣进化网络分为三层:行为序列(Behavior Layer)层,把原始的id类行为序列转换成Embedding行为序列;兴趣抽取(Interest Extractor Layer)层,抽取用户兴趣,模拟用户兴趣迁移;兴趣进化(Interest Evolving Layer)层,增加注意力机制,模拟与目标广告相关的兴趣进化过程。其中兴趣抽取层的基本结构是GRU(Gated Recurrent Unit),将用户的行为向量Embedding转换成兴趣状态向量。兴趣进化层也是通过AUGRU(GRU with Attentional Update gate)引入注意力机制的,在原GRU的更新门结构上增加了注意力得分。

  • MIND:DIEN之后,阿里天猫团队又提出使用胶囊网络提取用户的多样兴趣,再加上基于标签的注意力机制,提升召回的丰富度和准确度,此模型并未包含在书中,但笔者认为MIND模型还是有很多值得探究的地方,也有实际落地的效果和意义。关于胶囊网络的理解感兴趣的小伙伴可自行阅读相关论文,此处只解释MIND模型中的用法。用户交互的物品Embedding集合作为多样兴趣提取(Multi-interest Extractor Layer)层的输入,经过胶囊网络的动态路由算法生成一组用户兴趣Embedding(可以视为用户行为的软聚类)。用户基础画像属性的Embedding分别与用户兴趣Embedding拼接,经过两层全连接,得到一组用户Embedding。再根据label的Embedding与用户Embedding求相似度作为注意力权重。MIND网络结构如下图所示:

 

最后是强化学习与推荐系统的融合:

  • DRN:强化学习相比传统深度模型的优势在于强化学习模型能够进行“在线学习”,不断利用新学到的知识更新自己,及时调整和反馈。DRN(Deep Reinforcement Learning)框架中起决定作用的是DQN(Deep Q-Network), 对DQN感兴趣的小伙伴可以自行阅读相关论文,这里只说推荐系统中如何使用DQN。DQN把用户特征和环境特征归为和具体行动无关的状态向量,把用户-新闻交叉特征以及新闻特征归为与推荐内容这一行动相关的行动特征。DQN的网络结构如下图所示。用户特征和环境特征经过左侧多层神经网络拟合得到价值得分  ,利用状态向量和行动向量生成优势得分   ,综合二者分值,得到最终的质量得分 

 

 

DRN中使用的一种新的在线训练方法-竞争梯度下降算法(Dueling Bandit Gradient Descent Algorithm)是其能够在线学习的原因,其主要步骤如下:

1) 对于已经训练好的当前网络Q,对其模型参数W添加一个较小的随机扰动  ,得到新的模型参数  ,这里  即为探索网络  .

2) 对于当前网络Q和探索网络  ,分别生成推荐列表L和  ,用Interleaving方法将合并两个推荐列表后推送给用户。

3) 实时收集用户反馈,如果探索网络   的反馈好于当前网络Q,则用探索网络替代当前网络,进入下一轮迭代;反之则保留当前网络。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值