zoukankan      html  css  js  c++  java
  • 【RS】AutoRec: Autoencoders Meet Collaborative Filtering

    【论文标题】AutoRec: Autoencoders Meet Collaborative Filtering (WWW'15)

    【论文作者】Suvash Sedhain †∗ , Aditya Krishna Menon †∗ , Scott Sanner †∗ , Lexing Xie ∗†

    【论文链接】Paper (2-pages // Double column)

    <札记非FY>

    ====================首先,AutoEncoder 是什么?[ref-1]====================

    在神经网络有,一有类特殊的网络叫做AutoEncoder,简称AE。
    AE是一个包含单隐层的神经网络。如下图所示: 
     
    AE的目标是学习一个模型能使得输出尽可能接近输入,选用平方误差作为 loss function 后目标为  。本质上AE是学习到了一个原始输入的一个向量表达。
    从input layer->hidden layer的过程是encode的过程,
    从hidden layer->output layer是个decode的过程,希望这个模型能够对原始数据进行最大程度的重构。
    AE是一种无监督聚类的方法,用途很多,比如特征提取、数据压缩等。
     
    AutoRec的想法是将AE拿来直接学习Rating Matrix里的行或列数据的压缩向量表达,分为user-based AutoRec和item-based AutoRec两种。对于item-based AutoRec,input为R里的每列,即每个item用各个user对它的打分作为其向量描述;对于user-based AutoRec是用R里的每行。下图给出了item-based AutoRec的网络结构和数据流程。
     

    =======================关于论文内容==============================

    【概要简介】- [ref-2]

    这篇文章提出了一种基于AutoEncoder的协同过滤方法来解决评分预测问题。
    将协同过滤和 Autoencoder 结合,在协同过滤算法中,假设有m个用户和n个物品,以及用户对物品的评分矩阵R,任务是尽可能准确地推测出用户对未评分物品的评分值。实验证明在RMSE指标数上优于CF和RBM等模型。
     
    目的:通过AutoEncoder模型来预测用户-物品矩阵(评分矩阵M x N)中缺失的评分值。
     
    【具体模型】
     
    1、模型输入
     item-based:每个item用各个user对它的打分作为其向量描述(user-based:每个user用该user对各个item的打分作为输入)。
     
    n:物品数 i=1...n
    m:用户数
     
    2、AutoEncoder 模型
       AutoEncoder是解决这样一个问题:
     
    其中的输出 h(r;theta ) 为:

    3、AutoRec 模型

    AutoRec 在传统 AutoEncoder的基础上做了如下的变化:

    • 损失函数只和观察到的元素有关
    • 加上正则化项
     因此,目标函数为:
     
    4、模型输出(即预测函数)
     
    将模型对 input 重建后的新向量里对应位置的值认为是预测值。
     
    5、实验结果

    对比实验,基线:RBM-CF

    AutoRec和RBM-CF的区别:

    • RBM是生成模型,AutoRec是判别模型
    • RBM通过极大化对数似然来估计参数,AR直接用极小化RMSE
    • 训练中,RBM需要用对比散度,AR直接用梯度下降
    • RBM只能预测离散分数
    • 参数量:RBM-CF:nkr(or mkr)AutoRec:nk(or mk)

    实验结果:

    通过对比各个模型的实验结果:
    (1)item-based AutoRec胜出user-based AutoRec,比传统的FM类方法都要更好。(这可能是由于每个项目评分的平均数量是高于每个用户的输入评分数;用户评分数量的高方差导致基于用户的方法的预测不可靠)。
    (2)sigmoid好于RELU。
    (3)随着hidden 层节点数增加,RMSE越来越小。

    6、实验源码:GitHub :https://github.com/gtshs2/Autorec

    【Reference】

    1、https://blog.csdn.net/studyless/article/details/70880829

    2、https://www.jianshu.com/p/4aadd0bdc901

    3、https://blog.csdn.net/qq_40006058/article/details/87936043

  • 相关阅读:
    Java对象克隆
    Java对象toString()方法
    Java对象相等比较(Equals)
    数据传送到后端(二)
    前端数据传送至后端(一)
    jquery导航栏(方法1)
    js导航栏
    纯css导航栏
    jquery导航栏(方法2)
    带尖角的边框(方法二)
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/11202327.html
Copyright © 2011-2022 走看看