# FFM
Field-aware Factorization Machine, FFM
FFM中,每一维特征针对其他特征的每一种都会学习一个隐向量。因此,隐向量不仅与特征相关,也与field相关。Field就是feature group,
比如将一个人表示为:(年龄,在北京,在上海,在深圳,男,女)
其中的field就有年龄、地区、性别,而具体每个field中有多个feature,比如地区field中包含在深圳、在上海、在北京三个feature(因为是onehot表示,所以全部存在)
# 核心
在FM中,每个特征对应了一个隐向量,所以这个特征在跟另外的特征进行交互时,这个隐向量是固定的,所以就很不好,在FFM中,则给每个特征多个隐向量(具体个数跟field的个数有关),当特征跟其他field中的特征计算交叉项时,使用的是不同的隐向量
# 公式改写
根据以上描述,这个具有交叉项的LR公式又可以进行改写
其中的代表了特征与field 进行交互时的隐向量,代表了特征与field 进行交互时的隐向量
# 优缺点
# 优点
增加field的概念,同一特征针对不同field使用不同的隐变量,因此模型建模更加准确
# 缺点
计算复杂度比较高,参数个数为,计算复杂度为
# 注意
使用FMM需要注意
- 样本归一化,对样本进行归一化,否则会造成数据溢出,梯度计算失败
- 特征归一化,为了消除不同特征值范围不同造成的问题,因此对特征归一化
- early stopping,防止过拟合
- 省略零值特征,零值特征对模型没有贡献,省略零值特征可以提高FFM模型训练和预测的速度,这也是稀疏样本采用FFM的优势
← 因子分解机