1. 模型演进 LR -> POLY2 -> FM -> FFM
1.1 LR模型 - 融合多种特征的推荐模型
- 线性回归模型数学表达式如下:
- 逻辑回归数学表达式如下:
- 逻辑回归模型的优缺点:(1)相比协同过滤模型仅利用用户与物品的相互行为信息进行推荐,逻辑回归模型能够综合利用用户、物品、上下文等多种不同的特征,生成较为全面的推荐结果;(2)逻辑回归的另外一种表现形式的感知机作为神经网络中最基础的单一神经元,是深度学习的基础性结构;(3)可解释性强:逻辑回归的数学形式是各特征的加权合,再施以sigmoid函数。逻辑回归的简单数学形式非常符合人类对预估过程的直观认知。(4)逻辑回归模型的局限性:表达能力不强,无法进行特征交叉;需要人工进行特征交叉。
逻辑回归模型参数估计参考:https://www.jianshu.com/p/f7b6cd2f8567
1.2 POLY2模型 - 特征交叉的开始
- 针对特征交叉问题,算法工程师经常采用先手动组合特征,再通过各种分析手段帅选特征的方法,但该方法是比较低效率的;因此采用POLY2模型进行特征的“暴力”组合成了可行的选择。
- 从上述公式可以看到,POLY2(多项式核SVM)对所有特征进行了两两交叉(),并对所有的特征组合赋予权重 [标量]。POLY2通过暴力组合特征的方式,在一定程度上解决了特征组合的问题。POLY2模型本质上仍是线性模型,其训练方法与逻辑回归并无区别,因此便于工程上的兼容。
- POLY2模型存在两个较大的缺陷: (1)在处理互联网数据时,经常采用one-hot编码的方式处理类别数据,致使特征向量极度稀疏,POLY2进行无选择的特征交叉。原本就稀疏的特征向量更加稀疏,导致大部分交叉特征的权重缺乏有效的数据进行训练,无法收敛。(2)权重参数的数量由 直接上升至 ,极大地增加了训练复杂度。
1.3 FM模型 - 隐向量特征交叉
- 为了解决POLY2模型的缺陷,2010年Rendle提出了FM模型;与POLY2相比,其主要的区别是用两个向量的内积( [向量])取代了单一的权重系数。具体来说,FM为每个特征学习了一个隐权重向量(latent vector),在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重。
- 本质上,FM引入隐向量的做法,与矩阵分解用隐向量代表用户和物品的做法异曲同工。可以说,FM是将矩阵分解隐向量的思想进行了进一步扩展,从单纯的用户、物品隐向量扩展到所有特征上。 FM通过引入特征隐向量的方式,直接把POLY2模型级别的权重参数数量减少到了(为隐向量维度,)
- 隐向量的引入使得FM能够更好地解决数据稀疏性问题。 例如,在某商品推荐的场景下,样本有两个特征,分别是channel和brand。某训练样本的特征组合是(ESPN, Adidas)。在POLY2中,只有当ESPN和Adidas同时出现在一个训练样本时,模型才能学到这个组合特征对应的权重。而在FM中,ESPN的隐向量也可以通过(ESPN, Gucci) 样本进行更新,Adidas的隐向量也可以通过(NBC, Adidas)样本进行更新,这大幅度降低了模型对数据稀疏性的要求。甚至对于一个从未出现过的特征组合(NBC, Gucci),由于模型之前已经分别学习过NBC和Gucci的隐向量,具备了计算该特征组合权重的能力,这是POLY2无法实现的。
1.4 FFM模型 - 引入特征域的概念
- 相比FM模型,FFM模型引入了特征域感知(field-aware)这一概念,使模型的表达能力更强。假设样本的个特征属于个field,那么FFM的二次项有个隐向量。而在FM模型中,每一维特征的隐向量只有一个。FM可以看做FFM的特例,是把所有特征都归属到一个field的FFM模型。FFM模型公式如下:
- 上式中,是第个特征所属的field;当与进行特征交叉时,从其个隐向量中挑选出与特征进行交叉。如果隐向量长度为,那么FFM的二次参数有个,远远多于FM模型的个。此外,由于隐向量与field相关,FFM二次项并不能够化简,其计算复杂度是。
- 【特征域的概念解释】 简单地讲,“域”代表特征域,域内的特征一般采用one-hot编码形成的一段one-hot特征向量。例如,用户的性别分为:男,女,未知三类。那么对于一个女性用户来说,采用one-hot方式编码的特征向量为[0,1,0],这个三维的特征向量就是一个“性别”特征域。将所有特征域拼接起来,就组成了样本的整体特征向量。
- FFM原理举例说明,假设在训练推荐模型过程中接收到的训练样本如下。其中Publisher、Advertiser、Gender就是三个特征域,ESPN、NIKE、Male分别是这三个特征域的特征值(需要转化成one-hot特征); 如果按照FM的原理,特征ESPN、NIKE和Male都有对应的隐向量,那么ESPN特征与NIKE特征、ESPN特征与Male特征做交叉的权重应该是和,其中ESPN对应的隐向量在两次特征交叉过程中是不变的。而在FFM中,ESPN与NIKE、ESPN与Male交叉时候特征是不一样的,分别是 和 ;这就是FM和FFM主要的差别。
2. 如何提升FM计算效率?
- 对于FM模型二阶项()的时间复杂度为: ,对二阶项进行改写后的时间复杂度为:,其中是特征数量,表示隐向量维度。
-
【step1】计算说明如下:FM二阶项计算的是下面所有黄色正方形相加之和;
- 【step2】比较好理解,就是把的计算展开:
- 【step3】计算说明如下:可以假设 ;
- 【step4】说明: 和 是相等的,因为是在隐向量的第维,对所有特征求和;
3. MF与FM模型的关系?
- MF(Matrix Factorization,矩阵分解)模型是在推荐系统领域资深的协同过滤模型。核心思想是通过两个低维小矩阵(一个代表用户embedding矩阵,一个代表物品embedding矩阵)的乘积计算,来模拟真实用户点击或评分产生的大的协同信息稀疏矩阵。当训练完成,每个用户和物品得到对应的低维embedding表达后,如果要预测某个用户对的评分的时候,只要它们做个内积运算,这个得分就是预测得分。
- 本质上,MF模型是FM模型的特例,MF可以认为是只有User ID和Item ID这两个特征Fields的FM模型;MF将这两类特征通过矩阵分解,来达到将这两类特征embedding化表达的目的。 而 FM可以看做是MF模型的进一步扩展,除了User ID和Item ID这两类特征外,很多其它类型的特征,都可以进一步融入FM模型里,它将所有这些特征转化为embedding低维向量表达,并计算任意两个特征embedding的内积,就是特征组合的权重。
参考资料
- FM论文:Factorization Machines https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf
- FFM论文:Field-aware Factorization Machines for CTR Prediction https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf
- 《深度学习推荐系统》 - 王喆
- 推荐系统召回四模型之:全能的FM模型 https://zhuanlan.zhihu.com/p/58160982
- 深入FFM原理与实践 https://tech.meituan.com/2016/03/03/deep-understanding-of-ffm-principles-and-practices.html