AutoRec 模型笔记

AutoRec 模型

1. AutoRec 模型定义

AutoRec 是一个基于自编码器的协同过滤模型,该模型将深度学习中的神经网络和推荐结合。

2. 自编码器

  • 作用:对于输入向量 r, 通过自编码器后,将得到一个和 r 很接近的向量。对于通过自编码器的数据,相当于取出输入数据的“精华”,即自编码器完成了对输入数据的压缩和降维。
  • 设自编码器的重建函数为 h ( r ; θ ) h(r;\theta) h(r;θ), 自编码器的目标函数为: m i n θ ∑ r ∈ S ∣ ∣ r − h ( r ; θ ) ∣ ∣ 2 2 min_{\theta}\sum_{r\in S}||r-h(r;\theta)||_2^2 minθrSrh(r;θ)22 其中 S 为所有数据向量的集合。

3. 模型训练

训练思路:使用单层神经网络的结构来解决构建重构函数的问题,以 Item-based CF 场景为例,对于 user-item rating matrix (n 个用户,m 个商品), 用户向量为:
r ( u ) = ( R u 1 , R u 2 , … … , R u m ) r^{(u)}=(R_{u1}, R_{u2},……, R_{um}) r(u)=(Ru1,Ru2,,Rum)
商品向量为:
r ( i ) = ( R 1 i , R 2 i , … … , R m i ) r^{(i)}=(R_{1i}, R_{2i}, ……, R_{mi}) r(i)=(R1i,R2i,,Rmi)
网络的输入和输出都是是物品的评分向量:
r ( i ) = ( R 1 i , R 2 i , … … , R m i ) r^{(i)}=({R_{1i}, R_{2i}, ……, R_{mi}}) r(i)=(R1i,R2i,,Rmi)可以利用梯度反向传播完成训练。

在这里插入图片描述

重建函数为:

在这里插入图片描述

其中 θ = { W , V , u , b } \theta=\{W, V, u, b\} θ={W,V,u,b} f 、 g f、g fg 分别为输出层神经元和隐层神经元的激活函数。

为防止重构函数的过拟合,可以加入 L2 正则化,形式如下:

在这里插入图片描述

4. 模型工作过程

在 Item-based CF 中,输入物品 i 的评分向量 r ( i ) r^{(i)} r(i) 时,模型的输出向量 h ( r ( i ) , θ ) h(r^{(i)}, \theta) h(r(i),θ) 就是所有用户对物品 i 的评分预测,那么用户 u 对物品 i 的评分预测为:

R ^ u i = ( h ( r ( i ) ; θ ^ ) ) u \hat{R}_{ui}=(h(r^{(i)};\hat{\theta}))_u R^ui=(h(r(i);θ^))u

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

4.1 I-AutoRec 和 U-AutoRec 的区别

  1. 基于物品的 AutoRec 对某一用户做推荐时,需要多次输入物品向量,才能得到用户对所有物品的预测评分;
  2. 基于用户的 AutoRec 对某一用户做推荐时,只需一次输入用户向量,即可得到用户对所有物品的预测评分,不过用户向量的稀疏性会影响基于用户的 AutoRec 模型的性能

5. AutoRec的局限性

  • 单隐层的 AutoEncoder 的表达能力不足

参考资料

  1. 《深度学习推荐系统》-- 王喆
  2. 【模型篇】AutoRec模型 - 很吵请安静的文章 - 知乎
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值