作者:livan

来源:数据python与算法

前言

简单的机器学习模型构建往往假设各个特征之间相互独立,并基于特征独立进行模型训练,例如:LR、SVM;

但是实际场景中特征往往存在相互关联的,比如:女性更喜欢化妆品类广告,男性更喜欢球类装备广告:

女性—化妆品,男性—球类设备

两者之间的关联性较高。

因此,关联特征需要考虑引入到模型建设中。

关联特征在one-hot变化中是按照笛卡尔积的形式呈现的,容易引发高维灾难,比如性别和品类的关联特征如下:

(男/球类)的向量为(女/球类,女/化妆品,男/球类,男/化妆品),one-hot之后为(0,0,1,0),维度指数型增加(4维变成8维):

为了解决关联特征导致的高维灾难问题,引入了FM模型

FM模型推导

FM模型从形式上可以看作是:线性模型+关联特征,即在线性模型的基础上,添加了高维关联特征:

上面公式能看出,wij存在较高的稀疏性,需要找方法解决稀疏问题。

为了计算wij,对每一个特征分量xi找一个辅助向量vi=(vi1,vi2,......,vik),然后,利用vivjT对wij进行计算,汇总所有的特征可得如下v矩阵,每行为一个特征:

则wij矩阵的计算为:

这一思路的基本想法是:将关联之后的特征维度降到k维,计算某一个wij,然后汇总出wij矩阵:

问题来了,如何计算辅助向量vi=(vi1,vi2,......,vik)?

主要应用的方法为:

上面关联特征的计算为:

通过上面的计算就能得到FM与辅助向量vi,f的逻辑关系,然后通过梯度递减,即SGD进行数据运算:

最终得到FM的模型:

此时,模型不仅考虑了关联特征,同时解决稀疏问题,并将复杂度降低到与LR模型同一水平。

FM与SVM的比较

SVM的二元特征交叉参数是独立的,而FM的二元特征交叉参数是两个k维的向量vi、vj,交叉参数就不是独立的,而是相互影响的。

FM可以在原始形式下进行优化学习,而基于kernel的非线性SVM通常需要在对偶形式下进行

FM的模型预测是与训练样本独立,而SVM则与部分训练样本有关,即支持向量

线性SVM只有一维特征,不能挖掘深层次的组合特征在实际预测中并没有很好的表现;而多项式SVM正如前面提到的,交叉的多个特征需要在训练集上共现才能被学习到,否则该对应的参数就为0,这样对于测试集上的case而言这样的特征就失去了意义,因此在稀疏条件下,SVM表现并不能让人满意。而FM不一样,通过向量化的交叉,可以学习到不同特征之间的交互,进行提取到更深层次的抽象意义。

笔者认为,算法的精神在于逻辑,代码倒是其次,本文只介绍原理,代码部分,可以自行到网上查询~

◆ ◆ ◆  ◆ ◆

麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用原价5折的预购价格购买,还是非常划算的:

点击下方小程序即可进入购买页面:


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

● 麟哥拼了!!!亲自出镜推荐自己新书《数据分析师求职面试指南》

● 厉害了!麟哥新书登顶京东销量排行榜!

● 笑死人不偿命的知乎沙雕问题排行榜

● 用Python扒出B站那些“惊为天人”的阿婆主!

● 你相信逛B站也能学编程吗

点击阅读原文即可参与当当5折购书活动

推荐系统与深度学习(一)——FM模型原理相关推荐

  1. 推荐系统与深度学习(二)——FFM模型原理​

    作者:livan 来源:数据python与算法 前言 上一篇我们讲解了FM模型: 推荐系统与深度学习(一)--FM模型原理 从FM的公式我们可以看出: FM中每个特征所对应的向量是唯一的: Vi是Xi ...

  2. Facebook 面向个性化推荐系统的深度学习推荐模型

    作者:王鸣辉 整理:Hoh Xil 来源:http://wd1900.github.io/#blog https://www.zhihu.com/people/wang-ming-hui-38/pos ...

  3. 从FM推演各深度学习CTR预估模型

    本文的PDF版本.代码实现和数据可以在我的github取到. 1.引言 点击率(click-through rate, CTR)是互联网公司进行流量分配的核心依据之一.比如互联网广告平台,为了精细化权 ...

  4. 推荐系统深度学习篇-NFM 模型介绍(1)

    一.推荐系统深度学习篇-NFM 模型介绍(1) NFM是2017年由新加披国立大学提出的一种模型,其主要优化点在于提出了Bi-Interaction,Bi-Interaction考虑到了二阶特征组合, ...

  5. 当推荐系统邂逅深度学习

    前言 这是一篇关于讲述推荐系统邂逅深度学习故事的文章. 推荐系统之于用户的角色,有时更像是无微不至的男朋友,你口渴时递给你符合口味的饮料,你饥饿时还你以常吃的披萨,你无聊时帮你推荐有趣的音乐亦或带你欣 ...

  6. 深度学习 vs. 概率图模型 vs. 逻辑学

    深度学习 vs. 概率图模型 vs. 逻辑学 发表于2015-04-30 21:55|6304次阅读| 来源quantombone|1 条评论| 作者Tomasz Malisiewicz 深度学习de ...

  7. 好书荐读:阿里达摩院算法专家领衔《深度学习与图像识别:原理与实践》

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia计算机视觉联盟  报道  | 公众号 CVLianMeng 这本书现在当当新书榜排名前三 既然为大 ...

  8. 深度学习CTR预估模型凭什么成为互联网增长的关键?

    本文是王喆在InfoQ开设的原创技术专栏"深度学习CTR预估模型实践"的第一篇文章(以下"深度学习CTR预估模型实践"简称"深度CTR模型" ...

  9. CTR预估系列:DeepCTR 一个基于深度学习的CTR模型包

    在计算广告和推荐系统中,CTR预估一直是一个核心问题.无论在工业界还是学术界都是一个热点研究问题,近年来也有若干相关的算法竞赛.本文介绍一个基于深度学习的CTR模型包DeepCTR,具有简洁易用.模块 ...

  10. 深度学习的推荐模型(DLRMs):设计孪生掩码层高效学习维度自适应的Embedding...

    猜你喜欢 0.2021年10月份热门报告免费下载1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.全民K歌推荐系统架构.算法及后台设计4.微博推荐算法实践与机器学习平台演进5.腾讯 ...

最新文章

  1. BZOJ 1799 [Ahoi2009] self 同类分布(数位DP)【BZOJ千题计划(quexin】
  2. 福布斯:混合现实未来的八大应用场景
  3. Spring Boot微信点餐——实战开发DAO层
  4. P3391 【模板】文艺平衡树 fhq-treap 模板
  5. 验证部分表单是否重复
  6. js 对象和构造函数
  7. labelImg 工具
  8. JSP之jsp内置标签
  9. QPSK调制及MATLAB实现
  10. 虚拟化试题1-网络和存储
  11. viper4android还用酷狗,viper4windows_viper4android_viper4蝰蛇音效
  12. 回顾过去三年工作中对区块链技术的一点心得
  13. [笔记] 数据结构二刷【第一篇:线性表·栈·队列·递归】
  14. POJ 1625 Censored ( Trie图 DP 高精度 )
  15. 【缓存中间件】redis 支持的数据类型
  16. VR视频为什么都是弯的?
  17. MDK5 nRF BLE(蓝牙低功耗)
  18. 7个实用的Python自动化测试框架
  19. RMS TO EAP通过MQTT简单实现(2)
  20. 哈哈,word 多少页 一千字?

热门文章

  1. 看完这篇Linux基本的操作你就会了
  2. 计算机相关名人,探寻计算机发展史上的名人足迹
  3. flutter 使用flutter_app_badger推送通知消息清空问题
  4. 我的编程奋斗历程[四部曲之二]-毕业初期篇
  5. iOS、mac开源项目及库
  6. 首次使用 linux 阿里云服务器,入门及使用
  7. [转载]利用Web Services实现软件自动升级
  8. 四川省房产测绘实施细则[2010版]-4
  9. python培训浦东
  10. NB-IOT的背景基础知识