目录

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算法的基础上,又提出了一个类别域的概念,举出下面例子来说:

推荐算法之逻辑回归模型族相关推荐

  1. 金融领域下的数据挖掘算法应用:逻辑回归模型

    摩天,用友旗下社会化的企业数智化学习认证社区,提供数智营销.智慧医疗.数智金融.智能制造.项目管理等精品课程,数智化人才上摩天!https://mot.yonyou.com/ 你将会学到: 股票客户流 ...

  2. 推荐系统 | 基础推荐模型 | 逻辑回归模型 | LS-PLM | PyTorch实现

    基础推荐模型--传送门: 推荐系统 | 基础推荐模型 | 协同过滤 | UserCF与ItemCF的Python实现及优化 推荐系统 | 基础推荐模型 | 矩阵分解模型 | 隐语义模型 | PyTor ...

  3. AI上推荐 之 逻辑回归模型与GBDT+LR(特征工程模型化的开端)

    1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大的挑战: 信息消费者:如何从大量的信息中找到自己感兴趣的信息? 信息生产 ...

  4. 逻辑回归模型算法研究与案例分析

    逻辑回归模型算法研究与案例分析 (白宁超 2018年9月6日15: 21:20) 导读:逻辑回归(Logistic regression)即逻辑模型,属于常见的一种分类算法.本文将从理论介绍开始,搞清 ...

  5. 一步步教你轻松学逻辑回归模型算法

    一步步教你轻松学逻辑回归模型算法 ( 白宁超2018年9月6日15: 01:20) 导读:逻辑回归(Logistic regression)即逻辑模型,属于常见的一种分类算法.本文将从理论介绍开始,搞 ...

  6. DSML_分类算法笔记之逻辑回归模型

    其他相关文章 DS&ML_关联分析笔记 DS&ML_分类算法笔记之支持自动机SVM模型 DS&ML_分类算法笔记之随机森林.梯度提升树.XGBoost模型 DS&ML_ ...

  7. 机器学习算法(一):逻辑回归模型(Logistic Regression, LR)

    目录 1 LR 1.1 直观表述 1.2 决策边界(Decision Boundary) 2. 权值求解 2.1 代价函数(似然函数) 2.1.1 为什么损失函数不用最小二乘?即逻辑斯蒂回归损失函数为 ...

  8. 从原理到代码,轻松深入逻辑回归模型!

    整理 | Jane 出品 | AI科技大本营(ID:rgznai100) [导语]学习逻辑回归模型,今天的内容轻松带你从0到100!阿里巴巴达摩院算法专家.阿里巴巴技术发展专家.阿里巴巴数据架构师联合 ...

  9. 机器学习入门|快速掌握逻辑回归模型

    http://blog.itpub.net/29829936/viewspace-2558236/ 2019-01-14 17:30:19 主要内容: 一.逻辑回归的原理 二.极大似然估计 三.逻辑回 ...

最新文章

  1. 让你的博士经历更加轻松愉快的10个tips
  2. Web开发学习点滴(持续更新)
  3. 常用的排序算法总结(一)
  4. 设计师效率帮手|提高设计效率的Sketch插件!
  5. 小孔怎么用_奶粉罐我再也不扔了,在盖子上打几个孔放床边,全家人都抢着用...
  6. 利用python自动发邮件
  7. Java并发包提供了哪些并发工具类?
  8. Android手机游戏开发入门教程
  9. 解析HTTP协议六种请求方法
  10. thingworx集中常见数据存储方法
  11. 安卓高级8 支付宝支付
  12. 一部分使用CNES后处理BIA产品的PPP-AR结果
  13. TensorFlow基础学习
  14. 新版Chrome自动禁用第三方插件的解决办法[转]
  15. How to increase the JES2 spool size
  16. 李笑来《财富自由之路》读书笔记,满满干货!
  17. 56岁潘石屹下定决心学Python,60多岁程序语言之父们还在敲代码,你还敢懈怠吗?
  18. 全景式解读DEX行业格局与发展趋势 |链捕手
  19. 技术寻道,生态裂变:2020百度地图“点石成金”的这一年
  20. Vim 清除上次搜索突出显示

热门文章

  1. 钉钉桌面版(dingtalk)介绍:支持Linux、Windows和macOS平台
  2. 【毕业设计】LSTM预测算法(股票预测 天气预测 房价预测)
  3. Greenplum Python专用库gppylib学习——GpArray
  4. 括号中的可选、必选表示
  5. 环回接口是做什么的?
  6. HDU 1205 吃糖果
  7. postgres查询排名
  8. Frontiers in neuroscience: 网络游戏成瘾者额叶theta频段震荡活动的降低
  9. ros2中navigation2的BT常用语法总结1
  10. 最新Python异步编程详解