提出 Field-aware Neural Factorization Machine 模型,该模型可以通过 FFM 模型构造二阶的交互特征,也可通过 DNN 构建更高阶的交互特征。
FNFM 模型结构如下:
Input Layer:x = [x1; x2; . . . ; xf ] ,其中 f 表示特征组的个数,如果是 sparse 的离散特征,xi 就是 one-hot 向量,如果是 dense 的数值特征,就是一个 scalar。
Embedding Layer:和传统的做法一样,通过 embedding 层映射到低维度向量。为了交叉合并离散特征和数值特征,dense 的特征也可以通过 embedding 层做处理。
Bi-Interaction Concatation Layer:设 xi 和 xj 分别是属于特征组 fi 和 fj 的两个输入特征,那么 second-order feature 交互向量的计算为:
其中的计算符号表示向量间的 element-by-element product operation。 vi,fj 表示输入 xi 和特征组 fj 交互时的向量,vj,fi 表示输入 xj 和特征组 fi 交互时的向量,也就是相同的输入特征与不同的特征组特征交互时,使用的是不同的向量。然后将所有的交互向量 concat 起来。这里有一个创新点:就是传统的 BI 层中采用的是 pooling 层,而这里采用的是 concat 层,原因是为了最大的程度的保留信息不会损失。
Normalization Layer:之后是 BN 层,原因是经过 BI 层之后,输出会变得很不稳定,分布很不均匀。
Multiple Layer Perceptron (MLP) :负责提取高阶的特征。
损失函数还是选择 negative log-likelihood function:
实验结果
本文转载自 Alex-zhai 知乎账号。
原文链接:https://zhuanlan.zhihu.com/p/69503826
评论