【推荐系统】一种特征交叉策略(FM)

1 传统的推荐系统模型

传统模型演化关系
在这里插入图片描述

2 前言

在上一篇文章里面谈到了逻辑回归, 这是一个简单、直观、应用的模型, 但是局限性就是表达能力不强, 无法进行特征交叉和特征筛选等,

因此为了解决这个问题, 推荐模型朝着复杂化发展, GBDT+LR的组合模型就是复杂化之一, 通过GBDT的自动筛选特征加上LR天然的处理稀疏特征的能力, 两者一结合初步实现了推荐系统特征工程化的开端。
其实, 对于改造逻辑回归模型, 使其具备交叉能力的探索还有一条线路,

就是今天这篇文章要介绍的POLY2->FM->FFM, 这条线路在探索特征之间的两两交叉, 从开始的二阶多项式, 到FM, 再到FFM, 不断演化和提升。

3 FM和FFM(九九归一)

3.1 FM? 我们先从POLY2开始

原理

  • 实际上就是对所有的单特征,两两相乘(暴力组合)

存在的缺点

  • (1) 推荐系统中的数据往往是非常稀疏的(类别型数据经过独热), 这样会导致特征向量非常的稀疏, 这时候如果再交叉的时候, 往往 x i y j x_iy_j xiyj同时不为0的情况很少, 这会导致交叉特征的权重缺乏有效的数据进行训练而无法收敛。
  • (2) 任意两个参数相互独立, 这时候如果数据非常稀疏, 再要训练这么多参数, 无疑是非常困难的, 最终模型也不会很好。

3.2 FM模型的原理

原理:
首先POLY2模型在特征交叉的时候采用的单独的权重, 这使得在稀疏的场景下无法适用, 那么这种问题应该怎么解决呢?
矩阵分解(类似于传统模型2的矩阵分解模型)
然后FM的核心,就是将交叉特征前面的权值矩阵,利用矩阵分解的形式进行分解(两个矩阵相乘)。

k(k<<n)为隐向量的长度,包含 k个描述特征的因子。
最后利用梯度下降求解参数就好了啊!
(原先的每一个权重都是独立的,引入矩阵分解后,相当除本身外,还考虑了其它特征)

应用:

  • 1 直接预估
    最直接的想法就是直接把FM得到的结果放进sigmoid中输出一个概率值,由此做CTR预估
  • 2 做召回
    1)离线训练好FM模型(学习目标可以是CTR)
    2)将训练好的FM模型Embedding取出
    3)将每个uid对应的Embedding做avg pooling(平均)形成该用户最终的Embedding,item也做同样的操作
    4)将所有的Embedding向量放入Faiss等
    5)线上uid发出请求,取出对应的user embedding,进行检索召回

3 FFM模型的原理

原理:
相比于FM模型, FFM模型引入了特征域感知(filed-aware) 这个概念, 使得模型的表达能力更强(也就是对每个域/类别下的特征,学习对应的交叉特征)
应用:

  • 工业上, 一般FFM确实很少用,召回和排序部分都不是首选FFM模型, 但是FM模型还是非常重要的, 基本上业界首选。下面简单总结下:

  • 做召回的话一般先考虑策略,tag,热度的召回,然后再是模型,召回模型常用的双塔,FM, 协同(MF) 这个还是很有用的。

  • 做文章推荐的时候, 排序模型首选LR, 然后FM, DeepFM,然后多目标。一般GBDT+LR也不是太考虑,因为它的效果和FM类似,不如直接FM省事, 前者更新起来太复杂。 如果是电商广告推荐, 最后还

4 总结

在这里插入图片描述

参考:https://blog.csdn.net/wuzhongqiang/article/details/108719417

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值