文章目录
- 1. 逻辑回归模型的不足
- 2. POLY2模型——特征交叉的开始
- 3. FM模型——隐向量特征交叉
- 4. FFM模型——引入特征域的概念
- 5. 从POLY2到FFM的模型演化过程
- 6. 参考书籍
1. 逻辑回归模型的不足
逻辑回归作为一个基础模型,显然有其简单、直观、易用的特点。 但其局限性也是非常明显的:
表达能力不强,无法进行特征交叉、特征筛选等一系列较为 "高级"的操作,因此不可避免地造成信息的损失。
为解决这一问题,推荐模型朝着复杂化的方向继续发展,衍生出因子分解机等高维的复杂模型 。
上一篇文章:推荐模型——逻辑回归中提到逻辑回归模型表达能力不强,会不可避免的造成信息损失,还举例“辛普森悖论”
因此,通过改造逻辑回归模型,使其具备特征交叉的能力是必要和迫切的 。
2. POLY2模型——特征交叉的开始
针对特征交叉的问题,算法工程师经常采用先于动组合特征,再通过各种分析手段筛选特征的方法,但该方法无疑是低效的。 更遗憾的是,人类的经验往往有局限性,程序员的时间和精力也无法支撑其找到最优的特征组合 。 POLY2 模型进行特征的"暴力"组合成了可行的选择 。因此,采用POLY2 模型进行特征的"暴力"组合成了可行的选择 。
- POLY2模型的数学形式:
可以看到,该模型对所有特征进行了两两交叉,通过暴力组合的方式在一定程度上解决了特征组合的问题。其本质上仍是线性模型,其训练方法与逻辑回归并无区别,因此便于工程上的兼容。
但POLY2模型存在两个较大的缺陷:
- 在处理互联网数据时,经常采用one-hot编码的方法处理类别型数据, 致使特征向量极度稀疏, POLY2进行元选择的特征交叉原本就非常稀疏的特征向量更加稀疏,导致大部分交叉特征的权重缺乏有效的数据进行训练,无法收敛。
- 权重参数的数量由n直接上升到n2,极大地增加了训练复杂度 。
one-hot编码介绍:
one-hot 编码是将类别型特征转换成向量的一种编码方式 。 由于类别型特征不具备数值化意义,如果不进行 one-hot 编码,无法将其直接作为特征向量的一个维度使用。
举例来说,某样本有三个特征,分别是星期、性别和城市,用 [Weekday=Tuesday, Gender=Male, City=London] 表示。由于模型的输入特征向量仅可以是数值型特征向量 ,无法把 “Tuesday” 这个字符串直接输入模型, 需要将其数值化,最常用的方法就是将特征做 one-hot 编码 。 编码的结果如图:
虽然 one-hot 编码方式可以将类别型特征转变成数值型特征向量,但是会不可避免地造成特征向量中存在大量数值为0的特征维度 。
3. FM模型——隐向量特征交叉
为了解决 POLY2 模型的缺陷, 2010 年,Rendle提出了FM模型。
FM二阶部分的数学形式:
与 POLY2相比,其主要区别是用两个向量的内积取代了单一的权重系数W。 具体地说, FM为每个特征学习了一个隐权重向量( latent vector)。 在特征交叉时,使用两个特征隐向量的内积作为交叉特征的权重 。
本质上, FM 引人隐向量的做法,与矩阵分解用隐向量代表用户和物品的做法异曲同工。可以说FM是将矩阵分解隐向量的思想进行了进 一步扩展,从单纯的用户、物品隐向量扩展到了所有特征上 。
FM 通过引人特征隐向量的方式,直接把POLY2模型n2级别的权重参数数量减少到了nk(k为隐向量维度, n>>k)。 在使用梯度下降法进行 FM训练的过程中, FM的训练复杂度同样可被降低到nk级别,极大地降低了训练开销。
隐向量的引人使 FM 能更好地解决数据稀疏性的问题。
举例来说,在某商品推荐的场景下,样本有两个特征,分别是频道( channe1) 和品牌 ( brand ),某训练样本的特征组合是 (ESPN, Adidas)。
在POLY2中,只有当 ESPN 和 Adidas 同时出现在一个训练样本中时模型才能学到这个组合特征对应的权重;
而在FM中, ESPN 的隐向量也可以通过(ESPN, Gucci)样本进行更新, Adidas的隐向量也可以通过 (NBC, Adidas)样本进行更新,这大幅降 低了模型对数据稀疏性的要求。甚至对于 一个从未出现过的特征组合 (NBC,Gucci),由于模型之前已经分别学习过 NBC和 Gucci的隐向量, 具备了计算该特征组合权重的能力,这是 POLY2无法实现的 。
相比 POLY2, FM 虽然丢失了某些具体特征组合的精确记忆能力,但是泛化能力大大提高 。
在工程方面, FM 同样可以用梯度下降法进行学习,使其不失实时性和灵活性 。 相比之后深度学习模型复杂的网络结构导致难以部署和线上服务, FM 较容易实现的模型结构使其线上推断的过程相对简单,也更容易进行线上部署和服务。 因此, FM在 2012-2014年前后,成为业界主流的推荐模型之一。
4. FFM模型——引入特征域的概念
相比FM模 型,FFM模型引入了特征域感知( field-aware)这一概念,使模型的表达能力更强 。
FFM的数学形式的二阶部分:
区别FM,隐向量改变:
这意味着每个特征对应的不是唯一一个隐向量,而是一组隐向量。当Xj1特征与Xj2特征进行交叉时,Xj1特征会从Xj1的这一组隐向量中挑出与特征Xj2的域f2对应的隐向量Wj1.f2进行交叉。同理,Xj2也会用与Xj1的域f1对应的隐向量进行交叉 。
5. 从POLY2到FFM的模型演化过程
6. 参考书籍
《深度学习推荐系统》