浅析张量分解(Tensor Decomposition)


内容概要:这篇文章浅析了张量分解(Tensor Decomposition)在数据分析和机器学习中的应用和原理。张量分解是一种在多维数据中提取特征和降维的方法,通过将高阶张量表示为低秩张量的乘积形式,实现对数据的有效表示和分解。文章介绍了张量分解的基本概念和原理,包括CP分解、Tucker分解和分解的数学表达式。并举例说明了张量分解在图像处理、信号处理和推荐系统等领域的应用场景。

适合人群:对数据分析和机器学习有一定了解,希望深入学习张量分解方法的研究人员和学习者。

能学到什么:①了解张量分解的基本概念和原理;②掌握CP分解、Tucker分解等常见的张量分解方法;③了解张量分解在不同领域的应用场景和实际案例;④理解张量分解方法的优缺点和适用范围。

阅读建议:建议学习者通过阅读本文了解张量分解的基本概念和常见方法,并结合实际案例深入理解其在数据分析和机器学习中的应用。可以进一步阅读相关文献和研究论文,探索张量分解方法的更深层次理论和应用。

Q&A

  • 矩阵补全( Matrix Completion)

    目的是为了估计矩阵中缺失的部分(不可观察的部分),可以看做是用矩阵X近似矩阵M,然后用X中的元素作为矩阵M中不可观察部分的元素的估计

  • 矩阵分解(Matrix Factorization)

    是指用 ∗ ∗ U ∗ V ∗ ∗ **U*V** UV 来近似矩阵 M M M,那么 ∗ ∗ U ∗ V ∗ ∗ **U*V** UV的元素就可以用于估计 M M M 中对应不可见位置的元素值,而 ∗ ∗ U ∗ V **U*V UV** 可以看做是 M M M的分解,所以称作 M a t r i x Matrix Matrix F a c t o r i z a t i o n Factorization Factorization

  • 协同过滤【由已知信息来做预测】

    考虑大量用户的偏好信息(协同),来对某一用户的偏好做出预测(过滤)

    偏好用**评分矩阵 M M M**表达后,这即等价于用 M M M其他行的已知值(每一行包含一个用户对所有商品的已知评分),来估计并填充某一行的缺失值。若要对所有用户进行预测,便是填充整个矩阵,这是所谓“协同过滤本质是矩阵补全”。

  • 如何进行矩阵补全

    方法:矩阵分解

    假设:如果用户A和用户B同时偏好商品 X,那么用户A和用户B对其他商品的偏好性有更大的几率相似。

    这个假设反映在矩阵M上即是矩阵的低秩。极端情况之一是若所有用户对不同商品的偏好保持一 致,那么填充完的M每行应两两相等,即秩为1。

    • 矩阵的低秩是什么意思

      矩阵的低秩是指矩阵中包含的信息量较少或者信息冗余性较高

  • 规范化因子的作用

    1. 归一化(Normalization):通过将数据缩放到特定的范围(例如 0 到 1 或 -1 到 1),来消除不同特征之间的量纲差异。这有助于确保不同特征对模型的影响权重是一致的。
    2. 标准化(Standardization):通过减去均值除以标准差的方式,将数据转换为均值为 0、标准差为 1 的正态分布。这有助于使数据更符合统计假设,例如线性回归模型中的残差应该服从正态分布。
    3. 正则化(Regularization):在机器学习中,正则化是一种用于控制模型复杂度的技术。通过添加一个规范化因子到模型的损失函数中,可以惩罚模型的复杂度,防止过拟合。
  • 矩阵范数是什么

    矩阵范数是用于度量矩阵的大小或“长度”的一种数学工具。它类似于向量范数,但适用于矩阵。矩阵范数可以衡量矩阵的某些性质,如稳定性、收敛性等,并在许多领域中有着广泛的应用,包括数值分析、线性代数、控制理论、统计学和机器学习等。

    常见的矩阵范数包括:

    1. Frobenius 范数(Frobenius Norm):也称为矩阵的欧几里得范数,是矩阵元素的平方和的平方根。对于一个矩阵 A ,其 Frobenius 范数定义为: ∥ A ∥ F = ∑ i = 1 m ∑ j = 1 n ∣ a i j ∣ 2 \| A \|_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^2} AF=i=1mj=1naij2

      其中 m 是矩阵的行数, n 是矩阵的列数, ∗ ∗ a i j ∗ ∗ **a_{ij}** aij 是矩阵中第 i 行第 j 列的元素。

    2. 1-范数和 ∞-范数:矩阵的 1-范数是指矩阵的列向量的最大绝对值之和,而矩阵的 ∞-范数是指矩阵的行向量的最大绝对值之和。对于一个矩阵 A ,其 1-范数和 ∞-范数分别定义为:

      ∥ A ∥ 1 = max ⁡ 1 ≤ j ≤ n ∑ i = 1 m ∣ a i j ∣ \| A \|_1 = \max_{1 \leq j \leq n} \sum_{i=1}^{m} |a_{ij}| A1=1jnmaxi=1maij

      ∥ A ∥ ∞ = max ⁡ 1 ≤ i ≤ m ∑ j = 1 n ∣ a i j ∣ \| A \|_{\infty} = \max_{1 \leq i \leq m} \sum_{j=1}^{n} |a_{ij}| A=1immaxj=1naij

      其他常见的矩阵范数还包括谱范数、核范数等。每种范数都有其特定的性质和应用场景,选择合适的范数取决于具体的问题和应用需求。

矩阵分解方法

B a s i c Basic Basic M F MF MF(Basic Matrix Factorization)

MF视频讲解

思路:

它将用户-项目评分矩阵: r 3 × 3 r_{3 \times 3} r3×3 分解成两个矩阵: u 3 × 4 、 v 4 × 3 u_{3 \times 4}、v_{4 \times 3} u3×4v4×3,通过不断的迭代训练使得 u × v u\times v u×v 越来越接近真实矩阵 r r r

引例:

在这里插入图片描述

  • 此处的:“小清新、重口味、优雅、伤感、五月天”,是隐含特征,给每个用户与每首音乐打上标签

实际应用: R m × n = U m × k × V k × n R_{m \times n} = U_{m \times k} \times V_{k \times n} Rm×n=Um×k×Vk×n

  • 矩阵是稀疏的
  • 隐含特征不可解释的,即我们不知道具体含义了,要模型自己去学
  • k 的大小决定了隐向量表达能力的强弱,k 越大,表达信息就越强,这里的理解就是把用户的兴趣和歌曲的分类划分的越具体
  • 最后是通过用户矩阵 U U U 和**物品矩阵 V V V,**预测评分矩阵

R e g u l a r i z e d Regularized Regularized M F MF MF

与基本的矩阵分解方法相比,Regularized MF 在优化过程中引入了正则化项,以避免过拟合和提高模型的泛化能力。

常见的正则化项包括L1正则化和L2正则化,它们分别是参数的绝对值平方的和,用来控制参数的大小。

Regularized MF的数学推导

Regularized MF 的优化目标可以表示为:

min ⁡ U , V : ∑ ( i , j ) ∈ Ω ( r i j − u i T v j ) 2 + λ ( ∣ ∣ U ∣ ∣ F 2 + ∣ ∣ V ∣ ∣ F 2 ) \min_{U, V}: \sum_{(i, j)∈Ω }(r_{ij} - u_i^T v_j)^2 + λ (||U||_F^2 + ||V||_F^2) U,Vmin:(i,j)Ω(rijuiTvj)2+λ(∣∣UF2+∣∣VF2)

其中:

  • Ω \Omega Ω 表示已知评分的索引集合;
  • λ \lambda λ 是正则化参数;
  • ∣ ∣ ⋅ ∣ ∣ F || \cdot ||_F ∣∣F 表示 Frobenius 范数;
  • r i j r_{ij} rij 表示用户 i i i 对项目 j j j 的评分;
  • u i u_i ui 是用户 i i i 的特征向量;
  • v j v_j vj 是项目 j j j 的特征向量。

这个优化目标可以通过梯度下降等优化算法来求解,其中梯度的计算涉及到对损失函数的偏导数。正则化项的存在使得模型更加平滑,可以提高模型的泛化能力,防止过拟合。

Regularized MF 的迭代更新公式【具体理论:梯度下降理论

R e g u l a r i z e d Regularized Regularized M F MF MF目标最小化原始矩阵 R R R 和分解后的矩阵 U V UV UV 之间的误差,同时加上正则化项以防止过拟合。根据这个目标函数,我们可以使用梯度下降等优化方法来更新矩阵 U U U V V V 中的元素,使得目标函数达到最小值。更新公式如下:

U i j ← U i j − α ( − 2 ( R − U V ) i j V j i + 2 λ U i j ) U_{ij} \leftarrow U_{ij} - \alpha \left( -2 (R - UV)_{ij} V_{ji} + 2 \lambda U_{ij} \right) UijUijα(2(RUV)ijVji+2λUij)

V i j ← V i j − α ( − 2 ( R − U V ) i j U j i + 2 λ V i j ) V_{ij} \leftarrow V_{ij} - \alpha \left( -2 (R - UV)_{ij} U_{ji} + 2 \lambda V_{ij} \right) VijVijα(2(RUV)ijUji+2λVij)

其中, α \alpha α 是学习率,控制每次更新的步长。

张量 C P CP CP 分解

在这里插入图片描述

张量CP分解,也称为 CANDECOMP/PARAFAC(CP)分解,是一种常用的高阶张量分解方法。它将一个高阶张量表示为若干低阶张量的加权和,其中每个低阶张量是因子张量的外积。CP分解的形式可以表示为:

X = ∑ r = 1 R λ r ⋅ a r ⊗ b r ⊗ c r \mathcal{X} = \sum_{r=1}^{R} \lambda_r \cdot \mathbf{a}_r \otimes \mathbf{b}_r \otimes \mathbf{c}_r X=r=1Rλrarbrcr

其中, X \mathcal{X} X 是要分解的 I 1 × I 2 × ⋯ × I N I_1 \times I_2 \times \cdots \times I_N I1×I2××IN 的高阶张量, R R R 是分解的秩(rank), λ r \lambda_r λr 是权重因子 a r \mathbf{a}_r ar b r \mathbf{b}_r br c r \mathbf{c}_r cr 分别是第一、第二和第三模态的因子向量, ⊗ \otimes 表示外积运算。

CP 分解可以通过多种优化算法进行求解,其中最常见的是交替最小二乘法(Alternating Least Squares, ALS)和梯度下降法(Gradient Descent)。这些算法迭代更新因子向量和权重因子,直至达到收敛条件。

CP 分解在许多领域都有广泛的应用,比如信号处理、图像处理、推荐系统、生物信息学等。它可以用于数据压缩、特征提取、异常检测等任务,同时也可以提供对数据的解释和可解释性。

张量Tucker分解

在这里插入图片描述

T u c k e r Tucker Tucker 分解是一种高阶的主成分分析,它将一个张量表示成一个核心( G \mathcal{G} G)张量沿每一个 m o d e mode mode 乘上一个矩阵。

在具体操作中,给定一个 N − N- N阶张量 X \mathcal{X} X T u c k e r Tucker Tucker 分解将其分解为一个核心张量 G \mathcal{G} G N N N因子矩阵 A ( 1 ) , A ( 2 ) , … , A ( N ) \mathbf{A}^{(1)}, \mathbf{A}^{(2)}, \ldots, \mathbf{A}^{(N)} A(1),A(2),,A(N)。这种分解可以表示为:

X ≈ G × 1 A ( 1 ) × 2 A ( 2 ) × 3 ⋯ × N A ( N ) \mathcal{X} \approx \mathcal{G} \times_1 \mathbf{A}^{(1)} \times_2 \mathbf{A}^{(2)} \times_3 \cdots \times_N \mathbf{A}^{(N)} XG×1A(1)×2A(2)×3×NA(N)

其中 × n \times_n ×n 表示张量与矩阵的第 n n n ( m o d e ) (mode) mode乘积。

每个因子矩阵 A ( n ) \mathbf{A}^{(n)} A(n) 对应于张量 X \mathcal{X} X 在第 n 维度上的线性变换,而核心张量 G \mathcal{G} G 则**指定了这些因子矩阵如何相互作用来近似原始张量。**通过选择适当大小的核心张量, T u c k e r Tucker Tucker 分解可以用于数据降维、特征提取或数据压缩。

T u c k e r Tucker Tucker 分解在许多应用领域都非常有用,如信号处理、计算机视觉、推荐系统等。通过这种方法,研究者可以从复杂的多维数据中提取有用的信息,或者更有效地处理大规模数据集。

Tucker 分解的推导过程。

假设我们有一个三阶张量 X \mathcal{X} X ,其维度为 I × J × K I \times J \times K I×J×K 。我们希望将其分解为一个核张量 G \mathcal{G} G ,以及三个因子矩阵 U , V , W U , V , W UVW T u c k e r Tucker Tucker 分解的目标是找到使下式最小化的 G \mathcal{G} G U , V , W : U , V , W : UVW

min ⁡ G , U , V , W ∥ X − G × 1 U × 2 V × 3 W ∥ F 2 \min_{\mathcal{G}, U, V, W} \| \mathcal{X} - \mathcal{G} \times_1 U \times_2 V \times_3 W \|_F^2 G,U,V,WminXG×1U×2V×3WF2

其中, × 1 , × 2 , × 3 \times_1 , \times_2 , \times_3 ×1×2×3 分别表示在第一、第二和第三模态上的张量乘积, ∗ ∗ ∥ ⋅ ∥ F ∗ ∗ **\| \cdot \|_F** F 表示 F r o b e n i u s Frobenius Frobenius 范数。

我们可以通过交替最小二乘法来求解这个优化问题,即交替地固定 G \mathcal{G} G ,然后更新 U , V , W U , V , W UVW ,然后固定 U , V , W U , V , W UVW ,然后更新 G \mathcal{G} G 。重复这个过程直到收敛。

  1. 固定 G \mathcal{G} G ,更新 U :
    U = ( G × 1 U × 2 V × 3 W ) † X U = (\mathcal{G} \times_1 U \times_2 V \times_3 W)^{\dagger} \mathcal{X} U=(G×1U×2V×3W)X
  2. 固定 U ,更新 \mathcal{G} :
    G = X × 1 U T × 2 V T × 3 W T ( X × 1 U T × 2 V T × 3 W T ) † \mathcal{G} = \mathcal{X} \times_1 U^T \times_2 V^T \times_3 W^T (\mathcal{X} \times_1 U^T \times_2 V^T \times_3 W^T)^{\dagger} G=X×1UT×2VT×3WT(X×1UT×2VT×3WT)

其中, ( ⋅ ) † (\cdot)^{\dagger} () 表示伪逆,用于求解矩阵方程中的最小二乘解。

这个过程会不断迭代,直到满足收敛条件。最终得到的 G \mathcal{G} G U , V , W U , V , W UVW 就是 T u c k e r Tucker Tucker 分解的结果。

  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FOUR_A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值