推荐算法之逻辑回归模型族
目录
1.协同过滤算法族的不足
2.逻辑回归算法
3.Poly2算法
4.FM算法
5.FFM
1.协同过滤算法族的不足
之前的协同过滤算法族局限在于,它仅仅关注用户与物品的交互信息(受限于共现矩阵),而忽视了用户,物品,场景点信息,这使得协同过滤算法在进行推荐的时候忽视许多其他有用的信息。机器学习针对这一问题提出了很好的解决办法,我们将根据推荐算法质量逐步介绍一些逻辑回归算法族模型。
2.逻辑回归算法
逻辑回归模型能够利用用户、物品、上下文等多种不同的特征,生产较为“全面”的推荐结果。其数学模型如下:
在逻辑回归中,比如用户的年龄、性别、物品属性、物品描述、当前时间、当前地点等起都可以作为输入的特征,所有特征线性组合以后经过一个sigmoid函数计算其值得推荐的概率。
优化函数:
优点:结合了多种特征进行推荐,比较符合人的思维。
缺点:仅仅考虑单一特征,未考虑组合特征。
3.Poly2算法
在正式介绍Poly2模型之前,我们先要搞清楚,什么是组合特征。
科比 | 霍华德 | 纳什 | 保罗-加索尔 | 西部第七 |
兰多夫 | 康利 | 鲁迪-盖伊 | 马克-加索尔 | 西部第五 |
若两方球队打比赛,如果单单从个人实力上来看(单一特征),也许科比队的可能就赢了,但是兰多夫与康利在一起搭档时,会爆发出更大的可能性(特征组合),因此兰多夫队胜利。在之前的逻辑回归仅仅考虑了单一特征,而未考虑交叉特征。Poly2算法在逻辑回归的基础上,引入了二阶交叉特征,起数学模型如下所示:
我们可以发现,Poly2算法改进逻辑回归只考虑单一特征的问题,但是Poly算法也带来了另外一个问题,即数据稀疏的问题。
我们在实际应用场景中,对于类别的数据,我们会将其进行one-hot编码。如下一个简单的例子:
点击 | 性别 | 星期 |
1 | 男 | 星期一 |
0 | 女 | 星期二 |
我们进行one-hot编码将类别数据转为数值型数据,即:
点击 | 男 | 女 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 |
1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
若我们考虑组合特征,则:
点击 | 男 | 女 | 星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | 点击&星期一 | 点击&星期二 | ... |
1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | |
0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
由于ohe-hot编码本身对类别数据就会产生大量的0,特征交叉以后组合特征使得特征数变多了很多,这会引入大量的0造成特征稀疏的问题,更致命的是,很可能导致交叉权重系数无法更新。以下给出详细推导过程:
其损失函数依旧是交叉熵,即:
我们分别计算权重系数的偏导数:
观察交叉特征的梯度,最后推导的结果为:,其中由于组合特征数据的稀疏性大概率为0,进而导致梯度为0,这就会造成在梯度更新的时候无法更新。而FM算法便是针对这个问题进行改进。
4.FM算法
针对Poly2算法存在的交叉特征权重系数梯度无法更新问题,FM提出为每个特征向量计算一个隐特征向量,如下图所示:
Poly2:
feature1&feature2 | feature1&feature3 | feature2&feature3 | |
权重系数 | (标量) |
FM:
feature1&feature2 | feature1&feature3 | feature2&feature3 | |
隐特征 向量(k纬) |
0.56 0.12 . . . 0.34 |
0.12 0.43 . . . 0.87 |
0.98 0.32 . . . 0.45 |
每个交叉特征权重系数为这进行交叉的两个特征内积所得,因此原来的Poly2数学模型为:
而FM模型数学模型为:
即。而隐特征向量的实现如下图所示:
即将权重系数矩阵用一个矩阵来表示(因为是实对称矩阵,只要k足够大,一定存在矩阵,使其满足),这一步就是矩阵分解的思想,在协同过滤中,将共现矩阵分解为用户矩阵和物品矩阵,这里有异曲同工之妙,即将交叉特征权重系数矩阵分解为交叉特征隐向量矩阵,其中隐特征向量的维度为()。
现在的数学模型中包含了向量,进一步简化FM的数学模型,将向量中的每个元素都挖出来,简化数学模型:
解释:我们知道权重系数与交叉特征进行线性组合,最后得到一个标量。观察上图,每个权重系数的是由于一个矩阵中的两个向量内积所得,而对于一个交叉权重系数矩阵,由于其为实对称矩阵,因此我们在实际的计算中仅仅取上三角部分(对角线上的元素不需要)。而:,为了取出上三角只要减去其对角线上的元素:
并除以2得到交叉特征与特征线性组合的标量。
我们知道向量的内积就是对应元素相乘求和,即:。因此,进一步优化:
所以,FM最终的数学模型可以写为
其损失函数与前面一样,依旧为交叉熵:
此时我们在去求其偏数:
其中,只要有一个特征不为0,其值为0的可能性很小(若都为0,我们也不关心,说明两种特征都没激活,无需更新)。这也是隐向量的引入使得FM能够更好第解决数据稀疏性问题。
举例来说,在某商品推荐的场景下,样本有两个特征,分别是频道(channel)和品牌(brand),某训练样本的特征组合是(ESPN,Adidas)。在POLY2中,只有当ESPN和Adidas同时出现在一个训练样本中时,模型才能学习到这个组合特征对应的权重;而在FM中,ESPN的隐向量也可以通过(ESPN,Gucci)样本进行更新,Adidas的隐向量也可以通过(NBC,Adidas)样本进行更新,这大幅度降低了模型对数据稀疏性的要求。甚至对于一个从未出现过的特征组合(NBC,Gucci),由于模型之前已经分别学习过NBC和Gucci的隐向量,具备了计算该特征组合权重的能力,这是POLY2无法实现的。相比POLY2,FM虽然丢失了某些具体特征组合的精确记忆能力,但是泛化能力大大提升。
5.FFM
FFM算法在FM算法的基础上,又提出了一个类别域的概念,举出下面例子来说:
推荐算法之逻辑回归模型族相关推荐
- 金融领域下的数据挖掘算法应用:逻辑回归模型
摩天,用友旗下社会化的企业数智化学习认证社区,提供数智营销.智慧医疗.数智金融.智能制造.项目管理等精品课程,数智化人才上摩天!https://mot.yonyou.com/ 你将会学到: 股票客户流 ...
- 推荐系统 | 基础推荐模型 | 逻辑回归模型 | LS-PLM | PyTorch实现
基础推荐模型--传送门: 推荐系统 | 基础推荐模型 | 协同过滤 | UserCF与ItemCF的Python实现及优化 推荐系统 | 基础推荐模型 | 矩阵分解模型 | 隐语义模型 | PyTor ...
- AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)
1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产 ...
- 逻辑回归模型算法研究与案例分析
逻辑回归模型算法研究与案例分析 (白宁超 2018年9月6日15: 21:20) 导读:逻辑回归(Logistic regression)即逻辑模型,属于常见的一种分类算法.本文将从理论介绍开始,搞清 ...
- 一步步教你轻松学逻辑回归模型算法
一步步教你轻松学逻辑回归模型算法 ( 白宁超2018年9月6日15: 01:20) 导读:逻辑回归(Logistic regression)即逻辑模型,属于常见的一种分类算法.本文将从理论介绍开始,搞 ...
- DSML_分类算法笔记之逻辑回归模型
其他相关文章 DS&ML_关联分析笔记 DS&ML_分类算法笔记之支持自动机SVM模型 DS&ML_分类算法笔记之随机森林.梯度提升树.XGBoost模型 DS&ML_ ...
- 机器学习算法(一):逻辑回归模型(Logistic Regression, LR)
目录 1 LR 1.1 直观表述 1.2 决策边界(Decision Boundary) 2. 权值求解 2.1 代价函数(似然函数) 2.1.1 为什么损失函数不用最小二乘?即逻辑斯蒂回归损失函数为 ...
- 从原理到代码,轻松深入逻辑回归模型!
整理 | Jane 出品 | AI科技大本营(ID:rgznai100) [导语]学习逻辑回归模型,今天的内容轻松带你从0到100!阿里巴巴达摩院算法专家.阿里巴巴技术发展专家.阿里巴巴数据架构师联合 ...
- 机器学习入门|快速掌握逻辑回归模型
http://blog.itpub.net/29829936/viewspace-2558236/ 2019-01-14 17:30:19 主要内容: 一.逻辑回归的原理 二.极大似然估计 三.逻辑回 ...
最新文章
- 让你的博士经历更加轻松愉快的10个tips
- Web开发学习点滴(持续更新)
- 常用的排序算法总结(一)
- 设计师效率帮手|提高设计效率的Sketch插件!
- 小孔怎么用_奶粉罐我再也不扔了,在盖子上打几个孔放床边,全家人都抢着用...
- 利用python自动发邮件
- Java并发包提供了哪些并发工具类?
- Android手机游戏开发入门教程
- 解析HTTP协议六种请求方法
- thingworx集中常见数据存储方法
- 安卓高级8 支付宝支付
- 一部分使用CNES后处理BIA产品的PPP-AR结果
- TensorFlow基础学习
- 新版Chrome自动禁用第三方插件的解决办法[转]
- How to increase the JES2 spool size
- 李笑来《财富自由之路》读书笔记,满满干货!
- 56岁潘石屹下定决心学Python,60多岁程序语言之父们还在敲代码,你还敢懈怠吗?
- 全景式解读DEX行业格局与发展趋势 |链捕手
- 技术寻道,生态裂变:2020百度地图“点石成金”的这一年
- Vim 清除上次搜索突出显示