SVD及常见的Embedding应用详解

本文详细介绍了奇异值分解SVD在降维、word embedding和推荐系统中的应用。通过SVD对矩阵进行分解,可以用于处理数据压缩、去噪和构建词向量。此外,对比了TFIDF-SVD与SVD的区别,以及介绍了DeepWalk如何通过随机游走生成物品序列并使用word2vec训练embedding。SVD和相关方法在解决冷启动问题和揭示用户与内容隐含关系方面展现出价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写这篇文章的原因是因为在一个推荐任务中使用SVD,deepwalk进行embedding之后,模型效果得到了提升,并且SVD的应用超出了进行降维的认知,感觉其中值得思考的东西很多,所以对SVD和embedding的一些方法进行整理总结。

1.奇异值分解SVD(Singular Value Decomposition)

1.1 SVD降维

SVD是对矩阵进行分解,假设A是一个 m × n m\times n m×n 的矩阵,则 X X X 的SVD为:
X = U ∑ V T X = U\sum V^T X=UVT

其中 U U U 是一个𝑚×𝑚的矩阵, ∑ \sum 是一个𝑚×𝑛的矩阵,除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值,V是一个𝑛×𝑛的矩阵。 U U U V V V 都是酉矩阵,即满足: 𝑈 T 𝑈 = 𝐼 , 𝑉 T 𝑉 = 𝐼 𝑈^T𝑈=𝐼,𝑉 ^ T𝑉=𝐼 UTU=I,VTV=I

在奇异矩阵中( ∑ \sum )奇异值(对角线元素)是按照从大到小排列的,并且奇异值的减少特别快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和99%以上的比例,所以可以认为前10%甚至1%的奇异值包含了全部的奇异值99%的信息。那么,则可以用最大的k个奇异值和对应的左右奇异向量来近似描述矩阵,即:

X m ×   n = U m × m ∑ m × n V n × n T ≈ U m × k ∑ k × k V k × n T X_{m\times\ n} = U_{m\times m} \sum_{m\times n}V_{n\times n}^T\approx U_{m\times k}\sum_{k\times k}V_{k\times n}^T X<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值