FM与深度学习模型的结合--FNN
一:FNN–用FM的隐向量完成Embedding层的初始化。
1,提出背景:
(1)基于FM的特征组合受到计算复杂度的影响因而只能进行二阶特征交叉,但当面对海量高度稀疏的用户行为反馈数据时,二阶交叉是明显不够的,三阶,四阶甚至更高阶的特征组合交叉才能进一步提高模型的学习能力,如何能在引入更高阶的同时,又能将计算复杂度控制在一定范围之内,Dnn就是答案。
(2)在神经网络的初始化过程中,往往采用随机初始化这种不含任何先验信息的初始化方式,由于Embedding层的输入极端稀疏,再加上Embedding的参数数量往往占据了神经网络参数数量的大半以上,因此模型的收敛速度往往受限于Embedding层收敛速度。
2,什么是FNN
利用FM训练好的各特征隐向量来初始化Embedding层的参数,相当于在初始化神经网络模型参数时候,就已经引入了一定的先验信息,让神经网络的起点更叫靠近目标最优点,加速整个模型的收敛。模型结构如下:
二:FNN结构解析与训练
输入:类别特征,经过 field-wise one-hot编码的。每个field相当于一个类别特征,比如 city。FNN模型使用因子分解机作为底层,FNN = FM + MLP。
首先, W 0向量经过初始化, 向量z 通过训练FM模型来完成初始化:FM数学形式
需要注意的是,虽然模型结构图中把FM中的参数指向了Embedding层的神经元,但其具体意义是初始化Embedding神经元和输入神经元之间的链接权重。假设FM隐向量的维度为M,第i个特征域(fild i)的第k维特征的隐向量是Vik,那么隐向量的第L维Vilk就会成为链接输入神经元k和Embedding神经元L之间连接权重的初始值。
L2层:
这里,选择tanh 作为激活函数,是因为实验中它有最优的学习性能(相比sigmoid,不会有梯度消失)。
L1层:
输出 是0-1 的数值(sigmoid激活函数将多层mlp输出的多个神经元的值压缩到0-1之间),代表一个用户点击给定的广告的概率:
模型分成两个阶段训练:
(1)无监督训练
在使用FM模型得到z后, 使用RBM的对比散度进行逐层训练。
(2)有监督训练
为了加快参数更新:只对底层非0的元素进行权重更新。
需要说明的是,在Fnn中特征被分成了不同的特征域,每个特征域都有对应的Embedding层,并且每个特征域Embedding的维度都与对应的Fm隐向量维度保持一致。
三:FNN优缺点
优点:
引入DNN对特征进行更高阶组合,减少特征工程,能在一定程度上增强FM的学习能力。这种尝试为后续深度推荐模型的发展提供了新的思路(相比模型效果而言,个人感觉这种融合思路意义更大)。
缺点:
两阶段训练模式,在应用过程中不方便,且模型能力受限于FM表征能力的上限。
FNN专注于高阶组合特征,但是却没有将低阶特征纳入模型。
FM与深度学习模型的结合--FNN相关推荐
- 【NLP】相当全面:各种深度学习模型在文本分类任务上的应用
论文标题:Deep Learning Based Text Classification:A Comprehensive Review 论文链接:https://arxiv.org/pdf/2004. ...
- 深度学习核心技术精讲100篇(五)-通过CTR预估对比深度学习模型(deepfm)梯度提升模型(catboost)
前言 CTR预估模型的特点: 毫无疑问这个任务的是个二分类任务,预测点击与否. CTR 预估的特征一般是 用户的日志特征和画像特征,包含类别特征和数值型特征两种. 此任务的评估指标是 AUC 得分 或 ...
- 用户在线广告点击行为预测的深度学习模型(含PPT下载)
本文来自英国伦敦大学学院博士张伟楠在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了深度学习在Multi-field Categorical(多字段分类)数据集上的应用,涉及FM和FNN等算 ...
- 关于短文本匹配的深度学习模型
背景 短文本匹配(text matching)或句子相似度(sentence similarity)在信息检索中有着广泛的应用,比如相似问题判断,问答系统等等.短文本匹配的任务难点有两个,一个是&qu ...
- CTR深度学习模型之 DeepFM 模型解读
CTR 系列文章: 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码) CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解 CTR深度学习模型之 ...
- 深度学习模型压缩与优化加速
1. 简介 深度学习(Deep Learning)因其计算复杂度或参数冗余,在一些场景和设备上限制了相应的模型部署,需要借助模型压缩.优化加速.异构计算等方法突破瓶颈. 模型压缩算法能够有效降低参数冗 ...
- 深度学习模型压缩与优化加速(Model Compression and Acceleration Overview)
1. 简介 深度学习(Deep Learning)因其计算复杂度或参数冗余,在一些场景和设备上限制了相应的模型部署,需要借助模型压缩.系统优化加速.异构计算等方法突破瓶颈,即分别在算法模型.计算图或算 ...
- 机器如何“猜你喜欢”?深度学习模型在1688的应用实践
一.背景 猜你喜欢是推荐领域极其经典的一个场景,在1688首页无线端猜你喜欢栏目日曝光约23w,其中约72%的用户会产生点击行为,人均点击约8次.在我们的场景中,这部分是一个相对较大的流量来源.我们算 ...
- 喜马拉雅基于阿里云机器学习平台PAI-HybridBackend的深度学习模型训练优化实践
喜马拉雅作者:李超.陶云.许晨昱.胡文俊.张争光.赵云鹏.张玉静 喜马拉雅AI云借助阿里云提供的HybridBackend开源框架,实现了其推荐模型在 GPU 上的高效训练. 业务介绍 推荐场景是喜马 ...
最新文章
- 1.6 万字长文带你读懂 Java IO
- boyer moore算法 java_Boyer-Moore算法
- Python Module_openpyxl_styles 样式处理
- 剖析 Linux hypervisor
- oracle的故障包括用户或应用程序故障_数据库实例错误,oracle 备份恢复基础
- html自动刷新倒计时,基于JavaScript实现自动更新倒计时效果
- 网站推广专员浅析不做大幅修改如何调整网站推广内容?
- java c3p0 配置文件_【c3p0】 C3P0的三种配置方式以及基本配置项详解
- 833c语言程序是什么,江南大学
- 阿里开发者们的第5个感悟:听话,出活
- 《R和Ruby数据分析之旅》目录—导读
- Python 全局变量
- php获取excel表格中数据的小方法
- Vue3+CLI4 使用Element-ui
- 关于学习C语言的指针、链表的原理和各类操作的体会
- 计算机装配调试员培训内容.doc,电子计算机装配调试员理论培训文档.doc
- 转:敏捷方式scrum 方案
- 【Linux】一步一步学Linux——atq命令(139)
- BZOJ 1695 [Usaco2007 Demo]Walk the Talk 链表+数学
- 人体姿态识别研究综述(详细归纳!)(转载)
热门文章
- 第二期招银FinTech精英训练营夺冠之旅
- 手写RANSAC实现点云粗配准
- Android 蓝牙自动匹配PIN码跳过用户交互
- harmonyos2.0手机系统,harmonyos2.0手机
- harmonyos系统支持哪些手机,华为发布了适用于部分手机的HarmonyOS 2.0 beta
- Android dp方式的屏幕适配-原理(后期补充完整讲解)
- ionic3微信公众号开发
- 找不到从属程序集***DLL的激活上下文生成失败
- java对int数组求和
- MQ-7一氧化碳传感器模块功能实现(STM32)