推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

模型结构

模型主要分为输入层、embedding 层、product 层、两个全连接层

输入层:每个特征域的one hot表示

embedding 层:将特征one hot转为embedding表示fn

product 层:本文主要内容,主要进行特征交叉

后面主要讲解一下product层

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

主要计算过程如上,常规操作,不在赘述

 

product 层

product层分为两个部分,其中第一部分,每个特征域与1进行内积,zn = fn, pi,j 则是fi, fj的内积或者外积

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

P是一个N*N的矩阵,矩阵的每一维是pi,j是fi与fj的内积或者外积

 

获得Z和P后,与参数D1个W进行分别进行内积,得到D1维度的lz和lp

Inner Product-based Neural Network

P的计算方式使用内积,两个特征的值两两相乘再累加,生成一个值

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

但是这种方式计算内积复杂度较高,根据矩阵分解的思路,可以将W进行分解

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

这时我们不需要在特征域之间进行内积,对于每个特征域的向量,分别于W的分解出来的向量相乘,然后在每个D1的维度累加即可得到Lp

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

Outer Product-based Neural Network

外积部分比较简单,即两个特征域的向量交叉时,结果不在是一个数字,而是一个矩阵,如果是有N个特征域,每个特征域有M*M维,则有N*M个 M*M的矩阵,计算量超大

这里做了简化,使用了superposition的方法,将M*N个 N*N矩阵进行相加,得到M*M的矩阵,然后与一个D1* M * M 的W进行矩阵内积,得到D1的向量

推荐系统-PNN模型Product-based Neural Networks for User Response Prediction

上一篇:270【毕设课设】基于51单片机的人体热释传感器自动门控制系统设计


下一篇:迷人的学霸操作!教你Python中合并字典的多种解题方法