模型结构
模型主要分为输入层、embedding 层、product 层、两个全连接层
输入层:每个特征域的one hot表示
embedding 层:将特征one hot转为embedding表示fn
product 层:本文主要内容,主要进行特征交叉
后面主要讲解一下product层
主要计算过程如上,常规操作,不在赘述
product 层
product层分为两个部分,其中第一部分,每个特征域与1进行内积,zn = fn, pi,j 则是fi, fj的内积或者外积
P是一个N*N的矩阵,矩阵的每一维是pi,j是fi与fj的内积或者外积
获得Z和P后,与参数D1个W进行分别进行内积,得到D1维度的lz和lp
Inner Product-based Neural Network
P的计算方式使用内积,两个特征的值两两相乘再累加,生成一个值
但是这种方式计算内积复杂度较高,根据矩阵分解的思路,可以将W进行分解
这时我们不需要在特征域之间进行内积,对于每个特征域的向量,分别于W的分解出来的向量相乘,然后在每个D1的维度累加即可得到Lp
Outer Product-based Neural Network
外积部分比较简单,即两个特征域的向量交叉时,结果不在是一个数字,而是一个矩阵,如果是有N个特征域,每个特征域有M*M维,则有N*M个 M*M的矩阵,计算量超大
这里做了简化,使用了superposition的方法,将M*N个 N*N矩阵进行相加,得到M*M的矩阵,然后与一个D1* M * M 的W进行矩阵内积,得到D1的向量