机器学习常识 19: 矩阵分解

摘要: 矩阵分解是使用数学应对机器学习问题的一类典型而巧妙的方法.

1. 基本概念

矩阵分解是把将一个 m × n m \times n m×n 矩阵 A \mathbf{A} A 分解为 m × k m \times k m×k 矩阵 B \mathbf{B} B n × k n \times k n×k 矩阵 C \mathbf{C} C, 使得 A ≈ B C T \mathbf{A} \approx \mathbf{B}\mathbf{C}^{\mathsf{T}} ABCT, 其中 k ≪ min ⁡ { m , n } k \ll \min\{m, n\} kmin{m,n}.
有两种常见的情况:

  • 非负矩阵分解 要求三个矩阵的元素均为非负值. 这样在其应用中才有良好的解释.
  • 稀疏矩阵分解 要求 A \mathbf{A} A 为稀疏矩阵, 即其元素绝大多数值为 0.

2. 稀疏矩阵分解的应用: 推荐系统

问题引入: 电影网站有 m > 1 0 6 m > 10^6 m>106 个用户, 以及 n > 1 0 4 n > 10^4 n>104 部电影. 由于每个用户仅看了少量 (通常少于 1 0 3 10^3 103, 很多少于 1 0 2 10^2 102) 电影, 所以评分矩阵 R = ( r i j ) m × n \mathbf{R} = (r_{ij})_{m \times n} R=(rij)m×n 是一个稀疏矩阵, 其中 r i j = 0 r_{ij} = 0 rij=0 表示用户没看这部电影, 而 1 ∼ 5 1 \sim 5 15 分表示从最不喜欢到最喜欢. 现在需要预测用户对电影的评分, 也就是将 0 0 0 替换成具体的分数.

问题定义:

  • 输入: 评分矩阵 R \mathbf{R} R, 轶 k k k.
  • 输出: 用户偏好矩阵 U ∈ R k × m \mathbf{U} \in \mathbb{R}^{k \times m} URk×m, 电影特征矩阵 V ∈ R k × n \mathbf{V} \in \mathbb{R}^{k \times n} VRk×n.
  • 优化目标:
    min ⁡ ∥ R − U T V ∥ 2 2 . (1) \min \|\mathbf{R} - \mathbf{U}^{\mathsf{T}}\mathbf{V}\|_2^2. \tag{1} minRUTV22.(1)

这里计算优化目标的时候, r i j = 0 r_{ij} = 0 rij=0 的数据点并不参加计算. 这样, 当把两个小矩阵 (也称用户子空间与项目子空间, subspace) 求到后, 直接相乘 R ′ = U T V \mathbf{R}' = \mathbf{U}^{\mathsf{T}}\mathbf{V} R=UTV, 以前 r i j = 0 r_{ij} = 0 rij=0 的地方, r i j ′ ≠ 0 r'_{ij} \neq 0 rij=0就有了值, 这就是预测评分.

有没有觉得特别神奇?

给个小的例子 (由徐媛媛提供).

R = ( 4 − − − 3 2 − − − 2 2 − 3 − − 2 − 1 − − 1 − − − − 4 1 5 4 3 − 1 − 5 3 2 4 − − − − − 3 − − − − 3 − 5 − 1 1 − 5 5 − 2 − 5 1 − 3 1 4 3 1 1 − − 1 − − 2 − − − − − 1 1 2 1 3 2 1 − − − 1 − − 3 − 1 2 3 3 1 4 5 4 − − 3 − 4 − − − − 2 3 − 1 − 1 5 1 − − 1 1 3 3 − − 5 1 5 5 − − 1 2 2 2 3 3 − 1 − − − − − 5 − 1 4 ) , \mathbf{R} = \left( \begin{array}{llllll} 4 & - & - & - & 3 & 2 & - & - & - & 2 \\ 2 & - & 3 & - & - & 2 & - & 1 & - & - \\ 1 & - & - & - & - & 4 & 1 & 5 & 4 & 3 \\ - & 1 & - & 5 & 3 & 2 & 4 & - & - & - \\ - & - & 3 & - & - & - & - & 3 & - & 5 \\ - & 1 & 1 & - & 5 & 5 & - & 2 & - & 5 \\ 1 & - & 3 & 1 & 4 & 3 & 1 & 1 & - & - \\ 1 & - & - & 2 & - & - & - & - & - & 1 \\ 1 & 2 & 1 & 3 & 2 & 1 & - & - & - & 1 \\ - & - & 3 & - & 1 & 2 & 3 & 3 & 1 & 4 \\ 5 & 4 & - & - & 3 & - & 4 & - & - & - \\ - & 2 & 3 & - & 1 & - & 1 & 5 & 1 & - \\ - & 1 & 1 & 3 & 3 & - & - & 5 & 1 & 5 \\ 5 & - & - & 1 & 2 & 2 & 2 & 3 & 3 & - \\ 1 & - & - & - & - & - & 5 & - & 1 & 4 \\ \end{array}\right), R= 42111155111242133131331512331335421313222425312214134125153213553411131235511454 ,
其中用 − - 表示 0, 更清楚一些.

U = ( 1.44 0.67 2.46 − 0.68 1.11 0.99 − 0.36 − 1.22 1.68 1.70 0.83 0.98 1.08 1.34 − 0.17 − 0.00 1.48 2.85 − 0.49 1.28 − 0.14 − 0.05 − 1.09 1.33 1.69 1.38 0.64 1.94 1.09 0.95 ) , \mathbf{U} = \left( \begin{array}{lllllllll} 1.44 & 0.67 & 2.46 & -0.68 & 1.11 & 0.99 & -0.36 & -1.22 & 1.68 & 1.70\\ 0.83 & 0.98 & 1.08 & 1.34 & -0.17 & -0.00 & 1.48 & 2.85 & -0.49 & 1.28\\ -0.14 & -0.05 & -1.09 & 1.33 & 1.69 & 1.38 & 0.64 & 1.94 & 1.09 & 0.95\\ \end{array} \right), U= 1.440.830.140.670.980.052.461.081.090.681.341.331.110.171.690.990.001.380.361.480.641.222.851.941.680.491.091.701.280.95 ,

V = ( 3.60 1.21 0.52 − 0.46 1.62 1.57 1.46 − 0.34 0.01 0.91 1.93 0.66 0.62 2.27 − 0.41 − 2.15 0.49 0.08 1.56 0.64 − 0.10 0.19 1.53 1.19 1.37 2.73 1.55 1.21 2.02 2.11 − 1.05 0.55 2.58 2.04 1.59 2.23 1.21 − 0.27 0.75 0.36 0.75 0.45 1.38 − 0.04 2.32 ) , \mathbf{V} = \left( \begin{array}{llllllllll} 3.60 & 1.21 & 0.52 & -0.46 & 1.62 & 1.57 & 1.46 & -0.34 & 0.01 & 0.91 & 1.93 & 0.66 & 0.62 & 2.27 & -0.41\\ -2.15 & 0.49 & 0.08 & 1.56 & 0.64 & -0.10 & 0.19 & 1.53 & 1.19 & 1.37 & 2.73 & 1.55 & 1.21 & 2.02 & 2.11\\ -1.05 & 0.55 & 2.58 & 2.04 & 1.59 & 2.23 & 1.21 & -0.27 & 0.75 & 0.36 & 0.75 & 0.45 & 1.38 & -0.04 & 2.32\\ \end{array}\right), V= 3.602.151.051.210.490.550.520.082.580.461.562.041.620.641.591.570.102.231.460.191.210.341.530.270.011.190.750.911.370.361.932.730.750.661.550.450.621.211.382.272.020.040.412.112.32 ,

R ′ = U T V = ( 3.56 0.34 7.73 − 6.77 2.61 2.14 − 5.18 − 12.62 5.99 2.37 2.09 1.27 2.93 0.57 2.21 1.97 0.64 0.98 2.41 3.23 0.46 0.27 − 1.45 3.21 4.95 4.09 1.59 4.62 3.67 3.47 0.35 1.12 − 1.68 5.16 2.68 2.35 3.80 9.02 0.68 3.18 2.65 1.62 2.95 1.88 4.40 3.81 1.38 2.92 4.16 5.11 1.87 0.81 1.32 1.76 5.56 4.65 0.70 2.09 5.15 4.68 2.11 1.10 2.51 0.88 3.66 3.13 0.53 1.11 3.70 3.91 0.82 1.30 1.11 1.93 − 1.12 − 0.73 2.21 4.26 − 1.64 1.11 0.91 1.14 0.50 2.59 1.08 1.04 2.23 4.83 0.25 2.27 2.41 1.95 3.33 1.72 1.40 1.40 1.94 3.52 1.25 3.67 4.97 3.95 6.91 3.36 2.96 2.94 3.81 6.87 2.73 7.51 2.19 1.96 2.83 2.25 1.24 1.28 2.35 4.51 0.85 3.57 1.71 1.53 1.32 3.05 2.82 2.52 2.45 5.37 1.96 3.93 4.98 3.53 7.86 1.10 2.10 2.18 2.12 2.87 2.78 6.42 0.84 1.68 − 1.27 6.23 3.11 2.78 4.77 11.05 0.79 4.23 ) . \mathbf{R}' = \mathbf{U}^{\mathsf{T}}\mathbf{V} = \left(\begin{array}{llllllllll} 3.56 & 0.34 & 7.73 & -6.77 & 2.61 & 2.14 & -5.18 & -12.62 & 5.99 & 2.37\\ 2.09 & 1.27 & 2.93 & 0.57 & 2.21 & 1.97 & 0.64 & 0.98 & 2.41 & 3.23\\ 0.46 & 0.27 & -1.45 & 3.21 & 4.95 & 4.09 & 1.59 & 4.62 & 3.67 & 3.47 \\ 0.35 & 1.12 & -1.68 & 5.16 & 2.68 & 2.35 & 3.80 & 9.02 & 0.68 & 3.18 \\ 2.65 & 1.62 & 2.95 & 1.88 & 4.40 & 3.81 & 1.38 & 2.92 & 4.16 & 5.11 \\ 1.87 & 0.81 & 1.32 & 1.76 & 5.56 & 4.65 & 0.70 & 2.09 & 5.15 & 4.68\\ 2.11 & 1.10 & 2.51 & 0.88 & 3.66 & 3.13 & 0.53 & 1.11 & 3.70 & 3.91\\ 0.82 & 1.30 & 1.11 & 1.93 & -1.12 & -0.73 & 2.21 & 4.26 & -1.64 & 1.11\\ 0.91 & 1.14 & 0.50 & 2.59 & 1.08 & 1.04 & 2.23 & 4.83 & 0.25 & 2.27\\ 2.41 & 1.95 & 3.33 & 1.72 & 1.40 & 1.40 & 1.94 & 3.52 & 1.25 & 3.67 \\ 4.97 & 3.95 & 6.91 & 3.36 & 2.96 & 2.94 & 3.81 & 6.87 & 2.73 & 7.51 \\ 2.19 & 1.96 & 2.83 & 2.25 & 1.24 & 1.28 & 2.35 & 4.51 & 0.85 & 3.57\\ 1.71 & 1.53 & 1.32 & 3.05 & 2.82 & 2.52 & 2.45 & 5.37 & 1.96 & 3.93\\ 4.98 & 3.53 & 7.86 & 1.10 & 2.10 & 2.18 & 2.12 & 2.87 & 2.78 & 6.42 \\ 0.84 & 1.68 & -1.27 & 6.23 & 3.11 & 2.78 & 4.77 & 11.05 & 0.79 & 4.23\\ \end{array}\right). R=UTV= 3.562.090.460.352.651.872.110.820.912.414.972.191.714.980.840.341.270.271.121.620.811.101.301.141.953.951.961.533.531.687.732.931.451.682.951.322.511.110.503.336.912.831.327.861.276.770.573.215.161.881.760.881.932.591.723.362.253.051.106.232.612.214.952.684.405.563.661.121.081.402.961.242.822.103.112.141.974.092.353.814.653.130.731.041.402.941.282.522.182.785.180.641.593.801.380.700.532.212.231.943.812.352.452.124.7712.620.984.629.022.922.091.114.264.833.526.874.515.372.8711.055.992.413.670.684.165.153.701.640.251.252.730.851.962.780.792.373.233.473.185.114.683.911.112.273.677.513.573.936.424.23 .

当然, 这个方案并不完美, 如

  • U \mathbf{U} U, V \mathbf{V} V 有些元素为负值, 解释起来有点难受. 可以考虑非负矩阵分解.
  • R ′ \mathbf{R}' R 有些元素不在正常范围 [ 1 , 5 ] [1, 5] [1,5], 可以强行让越界的数据回到边界.

为了避免过拟合, 优化目标上还可以加上正则项, 如 [1]:
min ⁡ ∥ R − U T V ∥ 2 2 + λ U ∥ U ∥ 2 2 + λ V ∥ V ∥ 2 2 . (2) \min \|\mathbf{R} - \mathbf{U}^{\mathsf{T}}\mathbf{V}\|_2^2 + \lambda_U \|\mathbf{U}\|_2^2 + \lambda_V \|\mathbf{V}\|_2^2. \tag{2} minRUTV22+λUU22+λVV22.(2)

[1] Ruslan Salakhutdinov and Andriy Mnih, Probabilistic Matrix Factorization, NIPS, 2007.

你可能感兴趣的:(机器学习常识,机器学习,矩阵,人工智能)