PNN NFM AFM

Deepfm是把FM和DNN并行了,但是其实FM和DNN还有一种串行模式,接下来要讲的这三种就是;

先说PNN,老规矩先放图(https://www.jianshu.com/p/be784ab4abc2):

embedding layer以及Hidden layer往上就很清楚了,主要是中间那个product layer,图上写了两种一种是inner一种是outer,对左边来说这个z都是和1点积(其实就是本身),右边的p如果inner就是feature之间点积(就是类似FM的两两点积,但是FM是bit维度+参数隐变量,这里就是先embedding再用embedding去做,其实是一样的),outer就是向量转置相乘为一个矩阵(当然这样搞太复杂,还是做了一些简化操作);得到z和p后还各自过了一个矩阵,得到一个降维之后的向量作为输入;一些数据上的简化操作就不详细写了。

再说NFM,放图(https://www.jianshu.com/p/4e65723ee632):

这里v就是FM的参数变量,要着重说的也是这个Bi-interaction Pooling,名字没听过,但是做的事还是那些,就是v和v之间点乘,如果只是这么搞就和IPNN右边那部分一模一样了哈感觉,然后还有一部分是把原始特征再连到输出(而不是IPNN左边那部分那样把这个sum(w*x)也放到网络里面);

最后是AFM,全称是Attention FM,一听就是做了加权。先放图(https://www.jianshu.com/p/83d3b2a1e55d):

前两步还是一样的,到第三步做的是element-wise的相乘,得到的还是k维的向量,然后放一块儿做了个softmax就得到了权重:

乘以原向量再相加,可能最后再过一个sigmoid吧就得到了预测分,这里应该是只对二阶向量做了这个操作,文中也是说没有用到其他阶数的特征。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容