关于FM模型的相关知识梳理

前言部分

FM模型其实属于LR模型的升级版,再其基础上增加了二元特征交叉,解决了LR关于特征无关性假设问题。

FM模型的基础表达方式为:

xi是所有的样本数据经过onehot编码后的统一特征表示形式。其中的w0,wi,wij都是模型参数

从公式来看,模型前半部分就是普通的LR线性组合,后半部分的交叉项即特征的组合。其中组合的特征个数为n*(n-1)/2个。由于onehot编码的稀疏性特征,当n达到1000w级别时,对应的模型参数量就是百亿级别;同时由于稀疏性,对于每一个wij对应的xi和xj非零样本过少,容易导致训练的不充分。

二次项参数的训练问题

进而FM模型的表达方式改变为:

计算进一步化简处理如下(图片来源推荐算法(一)——FM因式分解(原理+代码) - 知乎 (zhihu.com)):

化简之后,FM的复杂度从O(kn*n)降到了O(kn)

优缺点比较:

模型代码参考:rec_sys: 总结日常工作中的推荐相关知识代码 (gitee.com)

猜你喜欢

转载自blog.csdn.net/sslfk/article/details/129584563