浅析张量分解(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 分解的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java小游戏之汤姆猫

背景: 博主写过羊了个羊小游戏,客户觉得羊了个羊同学写过了,想换一个,于是笔者想到了汤姆猫。就是那个以前在苹果手机上的猫。 过程: 初始会有一个猫的图片展示,然后你点击按钮,猫会有不同动作…

车载以太网自动化测试套件(SOME/IP)- AETP. TC8 SOME/IP

概述 SOME/IP (Scalable service-Oriented Middleware over IP) 作为车载以太网的一种通信协议,在智能汽车通信领域受到广泛应用。对于应用SOME/IP协议的车内控制器来说,标准化的测试能够为车内通信提供更加可靠的保障。 AETP(Automotive E…

GPT大模型不再遥不可及:本地化部署让每个人都能拥有

本地化部署是GPT发展的一个趋势。 本地化部署指的是将大模型部署在用户自己的设备上,而不是依赖于云服务商提供的接口。本地化部署有以下几个优势: 数据完全私有化,降低数据丢失和泄露风险,对数据安全性和私密性有保障。 降低使…

【iOS】RunLoop详解(二)

RunLoop详解(二) RunLoop 的概念RunLoop 与线程的关系RunloopRunloop与线程的关系RunLoop对外的接口Runloop的Mode应用场景举例举例说明小结 RunLoop 的内部逻辑RunLoop的底层实现苹果用RunLoop实现的功能AutoreleasePool事件响应手势识别界面更新定时器…

基于MCAL的S32K312 SPI使用

本文参考“大胡子喵喵猪”大佬《S32K312配置SPI(基于MCAL)》https://blog.csdn.net/m0_64944741/article/details/134930744 0、简介 相比于参考文章,本文基于S32K312 介绍SPI的使用,主要是记录开发流程,本文基于《基…

Winform自定义控件 —— 开关

在开始阅读本文之前,如果您有学习创建自定义控件库并在其他项目中引用的需求,请参考:在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 由于 Winform 框架并…

FebHost:为什么企业需要注册保加利亚.BG域名?

在当今全球化的商业环境中,对于与保加利亚市场息息相关的企业而言,选择合适的域名至关重要。.BG域名作为企业在线身份的重要组成部分,提供了多重利好,成为业内不容忽视的战略资源。 首先,地域标识性强是.BG域名的一大…

AI Agent是什么?未来如何发展

AI Agnt是什么 AI代理(AI Agent)是指一种利用人工智能技术来执行特定任务或解决特定问题的自主软件程序。这些代理通过学习和模拟人类行为或特定领域的知识,能够在无需人为干预的情况下完成复杂的任务。AI代理广泛应用于多个领域&#xff0c…

Python筑基之旅-溯源及发展

目录 一、Python的起源 二、Python的版本更替及变化 三、Python的优缺点 四、Python的发展方向 五、Python之禅 六、推荐专栏/主页: 1、Python函数之旅:Functions 2、Python算法之旅:Algorithms 3、个人主页:https://mye…

探索中国文本到视频AI模型——Vidu

引言 随着人工智能技术的不断进步,我们见证了从文本到视频内容生成的革命。最近,一个名为Vidu的中国文本到视频AI模型引起了全球的关注。由清华大学和中国AI初创公司声书科技联合开发的Vidu,于2024年4月27日宣布,它声称能够生成高…

通俗易懂的策略模式讲解

什么是策略模式? 策略模式是一种设计模式,它允许你定义一系列的算法(策略),并将每个算法封装成一个对象。这样,你可以轻松地切换不同的算法,而不需要改变原始代码。 一个简单的例子 假设你是…

VMware17.5与Ubuntu22.04虚拟机环境搭建

VMware17.5安装教程也有参考此链接 简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设…