文章目录
概述
一种解决大规模稀疏数据下的特征组合问题的机器学习模型,它在工业界有一些很常用的应用场景。
推荐系统: 比如一个电商(某宝),它有100w种商品,每一个用户有一个账户,平台可以给用户推荐相应的产品。由于每个用户真实购买的商品非常少,不可能把所有商品都买一遍或者浏览一遍(土豪除外),那么用户对产品是否喜好的这个样本数据就会非常稀疏,即绝大部分商品跟用户都是没有关系的。
计算广告:媒体应该思考,我应该将哪些广告出现在哪些用户的页面上,以此来提高广告效率。只有用户非常想购买A广告(概率大),才会将A广告投置在该用户正在浏览的界面上。那这个过程其实也是相当稀疏的,想象一下这么次出现的广告,你点击过几次。
为什么因子分解机(FM)可以解决这些问题
一个经营服装订阅业务的公司STITCH FIX公司。
订阅业务:用户A向商家订阅了一些衣服,那商家比如说可能会寄5件商品,A收到商品并根据自己喜欢与否选择购买或者直接寄回去
通过订阅业务,我们可以得到用户的反馈数据,不断提高算法的性能,利用机器学习解决"形象顾问"问题
我们机器学习模型的目标是:预测用户会喜欢什么?
商家每个月给用户寄的东西都是有限的,所以商家非常希望这些东西是用户所喜欢的,可以产生购买行为。所以机器学 习模型就要挑选出用户最有可能喜欢的物品(概率)
使用线性回归没办法捕捉到变量之间的联系(interaction),没办法进行特征组合,则有人想出了将特征相乘:
这样解决了变量之间的联系,但是又有一个问题是数据的稀疏性。稀疏性会造成的问题:比如说很多商品,其中A商品现实生活中用户B非常喜欢,但是算法模型没有将商品A推荐给用户B,即没有捕捉到A与B之间的联系,这就是数据稀疏性导致的问题。
这里就引入了矩阵完全分解的思想(embedding),下面的图k为超参数。
为什么FM可以结局数据稀疏性问题?
因为采用了矩阵完全分解,捕捉到了隐空间的一些信息。
摘要
FM可以去估计变量之间的联系,即使在数据特别稀疏的时候,而SVM不可以。FM模型的方程计算时间复杂度为线性。
1 Introduction
SVM不能进行像协同过滤这种任务的原因是:它不能在数据非常稀疏的情况下,在复杂的高维核空间中学习可靠的参数。
FM的优点:
(1) 解决数据非常稀疏的问题
(2)线性时间复杂度
(3)适用的场景多
2. Prediction under sparisity
这一段就介绍了一个例子,推荐系统的,目的是让读者知道推荐系统中使用的数据基本都是非常稀疏的。
3. Factorization Machine(FM)
其实说为什么FM能解决数据稀疏问题呢?就是利用了矩阵完全分解思想,将原始的特征映射在低维的隐空间中,以此捕捉到变量之间的联系
Summary
FM模型的两个优点:
(1)即使在高稀疏度下,也可以估计变量之间的相互作用。特别是,它可以推广到
(2)时间复杂度为线性