# 矩阵分解 + 图神经网络（GNN）、图卷积增强嵌入、跨模态检索

---

## 一、前沿研究方向

当前的一个前沿方向是：

> 把**矩阵分解**和**图神经网络（GNN）**结合起来。

具体做法：

- 用**图卷积（Graph Convolution）**来增强用户和物品的嵌入表示。
- 也就是说，不再只用矩阵分解得到用户/物品的隐向量，而是再通过图卷积层，逐层聚合邻居信息。

---

## 二、什么是“嵌入表示”？

**嵌入表示（Embedding）** 指的是：

> 把一个用户或一个物品，映射成一个低维稠密向量。

例如：

- 用户 $u$ 的嵌入：$U_u \in \mathbb{R}^d$
- 物品 $i$ 的嵌入：$V_i \in \mathbb{R}^d$

这个向量就代表了这个用户或物品的“特征”。

在推荐系统里：

- 用户嵌入 = 用户的潜在偏好
- 物品嵌入 = 物品的潜在属性

它本来是怎么来的？

通过矩阵分解 $R \approx UV^T$ 学出来的。

也就是说：

- 用户嵌入 = 矩阵 $U$ 的第 $u$ 行
- 物品嵌入 = 矩阵 $V$ 的第 $i$ 行

这个嵌入只反映了：

> 用户和物品之间**直接的评分关系**

它没有利用：

- 用户和用户之间的关系
- 物品和物品之间的关系
- 多跳的间接关系

---

## 三、用图卷积增强嵌入表示

### 1. 是什么意思？

意思是：

> 不再只用矩阵分解得到的嵌入，  
> 而是把用户和物品放到一张图上，  
> 用图卷积让每个节点从邻居那里聚合信息，  
> 得到**更强的嵌入表示**。

举个例子：

- 用户 A 看过物品 1、2、3
- 用户 B 看过物品 2、3、4

在图上：

- 用户 A 和物品 1、2、3 相连
- 用户 B 和物品 2、3、4 相连

图卷积做的是：

> 用户 A 的嵌入，不只看自己，  
> 还看它邻居（物品 1、2、3）的嵌入，  
> 把这些邻居信息聚合进来，更新用户 A 的嵌入。

这样得到的用户 A 嵌入，就包含了：

- 他自己的偏好
- 他看过物品的属性
- 甚至通过物品间接关联到的其他用户信息

这就是“增强”。

### 2. 逐层聚合邻居信息

关键点：

> **一定是逐层聚合 neighbor information。**

假设图卷积有 $L$ 层：

#### 第 1 层

每个节点只聚合**直接邻居**的信息。

- 用户 A 聚合物品 1、2、3
- 物品 2 聚合用户 A、B

#### 第 2 层

每个节点聚合**邻居的邻居**的信息。

- 用户 A 通过物品 2，间接聚合到用户 B 的信息
- 用户 A 通过物品 3，间接聚合到其他用户的信息

#### 第 3 层

继续往外扩，聚合更远的信息。

所以：

> 层数越多，每个节点能看到的“视野”越大。

但也不是越多越好：

- 层数太多 → 过度平滑（over-smoothing）
- 所有节点嵌入变得相似，反而不好

### 3. 图卷积的核心运算

图卷积的核心运算，其实还是矩阵乘法：

$H^{(l+1)} = \sigma(\hat{A} H^{(l)} W^{(l)})$

其中：

- $H^{(l)}$：第 $l$ 层的节点嵌入矩阵
- $\hat{A}$：归一化后的邻接矩阵（表示图结构）
- $W^{(l)}$：可学习权重
- $\sigma$：激活函数

所以：

> 图卷积 = 邻接矩阵 × 嵌入矩阵 × 权重矩阵

本质上还是矩阵乘法，只是多了一个“邻居聚合”的结构。

---

## 四、跨模态检索系统

### 1. 现有主流架构：开环架构

目前学术界、工业界、产业界用的跨模态检索系统，大多属于**开环架构**。

流程是：

1. 编码器把**查询样本**（query sample）和**图库样本**（gallery sample，例如 image library）各自一次性映射为嵌入向量（embedding）。
2. 直接执行**最近邻搜索（nearest neighbor search）**。
3. 直接返回结果（return result）。

这个过程叫做：

> **单次推理流水线（single-pass inference pipeline）**

也就是说：

- 没有修正
- 没有迭代
- 一次编码，直接检索

### 2. 开环架构的弊端

面对**模态鸿沟（modality gap）** 和**异构性（heterogeneity）** 问题时，它的**鲁棒性（robustness）非常差**。

具体表现：

> 少量图库样本，就会占据大量查询样本的**邻域空间（neighbor space）**。

也就是说：

- 查询样本本来应该匹配到多样化的结果
- 但因为图库样本分布不均，少量样本占据了邻域
- 导致检索结果被这些样本“霸占”，多样性差、准确性下降

### 3. 能不能解决？

能解决。

解决思路通常包括：

- 引入**迭代修正**，不再是单次推理
- 引入**图结构**，用图卷积增强嵌入
- 用**矩阵分解 + GNN** 联合建模用户/物品/样本之间的关系
- 让检索过程具备**反馈与修正能力**

这样就能缓解：

- 模态鸿沟
- 异构性问题
- 邻域空间被少量样本占据的问题

---

## 五、和前面矩阵分解、特征值分解的关系

底层逻辑是连着的：

| 层次   | 用到的数学         |
| ---- | ------------- |
| 矩阵分解 | 矩阵乘法、低秩近似     |
| SVD  | 特征值分解的推广      |
| 图卷积  | 矩阵乘法 + 邻接矩阵聚合 |
| 增强嵌入 | 矩阵分解 + 图卷积联合  |

---

## 六、一句话总结

> “用图卷积增强用户与物品的嵌入表示”意思是：  
> 把用户和物品放在一张交互图上，  
> 让每个节点的嵌入通过图卷积层，  
> **逐层聚合邻居信息**，  
> 从而得到比单纯矩阵分解更丰富、更有结构信息的嵌入表示。

> 前沿研究把**矩阵分解**和**图神经网络**结合，用**图卷积**逐层聚合邻居信息，增强用户和物品的嵌入表示；  
> 而现有跨模态检索多为**开环、单次推理流水线**，面对模态鸿沟和异构性时鲁棒性差，少量图库样本就会占据大量查询样本的邻域空间；  
> 解决方向是引入图结构、迭代修正和联合建模。

底层数学仍然是：

> 矩阵乘法 + 特征值分解 + 图上的邻接矩阵聚合。





# 矩阵分解笔记

---

## 一、一般意义上的矩阵分解

这些是**精确分解**，把一个矩阵拆成几个结构特殊的矩阵。

| 分解 | 形式 | 特点 |
|---|---|---|
| LU 分解 | $A = LU$ | 下三角 × 上三角，用于解线性方程组 |
| QR 分解 | $A = QR$ | 正交矩阵 × 上三角，用于最小二乘 |
| SVD 分解 | $A = U\Sigma V^T$ | 正交 × 对角 × 正交，用于降维、压缩 |
| 特征分解 | $A = Q\Lambda Q^{-1}$ | 方阵，用于分析特征值 |

这些分解的特点：

- 要求矩阵**完整**（没有缺失值）
- 分解是**精确的**：$A = \dots$，而不是 $A \approx \dots$
- 数学上有严格定义和唯一性条件

---

## 二、推荐系统里的矩阵分解

$R \approx UV^T$

它和上面那些**完全不是一回事**。

| 对比项 | 一般矩阵分解 | 推荐系统矩阵分解 |
|---|---|---|
| 等式 | 精确 $A = \dots$ | 近似 $R \approx \dots$ |
| 输入 | 完整矩阵 | 稀疏矩阵（大量缺失值） |
| 目的 | 解方程、降维、压缩 | 预测缺失值、推荐 |
| 约束 | 三角、正交、对角等 | 无特殊结构，只是低秩 |
| 求解 | 直接代数运算 | 梯度下降 / 优化 |
| 唯一性 | 有 | 一般不唯一 |

### 1. 符号含义

- $R$：评分矩阵，维度 $|U| \times |I|$，元素 $R_{ui}$ 是用户 $u$ 对物品 $i$ 的真实评分
- $U$：用户隐向量矩阵，$U \in \mathbb{R}^{|U| \times d}$
- $V$：物品隐向量矩阵，$V \in \mathbb{R}^{|I| \times d}$
- $d$：隐因子个数，超参数，通常 $d \ll |U|, |I|$

### 2. 为什么是 $UV^T$

用户 $u$ 的隐向量是 $U$ 的第 $u$ 行，记为 $U_u$。  
物品 $i$ 的隐向量是 $V$ 的第 $i$ 行，记为 $V_i$。  
预测评分就是两者内积：

$\hat{R}_{ui} = U_u \cdot V_i^T$

用户偏好向量和物品属性向量越相似，预测评分越高。

### 3. 为什么它也叫“分解”

形式上确实把一个大矩阵拆成两个小矩阵相乘：

$R_{|U| \times |I|} \approx U_{|U| \times d} V^T_{d \times |I|}$

当 $d \ll |U|, |I|$ 时，这是一种**低秩近似**。

更准确的名字是：

- **低秩矩阵近似（Low-Rank Matrix Approximation）**
- **隐语义模型（Latent Factor Model）**

推荐系统领域习惯叫“矩阵分解”，但它是**近似分解 + 学习出来的**，不是代数意义上的精确分解。

### 4. 和 SVD 的关系

- 标准 SVD 要求矩阵完整
- 对完整矩阵做 SVD，取前 $d$ 个奇异值，可得到最优低秩近似
- 推荐系统的 $R$ 有大量缺失值，没法直接 SVD
- FunkSVD 这类方法用梯度下降直接学习 $U$ 和 $V$，绕过缺失值

所以：

> 推荐系统的矩阵分解，是**借鉴了 SVD 的低秩思想**，但**不是 SVD 本身**。

### 5. 训练目标

$\min_{U,V} \sum_{(u,i) \in \text{已知评分}} (R_{ui} - U_u V_i^T)^2 + \lambda(\|U\|^2 + \|V\|^2)$

右侧 $\lambda$ 项是正则化项，防止过拟合。

---

## 三、特征值分解

**适用对象**：方阵（$n \times n$）

**形式**：

$A = Q \Lambda Q^{-1}$

其中：

- $Q$：特征向量组成的矩阵
- $\Lambda$：特征值组成的对角矩阵

如果 $A$ 是**对称矩阵**，则：

$A = Q \Lambda Q^T$

其中 $Q$ 是正交矩阵，$Q^{-1} = Q^T$。

**核心思想**：

> 矩阵作用在它的特征向量上，只会缩放，不会改变方向。

$Av = \lambda v$

**用途**：

- 分析矩阵的稳定性
- PCA（主成分分析）
- 图论、马尔可夫链
- 解微分方程

**局限**：

- 只适用于方阵
- 不一定所有方阵都能对角化
- 特征值可能是复数

---

## 四、奇异值分解（SVD）

**适用对象**：任意矩阵（$m \times n$）

**形式**：

$A = U \Sigma V^T$

其中：

- $U$：$m \times m$ 正交矩阵（左奇异向量）
- $\Sigma$：$m \times n$ 对角矩阵（奇异值）
- $V$：$n \times n$ 正交矩阵（右奇异向量）

**核心思想**：

> 任意矩阵都可以看成：旋转 → 缩放 → 再旋转

**用途**：

- 降维（PCA 也可以用 SVD 实现）
- 压缩
- 推荐系统
- 求伪逆
- 低秩近似

**和特征值分解的关系**：

- $A^T A$ 的特征值开根号 = $A$ 的奇异值
- $A A^T$ 的特征向量 = $U$
- $A^T A$ 的特征向量 = $V$

所以 SVD 是特征值分解在**任意矩阵**上的推广。

---

## 五、正交分解

这个词有几种不同语境，需要区分。

### ① 正交对角化

如果 $A$ 是对称矩阵，则：

$A = Q \Lambda Q^T$

其中 $Q$ 是正交矩阵。  
这其实是**特征值分解的特例**。

### ② QR 分解

$A = QR$

- $Q$：正交矩阵
- $R$：上三角矩阵

用于解线性方程组、最小二乘。

### ③ 正交投影分解

把向量分解到互相正交的子空间上：

$v = v_1 + v_2, \quad v_1 \perp v_2$

用于投影、最小二乘、信号分解。

### ④ 正交基分解

把空间分解成一组正交基的直和。

---

## 六、几种分解对比

| 分解 | 适用对象 | 形式 | 关键结构 | 主要用途 |
|---|---|---|---|---|
| 特征值分解 | 方阵 | $A = Q\Lambda Q^{-1}$ | 特征值、特征向量 | 稳定性、PCA、图论 |
| 对称特征分解 | 对称方阵 | $A = Q\Lambda Q^T$ | 正交 + 对角 | PCA、二次型 |
| SVD | 任意矩阵 | $A = U\Sigma V^T$ | 正交 + 对角 + 正交 | 降维、压缩、推荐 |
| QR 分解 | 任意矩阵 | $A = QR$ | 正交 + 上三角 | 最小二乘、解方程 |
| LU 分解 | 方阵 | $A = LU$ | 下三角 + 上三角 | 解线性方程组 |
| 推荐系统 MF | 稀疏矩阵 | $R \approx UV^T$ | 低秩、无特殊结构 | 评分预测、推荐 |

---

## 七、它们之间的关系

- **对称矩阵的特征值分解** = SVD 的特例
- **SVD** = 特征值分解在任意矩阵上的推广
- **QR 分解** = 正交化方法（Gram-Schmidt）的矩阵形式
- **正交分解** 是更宽泛的说法，具体含义看语境
- **推荐系统矩阵分解** = 借用 SVD 低秩思想的近似方法

一条主线：

> 特征值分解 → 对称矩阵正交对角化 → SVD → 任意矩阵的低秩近似 → 推荐系统矩阵分解

---

## 八、一句话总结

- **特征值分解**：方阵，找特征值 / 特征向量
- **SVD**：任意矩阵，找奇异值 / 奇异向量，是特征值分解的推广
- **正交分解**：泛指用正交结构做分解，可能是 QR、正交对角化、正交投影等
- **推荐系统矩阵分解**：$R \approx UV^T$，不是精确代数分解，而是带缺失值的低秩近似，通过优化学习得到，用于预测评分和推荐

