1概述
在排序模型中,特征主要使用离散的one-hot代码特征。 这是由任务本身的特点和历史发展和模式的特点决定的。
首先从任务本身来说,主要涉及的特征可以分为用户特征-物品特征-行为特征。 这些特征往往是离散的,如用户性别、用户兴趣和项目分类
关于历史发展,由人工规则----lr----gbdtlr----FM----发展而来,这里趋向离散特征
对于发展过程中最关键、工业应用中最常用的模型LR来说,离散特征更具优势
相反,由于one-hot码的离散特征容易引入非线性和后续特征的组合,单独热码的离散特征在推荐系统排序和CTR预测中非常普遍。
1.1特征和特征区域(特征场) ) ) ) ) ) ) )。
例如,如果具有用户性别、年龄、物品品牌、物品价格等特征,则可以转换为
性别:“男、女”:“1、0”表示男人
年龄: [0-15岁、15-25岁、25-35岁、35-50岁、50岁以上]:[0、0、1、0、0]表示用户年龄在25-35之间
物品品牌:“李宁、特步、耐克、阿迪达斯、匡威”:“0、0、0、1、0”表示阿迪达斯
物品价格([0-500元、500-1000元、1000-2000元、大2000元) )、1、0、0 )表示物品价格为500-1000元
网域
性别
年龄
品牌
价格
特征
男人
女人
15
25
35
50
50
ln
tb
耐克公司
adi
kw
500
1000
2000
2000
样品
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
如果是
表示样品
y=1表示25-35岁的男性购买或点击了adi品牌价格在500-1000之间的商品或其广告
所以男女各有特点,用01来表示是否是其特征,性别作为男女抽象成为特征域。
这里对域没有严格的规定,常识上倾向于这样划分域,但同样也可以根据具体的样本特征进行分组。
其主旨是同一类型的特征构成一个域
是2fm (财务机器)
2.1模型推导
一般线性模型
请注意这里
表示样本的第I个特征,而不是第I个样本。 n表示每个样本的总n维特征。
LR
LR是线性模型的变换。
但是,从线性模型的公式可以看出,线性模型只使用单一的特征,没有考虑不同特征之间的交叉的因素。 例如,构成性别与品牌的交叉、新的特征“男-Nike”、“女-Nike”、“男-李宁”、“女-李宁”等也同样可以提供信息。
所以,可以设计新的模型
这与一般的线性模型相比,二元特征交叉的信息更多。 当然,也可以继续追加三元交叉、四元交叉等
但是,这里也必须考虑计算量的问题。 首先,请注意对于CTR任务,n非常大。 这是因为在自己的热编码之后,域的展开非常大。 考虑到二元交叉的特征,组合的特征是
订单的
这样,参数数量呈指数增长,采样量m大致恒定。 其结果是,当三元等更高的特征交叉时,特征维容易超过采样量m
当特征维度远大于样本量m时,各参数难以得到充分的训练,导致拟合不足
所以暂时只考虑二元特征交叉
只是二维特征交叉,其参数
是
水平的。 然后又是
因为本身很稀疏
在更稀疏、整体的样本中,容易出现某种组合
始终为0时,以这种方式应对
不能接受训练。
为了解决这个问题,必须减少参数的数量。
众所周知,可以利用矩阵分解技术从线性代数的知识中分解矩阵w
w是的
维,v是
维,当令
enter">时,就可以把计算量从降到
所以根据这样的思想,我们可以对每个特征
构建一个向量
,则
则式(2.3)可以转换成
进一步转化得
式(2.4)(2.5)就是FM模型,我们称
为隐向量或者
的隐向量
2.2 优化算法
我们对式(5)的最后一部分做进一步转换
(详情见最后注释)
对于此模型,设有损失函数
可以是MAE,也可以是交叉熵损失函数
其根据链式法则梯度
即表示为损失函数对模型的导乘以模型对参数的导。
模型对参数的求导:
面对这样的情况,我们可以使用如下几种优化算法求解参数
随机梯度下降法(SGD)
交替最小二乘法(ALS)
马尔科夫链蒙特卡罗法(MCMC)
随机梯度下降法(SGD)
很容易理解,根据上述式子可以得出损失函数的梯度,得知梯度后就很方便的可以应用SGD
交替最小二乘法(ALS)
又称坐标下降法
即每次只优化一个参数。令导数=0,求解当前这个参数的最优值。
马尔科夫链蒙特卡罗法(MCMC)
不会不想查 :)
以上三种方法具体可移步参考链接
3 FFM(Field Factorization Machine)
3.1 模型推导
FM的核心是特征交叉,这里面最重要的就是隐向量。FM中,每个特征
都有且只有一个隐向量
在特征交叉时,对应的隐向量点乘得到这个交叉特征的权重
然而,每个特征所代表的意义是不一样的,例如在计算交叉特征:“男性-20到30岁”,“男性-Nike”时,用同一个男性隐向量v点乘20-30岁和nike的隐向量结果的区别度低。FFM认为,每个特征
的隐向量应该有多个,当该特征与不同类型(域field)的特征做交叉时,应该使用对应的隐向量,这样可以做到更精细地刻画交叉特征的权重。所以每个特征应该有和field数量相同的隐向量个数。
假设样本共有l个域
特征
分别属于域
有l个隐向量
分别对应l个域,v是一个k维向量
有l个隐向量
分别对应l个域,v是一个k维向量
则当
做交叉时,
应该选取
所在域对应的隐向量
应该选取
所在域对应的隐向量
即
这样更精准了,但是参数量多了l倍。所以实际应用中,FFM设置的隐向量长度k会比FM的k小很多以尽可能降低计算量。
3.2 优化算法
同FM
4 总结
FM模型相比传统LR模型,多了二元交叉特征组合。提高了模型表征能力。
从根本上来说,FM之所以可以这么容易的拓展与组合,是因为任务使用的是独热编码的离散化特征
FM全称Factorization Machine。其中Factorization是因式分解的意思。通过上面的介绍,我想很容易理解这个因式分解的意思。当出现特征交叉如
,必然会有这个交叉特征的参数
,而FM把这个参数分解成了两个向量的点乘
。而这两个向量可以看成是特征
的一种编码。
对隐向量的进一步探讨
对于onehot编码来说,
特征对应着向量
其中第i位=1,其他=0;
特征对应着向量
其中第j位=1,其他=0;
所以
的隐向量=
等价于
被编码成
:
而
表示两特征交叉,其权重
则被FM表示成了两隐向量的內积
则
注意式子
虽然看似有
的复杂度,但实际上
绝大多数时候都=0,这表示对于每一个样本,式(4.1)计算量远达不到
。对于一个特定的样本,式(4.1)退化成
表示该样本的稀疏特征中1的数量。
即
请理解这段,这段在理解DeepFM中有用。
参加过一个会议,会上有人说对于CTR预测或推荐系统重排序来说,最根本的是做特征组合。
因为独热编码的特征,每一维表征的信息太少,需要通过组合来提高每一维的表征能力。
同时,特征组合引入了非线性,可以提高拟合能力。
其实GBDT+LR模型,也是一种特征组合。
FM实际上做了一个Embedding 工作,把稀疏的独热特征转换成了稠密特征,这对于深度学习是友好的,所以后续有很多FM和神经网络结合的工作。
未完待续。。。
5 注释
[1].此处应用平方和公式
即
参考