您可能感兴趣
本文是深度学习在推荐系统中的应用及代码集锦第二篇,上面链接是第一篇,本文的论文编号沿用第一篇的论文编号
[7] Joint deep modeling of users and items using reviews for recommendation
Lei Zheng, Vahid Noroozi, Philip S. Yu
WSDM 2017
https://arxiv.org/pdf/1701.04783.pdf
这篇文章利用深度模型从评论文本中学习商品的特性和用户行为。模型名称为DeepCoNN,Deep Cooperative Neural
Networks,在最后一层包含两个并行的神经网络。其中一个利用用户的评论来学习用户行为,另一个用于该商品的相关评论来挖掘商品属性。然后上面的一个共享层将这两个网络联合起来。共享层能够类似与分解机技巧来学习用户和商品之间交互作用的隐含因子。
下面是一些符号约定
模型结构如下
数据集描述信息如下
各模型效果对比如下
代码地址
https://github.com/chenchongthu/DeepCoNN
我是分割线
[8] Collaborative Denoising Auto-Encoders for Top-N Recommender Systems
Yao Wu et al.
WSDM 2016
http://alicezheng.org/papers/wsdm16-cdae.pdf
这篇文章提出一种新的用于top-N推荐的算法,这种算法基于去噪自编码。事实上,该模型是若干知名协同过滤模型的泛化。
相关模型及损失函数如下
本文所提出的CDAE示例如下
学习算法伪代码如下
一些映射函数及梯度公式如下
下面是数据集统计信息
不同激活函数对应的情形统计如下
模型结果如下
是否固定权值影响如下
代码地址
https://github.com/jasonyaw/CDAE
是分割线
[9] Wide & Deep Learning for Recommender Systems
Heng-Tze Cheng et al.
Proceedings of the 1st Workshop on Deep Learning for Recommender Systems
https://arxiv.org/pdf/1606.07792.pdf
这篇文章利用宽深网络对宽线性模型和深度神经网络联合训练,进而可以将记忆性和泛化性结合起来。
网络结构示例如下
整体架构如下
推荐流程示例如下
宽深网络用于APP推荐架构如下
实验结果对比如下
不同参数的对比如下
代码地址
https://github.com/ichuang/tflearn_wide_and_deep
我是分割线
[10] Restricted Boltzmann Machines for Collaborative Filtering
Ruslan Salakhutdinov, Andriy Mnih, Geoffrey Hinton
ICML 2017
https://www.cs.toronto.edu/~rsalakhu/papers/rbmcf.pdf
这篇文章将两层的无向图模型,限制性玻尔兹曼机,用于协同过滤。
结构示例如下
条件RBM用于协同过滤结构如下
各方法效果对比如下
参考代码地址
https://github.com/felipecruz/CFRBM
我是分割线
[11] DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
Huifeng Guo et al.
IJCAI 2017
https://www.ijcai.org/proceedings/2017/0239.pdf
DeepFM这种算法是一种基于分解机的神经网络,该算法由哈尔滨工业大学深圳研究生院联合华为诺亚方舟实验室于2017年提出的。
这种算法是一种端到端的学习模型,不仅考虑了低阶的特征融合,也考虑了高阶的特征融合。该算法利用深度学习来学习特征,利用分解机做推荐。
本图给出了DeepFM的示意图。其中的“宽”元素和“深”元素共享同样的输入,它们的输入都是原始的特征向量。这种结构可以使得DeepFM从原生特征中同时学到低阶的特征之间的相互作用和高阶的特征之间的相互作用。
分解机模型可以通过将隐含因子作内积来学到结对的特征之间的交互作用,并且能够取得较好的效果。从原理上来讲,分解机模型可以学到更高阶的特征,但是实际应用中一般只考虑二阶的,更高阶的计算复杂度会更高。
DeepFM中的分解机用于学习低阶的特征之间的交互作用,深度神经网络用于学习高阶的特征之间的相互作用。
在数据处理部分,针对类别类型的数据,一般用one-hot编码来处理,针对连续型变量,保留值本身即可,也可以离散化之后利用one-hot编码来处理。
DeepFM中的FM结构如下
FM的输出形式如下
其中既包含了一阶的特征,也包含了二阶的特征。
深层神经网络的结构如下
注意,这里的深层神经网络,是深层的前馈神经网络,用来学习高阶特征。
其中嵌入层的结构如下
值得注意的是,这里的嵌入层允许输入层的节点数不一样,而嵌入以后节点数保持一致。分解机中所学到的权重可以用于将输入层映射到嵌入层。
下图给出了比较类似的网络结构
各个模型相互之间的比较如下
各模型运行时间比较
性能比较如下
容易看出,DeepFM的效果最好
激活函数类型的影响
容易看出针对DeepFM,relu的表现优于tanh。
dropout对模型的影响
容易看出dropout的比例对DeepFM有一定的影响,取值0.9时效果最好。其中dropout的值表示保留某个神经元的概率。
神经元个数对模型的影响
容易看出,单元数对DeepFM的影响不显著。
网络层数对模型的影响
容易看出,层数对DeepFM的影响不是那么显著。
网络形状对模型的影响
其中constant的形状为200-200-200,即每一层都有200个单元,increasing为100-200-300,即单元数随层数的增大而变大,decreasing为300-200-100,即单元数随层数的减小而变小,diamond为150-300-150,即单元数先变大后变小。容易看出,网络形状对DeepFM的影响不大。
代码地址
https://github.com/Leavingseason/OpenLearning4DeepRecsys
https://github.com/ChenglongChen/tensorflow-DeepFM
我是分割线
[12] Long and Short-Term Recommendations with Recurrent Neural Networks
Robin Devooght, Hugues Bersini
UMAP 2017
http://iridia.ulb.ac.be/~rdevooght/papers/UMAP__Long_and_short_term_with_RNN.pdf
这篇文章将循环神经网络用于协同过滤。
数据集描述如下
框架如下
参数设置如下
各方法对比如下
数据集地址
http://iridia.ulb.ac.be/~rdevooght/rnn_cf_ data.zip
代码地址
https://github.com/rdevooght/sequence-based-recommendations
我是分割线
相关文章推荐