推荐系统笔记2019

本文详细介绍了推荐系统中常用的FM(Factorization Machines)和FFM(Field-aware Factorization Machines)模型。FM模型能有效处理大型稀疏数据,适用于回归、分类和排序任务,其计算复杂度为线性级别。FFM则在CTR预测中表现出色,通过引入字段信息,提高模型的预测能力。文章还提及了xLearn库,它提供了FM和FFM的高效实现。此外,列举了推荐系统发展历程中的其他模型,如Wide & Deep、DeepCTR等,并探讨了推荐系统中CTR预测、排序和重排序的挑战与解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FM与libfm
FM(Factorization Machines)结合了SVM与factorization models的优点;
FM建模了所有特征的交互,因此适用于大型稀疏的场景,比如recommender systems;(SVMs fail)
FM能在线性时间被计算出来,并且能直接优化;(SVM是非线性的,且其中的dual transformation 没有必要)
指出SVD++、PITF、FPMC等模型的缺点,它们不适应于通用的预测任务,且需要特定的输入,FM能模拟它们;
FM参数个数是线性级别的,且不需要存储训练数据,直接把参数保存在内存中,能处理非常大的数据,如100 millions;
FM可用于回归、二分类、排序等预测任务;
FM用SGD训练;2-way FM 可以扩展到d-way FM;

普通的线性模型,各个特征是独立考虑的,并没有考虑到特征之间的相互关系,实际上,大量的特征之间是有关联的;
从公式很容易看出来,FM比一般线性模型多出了wxixj的累加,即特征组合的部分;
由于矩阵的稀疏性,w很难计算,为此引入辅助向量v,使得w=vvT;(v向量的点积,是一个值)
(通过向量v的学习能够更好的挖掘特征间的相互关系,尤其在稀疏条件下,以及在训练样本中没出现的交叉数据)
FM最精彩的部分是,EE<vi,vj>xixj可以在线性时间内计算,为O(kn),推导过程很巧妙;
(这里v向量的长度为k,是一个超参数;)
最后转化得到的结果为类似(x+y+z)2-x2-y2-z2这种形式,可以看到,所有的最高次项都约掉了,剩下部分是线性的;
(原矩阵为上三角矩阵,因此从整个矩阵,减去中间的对角线,再除以2)
(需要指出,这大概就是‘因子分解机’名字的由来;)
可以将2-way FM(二元交叉)扩展到d-way FM(多元交叉),但时间复杂度仍然是线性的;
计算出y对x的函数形式后,然后优化所有的w,(把w看成变量),计算y对w的梯度;
FM可以看做对高维稀疏的离散特征做embedding;(类似词向量)

https://www.cnblogs.com/AndyJee/p/7879765.html (FM算法(一):算法理论 很好!!!)
https://www.jianshu.com/p/152ae633fb00 (推荐系统遇上深度学习(一)–FM模型理论和实践)
https://www.jianshu.com/p/912d32aff9bc (理论:FM理论解析及应用)
https://blog.youkuaiyun.com/google19890102/article/details/45532745 (因子分解机(Factorization Machine),含代码)
https://tracholar.github.io/machine-learning/2017/03/10/factorization-machine.html (因子机深入解析,很好!!!)
https://yq.aliyun.com/articles/374170 (一文读懂FM算法优势,并用python实现!)
http://www.libfm.org/ (官网)
https://github.com/srendle/libfm (源码;C++的)

FFM与libffm
FFM(Field-aware Factorization Machines)致力于CTR预测;
FFM思想起源于PITF;PITF考虑三个特殊字段包括user、item、tag,而FFM比它更通用;
和Poly2、FM、PITF比较;
In FMs, every feature has only one latent vector;
In FFMs, each feature has several latent vectors;
利用sgd训练;利用Hogwild!并行训练;Hogwild是一种lock-free的 parallelizing sgd;
开源LIBFFM;和LIBSVM数据格式一样,做了扩展,加入Field Information;(从feat1:val1变为field1:feat1:val1)
单值特征,FFM退化为FM;
在Criteo and Avazu 数据集上测试;

和FM算法一样,FFM主要应用在推荐算法中的CTR点击率预估(排序)问题;
FFM把FM的<vi,vj>改为了<vi,fj, vj,fi>;
FFM将同一个field的特征单独进行one-hot;
(FM可以看作FFM的特例,是把所有特征都归属到一个field时的FFM模型;)
FFM的计算复杂度是 O(n^2),因为它无法使用FM的计算技巧ab = 1/2(a+b)2-a2-b^2;

https://www.jianshu.com/p/965d9d004675 &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值