2.1.4 自动特征的交叉解决方案:FM→FFM
逻辑回归使用了单一特征的加权组合特征,其表达能力受制,即无法进行特征交叉,所以可能导致有效信息的损失。考虑到以下背景(辛普森悖论):
由此看来,仅使用单一特征的逻辑回归会丢失特征交叉所产生的信息,从而导致错误的预测。
-
POLY2模型
针对特征交叉的问题,POLY2模型通过计算向量的二次型函数,对两两特征进行了”暴力“组合,从而将算法工程师从繁琐的手工组合工作解救出来。其公式如下:
P O L Y 2 ( w , x ) = ∑ i = 1 , … , m ∑ j = i + 1 , … , m w i , j x i x j = x T W x POLY2(\mathbf{w},\mathbf{x})=\sum_{i=1,\dots,m}\sum_{j=i+1,\dots,m}w_{i,j}x_ix_j=\mathbf{x^TWx} POLY2(w,x)=i=1,…,m∑j=i+1,…,m∑wi,jxixj=xTWx
其中 W \mathbf{W} W是 n × n n \times n n×n的严格上三角矩阵,其空间复杂度为 O ( n 2 ) O(n^2) O(n2), 具体的说当使用稀疏矩阵时,复杂度是 n ( n − 1 ) 2 \frac{n(n-1)}{2} 2n(n−1)。
优点:解决了特征交叉的问题,训练方法与逻辑回归没有区别,所以兼容使用了逻辑回归的工程。
缺点:权重参数从n上升到n方,极大的增加了训练复杂度。POLY2进行无选择的特征交叉,可能使得原本稀疏向量更加稀疏,相当于存在一个特征向量 z = [ x 1 x 1 , x 1 x 2 , … , x n x n ] T z=[x_1x_1,x_1x_2,\dots,x_nx_n]^T z=[x1x1,x1x2,…,xnxn]T。
-
FM模型
于是我们可以求得 n n n个维度为 k k k的隐向量表示权重矩阵从而将空间复杂度降低至 O ( k n ) O(kn) O(kn),即FM模型,其公式化表达为,
值得注意的是,由于引入one-hot编码技术,由一个属性导出的特征 x i x_i xi和特征 x j x_j xj在某一特征子空间正交。
F M ( W , x ) = ∑ i = 1 , … , m ∑ j = i + 1 , … , m w i T w j x i x j FM(\textbf{W},\textbf{x})=\sum_{i=1,\dots,m}\sum_{j=i+1,\dots,m}\textbf{w}_i^T\textbf{w}_jx_ix_j FM(W,x)=i=1,…,m∑j=i+1,…,m∑wiTwjxixj
优点:通过引入特征隐向量的方式,降低了POLY2模型 n 2 n^2 n2级别的权重参数量,同时更好地解决了数据稀疏性的问题,即对比起POLY2,权重 w i , j w_{i,j} wi,j只能由同时存在特征 x i x_i xi和 x j x_j xj的样本训练得到,FM的权重 w i , j w_{i,j} wi,j可以由所有出现特征 x i x_i xi或所有出现特征 x j x_j xj的样本训练得到,这提高了模型的泛化能力。该算法也是基于梯度下降法的,同样易于工程化。
缺点:相比于POLY2,FM使用更低维的特征隐向量表示基向量,丢失了某些具体特征组合的精确记忆能力。
-
FFM模型
POLY2模型从矩阵论的角度,是通过 R a n k ( W ) ≤ n Rank(\mathbf{W})\leq n Rank(W)≤n的二次型矩阵(参数矩阵) W W W进行特征交叉,于是我们可以求得 n n n个维度为 k k k的隐向量表示该矩阵从而将空间复杂度降低至 O ( k n ) O(kn) O(kn)(跟矩阵分解算法相似),即FM模型,其公式化表达为,
F F M ( W , x ) = ∑ i = 1 , … , m ∑ j = i + 1 , … , m w i , d o m j T w j , , d o m i x i x j FFM(\textbf{W},\textbf{x})=\sum_{i=1,\dots,m}\sum_{j=i+1,\dots,m}\textbf{w}_{i,dom_j}^T\textbf{w}_{j,,dom_i}x_ix_j FFM(W,x)=i=1,…,m∑j=i+1,…,m∑wi,domjTwj,,domixixj
上式表现出了FFM模型对各个特征维护了一组隐向量,当特征 x i x_i xi与特征 x j x_j xj组合时,通过在特征 x i x_i xi的隐向量组中挑选与j匹配的隐向量,同时在特征 x j x_j xj的隐向量组中挑选与i匹配的隐向量计算权重,从而将特征域这一先验知识导入模型。
优点:为模型引入了更多有价值的信息,增强了模型的表达能力。
缺点:FFM模型的存储空间需求相较于FM增大了 d d d倍( d d d为特征域数量),权重的计算复杂度上升为 k n 2 kn^2 kn2。
附录:
附1: 特征域解释