【推荐系统】AutoRec:当自编码器遇见协同过滤

论文地址:AutoRec: Autoencoders Meet Collaborative Filtering

一、概述

将自编码器(AutoEncoder)的思想和协同过滤结合:

  • 是个标准的自编码器
  • 利用协同过滤中的共现矩阵,完成物品向量或用户向量的自编码
  • 利用自编码的结果得到用户对物品的预估评分
自编码器是什么?
  • 目标

    • 自编码器的作用是将向量 r \bm{r} r作为输入,通过重建函数,使得得到的输出向量尽可能接近本身
  • 定义

    • 设自编码器的重建函数为 h ( r ; θ ) h(\bm{r};\theta) h(r;θ)
    • 目标函数如下,其中 S S S为所有输入向量的集合
      m i n θ ∑ r ∈ S ∣ ∣ r − h ( r ; θ ) ∣ ∣ 2 2 min_{\theta}\sum_{\bm{r}\in S}||\bm{r}-h(\bm{r};\theta)||_2^2 minθrSrh(r;θ)22
  • 作用

    • 完成数据压缩和降维:重建函数的参数数量远小于输入向量的维度
    • 泛化:输出向量不完全等同于输入向量,具备一定的缺失维度的预测能力

二、结构

  • 假设有 m m m 个用户, n n n 个物品
  • R m × n R_{m\times n} Rm×n 为用户的评分矩阵
    • 每个用户 u ∈ U = { 1 , ⋯   , m } u\in U = \{1,\cdots, m\} uU={1,,m} 可以被该用户对于 n n n个物品的评分表示: r u = ( R u 1 , R u 2 , ⋯   , R u n ) \bm{r}^{u} = (R_{u1},R_{u2},\cdots,R_{un}) ru=(Ru1,Ru2,,Run)
    • 每个物品 i ∈ I = 1 , ⋯   , n i \in I={1,\cdots,n} iI=1,,n 可以被该物品得到的 m m m个用户的评分表示为: r ( i ) = ( R 1 i , R 2 i , ⋯   , R m i ) \bm{r}^{(i)}=(R_{1i}, R_{2i}, \cdots, R_{mi}) r(i)=(R1i,R2i,,Rmi)
  • AutoRec解决的问题就是
    • 设计一个 u s e r − b a s e d user-based userbased 或者 i t e m − b a s e d item-based itembased的自编码器:
    1. r u \bm{r}^{u} ru/ r i \bm{r}^{i} ri 映射到一个低维的隐含空间
    2. 再在输出空间重建 r u \bm{r}^{u} ru/ r i \bm{r}^{i} ri
    • 通过自编码器重建的输出向量,来预测某个用户对于某个物品的评分

i t e m − b a s e d item-based itembased A u t o R e c AutoRec AutoRec 结构如下图所示:

在这里插入图片描述

  • r ( i ) r^{(i)} r(i) 为输入

  • h ( r ; θ ) h(\bm{r};\theta) h(r;θ)为网络输出的重构之后的 r ( i ) r^{(i)} r(i)
    h ( r ; θ ) = f ( W ⋅ g ( V r + μ ) + b ) h(\bm{r};\theta)=f(W\cdot g(V\bm{r}+\bm{\mu}) +\bm{b}) h(r;θ)=f(Wg(Vr+μ)+b)

    • f ( ⋅ ) f(\cdot) f(), g ( ⋅ ) g(\cdot) g() 为激活函数, θ = W , V , μ , b \theta = {W, V,\bm{\mu}, \bm{b}} θ=W,V,μ,b
    • 隐层的维度为 k k k
    • W ∈ R m × k W \in R^{m\times k} WRm×k, V ∈ R k × m V \in R^{k\times m} VRk×m
    • μ , b \bm{\mu},\bm{b} μ,b b i a s bias bias μ ∈ R k \bm{\mu} \in R^{k} μRk, b ∈ R m \bm{b} \in R^{m} bRm
  • 为防止过拟合,加入 L 2 L2 L2 正则化,目标函数如下:
    m i n θ ∑ i = 1 n ∣ ∣ r ( i ) − h ( r ( i ) ; θ ) ∣ ∣ o 2 + λ 2 ⋅ ( ∣ ∣ W ∣ ∣ F 2 + ∣ ∣ V ∣ ∣ F 2 ) min_{\theta}\sum_{i=1}^{n}||r^{(i)}-h(r^{(i)};\theta)||_{o}^{2} + \frac{\lambda}{2}\cdot(||W||^2_F+||V||_F^2) minθi=1nr(i)h(r(i);θ)o2+2λ(WF2+VF2)

模型推荐过程
  • 当输入物品 i i i 的评分向量为 r ( i ) \bm{r}^{(i)} r(i),模型的输出向量 h ( r ( i ) ; θ ) h(\bm{r^{(i)}};\theta) h(r(i);θ) 就是所有用户对于物品 i i i 的评分预测
  • u u u 维就是用户 u u u 对于物品 i i i 的预测 R ^ u i \hat{R}_{ui} R^ui:
    R ^ u i = ( h ( r ( i ) ; θ ) ) u \hat{R}_{ui} = (h(\bm{r^{(i)}};\theta))_u R^ui=(h(r(i);θ))u
  • 相较于 i t e m − b a s e d item-based itembased A u t o R e c AutoRec AutoRec u s e r − b a s e d user-based userbased A u t o R e c AutoRec AutoRec 的优势在于只需要一次模型推断就可以重建用户对所有物品的评分向量,但是用户向量的稀疏性可能会影响模型效果

三、AutoRec的特点和局限性

  • 丛神经网络出发,使用单隐层的AutoEncoder重建用户或者物品评分,具有一定的泛化和表达能力
  • 模型简单,表达能力不足
  • 拉开了使用深度学习解决推荐系统问题的序幕
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值