机器学习总结----FFM

本片博客参考了:
https://blog.csdn.net/hiwallace/article/details/81333604
http://www.uml.org.cn/sjjmwj/2016031410.asp

FFM(Field-aware Factorization Machine)

FFM在FM的基础上引入了field的概念,就是把相同性质的特征归于同一个field,比如,在职业这个特征有两个取值(程序员和英语老师),one-hot之后,“职业=程序员”,“职业=英语老师”,同属于一个field,简单来说就是同属于一个categorical的放入一个field,FFM认为不同的field的特征进行组合应该使用不同的隐向量。

比如有以下特征,(职业:程序员,老师,厨师。性别:男,女),one-hot后有5个特征,field有两个。对于“职业=程序员”这个特征,他会学习两个隐向量,分别对应职业、性别这两个field,这和“职业”和“性别”内在差异相符。所以,如果有n个特征属于f个field,那么二次项就有n*f个隐向量,FM也可以看作是FFM的特例(field=1)

FM的模型方程为

y(x) = w 0 + Σ \Sigma Σ n i=1w ix i+ Σ \Sigma Σ n i=1 Σ \Sigma Σ n j=i+1i,fj,v j,fi>x ix j

如果隐向量的长度为k,那么二次项参数就会有knf个,而且隐向量和field相关,所以FFM二次项不能化简,时间复杂度为O(kn2)

损失函数
FFm将问题定义为分类问题,使用logistic loss,同时加入正则项

min Σ \Sigma Σ L i=1log(1+exp(-y i Φ \Phi Φ(w,x i))) + 0.5 λ \lambda λ||w|| 2

FFM应用
在推荐场景中,FFM主要用来评估站内的CTR和CVR,即一个用户对一个商品的潜在点击率和点击后的转化率。
CTR和CVR预估模型都是在线下训练,然后线上预测。两个模型采用的特征大同小异,主要分三类:

用户相关的特征
年龄、性别、职业、兴趣、品类偏好、浏览/购买品类等基本信息,以及用户近期点击量/购买量/消费额等统计信息

商品相关的特征
商品所属品类、销量、价格、评分、历史CTR/CVR等信息

用户-商品匹配特征
浏览/购买品类匹配、浏览/购买商家匹配、兴趣偏好匹配等

一些训练技巧

1、对数值性特征进行归一化处理
2、省略零值特征,从FFM表达式可以看出,零值特征对模型完全没有贡献,可以忽略零值提高训练速度

常总结常进步,希望能和大家多多交流学习。

你可能感兴趣的:(推荐系统,机器学习)