正则项的物理意义--概率矩阵分解的角度

机器学习的优化目标中, 一般会加上参数的正则项. 1 范数, 2 范数都有其物理意义. 本贴根据对论文 Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix Factorization 的学习, 从概率矩阵分解的角度来进行解释.
本贴涉及的数学式子不多, 但写起来稍嫌复杂, 希望读者有点耐心. 毕竟是机器学习的一个坎, 迈过去就好了.

1. 数据

电影评分数据集可以表示为一个矩阵 R = [ r i j ] N × M ∈ [ 0..5 ] N × M \mathbf{R} = [r_{ij}]_{N \times M} \in [0..5]^{N \times M} R=[rij]N×M[0..5]N×M.
其中

  • N N N 为用户数量;
  • M M M 为电影数量;
  • r i j r_{ij} rij 为用户 i i i 对电影 j j j 的评分, 特别地, r i j = 0 r_{ij} = 0 rij=0 表示用户 i i i 并未看过电影 j j j.

2. 模型

矩阵分解的思路是获得两个低秩矩阵 U = [ u 1 ; …   ; u N ] = [ u i k ] N × K ∈ R N × K \mathbf{U} = [\mathbf{u}_1; \dots; \mathbf{u}_N] = [u_{ik}]_{N \times K} \in \mathbb{R}^{N \times K} U=[u1;;uN]=[uik]N×KRN×K V = [ v 1 ; …   ; v M ] = [ v j k ] M × K ∈ R M × K \mathbf{V} = [\mathbf{v}_1; \dots; \mathbf{v}_M] = [v_{jk}]_{M \times K} \in \mathbb{R}^{M \times K} V=[v1;;vM]=[vjk]M×KRM×K. K ≪ min ⁡ { M , N } K \ll \min\{M, N\} Kmin{M,N}, 因此被称为 “低秩”.
如果 U V T \mathbf{U} \mathbf{V}^{\mathrm{T}} UVT R \mathbf{R} R 非零的部分拟合得好, 则有理由相信为零那部分的值 (未知值) 可以通过这个拟合预测出来.

3. 基本假设

假设: 给定 U \mathbf{U} U V \mathbf{V} V, 观测到 R \mathbf{R} R 的条件概率分布为:
p ( R ∣ U , V , σ 2 ) = ∏ i = 1 N ∏ j = 1 M [ N ( r i j ∣ u i v j T , σ 2 ) ] I i j (1) p(\mathbf{R} \vert \mathbf{U}, \mathbf{V}, \sigma^2) = \prod_{i = 1}^N \prod_{j = 1}^M \left[\mathcal{N}\left(r_{ij} \vert \mathbf{u}_i \mathbf{v}_j^{\mathbf{T}}, \sigma^2\right)\right]^{I_{ij}} \tag{1} p(RU,V,σ2)=i=1Nj=1M[N(rijuivjT,σ2)]Iij(1)
其中

  • N \mathcal{N} N 是有名的高斯分布, N ( x ∣ μ , σ 2 ) = 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) \mathcal{N}(x \vert \mu, \sigma^2) = \frac{1}{\sqrt{2 \pi}\sigma} \exp \left(- \frac{(x - \mu)^2}{2 \sigma^2}\right) N(xμ,σ2)=2π σ1exp(2σ2(xμ)2);
  • μ = u i v j T \mu = \mathbf{u}_i \mathbf{v}_j^{\mathbf{T}} μ=uivjT 表示以预测值为均值;
  • x = r i j x = r_{ij} x=rij 表示观测值;
  • I i j = 1 I_{ij} = 1 Iij=1 当且仅当 r i j ≠ 0 r_{ij} \ne 0 rij=0, 否则 I i j = 0 I_{ij} = 0 Iij=0. 从连乘来看, 就表示只关心那些已经有评分的数据;
  • 所有数据一视同仁, 所以用连乘.

说明:

  • 根据子矩阵 U \mathbf{U} U V \mathbf{V} V, 用户对 i i i 对项目 j j j 的评分预测值为 u i v j T \mathbf{u}_i \mathbf{v}_j^{\mathbf{T}} uivjT. 而真实评分为 r i j r_{ij} rij. 由于子矩阵的 K K K 值有限, 而且子矩阵要拟合的是非常多的评分值, 两者通常不会精确地相等. 例如, 预测值为 3.21, 而真实值为 3. 但我们会认为, 如果子矩阵靠谱的话, 预测值与真实值应该差别较小. 或反过来假设: 真实值在预测值左右摆动, 而且越接近后者概率越大. 这一假设可以描述为: 真实值服从以预测值为均值, 某个未知 σ \sigma σ 为方差的高斯分布. 作为一个分布, 它适用于所有的预测值与实际值.
  • 我们关心的是所有的已知评分的预测 (拟合) 情况, 因此用连乘式子. 连乘也是概率计算最常用招数.

4. 推导过程

由于我们观测到的是 R \mathbf{R} R, 需要求的是 U \mathbf{U} U V \mathbf{V} V.
根据贝叶斯公式, 忽略参数 σ 2 \sigma^2 σ2 我们可以写
p ( U , V ∣ R ) = p ( R ∣ U , V ) p ( U , V ) p ( R ) (2) p(\mathbf{U}, \mathbf{V} \vert \mathbf{R}) = \frac{p(\mathbf{R} \vert \mathbf{U}, \mathbf{V})p(\mathbf{U}, \mathbf{V})}{ p(\mathbf{R})} \tag{2} p(U,VR)=p(R)p(RU,V)p(U,V)(2)
R \mathbf{R} R 既然是已经观测到的数据, 优化时可以不予以考虑.
假设 U \mathbf{U} U V \mathbf{V} V 独立. 则我们可能把优化式子写为
arg max ⁡ U , V p ( U , V ∣ R ) = arg max ⁡ U , V p ( R ∣ U , V ) p ( U ) p ( V ) (3) \argmax_{\mathbf{U}, \mathbf{V}} p(\mathbf{U}, \mathbf{V} \vert \mathbf{R}) = \argmax_{\mathbf{U}, \mathbf{V}} p(\mathbf{R} \vert \mathbf{U}, \mathbf{V})p(\mathbf{U}) p(\mathbf{V}) \tag{3} U,Vargmaxp(U,VR)=U,Vargmaxp(RU,V)p(U)p(V)(3)
U \mathbf{U} U V \mathbf{V} V 服从均值为 0 的球形高斯分布, 即
p ( U ∣ σ U 2 ) = ∏ i = 1 N N ( u i ∣ 0 , σ U 2 I ) (4) p(\mathbf{U} \vert \sigma_{\mathbf{U}}^2) = \prod_{i = 1}^N \mathcal{N}\left(\mathbf{u}_i \vert 0, \sigma_{\mathbf{U}}^2 \mathbf{I}\right) \tag{4} p(UσU2)=i=1NN(ui0,σU2I)(4)
p ( V ∣ σ V 2 ) = ∏ i = 1 M N ( v i ∣ 0 , σ V 2 I ) (5) p(\mathbf{V} \vert \sigma_{\mathbf{V}}^2) = \prod_{i = 1}^M \mathcal{N}\left(\mathbf{v}_i \vert 0, \sigma_{\mathbf{V}}^2 \mathbf{I}\right) \tag{5} p(VσV2)=i=1MN(vi0,σV2I)(5)
由于到处是乘法, 我们使用自然对数将原式写为:
p ( U , V ∣ R , σ 2 , σ U 2 , σ V 2 ) = − ∑ i = 1 N ∑ j = 1 M I i j ( ln ⁡ ( 2 π σ ) + ( r i j − u i T v j ) 2 2 σ 2 ) − 1 2 σ U 2 ∑ i = 1 N u u T − 1 2 N K ln ⁡ σ U 2 − 1 2 σ V 2 ∑ i = 1 M v v T − 1 2 M K ln ⁡ σ V 2 + C (6) \begin{aligned}p(\mathbf{U}, \mathbf{V} \vert \mathbf{R}, \sigma^2, \sigma_{\mathbf{U}}^2, \sigma_{\mathbf{V}}^2) = & - \sum_{i = 1}^N \sum_{j = 1}^M I_{ij}\left(\ln(\sqrt{2\pi} \sigma) + \frac{\left(r_{ij} - \mathbf{u}_i^{\mathbf{T}} \mathbf{v}_j\right)^2}{2 \sigma^2}\right)\\ &- \frac{1}{2\sigma_{\mathbf{U}}^2} \sum_{i = 1}^N \mathbf{u}\mathbf{u}^{\mathrm{T}} - \frac{1}{2}NK \ln \sigma_{\mathbf{U}}^2\\ &- \frac{1}{2\sigma_{\mathbf{V}}^2} \sum_{i = 1}^M \mathbf{v}\mathbf{v}^{\mathrm{T}}- \frac{1}{2}MK \ln \sigma_{\mathbf{V}}^2 + C \end{aligned} \tag{6} p(U,VR,σ2,σU2,σV2)=i=1Nj=1MIij(ln(2π σ)+2σ2(rijuiTvj)2)2σU21i=1NuuT21NKlnσU22σV21i=1MvvT21MKlnσV2+C(6)
由于 (6) 式诸多项与参数无关, 最大化 (6) 就简化为
min ⁡ E = ∑ i = 1 N ∑ j = 1 M I i j ( r i j − u i T v j ) 2 + λ U 2 ∥ U ∥ F 2 + λ V 2 ∥ V ∥ F 2 \min E = \sum_{i = 1}^N \sum_{j = 1}^M I_{ij}\left(r_{ij} - \mathbf{u}_i^{\mathbf{T}} \mathbf{v}_j\right)^2 + \frac{\lambda_\mathbf{U}}{2} \|\mathbf{U}\|_F^2 + \frac{\lambda_\mathbf{V}}{2} \|\mathbf{V}\|_F^2 minE=i=1Nj=1MIij(rijuiTvj)2+2λUUF2+2λVVF2
其中 λ U = σ 2 / σ U 2 \lambda_\mathbf{U} = \sigma^2 / \sigma_{\mathbf{U}}^2 λU=σ2/σU2, λ V = σ 2 / σ V 2 \lambda_\mathbf{V} = \sigma^2 / \sigma_{\mathbf{V}}^2 λV=σ2/σV2.
于是就获得了相应的正则项.

5. 小结

从这里可以看出, 正则项并非强加上去, 而是推导出来的. 这是本贴撰写的源动力.
几点未完成工作:

  1. λ U \lambda_\mathbf{U} λU λ V \lambda_\mathbf{V} λV好像不能从数据求出, 还是只有用户自己设定;
  2. 推导的过程还不完整, 需要检查. 特别是球形高斯那里, 可以视为作业.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值