# PNN相较NeuralCF和Deep Crossing有哪些改进?优势是什么?
相比NeuralCF,PNN模型的输入不仅包括用户和物品信息,还可以有更多不同形式、不同来源的特征,通过Embedding层的编码生成同样长度的稠密特征Embedding向量。
相比Deep Crossing,在输入、Embedding层、多层神经网络,以及最终的输出层没有结构上的不同,唯一的区别在于PNN用乘积层代替了Deep Crossing模型的Stacking层,不同的Embedding向量不再是简单的拼接,而是用Product操作进行两两交互,更有针对性地获取特征之间的交叉信息。
# PNN中特征交叉有哪些方式?分别是怎么样的?
PNN引入了乘积层对特征进行交叉,它由线性操作部分和乘积操作部分组成,其中,乘积特征交叉部分又分为内积操作和外积操作,使用内积操作的PNN模型被称为IPNN,使用外积操作的PNN模型被称作OPNN。
内积操作就是经典的向量内积,对应位置相乘组成一个新的向量;
外积操作是对特征向量的各维度进行两两交叉,生成一个特征交叉方形矩阵。外积操作会将复杂度从M提升到
# PNN中的product 函数IPNN是怎样的?
IPNN在product层使用向量内积操作,从矩阵视角看,此时结果可以等价表示为:
其中
其中
其中
这种做法本质上是利用参数共享降低了参数量,更一般地,为了减少信息丢失,可以按需要考虑K-阶分解,当然复杂度也会相应提升K倍,这是一个trade-off。
# PNN中的product 函数OPNN是怎样的?
当product层使用外积时,每次计算得到的结果是一个矩阵,即
这时
降低复杂度的具体策略与具体的product函数选择有关,IPNN其实通过矩阵分解,“跳过”了显示的product层,通过代数转换直接从embedding层一步到位到
# PNN模型的优势和局限性是什么?
交叉方式的多样化,相比于简单的交由全连接层进行无差别化的处理,PNN中的内积和外积操作更有针对性地强调了不同特征之间的交叉,让模型更容易捕获特征的交叉信息。
但PNN中的外积操作,为了优化训练效率,对所有的特特征进行无差别的交叉,在一定程度上忽略了原始特征向量中包含的有价值信息。