Product-based Neural Networks
目录
一、背景:
二、PNN(Product-based Neural Networks )
motivation
PNN网络结构
IPNN
OPNN网络结构图
PNN*
三、EXPERIMENTS
四、相关部分
五、参考
一、背景:
基于DNN的ctr预估存在特征维度爆炸及极度稀疏,且未考虑特征之间的交互性。理解深度神经网络——DNN(Deep Neural Networks) | 码农家园
上一版本ctr预估使用的是DNN模型:Deep Neural Network(DNN)
下图为DNN网络结构, 其本质就是传统的多层感知机(MultiLayer Perceptron,简称MLP)。在MLP网络中,输入是原始的特征n维特征空间,假设第一层隐层节点数为H1,第二层为H2,以此类推。在第一层网络中,需要学习的参数就是n*H1。对于大多数CTR模型来说,特征体系都极其庞大而且稀疏,典型的特征数量级n从百万级到千万级到亿级甚至更高,这么大规模的n作为网络输入在ctr预估的工业界场景中是不可接受的。DNN待学习参数: n*H1+H1*H2+H2*H3+H3*o(o为输出层大小,在ctr预估中为1)
DNN模型结构
存在的问题:
- DNN的输入往往是dense real vector, 但是对于类别型特征通常需要one-hot,得到的结果是高维且稀疏的。目前ltr使用的特征有七十二维,存在的问题是非常稀疏,0值较多。 解决方案:对特征进行Embedding,通过加入Embedding Layer将输入映射到低维度的Embedding空间中。
- 通常,NN层之间都使用“add operation” ,通过激活函数来引入非线性。实际应用场景中“product”相比“add”能更好得捕捉特征间的交互属性,(eg:相关性高且是重要公司与相关性高和重要公司,画图表示交集和并集的关系)。DNN直接把Embedding之后的特征或者原始特征输入到神经网络中进行计算对特征的交叉组合不充分,没有考虑特征之间的相互性关系。
二、PNN(Product-based Neural Networks )
motivation
- 通过Embedding解决高维稀疏问题
- “product”相比“add”能更好得捕捉特征间的dependence,在DNN结构中引入product layer更好地学习不同Field特征间的相关性
PNN网络结构
Embedding + Product + MLP
Embedding Layer:最开始的输入太稀疏维度太高,没法直接放到DNN中去学习,所以比较通用的做法就是通过Embedding到一个低维的稠密的实数向量中,作为原始特征的在Embedding空间中的表示。Embedding Layer跟DeepFM中相同,将每一个field的特征转换成同样长度的向量。
- Product Layer:然后PNN利用Product Layer来学习filed之间的交互特征,这也就引入了非线性的组合特征。可以采用内积、外积、内积+外积的形式。
- Full-connect Layer:最后利用全连接层充分的学习高阶组合特征,并得到最终CTR预测概率。
(1)Input: 一个Field就是一个类别型特征。注意:上图中的Input是one-hot之后的,而且只给出了类别型特征。所以每个Field都是一个向量,向量的大小就是类别型特征one-hot之后的维度,即不同Field的维度是不同的。
(2)Embedding Layer: Embedding是Field-wisely Connected,就是一个Field只与一个embedding关联,Field之间网络的权重毫无关系(看箭头)。而且只有权重,没有bias。一个Field经过嵌入后,得到一个Feature,也就是对应的Embedding Vector嵌入向量。其维度一般是预先设定好的定值,论文中采用的是10。也就说是不同Feature的维度都是一样的。
(3)Product Layer: Product Layer分为两部分,一部分叫做z,一部分叫做p。我们说下结论:
- 先看z,z中每个圈都是一个向量,向量大小为Embedding Vector大小,向量个数 = Field个数 = Embedding向量的个数。
- 再看p,Product Layer中如果是内积(IPNN),p中每个圈都是一个值;如果是外积(OPNN),p中每个圆圈都是一个二维矩阵。
IPNN
OPNN网络结构图
针对OPNN产生的每一个二维矩阵,我们都通过另外一个矩阵W,大小为M*M。这两个矩阵对应位置相乘,再相加,就得到了最终的结果。也就是说,最终外积产生的二维矩阵,通过和另外一个需要学习的参数矩阵,对应位置相乘,再相加,得到了一个标量,一个实数值。
PNN*
如果Product Layer同时使用内积+外积,把内积和外积的结果拼接起来,就得到PNN*。
三、EXPERIMENTS
使用Criteo和iPinYou的数据集,并用SGD算法比较了7种模型:LR、FM、FNN、CCPM、IPNN、OPNN、PNN(拼接内积和外积层),正则化部分(L2和Dropout);
从图中看出,好像tanh在某些方面要优于relu,但作者采用的是relu,relu的作用: 1、稀疏的激活函数(负数会被丢失);2、有效的梯度传播(缓解梯度消失和梯度爆炸);3、有效的计算(仅有加法、乘法、比较操作);
四、相关部分
Factorization-machine(FM)
FM主要是为了解决数据稀疏的情况下,特征组合问题。FM模型可以看成是线性部分的LR,还有非线性的特征组合xixj交叉而成,表示如下:
其中vi是第i维特征的隐向量,长度k<<n,包含k个描述特征的因子。参数个数为k*n。所有包含xi的非零组合特征都可以用来训练vi,缓解数据稀疏问题。图1是从神经网络的角度表示FM, 可以看成底层为特征维度为n的离散输入,经过embedding层后,对embedding层线性部分(LR)和非线性部分(特征交叉部分)累加后输出。
FM模型结构
五、参考
- 作者源代码:https://github.com/Atomu2014/product-nets
- 论文:https://arxiv.org/pdf/1611.00144.pdf
- 跟作者讨论过:计算广告CTR预估系列(八)--PNN模型理论与实践_李宁宁-CSDN博客
- 完整的代码:https://github.com/gutouyu/ML_CIA
- 深度学习在CTR预估中的应用_心之所向-CSDN博客_深度学习ctr
- 推荐系统(二):PNN源论文整理和思考_anshuai_aw1的博客-CSDN博客
- 【DNN】PNN(Product-based Neural Networks )_凝眸伏笔的博客-CSDN博客
- 计算广告之CTR预测--PNN模型 - debugger.wiki - debugger.wiki
- 推荐系统-FM(Factorization Machine)模型 - 简书
Product-based Neural Networks相关推荐
- 小样本论文笔记5:Model Based - [6] One-shot learning with memory-augmented neural networks.
小样本论文笔记5:Model Based - [6] One-shot learning with memory-augmented neural networks 文章目录 小样本论文笔记5:Mod ...
- 推荐系统——Converged Recommendation System Based on RNN and BP Neural Networks
论文描述: 随着电子商务系统.社交网络.音乐应用等在线消费平台的快速发展,大量用户的消费行为日志每天都在产生.同时,我们现在有很好的硬件环境和相应的大数据处理技术来处理这些日志,如:越来越成熟的并行计 ...
- #Reading Paper# Profiling the Design Space for Graph Neural Networks based Collaborative Filtering
#论文题目:Profiling the Design Space for Graph Neural Networks based Collaborative Filtering(基于协同过滤的图神经网 ...
- 笔记[M-SFANet]Encoder-Decoder Based Convolutional Neural Networks with Multi-Scale-Aware Modules...
@[TOC]( [M-SFANet] Encoder-Decoder Based Convolutional Neural Networks with Multi-Scale-Aware Module ...
- 论文解读《Structured Pruning for Deep Neural Networks with Adaptive Pruning Rate Derivation Based on Con》
论文:Structured Pruning for Deep Neural Networks with Adaptive Pruning Rate Derivation Based on Connec ...
- 论文阅读笔记:Link Prediction Based on Graph Neural Networks
文章目录 说明 Abstract 1 Introduction 2 Preliminaries Notations Latent features and explicit features Grap ...
- Non-local Neural Networks:非局部神经网络
论文地址:https://openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Non-Local_Neural_Networks_CVPR_2018 ...
- 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)
[论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...
- DEEPCON: protein contact prediction using dilated convolutional neural networks with dropout
今天真的要开始正式进入科研状态了,之前一直都进入失败,咳!那就先来看一篇相关领域的论文吧 ---------------------------------------------- 题目:DEEPC ...
- Graph Convolutional Neural Networks for Web-Scale Recommender Systems(用于Web级推荐系统的图形卷积神经网络)
Graph Convolutional Neural Networks for Web-Scale Recommender Systems 用于Web级推荐系统的图形卷积神经网络 ABSTRACT R ...
最新文章
- [转]C#连接操作mysql实例
- linux删除本机mysql_删除Linux本机自带的Apache/PHP/MySQL
- dedecms如何快速删除跳转的文章(记得清空内容回收站)
- ionic应用程序文件保存和清除缓存
- lombok链式调用_翻车!记一次使用 Lombok 造成的事故!
- Web storm 部分快捷键
- fiddler4苹果手机证书无法使用的问题解决方案
- DFS.01-寻路问题
- 从算法工程师到全栈开发者,我终于明白了数据科学的真谛
- java创建一定长度的list_java第三季中对String泛型的List进行排序(随机生成长度不超过10的字符串)...
- oracle创建同义词授权,Oracle同义词赋权
- TunesKit Spotify Converter Mac(Spotify音乐转换工具) v1.5.1激活版
- 魔图的制作过程(转)
- 我是僵尸生存java_我的世界1.6.2我是僵尸整合包
- linux——目录说明
- win7系统如何添加摄像头--win10专业版
- 双折射晶体偏振干涉效应
- 刘强东放弃京东的股权套现离场
- 与何歌特面对面 探观致汽车上海设计室--转自汽车之家
- 各种场合的说话技巧之19例