论文阅读【5】DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

本文针对CTR预测问题,提出一种兼顾低阶与高阶交互特征的DeepFM模型。该模型融合FM与DNN的优势,通过输出层整合两者的预测结果,有效提升了模型性能。

请添加图片描述

本文发现特征工程对低阶和高阶交互特征有明显偏向,本文提出了一种既关注低阶特征又关注高阶交互特征的模型:DeepFM,并在实验中发现模型有效。

问题描述

本文以预测CTR(Click-through rate)为目标,具体问题见博客:论文阅读【3】Deep & Cross Network for Ad Click Predictions

本文核心思想

本文解决特征工程中偏向低阶交互特征和高阶交互特征的问题,DeepFM结合了FM在低阶交互特征的学习和DNN在高阶交互特征上的学习。
请添加图片描述
output layer: y ^ = s i g m o i d ( y F M + y D N N ) \hat y=sigmoid(yFM +yDNN)

### DeepFM: A Factorization-Machine based Neural Network for CTR Prediction DeepFM 是一种结合了因子分解机(Factorization Machine, FM)和深度神经网络(Deep Neural Network, DNN)的端到端学习模型,旨在同时捕捉低阶和高阶特征交互以提升点击率(CTR)预测的效果[^1]。该模型通过共享输入层的方式将 FM 和 DNN 结合起来,从而避免了对特征工程的依赖,并能够高效地进行训练[^2]。 如果需要获取论文《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction》的原文,可以通过以下几种方式: 1. **学术数据库**:访问主流学术数据库如 [arXiv](https://arxiv.org/)、[SpringerLink](https://link.springer.com/) 或 [IEEE Xplore](https://ieeexplore.ieee.org/) 搜索论文标题“DeepFM: A Factorization-Machine based Neural Network for CTR Prediction”。通常这些平台会提供免费或付费的下载选项。 2. **Google Scholar**:使用 [Google Scholar](https://scholar.google.com/) 搜索论文标题,可能会找到作者上传的预印本或开放获取版本[^3]。 3. **机构官网**:由于该论文由哈尔滨工业大学与华为诺亚方舟实验室合作完成,可以访问相关机构的官方网站或技术博客,查找是否提供了论文的公开下载链接[^4]。 4. **ResearchGate 或 Academia.edu**:在这些学术社交平台上搜索论文标题,有时作者会分享论文的 PDF 文件。 5. **联系作者**:如果上述方法均未成功,可以通过邮件直接联系论文的通讯作者,礼貌地请求获取论文副本。 以下是 DeepFM 的核心结构图示例代码,帮助理解模型架构: ```python import tensorflow as tf # 定义输入层 input_layer = tf.keras.layers.Input(shape=(feature_dim,)) # FM 部分 fm_first_order = tf.keras.layers.Dense(1)(input_layer) embedding_layer = tf.keras.layers.Embedding(input_dim=vocab_size, output_dim=embedding_dim)(input_layer) summed_embedding = tf.reduce_sum(embedding_layer, axis=1) squared_sum = tf.square(summed_embedding) sum_squared = tf.reduce_sum(tf.square(embedding_layer), axis=1) fm_second_order = 0.5 * tf.reduce_sum(squared_sum - sum_squared, axis=1, keepdims=True) # DNN 部分 dnn_layer = tf.keras.layers.Flatten()(embedding_layer) for units in dnn_units: dnn_layer = tf.keras.layers.Dense(units, activation='relu')(dnn_layer) # 输出层 output = tf.keras.layers.Add()([fm_first_order, fm_second_order, dnn_layer]) output = tf.keras.layers.Dense(1, activation='sigmoid')(output) # 构建模型 model = tf.keras.Model(inputs=input_layer, outputs=output) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值