深度学习在推荐系统中的应用及代码集锦(2)

您可能感兴趣

本文是深度学习在推荐系统中的应用及代码集锦第二篇,上面链接是第一篇,本文的论文编号沿用第一篇的论文编号

[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,在最后一层包含两个并行的神经网络。其中一个利用用户的评论来学习用户行为,另一个用于该商品的相关评论来挖掘商品属性。然后上面的一个共享层将这两个网络联合起来。共享层能够类似与分解机技巧来学习用户和商品之间交互作用的隐含因子。

下面是一些符号约定

深度学习在推荐系统中的应用及代码集锦(2)_第1张图片

模型结构如下

深度学习在推荐系统中的应用及代码集锦(2)_第2张图片

数据集描述信息如下

深度学习在推荐系统中的应用及代码集锦(2)_第3张图片

各模型效果对比如下

深度学习在推荐系统中的应用及代码集锦(2)_第4张图片

深度学习在推荐系统中的应用及代码集锦(2)_第5张图片

代码地址

https://github.com/chenchongthu/DeepCoNN


                            smiley_12.png我是分割线smiley_12.png


[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推荐的算法,这种算法基于去噪自编码。事实上,该模型是若干知名协同过滤模型的泛化。

相关模型及损失函数如下

深度学习在推荐系统中的应用及代码集锦(2)_第6张图片

本文所提出的CDAE示例如下

深度学习在推荐系统中的应用及代码集锦(2)_第7张图片

学习算法伪代码如下

深度学习在推荐系统中的应用及代码集锦(2)_第8张图片

一些映射函数及梯度公式如下

深度学习在推荐系统中的应用及代码集锦(2)_第9张图片

下面是数据集统计信息

深度学习在推荐系统中的应用及代码集锦(2)_第10张图片

不同激活函数对应的情形统计如下

深度学习在推荐系统中的应用及代码集锦(2)_第11张图片

模型结果如下

深度学习在推荐系统中的应用及代码集锦(2)_第12张图片

是否固定权值影响如下

深度学习在推荐系统中的应用及代码集锦(2)_第13张图片

代码地址

https://github.com/jasonyaw/CDAE


                           smiley_12.png是分割线smiley_12.png


[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

这篇文章利用宽深网络对宽线性模型和深度神经网络联合训练,进而可以将记忆性和泛化性结合起来。

网络结构示例如下

深度学习在推荐系统中的应用及代码集锦(2)_第14张图片

整体架构如下

深度学习在推荐系统中的应用及代码集锦(2)_第15张图片

推荐流程示例如下

深度学习在推荐系统中的应用及代码集锦(2)_第16张图片

宽深网络用于APP推荐架构如下

深度学习在推荐系统中的应用及代码集锦(2)_第17张图片

实验结果对比如下

深度学习在推荐系统中的应用及代码集锦(2)_第18张图片

不同参数的对比如下

深度学习在推荐系统中的应用及代码集锦(2)_第19张图片

代码地址

https://github.com/ichuang/tflearn_wide_and_deep


                           smiley_12.png我是分割线smiley_12.png


[10] Restricted Boltzmann Machines for Collaborative Filtering

Ruslan Salakhutdinov, Andriy Mnih, Geoffrey Hinton

ICML 2017

https://www.cs.toronto.edu/~rsalakhu/papers/rbmcf.pdf

这篇文章将两层的无向图模型,限制性玻尔兹曼机,用于协同过滤。

结构示例如下

深度学习在推荐系统中的应用及代码集锦(2)_第20张图片

条件RBM用于协同过滤结构如下

深度学习在推荐系统中的应用及代码集锦(2)_第21张图片

各方法效果对比如下

深度学习在推荐系统中的应用及代码集锦(2)_第22张图片

深度学习在推荐系统中的应用及代码集锦(2)_第23张图片

参考代码地址

https://github.com/felipecruz/CFRBM


                          smiley_12.png 我是分割线smiley_12.png


[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年提出的。

这种算法是一种端到端的学习模型,不仅考虑了低阶的特征融合,也考虑了高阶的特征融合。该算法利用深度学习来学习特征,利用分解机做推荐。

640?wx_fmt=png

本图给出了DeepFM的示意图。其中的“宽”元素和“深”元素共享同样的输入,它们的输入都是原始的特征向量。这种结构可以使得DeepFM从原生特征中同时学到低阶的特征之间的相互作用和高阶的特征之间的相互作用。

分解机模型可以通过将隐含因子作内积来学到结对的特征之间的交互作用,并且能够取得较好的效果。从原理上来讲,分解机模型可以学到更高阶的特征,但是实际应用中一般只考虑二阶的,更高阶的计算复杂度会更高。

DeepFM中的分解机用于学习低阶的特征之间的交互作用,深度神经网络用于学习高阶的特征之间的相互作用。

在数据处理部分,针对类别类型的数据,一般用one-hot编码来处理,针对连续型变量,保留值本身即可,也可以离散化之后利用one-hot编码来处理。

DeepFM中的FM结构如下

640?wx_fmt=png

FM的输出形式如下

640?wx_fmt=png

其中既包含了一阶的特征,也包含了二阶的特征。

深层神经网络的结构如下

640?wx_fmt=png

注意,这里的深层神经网络,是深层的前馈神经网络,用来学习高阶特征。

其中嵌入层的结构如下

640?wx_fmt=png

值得注意的是,这里的嵌入层允许输入层的节点数不一样,而嵌入以后节点数保持一致。分解机中所学到的权重可以用于将输入层映射到嵌入层。

下图给出了比较类似的网络结构

640?wx_fmt=png

各个模型相互之间的比较如下

640?wx_fmt=png

各模型运行时间比较

640?wx_fmt=png

性能比较如下

640?wx_fmt=png

容易看出,DeepFM的效果最好

激活函数类型的影响

640?wx_fmt=png

容易看出针对DeepFM,relu的表现优于tanh。

dropout对模型的影响

640?wx_fmt=png

容易看出dropout的比例对DeepFM有一定的影响,取值0.9时效果最好。其中dropout的值表示保留某个神经元的概率。

神经元个数对模型的影响

640?wx_fmt=png

容易看出,单元数对DeepFM的影响不显著。

网络层数对模型的影响

640?wx_fmt=png

容易看出,层数对DeepFM的影响不是那么显著。

网络形状对模型的影响

640?wx_fmt=png

其中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


                           smiley_12.png我是分割线smiley_12.png


[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

这篇文章将循环神经网络用于协同过滤。

数据集描述如下

深度学习在推荐系统中的应用及代码集锦(2)_第24张图片

框架如下

深度学习在推荐系统中的应用及代码集锦(2)_第25张图片

参数设置如下

深度学习在推荐系统中的应用及代码集锦(2)_第26张图片

各方法对比如下

深度学习在推荐系统中的应用及代码集锦(2)_第27张图片

深度学习在推荐系统中的应用及代码集锦(2)_第28张图片

数据集地址

http://iridia.ulb.ac.be/~rdevooght/rnn_cf_ data.zip

代码地址

https://github.com/rdevooght/sequence-based-recommendations


                                 smiley_12.png 我是分割线smiley_12.png


相关文章推荐

你可能感兴趣的:(深度学习在推荐系统中的应用及代码集锦(2))