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

news/2025/1/11 11:52:08/

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

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 m × k \mathbf{U} \in \mathbb{R}^{m \times k} URm×k, 电影特征矩阵 V ∈ R n × k \mathbf{V} \in \mathbb{R}^{n \times k} VRn×k.
  • 优化目标:
    min ⁡ ∥ R − U V T ∥ 2 2 . . (1) \min \|\mathbf{R} - \mathbf{U}\mathbf{V}^{\mathsf{T}}\|_2^2. \tag{1}. minRUVT22..(1)

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

有没有觉得特别神奇?

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

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

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


http://www.ppmy.cn/news/204589.html

相关文章

css样式无法加载Refused to apply style from ‘http://localhost:8080/iconfont.css‘ because its MIME type...

报这种莫名其妙的错,不影响项目运行,但是极其不美观; 控制台报错如下: Refused to apply style from http://localhost:8080/iconfont.css because its MIME type (text/html) is not a supported stylesheet MIME type, and strict MIME c…

ctfshow 网络迷踪-来点福利

先通过百度识图得到 相应的图片主持人的叫Kwak Min Seon 在搜索一下中文名 得到中文名郭敏善 直接搜索pgis比赛场地 在这张图右上角 得到名字PARADISE CITY 在里面找到得到最终答案 ctfshow{郭敏善_1833-8855}

小程序懒加载

预览图&#xff1a; wxml代码&#xff1a; <block wx:for"{{img}}" wx:key"index"><view class"pic-list"><!-- //listIndex大于item.index时&#xff0c;图片显示 --><image src"{{ listIndex > index ? item…

FetchError: invalid json response body at http://... reason: Unexpected token < in JSON at position

问题的背景是&#xff1a;在写nextjs时&#xff0c;遇到的请求接口数据报的错 错误的原因是&#xff1a;调用url时没有加jsononly 1 import { useState } from react; import { GetServerSideProps, InferGetServerSidePropsType } from next; // ...export default functio…

예제 5–8 간단한 참조 리턴 사례

第一个是提前输入的 第二个是自己输入的 #include <iostream> using namespace std;char& find(char s[], int index){return s[index];//参考返回 }int main(){char name[]"Mike";cout << name << endl;find(name ,0)S;//在第一个字符串变成…

linux终端下载文件报错: Connection refused

问题 从github和zenodo上下载数据&#xff0c;尝试用wget和curl下载&#xff0c;都报错&#xff1a; 443... failed: Connection refused或 Failed to connect to zenodo.org port 443: Connection refused问题原因 DNS被污染了&#xff0c;需要手动在host文件里面添加要访…

自动驾驶教程:From Pixels to Meters

Inverse perspective mapping 测到哪些像素坐标 ( u , v ) (u,v) (u,v) 是车道边界的一部分之后&#xff0c;我们现在想要知道哪些3维点 ( X c , Y c , Z c ) (X_c,Y_c,Z_c) (Xc​,Yc​,Zc​)对应于这些像素坐标。首先让我们再次看一下这个图像形成过程的草图&#xff1a; …