推荐系统3--FM和FFM

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
摘要由CSDN通过智能技术生成

一,序言

传统机器学习模型,从协同过滤,到矩阵分解,然后到线性模型(GBDT+LR),最后到FM和FFM。本来这篇应该写GBDT+LR,但感觉写博客的目的,最主要是加深一些自己之前不了解的模型的印象,而不是追求形式上的完整,所以,还是根据自己实际情况来,这篇文章直接写FM和FFM。

二,为什么引入了FM和FFM?

逻辑回归是一个简单直观的模型,但是缺点在于表达能力不强,无法进行特征交叉和特征筛选等,为了解决这个问题,其中一个解决办法是:GBDT+LR的组合模型,通过GBDT自动筛选特征加上LR天然处理稀疏特征的能力,两者结合初步实现了推荐系统特征工程化的开端。
另外一种方法就是:从POLY2到FM再到FFM的进化之路。

三,POLY2

逻辑回归模型把topN的推荐问题转化成了CTR预估问题,也就是将特征做一个线性组合,然后通过sigmoid得到一个概率值,这个概率值表示用户点击某个商品的概率。逻辑回归模型相比于传统的协同过滤来讲,已经可以把用户特征,商品特征,以及上下文特征进行了利用。但是逻辑回归一个很重要的问题是只对单个特征进行加权组合,并不具备特征交叉生成组合特征的能力,因此表达能力受到了限制。逻辑回归的公式如下:
在这里插入图片描述
为了解决特征交叉的问题,POLY2在LR的基础上引入二阶特征交叉项,公式如下:
在这里插入图片描述
但是这个模型存在两个问题:
1,推荐系统中的数据都是非常稀疏的。因此xi,xj不同时为0的情况很少,这会导致交叉特征的权重缺乏有效数据进行训练从而无法收敛。
2,PPLY2中权重参数的数量是\frac{(n-1)*n}{2} ,并且任意两个参数相互独立。如果数据非常稀疏,再加上要训练这么多参数,无疑是非常困难的,最终模型也不会很好。
为了解决这个问题,引入了FM模型

四,FM

4.1FM 原理
上面的POLY2模型在特征交叉的时候使用单独的权重,这使得在稀疏场景下无法使用。这种问题,上一篇文章矩阵分解算法中提供了一种思路:隐向量。矩阵分解,是把用户对物品的评分矩阵分解成了user矩阵和item矩阵相乘的方式。如下图所示:
在这里插入图片描述
这个评分矩阵也是非常稀疏的,如果采用普通的协同过滤算法(userCF或者itemCF),不太好判断用户或者物品相似。如果采用矩阵分解的方法,将稀疏的评分矩阵分解成两个矩阵相乘的形式。基于已有的打分数据训练模型,得到两个矩阵的具体值,也就是得到每个用户和物品的向量,然后相乘得到最后的评分。
稀疏的评分矩阵,可以通过矩阵分解,变成两个向量相乘的形式。将这种思想运用到解决POLY2方法的缺陷上,就是把评分矩阵换成POLY2公式中后半部分的W矩阵(所有的二次项系数w_{ij})。也就是把W矩阵进行分解成两个矩阵相乘的方式。理论依据如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值