admin 管理员组

文章数量: 887021

Product

😄 PNN:2016年上海交通大学提出。

文章目录

  • 1、PNN
    • 1.1、原理
    • 1.2、创新点:product层
    • 1.3、product层z部分的输出:l~z~ 的计算方式:
    • 1.4、product层z部分的输出:l~p~ 的计算方式:
      • 1.4.1、IPNN
      • 1.4.2、OPNN
    • 1.5、优点
    • 1.6、缺点
  • Reference

1、PNN

PNN:Product-based Neural Networks

1.1、原理

和Deep Crossing结构差不多,唯一区别就是stacking层换成了product层,为了针对特征交叉做的改进。PNN提出了2种特征交叉的方式。

  • 输入层:输入由N个特征域(Field)组成,都是离散稀疏的分类特征,如年龄、性别、id等。数值型特征不经过输入和embedding。需要等类别特征交叉完之后再统一合并,torch.cat([product_outputs, dense_inputs], dim=-1)。
  • embedding层:每个离散稀疏特征各自有nn.embedding。
  • product层:下面展开讲。
  • L1层: product层的输出和数值型特征拼接后,传入单层fc+relu。
  • L2层: 单层fc+relu。
  • 输出层:因为PNN用于CTR预估,即二分类。所以最后单层fc+sigmoid。
  • 损失函数:交叉熵损失。

1.2、创新点:product层

  • 先来定义下张量的内积运算:
  • product层包含两部分:如图的z和p
  • 那么,product层的输出就是lz, lp【最后输出是直接相加:lz + lz+ lb。lb是个偏置】,其计算方式如下。其中lz, lp的维度都是D1,Wzn的维度是:(M,N),Wpn的维度是:(N,N)。D1也就是product层z部分输出的维度

1.3、product层z部分的输出:lz 的计算方式:

也就是说,有D1个Wzn,那Wz的维度也就是:(N,M,D1)

1.4、product层z部分的输出:lp 的计算方式:

😄p有2种计算方式(张量内积、外积:IPNN, OPNN)。不像z那样直接是embedding堆叠的矩阵了。

首先lp的计算和lz一样,但不同的是p的计算方式。IPNN,OPNN网络的主要区别在于的计算,在IPNN网络中使用Inner Product计算pij,计算出的结果为一个常量。但是OPNN网络中使用Outer Product计算pij,计算出的结果为一个矩阵维度为:(M,M)。

1.4.1、IPNN

  • 也就是各N个特征的embedding两两之间内积,得到一个NxN的对称矩阵,就是p矩阵了。
  • 然后Wpn的维度也是:(N,N)。
  • 同理最后和z部分一样,有D1个Wpn,那Wp的维度也就是:(M,M,D1)

1.4.2、OPNN

  • 也就是各N个特征的embedding两两之间外积,得到一个NxN个MxM的对称矩阵,就是p矩阵了,即p矩阵里每个元素是一个MxM的矩阵。然后将所有外积的结果相加,得到最终的p矩阵(维度MxM)。
  • 然后Wpn的维度也是:(M,M)。
  • 同理最后和z部分一样,有D1个Wpn,那Wp的维度也就是:(M,M,D1)

    插个附加的知识点:

对于叠加矩阵p,《深度学习推荐系统》提到:它的最终形式类似于让所有特征Embeddding向量通过一个平均池化层(Average Pooling)后,再进行外积操作。但这种操作要谨慎, 因为把不同特征对应维度平均, 是假设不同特征对应维度有类似的含义, 而如果是“年龄”和“地域”平均的话显然没有意义。 于是平均embedding的操作一般是针对同类embedding。

1.5、优点

  • PNN模型在引入了其他特征之后再研究的交叉, 在之前DeepCrossing模型的框架基础上, 把Stacking层换成了Product层, 从而更好地进行网络的信息表达, 这里比较关键的就是内积和外积的交互方式。
  • 在保持了原来特征embedding的基础上,相比于简单的交由全连接层无差别化的处理, PNN模型定义的内积和外积操作显然更有针对性的强调了不同特征之间的交互, 从而让模型更容易捕获特征的交叉信息。

1.6、缺点

  • 比如外积操作在实际应用中, 为了优化训练效率进行大量的简化。 此外, 对所有特征无差别的交叉, 在一定程度上忽略了原始特征向量中包含的有价值信息。

Reference

[1] 大佬:翻滚的小@强:
[2] 王喆老师的:《深度学习推荐系统》

本文标签: Product