一窥推荐系统的原理(下)

简介: 一窥推荐系统的原理

3.1.2 逻辑回归的相关算法


逻辑回归(LR)由于其简单高效、易于解释,是工业应用最为广泛的模型之一,比如用于金融风控领域的评分卡、互联网的推荐系统。它是一种广义线性的分类模型且其模型结构可以视为单层的神经网络,由一层输入层、一层仅带有一个sigmoid激活函数的神经元的输出层组成,而无隐藏层。


LR模型计算可以简化成两步,“通过模型权重[w]对输入特征[x]线性求和 ,然后sigmoid激活输出概率”。其中,sigmoid函数是一个s形的曲线,它的输出值在[0, 1]之间,在远离0的地方函数的值会很快接近0或1。



由于LR是线性模型,特征表达(特征交互)能力是不足的,为提高模型的能力,常用的有特征工程的方法或者基于模型的方法。


  • 基于特征工程的优化


通过人工结合业务设计特征、特征衍生工具(如FeatureTools)暴力生成特征 以及 特征离散化编码等特征工程的方法,为LR引入非线性的表达。具体可以参见【逻辑回归优化】



  • 基于模型的优化


另外还可以基于模型的方法提升特征交互的能力。如POLY2、引入隐向量的因子分解机(FM)可以看做是LR的基础上,对所有特征进行了两两交叉,生成非线性的特征组合。



但FM等方法只能够做二阶的特征交叉,更高阶的,可以利用GBDT自动进行筛选特征并生成特征组合,也就是提取GBDT子树的特征划分及组合路径作为新的特征,再把该特征向量当作LR模型输入,也就是经典的GBDT +LR方法。(需要注意的,GBDT子树深度太深的化,特征组合层次比较高,极大提高LR模型拟合能力的同时,也容易引入一些噪声,导致模型过拟合)



GBDT-LR相关代码可以参见【逻辑回归优化】


3.2 深度学习推荐模型



深度学习能够全自动从原有数据中提取到高层次的特征,深度学习推荐模型的进化趋势简单来说是 Wide(广)及 Deep(深)。Wide部分善于处理大量稀疏的特征,便于让模型直接“记住”大量原始的特征信息,Deep部分的主要作用有更深层的拟合能力,发现更高层次特征隐含的本质规律。


3.2.1 深度矩阵分解(双塔结构)


深度矩阵分解模型(Deep Matrix Factorization Model,DMF)是以传统的矩阵分解(MF)模型为基础,再与 MLP 网络组合而成的一种模型,其中 MF 主要负责线性部分,MLP 主要负责非线性部分,它主要以学习用户和物品的高阶表征向量为目标。

DMF 模型的框架图如下所示:该模型的输入层为交互矩阵 Y,其行、列分别对应为对用户和对物品的打分,并采用 multi-hot 形式分别表征用户和物品。



我们将用户表征 Yi* 和物品表征 Y*j 分别送入 MLP 双塔结构,生成用户隐向量表征 Pi 和物品隐向量表征 qj。最后对二者使用余弦点积匹配分数。


3.2.2 Wide&Deep


与其说广深(Wide&Deep)模型是一种模型,倒不如说是一套通用的范式框架。Wide&Deep 模型由 LR+MLP 两部分并联组成,综合了传统机器学习和深度学习的长处。


  • Wide 部分根据历史行为数据推荐与用户已有行为直接相关的物品;


  • Deep 部分负责捕捉新的特征组合,从而提高推荐的多样性。



3.2.3 深度因子分解机(DeepFM)模型


深度因子分解机(Deep Factorization Machine,DeepFM)模型是从广深(Wide&Deep)框架中演化出来的一种模型。它使用 FM 模型替换掉了 LR 部分,从而形成了 FM&Deep 结构。



3.2.4 Deep&Cross


深度和交叉网络(Deep & Cross Network,DCN)模型是从广深(Wide&Deep)框架中演化出来的一个模型。DCN 模型将 Wide 部分替换为由特殊网络结构实现的特征交叉网络,它的框架如下图所示:左侧的交叉层除了接收前一层的输出外,还会同步接收原始输入层的特征,从而实现特征信息的高阶交叉。



3.2.5 注意力因子分解机(AFM)


注意力因子分解机(Attentional Factorization Machine,AFM)模型也是Wide&Deep 框架中的一种,它通过添加 Attention 网络,自动学习不同特征之间交互的重要性。



3.2.6 神经因子分解机(NFM)


神经因子分解机(Neural Factorization Machine)模型也是 Wide&Deep 框架中的一种。NFM 模型把 Wide 部分放到一边不做变化,Deep 部分在 FM 的基础上结合了 MLP 部分。其中,FM 部分能够提取二阶线性特征,MLP 部分能够提取高阶非线性特征,从而使模型具备捕捉高阶非线性特征的能力。


NFM 模型框架的 Deep 部分如下图所示,NFM 模型是在 Embedding 层后将 FM 的输出进行 Bi-Interaction Pooling 操作(将表征向量的两两元素相乘后,再将所有组合的结果进行求和),然后在后面接上 MLP。



小结:本文介绍了推荐系统的作用及组成,并对核心技术及发展做了解析。但更为关键的,推荐系统是工程上的应用,我们下一篇文章会结合实际营销推荐场景做推荐项目实战(Pyhton),敬请期待。


参考文献:
https://zhuanlan.zhihu.com/p/100019681 ht
tps://zhuanlan.zhihu.com/p/6318
6101 zhuanlan.zhihu.com/p/61154299
相关文章
|
机器学习/深度学习 存储 搜索推荐
协同过滤推荐系统:原理、技术与Java实践
前言 在当今信息爆炸的时代,推荐系统已成为解决信息过载问题的有效工具。从电商网站的商品推荐到社交媒体的信息推送,推荐系统已经渗透到了我们生活的方方面面。而协同过滤(Collaborative Filtering,简称CF)算法是推荐系统领域的一种经典技术,通过分析用户之间的相似性或物品之间的相似性,为用户推荐与其兴趣相关的物品。
2035 1
|
JSON 算法 JavaScript
数据挖掘与分析 - 用JS实现推荐系统的原理与开发
数据挖掘与分析 - 用JS实现推荐系统的原理与开发
327 0
数据挖掘与分析 - 用JS实现推荐系统的原理与开发
|
机器学习/深度学习 搜索推荐 算法
|
机器学习/深度学习 算法 搜索推荐
|
机器学习/深度学习 搜索推荐 算法
基于surprise模块快速搭建旅游产品推荐系统(代码+原理)(二 )
基于surprise模块快速搭建旅游产品推荐系统(代码+原理)
356 0
基于surprise模块快速搭建旅游产品推荐系统(代码+原理)(二 )
|
机器学习/深度学习 算法 搜索推荐
基于surprise模块快速搭建旅游产品推荐系统(代码+原理)(一)
基于surprise模块快速搭建旅游产品推荐系统(代码+原理)
560 0
基于surprise模块快速搭建旅游产品推荐系统(代码+原理)(一)
|
新零售 机器学习/深度学习 分布式计算
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
169 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
6月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
6月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)