AutoRec模型结构详解

一、前言

这个模型2015年由澳大利亚国立大学提出, 是个单隐层的神经网络推荐模型,网络结构简单,非常适合深度学习推荐系统的入门模型,但由于比较简单, 表达能力不足, 并没有真正的被应用。

二、AutoRec介绍

它的基本原理是利用协同过滤中的共现矩阵, 完成物品向量或者用户向量的自编码。 再利用自编码的结果得到用户对物品的预估评分, 进而进行的推荐排序。

1、AutoRec架构:

结构图如下:

 

 自编码器输出层的节点数与输入层相等,训练这个网络以期望得到近似恒等函数, 假设数据向量是r, 自编码器的作用是将向量r 作为输入, 通过自编码器, 得到的输出向量尽量接近其本身。
那么自编码器的目标函数:

图中的V 和W 分别表示输入层到隐层, 隐层到输出层的参数矩阵, 如果熟悉神经网络的计算, 这个模型的重构函数表示:
 

 

这里的f ,g都是激活函数。为防止过拟合, 还加入了L2正则, 即最终的目标函数为:

 n表示所有向量的集合,输出向量尽量接近其本身。完成自编码器的训练后, 相当于在h(r;θ)中存储了所有数据向量的“精华”。经过自编码器生成的输出向量, 经过了自编码器的“泛化”过程, 具备了一定的缺失维度的预测能力, 这也是自编码器能用于推荐系统的原因。


2、AutoRec怎么用

假设有m 个用户, n 个物品, 用户会对物品中的一个或者几个评分, 这样就会得到一个m × n 的评分矩阵,未评分的可用默认值或者均值表示。 这个就是共现矩阵了。

对于一个物品i来说,单个m维的向量就是它的评分表示(物品1的向量: r1=(5,3,4,3,1)),AutoRec也是要通过自编码器学习一个重建函数h ( r ; θ ) , 使得所有该重建函数生成的评分向量与原评分向量的平方残差和最小。


3、AutoRec的推荐过程

当我们输入物品i的评分向量r ( i ) 的时候, 模型的输出向量h ( r ( i ) , θ ) 就是所有用户对物品i的评分预测。 那么其中的第u维就是用户u对物品i的评分R ^ u i

通过遍历输入物品向量就可以得到用户u 对所有物品的评分预测, 进而根据评分预测排序得到推荐列表。

三、AutoRec的总结

AutoRec模型由于结构比较简单, 表达能力不足,并且往往共现矩阵非常的稀疏, 更加加大了模型的预测难度。

所以这个东西是将深度学习思想应用于推荐系统的初步尝试, 拉开了使用深度学习思想解决推荐问题的序幕。

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...