FNN学习笔记

FNN学习笔记

一. 前言

FNN(Factorization Neural Network)是一种组合了FM(Factorization Machine)和多层感知机(Multilayer Perceptron,MLP)的混合模型。它通过利用 FM 的特性对高维稀疏数据进行特征组合,再通过 MLP 处理组合后的特征,从而得到更优的预测结果。

本文将对 FNN 进行详细介绍,包括模型结构、损失函数、训练方法等。

二. 模型结构

FNN 的模型结构如下图所示:

graph LR
    A[Input] -- Embedding --> B[FM layer] -- Concatenate --> C[MLP layer] -- Output --> D[Output]

其中,模型由三部分组成:

  1. Input layer:输入层,接收原始特征向量。
  2. FM layer:FM 层,将输入向量进行特征交叉操作,并输出特征交叉向量。
  3. MLP layer:MLP 层,接收 FM 层输出的特征交叉向量,并输出最终预测结果。

三. 损失函数

FNN 的损失函数采用的是交叉熵损失函数,具体如下式所示:

L o s s = − 1 N ∑ i = 1 N ( y i l o g ( y i ^ ) + ( 1 − y i ) l o g ( 1 − y i ^ ) ) Loss=-\frac{1}{N}\sum_{i=1}^{N}(y_i log(\hat{y_i})+(1-y_i)log(1-\hat{y_i})) Loss=N1i=1N(yilog(yi^)+(1yi)log(1yi^))

其中, y i y_i yi 为样本 i i i 的真实标签值, y i ^ \hat{y_i} yi^ 为样本 i i i 的预测标签值。

四. 训练方法

FNN 的训练方法采用的是 mini-batch SGD(Stochastic Gradient Descent),具体流程如下:

  1. 在每个 epoch 开始时,将训练数据随机分为若干个 batch。
  2. 对于每个 batch,依次进行以下操作:
    • 将 batch 中的所有样本输入模型,得到预测结果。
    • 计算该 batch 的交叉熵损失函数,并累加至总损失函数。
    • 计算损失函数关于参数的梯度,并更新参数。
  3. 在所有 batch 都处理完后,计算该 epoch 的平均损失函数,并将其存入日志文件中。
  4. 当达到最大 epoch 数或者满足早停条件时,结束训练。

五. 总结

FNN 是一种结合了 FM 和 MLP 的混合模型。它通过利用 FM 的特性对高维稀疏数据进行特征组合,再通过 MLP 处理组合后的特征,从而得到更优的预测结果。在实际应用中,FNN 被广泛应用于推荐系统、广告投放等领域。

以上就是 FNN 的学习笔记,希望可以对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值