Coursera - 机器学习技法 - 课程笔记 - Week 15

Matrix Factorization

Linear Network Hypothesis

  • Netflix推荐问题:
    • 对电影 m m m,有用户 n n n的评分 r n m r_{nm} rnm
    • x ~ n = ( n ) ,   y n = r n m \bold {\tilde x}_n = (n),\ y_n = r_{nm} x~n=(n), yn=rnm
    • 抽象特征,称之为类别特征
  • 大部分ML模型都是处理数值特征
    • 线性特征
    • 拓展线性网络——NNet
    • 决策树可以处理非数值特征
  • 思路:将类别特征转换到数值特征——encoding
    • 二元向量编码——one-hot
  • 整合对每一个用户 n n n,有 y n = [ r n 1 , ? , ? , r n 4 , … , r n M ] y_n = [r_{n1}, ?, ?, r_{n4}, \ldots, r_{nM}] yn=[rn1,?,?,rn4,,rnM],其中问号为未评分情况
  • 思路:使用 N − d ~ − M N - \tilde d - M Nd~M的神经网络完成特征抽取
    • 由于输入只有一个为1,其余为0,中间隐藏层的神经元可以为线性
    • Linear Network
    • 为了方便表示,将两层权重表示成两个矩阵 V N × d ~ T V^T_{N \times \tilde d} VN×d~T W d ~ × M W_{\tilde d \times M} Wd~×M
    • 则整个线性网络表示为 h ( x ) = W T V x h(\bold x) = W^T V \bold x h(x)=WTVx
    • 对每一个用户, h ( x n ) = W T v n h(\bold x_n) = W^T \bold v_n h(xn)=WTvn,其中 v n \bold v_n vn表示 V V V的第 n n n
    • 目标即学习这两个矩阵

Basic Matrix Factorization

  • 对第 m m m个电影,可以视为一个简单的线性模型 h m ( x ) = w m T Φ ( x ) h_m(\bold x) = \bold w_m^T \Phi(\bold x) hm(x)=wmTΦ(x)
  • 则有 r n m ≈ w m T v n r_{nm} \approx \bold w_m^T \bold v_n rnmwmTvn
  • 回归任务,平方误差(省略参数): E i n ( { w m } , { v n } ) = ∑ ( r n , m − w m T v n ) 2 E_{in} (\{\bold w_m\}, \{\bold v_n\}) = \sum (r_{n,m} - \bold w_m^T \bold v_n)^2 Ein({wm},{vn})=(rn,mwmTvn)2
  • 特征转换和线性模型的联合学习
  • 考虑对称性: r n m ≈ w m T v n = v n T w m r_{nm} \approx \bold w_m^T \bold v_n = \bold v_n^T \bold w_m rnmwmTvn=vnTwm
  • 矩阵形式: R ≈ V T W R \approx V^T W RVTW
    • 通过对分解出的矩阵的学习,实现对 R R R中未知项的预测
    • 抽象特征都可以使用这种解决思路
  • 最小化目标: min ⁡ W , V E i n ( { w m } , { v n } ) \min_{W, V} E_{in} (\{\bold w_m\}, \{\bold v_n\}) minW,VEin({wm},{vn})
    • 只在已知评分上计算误差
  • 双组变量优化:交替优化?
    • 固定 v n \bold v_n vn,优化 w m \bold w_m wm:在 D m \mathcal D_m Dm上的误差最小化,对每一步电影做线性回归
    • 固定 w m \bold w_m wm,优化 v n \bold v_n vn:对称性的考虑,对每一个用户做线性回归
    • 交替最小平方算法
    • 初始化:随机初始化矩阵
  • 可以认为自编码器是一个矩阵分解的特例(两个矩阵相同,所有项已知)

Stochastic Gradient Descent

  • 对于每一个样本,有误差 err ⁡ ( n , m , r n m ) = ( r n m − w m T v n ) 2 \operatorname{err}(n, m, r_{nm}) = (r_{nm} - \bold w_m^T \bold v_n)^2 err(n,m,rnm)=(rnmwmTvn)2
  • 对用户矩阵的梯度: ∇ v n = − 2 ( r n m − w m T v n ) w m \nabla_{\bold v_n} = -2 (r_{nm} - \bold w_m^T \bold v_n) \bold w_m vn=2(rnmwmTvn)wm
  • 对电影矩阵的梯度: ∇ w m = − 2 ( r n m − w m T v n ) v n \nabla_{\bold w_m} = -2 (r_{nm} - \bold w_m^T \bold v_n) \bold v_n wm=2(rnmwmTvn)vn
  • 梯度等价于 − ( r e s i d u a l ) ( o t h e r   f a c t o r ) - (residual) (other \ factor) (residual)(other factor)
  • SGD用于矩阵分解
    • 随机取得一个已知点 r n m r_{nm} rnm
    • 计算residual r ~ n m = ( r n m − w m T v n ) \tilde r_{nm} = (r_{nm} - \bold w_m^T \bold v_n) r~nm=(rnmwmTvn)
    • SGD更新
      • v n n e w ← v n + η r ~ n m w m \bold v_n^{new} \gets \bold v_n + \eta \tilde r_{nm} \bold w_m vnnewvn+ηr~nmwm
      • w m n e w ← w m + η r ~ n m v n \bold w_m^{new} \gets \bold w_m + \eta \tilde r_{nm} \bold v_n wmnewwm+ηr~nmvn

Summary of Extraction Models

  • 抽取模型:特征转换+线性模型
    • 特征转换增强数据的表达性
  • 优势:
    • 对人很容易使用——减少人设计特征的麻烦
    • 有足够的隐藏变量,足够强大
  • 劣势:
    • 优化过程比较难
    • 复杂模型,有过拟合风险
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值