通俗理解张量并设计推荐系统算法(Python)

开通VIP,畅享免费电子书等14项超值服

首页

好书

留言交流

下载APP

联系客服

2023.08.28湖北

在大数据时代,我们每天都与成吨的数据打交道——从社交媒体帖子、电影推荐,到复杂的医学图像。但是,如何从这些海量的数据中捕捉深层次的结构和模式,进而为用户提供更精确的推荐或更深入的分析呢?答案可能隐藏在一种神奇的数学工具中,即张量分解。今天,我将带你走进张量分解的世界,探索其魅力所在,并揭示它如何改变我们看待数据的方式。

张量(Tensor)是数学和物理学中的一个概念,广泛应用于线性代数、微分几何、物理学、以及近年来非常受欢迎的深度学习领域。简单地说,张量是一个可以表示在多个维度上的数据的数学对象。可以将其视为标量、向量、矩阵的高维推广。

在深度学习中,张量经常被用作存储和处理数据,例如图像、语音和文本数据。现代深度学习框架,如TensorFlow和PyTorch,都是围绕张量操作设计的,它们提供了一系列工具来创建、操作和计算张量。例如,彩色图像可以表示为一个3维张量。其中的三个维度分别是高度、宽度和颜色通道(红、绿、蓝)。所以,一个256x256的彩色图像就是一个形状为的张量。视频可以看作是一系列的图像帧,因此它可以表示为形状为的张量,其中是帧数。

你可以想象张量是一个多层的容器或盒子。这个盒子可以有很多层,每层都能存放数据。

对于张量,我们可以有以下基本操作:

加法:两个形状相同的张量可以按元素进行加法。如果和都是的矩阵,则它们的和是一个的矩阵,其中。

数乘:张量每个元表都与一个标量相乘。如果是一个标量,是一个的矩阵,则也是一个的矩阵,其中。

张量乘法:对于矩阵(2维张量),我们有矩阵乘法。但是,对于更高维的张量,定义可能会变得更为复杂。

张量在多个领域都有广泛的应用:

物理学:在广义相对论中,度规、克里斯托弗符号和黎曼曲率张量都是关键概念。

自然语言处理:文本数据经常被编码为高维张量,尤其是在深度学习模型中。

深度学习:张量是深度学习的核心。神经网络的输入、输出、权重和偏置通常都是张量。框架如TensorFlow和PyTorch提供了处理张量的工具。

在数据分析和降维中,张量分解是一个关键工具。例如,矩阵分解(如奇异值分解)可以视为张量分解的一个特例。矩阵分解,也被称为矩阵因子分解,是一种将矩阵分解为多个矩阵乘积的技术。它在多种应用中都非常有用,包括信号处理、数据压缩、以及我们之前讨论过的推荐系统。下面是矩阵分解的几种常见方法:

更一般地,对于一个三维张量,其CP分解(CANDECOMP/PARAFAC分解)可以表示为多个矩阵和向量的乘积。CP分解(CANDECOMP/PARAFAC分解)是一种对高维张量进行因子分解的方法。对于一个三维张量,CP分解试图将其分解为一系列向量的外积。具体地说,对于一个三维张量,其CP分解可以表示为:

其中:

张量分解可以用于

张量分解是将一个高维张量分解为多个低维张量的过程,这些低维张量的组合或乘积可以近似地重构原始张量。它与矩阵分解类似,但是适用于更高维度的数据。常见的张量分解技术包括:CP分解(CANDECOMPIPARAFAC分解):将一个3维张量分解为三个矩阵的外积。Tucker分解:将张量分解为一个核心张量和多个矩阵的乘积。数学上,给定一个3维张量分解可以表示为:

其中,是分解得到的向量,是分解的秩,而表示外积。

这就是张量分解所做的:它尝试使用较少的“乐高板”来近似原始的“乐高堆”。在数学上,这些“乐高板'是由向量形成的外积。回到我们的例子:

使用Python进行张量分解的一个流行的方法是使用tensorly库,它提供了各种张量运算和张量分解方法。下面,我将演示如何使用tensorly对一个简单的3D张量进行CP分解。

在上面的代码中,我们首先导入了必要的库,并创建了一个简单的3D张量。然后,我们使用parafac方法对张量进行CP分解,并打印分解得到的因子。

factors是一个列表,其中包含每个维度的因子矩阵。你可以将这些因子矩阵乘在一起(使用外积)来重构原始张量。

使用tensorly进行张量分解是非常直接的,它提供了许多其他张量运算和分解方法,使得在Python中处理张量变得非常简单。

考虑一个电影推荐系统,该系统需要处理以下信息:

给定这些信息,我们可以创建一个三维张量,其中:

每个张量的元素代表一个用户在特定上下文中对某部电影的评分。

importnumpyasnpimporttensorlyastlfromtensorly.decompositionimportparafac#假设我们有100名用户,50部电影,和5种上下文tensor_shape=(100,50,5)#为简单起见,我们可以生成一个随机张量来模拟数据tensor=np.random.rand(*tensor_shape)#使用CP分解进行张量分解factors=parafac(tensor,rank=5)#打印分解得到的因子forfactorinfactors:print(factor)在上述示例中,我们对一个模拟的三维张量进行了CP分解。这个张量代表了用户在不同上下文中对电影的评分。分解的结果是三个因子矩阵,每个矩阵对应于原始张量的一个维度。

这三个因子矩阵的解释如下:

第一个因子矩阵:这个矩阵的每一行对应于一个用户的潜在特征或'兴趣向量'。例如,某个行向量可能表示用户对不同电影类型的偏好程度,或者他们在不同上下文下的观影行为。

第二个因子矩阵:这个矩阵的每一行对应于一部电影的潜在特征或'属性向量'。这可能涉及到电影的类型、导演、演员等特点,以及它如何与不同的用户和上下文互动。

第三个因子矩阵:这个矩阵的每一行代表一个上下文的潜在特征或'情境向量'。它可以捕获不同上下文(如工作日的夜晚或周末的早晨)对观影行为的影响。

通过张量分解,我们可以将一个大型、复杂的三维张量近似为这三个因子矩阵的组合。这不仅可以简化数据表示,还可以揭示潜在的模式和关系。

如何使用这些因子可以预测缺失值:如果你想预测一个用户在特定上下文中对某部电影的评分,你可以通过组合相应的行向量来做到这一点。或者对用户或电影的聚类:你可以使用因子矩阵中的向量作为输入,对用户或电影进行聚类,从而找出具有相似兴趣或属性的用户或电影。也可以用于推荐:给定一个用户,你可以查找他的兴趣向量与每部电影的属性向量之间最匹配的电影,然后将这些电影推荐给他。

假设我们想要预测第个用户在第个上下文中对第部电影的评分。为了进行这个预测,我们可以使用以下步骤:

这个预测值表示我们模型估计的第1个用户在第1个上下文中对第1部电影的评分。我们可以使用这种方法为任意用户、电影和上下文组合预测评分。

THE END
1.paraMicrosoftLearnArtículo de referencia para el comando for, que ejecuta un comando especificado para cada archivo, dentro de un conjunto de archivos.https://learn.microsoft.com/es-es/windows-server/administration/windows-commands/for
2.基于PARAFAC和ART算法的油类污染物荧光检测测量样本的组分数估计值预设为3时,采用PARAFAC算法得到的柴油、汽油和煤油样品的回收率分别为(95.60±3.60)%、(94.67±3.66)%和(95.49±4.49)%;ART算法无需预设组分数,其测量得到的柴油、汽油和煤油样本的回收率分别为(96.58±2.17)%、(95.17±9.17)%和(95.90±8.90)%。结果表明:两种算法都可用于三组分石油类https://www.cnki.com.cn/Article/CJFDTotal-JGDJ201801056.htm
3.Parafac有关matlab代码matlabparafac资源Parafac,全称为平行因子分析(Parallel Factor Analysis),是一种多模态数据分析方法,常用于处理高阶张量数据。在Matlab环境中,Parafac模型可以用来对复杂的数据集进行分解,揭示隐藏的结构和模式。这个压缩包中的`parafac2.m`文件很可能是一个实现Parafac算法的Matlab函数。 Parafac模型的核心思想是将高阶张量(例如,三阶或https://download.csdn.net/download/u010055858/6424023
4.PARAFAC算法,PARAFAC,音标,读音,翻译,英文例句,英语词典A method of nonlinear concentration calibration for multi-component analyzing based on the technique of three-dimensional fluo- rescence spectrum and PARAFAC model was investigated. 结合三维荧光光谱技术和PARAFAC算法,提出了一种用于多组分分析的非线性浓度校准模型,通过标样数据估计物质之间对荧光的吸收校准参数http://dictall.com/indu/010/00977349BBD.htm
5.阵列信号处理中低复杂度DOA估计方法及DOA跟踪算法研究(4)针对传统的平行因子(Parallel Factor,PARAFAC)方法计算复杂度较高的问题,提出了基于快速收敛平行因子(Fast Convergence PARAFAC,FC-PARAFAC)分解的DOA估计算法。其中,所提出的FC-PARAFAC任意声矢量阵列二维DOA估计算法,其角度估计性能优于传统的PARAFAC算法,同时计算复杂度也远低于后者;针对广义互质阵列所提出的FC-https://read.cnki.net/web/Dissertation/Article/10287-1021643928.nh.html
6.饮用水有机污染物的三维荧光光谱检测与分析方法其中我国《生活饮用水卫生标准》(GB5749—2006)中苯酚的国家标准是2 μg/L,实验检出的下限为2 μg/L,高于代雷雷[2]使用紫外光谱结合算法获得的苯酚污染事件的检测下限50 μg/L。实验表明在接近国家标准质量浓度的情况下,使用三维荧光光谱检测溶液,结合PARAFAC特征提取和SVM分类模型可以定性辨别微克(μg)级别的有https://html.rhhz.net/ZJDXXBNYYSMKXB/html/23818.htm
7.平行因子分析理论及其在通信和信号处理中的应用畅想中心数据平台3.1 PARAFAC模型 3.1.1 三线性模型 3.1.2 四线性模型或多线性模型 3.2 k-秩 3.3 可辨识性 3.4 PARAFAC分解 3.4.1 三线性交替最小二乘 3.4.2 平行因子的快速算法 3.4.3 四线性分解和四线性交替最小二乘 3.4.4 基于正交约束PARAFAC分解 3.4.5 结构约束PARAFAC分解 3.5 PARAFAC分解的CRB分析 3.5.1 三线性分https://cxstar.com/Book/Detail?ruid=210884d4000771XXXX
8.化学计量学方法在食品分析中的应用第三类是基于切片形式的矩阵双广义逆运算方式类算法,其经典代表有交替三线性分解(alternating trilinear decomposition, ATLD)算法[43],该方法基于对切片矩阵对角元素和广义逆求解结合的方式,充分结合了 PARAFAC 和 DTLD 的优点,兼具对组分数不敏感和收敛速度快的双重优点。在该算法基础上,研究者们针对不同三维数阵http://www.btbuspxb.com/html/spkxjsxb/2017/3/20170301.html
9.工业和信息化部“十二五”规划教材:阵列信号处理及MATLAB实现8.2.2 PARAFAC接收算法 8.3 极化敏感阵中基于PARAFAC的DOA和极化估计算法 8.3.1 DOA估计 8.3.2 极化估计 8.4 极化敏感阵列中基于降维MUSIC的盲DOA和极化估计 8.4.1 数据模型 8.4.2 DOA和极化估计算法 8.4.3 仿真结果 8.5 四元数在色噪声矢量阵列信号处理中的应用 https://www.cnblogs.com/jingle1267/p/13048868.html
10.多线性主成分分析2 多线性主成分分析的算法 3 多线性主成分分析的扩展 多线性主成分分析 编辑 在统计学中,多线性主成分分析(MPCA)是主成分分析(PCA)的多线性扩展。MPCA用于分析n路阵列,即数字的立方体或超立方体,也被非正式地称为数据张量。N路数组可以被分解、分析,或通过以下方式建模线性张量模型,如CANDECOMP/Parafac,或多线性https://vibaike.com/175822/
11.平行因子演算法的英文平行因子演算法翻譯平行因子演算法的英文翻譯 基本釋義 PARAFAC algorithm 平行因子演算法的相關資料: 臨近單詞 平 平分星象 分享单词到: 以上內容獨家創作,受著作權保護,侵權必究 今日熱詞 相關詞典網站: 牛津高階第八版 美國韋氏詞典 Dictionary.com Free Dictionary 維基百科 (自由的百科全書)http://dict.cn/big5/%E5%B9%B3%E8%A1%8C%E5%9B%A0%E5%AD%90%E7%AE%97%E6%B3%95
12.三维荧光偏导数光谱结合因子算法:石油混合油液的微观鉴定与应用平行因子算法(PARAFAC,Parallel Factor Analysis)是一种针对多维数据的分解方法。特别在处理三维或更高维度的数据时,该算法能够提供一种直观的方式将数据分解为各个主要组成成分。在此,我们深入探讨其原理、应用于三维荧光光谱矩阵的具体操作以及其在混合油液分析中的重要性。 https://www.jianshu.com/p/9ac66ec9f6e3
13.蛋白质组学中色谱保留时间对齐算法的研究进展保留时间预测本身也是一个重要的热门领域,有很多最新进展,本文不涉及保留时间预测相关的算法与研究。 另外,在蛋白质组分析中,有谱峰对齐、特征对齐等表述,指的是将不同样本中相同成分形成的谱峰或特征一一对应起来。保留时间对齐与谱峰对齐、特征对齐实际上是有细微区别的,保留时间对齐并不要求每个谱峰一一对齐,而https://cjb.ijournals.cn/html/cjbcn/2022/3/gc22030961.htm
14.通过Netflix案例研究和NVIDIA深度学习技术深入了解推荐算法你知道什么是推荐引擎吗?它是每一笔互联网交易背后的算法,无论是亚马逊、Netflix、YouTube、TikTok,甚至是LinkedIn、Facebook、X(Twitter)、以及Snapchat,所有这些网站、以及互联网上几乎所有的内容策划、或产品市场应用,都从推荐算法中获利颇丰。 简单来说,推荐算法会建立一套模型,包括你的喜好、憎恶、收藏的物品、https://www.51cto.com/article/795371.html
15.网络性能数据恢复算法中科院计算机网络信息中心我们在三个公开的真实网络性能数据集上的实验结果,证明了DCAE的有效性。除了DCAE,我们还实现了其他4种张量填充算法作为性能评估的基准,并讨论了DCAE的收敛行为。 本文的其余部分组织如下:第1节和第2节分别介绍了相关工作和系统模型;第3节介绍了DCAE的详细设计;第4节中通过实验评估了算法性能;第5节总结了本文的http://school.freekaoyan.com/bj/nao1/2022/01-02/16411184421536126.shtml
16.三维荧光组合PARAFAC分析评估城市水体DOM特征分布与来源PARAFAC 是基于交替最小二乘原理的迭代性三维数据分解算法,可以将三维 数据阵分解为 3 个荷载 矩阵 A,B,C,而且每个矩阵都具有实际的物理意义 .[10] 原理及公式见式(1) N ∑xijk = ainbjnckn +eijk i=1,2,…,I;j=1,2,…,J;k=1,2,…,k (1) n=1 式中:xijk 为成分数;ain ,bjn ,ckn https://xuebaozkb.cczu.edu.cn/oa/pdfdow.aspx?Sid=201706008
17.svd算法matlab代码码农集市专业分享IT编程学习资源具有贪婪和灵活的算法。 c)ProxOp:l_1和l_∞引起的矩阵范数,python和Matlab代码的近邻运算符均可用。 Python代码以更优化的方式实现。 2 /耦合分解 a)CCP:弹性耦合张量分解。 b)NNP2:在耦合模式下具有非负约束的灵活耦合的PARAFAC2。 c)注册CP:即将推出 3 /约束张量数据的压缩和加速约束 a)PROCO-ALS:快速https://www.coder100.com/index/index/content/id/1364465
18.《光谱学与光谱分析》2022年,第42卷,第07期研究的水样采集于江苏省常熟市周边的农村区域,样品均来自不同的分散式农村生活污水处理装置出水,共100个实验水样;将测得的水样三维荧光光谱数据经过去散射预处理后利用PARAFAC算法和FRI算法分别提取荧光特征数据;之后,利用FCM聚类算法进行相似性聚类;最后,利用偏最小二乘(PLS)算法建立水样的紫外-可见全波段吸收光谱和CODhttp://www.sinospectroscopy.org.cn/readnews.php?nid=97228
19.阵列信号处理的理论和应用(豆瓣)《阵列信号处理的理论和应用》分为12章,主要内容包括波束形成、DOA估计、相干信号的DOA估计、二维DOA估计、宽带阵列信号处理、阵列多参数估计等。《阵列信号处理的理论和应用》在全面介绍阵列信号处理的经典理论的同时,对近来一些新算法(如PARAFAc和四元数理论)进行了讲解,同时介绍了MIhttps://book.douban.com/subject/5407151/