计算机系统应用教程网站

网站首页 > 技术文章 正文

LibRec 每周算法:AutoRec (WWW'15)

btikc 2024-10-12 11:31:57 技术文章 2 ℃ 0 评论

今天小编继续向您介绍一篇使用AutoEncoder作为核心推荐算法的文章,此篇文章发表在了2015年的WWW Companion。这篇文章是较早地采用AutoEncoder进行推荐的论文,对后续采用类似模型作为推荐算法的工作有一定的启发和指导作用。

提前告诉大家一下,本篇本章的代码已经实现、集成到了LibRec当中,相信不久就会和大家在GitHub上见面。

Auto-Encoder

我们通常所说的AutoEncoder是包含一个隐藏层的三层神经网络,是一种无监督学习算法。AutoEncoder利用反向传播算法进行训练学习,使得目标值近似等于输入值。由于目标值近似等于输入值的特性,Auto-Encoder被广泛地应用于数据压缩、可视化等领域。同时,在很多deep learning任务中,AutoEncoder是很重要的“building block”。

AutoRec

这篇文章提出了一种基于AutoEncoder的协同过滤方法来解决评分预测问题。在协同过滤算法中,假设有m个用户和n个物品,以及用户对物品的评分矩阵R,我们的任务是尽可能准确地推测出用户对未评分物品的评分值。

Sedhain S, Menon A K, Sanner S, et al. AutoRec: Autoencoders Meet Collaborative Filtering. WWW 2015.

评分矩阵 R 中的每一行 ru 表示一个部分评分被观测到(partially observed)的用户向量;每一列 ri 表示一个部分评分被观测到(partially observed)的物品向量。本篇文章希望通过AutoEncoder将 ru 或 ri 投影到低维向量空间(这个过程叫做encode),然后再将其投影到正常空间(这个过程叫做decode),利用AutoEncoder目标值和输入值相近的特性,从而重建出(reconstruct)用户对于未评分物品的评分值。

给定评分矩阵 R 中的用户向量或物品向量 r,AutoEncoder的损失函数为:

其中关于 h 的函数是对输入 r 重建(reconstruction)后的结果,

其中,f 和 g 都是激活函数,W 为输入层到隐藏层的权重,V 为隐藏层到输出层的权重。

Item-based AutoRec

在此基础中,本文提出了item-based AutoRec(如图所示)。

在原有AutoEncoder的基础上有两点不同:(1)由于 r 的评分只是部分被观测到的,因此模型只在有观测到的评分时进行参数更新;(2)为了防止过拟合,加入了对权重的正则化。根据以上两点,AutoRec的损失函数变为:

本文采用了resilient propagation(Rprop)进行模型参数的更新。待模型收敛之后,预测用户对未评分物品的评分为:

本文在不同数据集上和其他方法进行了对比,结果如下:

结束语

本文是较早地使用AutoEncoder进行推荐的工作,对其他工作有一定的借鉴作用。同时,本文还讨论了不同激活函数下模型的性能,隐层单元数量以及隐藏层数量对模型结果的影响,详见论文。

最后,小编给各位看官列出近几年将AutoEncoder用于推荐系统的相关论文:

  • Hybrid Recommender System based on Autoencoders, DLRS workshop, 2016

  • Collaborative Denoising Auto-Encoders for Top-N Recommender Systems, WSDM, 2016

  • Deep Collaborative Filtering via Marginalized Denoising Autoencoder, CIKM, 2015

  • Relational Stacked Denoising Autoencoder for Tag Recommendation, AAAI, 2015

  • Collaborative Filtering with Stacked Denoising AutoEncoders and Sparse Inputs, NIPS workshop, 2015

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表