奇異值分解 SVD

2021-06-26 11:32:15 字數 1470 閱讀 1400

最近不小心接觸到了svd,然後認真看下去之後發現這東西真的挺強大的,把乙個推薦問題轉化為純數學矩陣問題,看了一些部落格,把乙個寫個比較具體的博文引入進來,給自己看的,所以把覺得沒必要的就去掉了,博文下面附原始部落格位址。

一、基礎知識

1. 矩陣的秩:矩陣的秩是矩陣中線性無關的行或列的個數

2. 對角矩陣:對角矩陣是除對角線外所有元素都為零的方陣

3. 單位矩陣:如果對角矩陣中所有對角線上的元素都為零,該矩陣稱為單位矩陣

4. 特徵值:對乙個m x m矩陣c和向量x,如果存在λ使得下式成立

則稱λ為矩陣c的特徵值,x稱為矩陣的特徵向量。非零特徵值的個數小於等於矩陣的秩。

即對於矩陣c,經過初等行列變化後成為對角矩陣,對角矩陣對角線上的值是特徵值。

5. 特徵值和矩陣的關係:考慮以下矩陣

該矩陣特徵值λ1 = 30,λ2 = 20,λ3 = 1。對應的特徵向量

假設vt=(2,4,6) 計算s x vt

有上面計算結果可以看出,矩陣與向量相乘的結果與特徵值,特徵向量有關。觀察三個特徵值λ1 = 30,λ2 = 20,λ3 = 1,λ3值最小,對計算結果的影響也最小,如果忽略λ3,那麼運算結果就相當於從(60,80,6)轉變為(60,80,0),這兩個向量十分相近。這也表示了數值小的特徵值對矩陣-向量相乘的結果貢獻小,影響小。這也是後面談到的低階近似的數學基礎。

二、奇異值分解

在lsa中,我們是要對term-document矩陣進行分解,很顯然這個矩陣不是方陣。這時需要奇異值分解對term-document進行分解。

假設c是m x n矩陣,u是m x m矩陣,其中u的列為cct的正交特徵向量,v為n x n矩陣,其中v的列為ctc的正交特徵向量,再假設r為c矩陣的秩,則存在奇異值分解:

其中cct和ctc的特徵值相同,為

σ為m x n,其中

注意:當

σi稱為矩陣c的奇異值。

用c乘以其轉置矩陣ct得:

奇異值分解可表示為:

假設m與n都是倆個比較大的數值m = 1,000,000  n = 500,000,在通常情況下這個矩陣的規模是100億,通過svd分解後,k是乙個可選值,假設k=100,則奇異值分解後的三個矩陣規模為1億,規模縮小5000倍,這就是svd的厲害之處了

這三個矩陣有著非常清楚的物理含義,首先,我們假設矩陣c是用來描述一百萬個使用者對五十萬部電影的偏好度。這個矩陣中,每一行對應乙個使用者,每一列對應一部電影。svd分解後的第乙個矩陣u中的每一列表示一類抽象主題,例如每個使用者(m表示的是使用者)對於恐怖型別電影的偏好度,數值越大越喜歡。最後乙個矩陣v中的每一行表示每部電影(n表示的是電影)的某個抽象主題所佔的權重,簡而言之即,矩陣u是使用者的特徵向量,矩陣v是物品的特徵向量,中間的矩陣則表示各類抽象主題之間的權重係數。

三、svd特徵向量求解

奇異值分解(svd)詳解: 

奇異值分解(svd)應用-lsi: 

SVD奇異值分解

原文出處 今天我們來講講奇異值分解和它的一些有意思的應用。奇異值分解是乙個非常,非常,非常大的話題,它的英文是 singular value decomposition,一般簡稱為 svd。下面先給出它大概的意思 對於任意乙個 m n 的矩陣 m 不妨假設 m n 它可以被分解為 m udv t 其...

奇異值分解(SVD)

svd是singular value decomposition的縮寫,是去除冗餘 資訊提取和資料約簡的強大工具。若a為p q實數矩陣,則存在p階正交矩陣u和q階正交矩陣v,使得 a u v 上式就是奇異值分解,其中p q矩陣 中,i,i 元素 i 0,i 1,2,3,min p,q 其他元素均為0...

SVD奇異值分解

本文由leftnoteasy發布於 奇異值與特徵值基礎知識 特徵值分解和奇異值分解在機器學習領域都是屬於滿地可見的方法。兩者有著很緊密的關係,我在接下來會談到,特徵值分解和奇異值分解的目的都是一樣,就是提取出乙個矩陣最重要的特徵。先談談特徵值分解吧 1 特徵值 如果說乙個向量v是方陣a的特徵向量,將...