最近不小心接觸到了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的特徵向量,將...