参考
参考以下资料
总结
AutoRec利用自编码器具有非监督聚类的特性,能够在一定程度上还原压缩后的数据,把还原后的结果作为预测值。在数据稀疏的情况下,表现效果也比较差。但是提供了把深度学习应用在推荐系统上的一种思路。
拓展阅读
自编码器
以下内容源于知乎介绍自编码器
自编码器(Autoencoder,AE),是一种利用反向传播算法使得输出值近似于输入值的神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。它由编码器和解码器两部分构成,分别用于压缩和重构。整个自编码器可以用函数g(f(x)) = r来描述,其中输出r与原始输入x相近。
主要应用于数据去噪和可视化降维。
代码示例如下:
input_size = 784
hidden_size = 64
output_size = 784
# x为输入层,size大小784
x = Input(shape=(input_size,))
# Encoder h为隐藏层,通过relu(x)来得到?size64
# Dense为全连接层 可参考 https://blog.csdn.net/orDream/article/details/106355491
h = Dense(hidden_size, activation='relu')(x)
# Decoder r为输出层 通过sigmoid(h)得到
r = Dense(output_size, activation='sigmoid')(h)
autoencoder = Model(input=x, output=r)
autoencoder.compile(optimizer='adam', loss='mse')
受限玻尔兹曼机(RBM,Restricted Boltzmann machine)
RBM在本文中作为一个SOTA方法用来对比,可参考机器之心RBM介绍
其特点为相邻层之间是相连的,但是同层之间的节点是不相连。
对于简单的前馈网络,RBM 节点起着自编码器的作用,除此之外,别无其它。
想继续深入了解,可以看从玻尔兹曼机到深度置信网络
区别和联系:Hopfield网络、BM(玻尔兹曼机)、退火算法、BP