SVD矩陣分解考慮時間因素
推薦系統種矩陣分解有著不錯的效果,其中SVD(Singular Value Decomposition)奇異值矩陣分解也是常用的一種方法,通過對原始矩陣進行SVD分解後,可以將原始高緯資料對映到低維空間,在降維過程中,其關注的是如何去除噪聲和保留更多有效資訊。
其優點:簡化資料,去除噪聲,提高演算法結果
缺點:分解過程和實際業務執行過程匹配不上
適用資料型別:數值型
SVD的原理文章有很多,這裡主要談加入時間因素的矩陣如何做分解。以我正在研究的雲平臺下虛擬機器效能預測為背景,利用TSVD(time)預測除下一時刻虛擬機器效能的實用情況。這裡效能是指:CPU、記憶體、I/O負載和頻寬。
步驟如下:
● 建立負載資訊矩陣S
考慮四種資源資料:CPU、記憶體、I/O負載和頻寬,儲存過去一段時間T的四種資源資料,建立負載資訊矩陣S,其中行表示每個時刻(或每個小週期)四種資源的監測量,列表示四種資源在時間T內的使用情況。
● SVD分解
然後,根據SVD分解原理,將負載資訊矩陣S分解為U、E、V。其中U為時間資訊矩陣,E為奇異值對角矩陣(矩陣S和其轉置乘積的特徵值的平方根),V為資源資訊矩陣。(U和V都是正交矩陣,E的對角元素從大到小排列)
● 時間向量相似性計算
假設當前時刻為t0,要預測下一時刻tf的負載。方法是在U中,找t0之前的所有時刻中找和t0最相似的時間向量(行向量)tc,通過點積運算(由於)找最相似,由於U是正交陣,故t0和tc的模為1,故只需找夾角即可,越小,相似度越高。
● 將來時刻tf的負載預測
tc找到後,tc的下一刻tc-1和當前時刻ti是影響tf時刻的關鍵向量。取兩者線性組合。(本質就是認為將來時刻的負載和當前和歷史最相似向量兩者有關。)
● 奇異值對角矩陣E重要特徵選取
並不是所有的奇異值都可以表示資料的重要特徵,對於排名靠後的奇異值要剔除(干擾因子),本文只刪除了最後一個。其實,常用方法是選取矩陣E中總能量的90%的資訊。
總能量:所有奇異值平方和
90%資訊:從大往後依次取奇異值平方相加,直到第一次大於90%為止。則取前幾個奇異值。
● 下一時刻預測出的負載使用量為:
注意:V’是根據E’的變化而變化的,最終目的是保證矩陣大小和原始一樣。
SVD也是通過將|S-Sf|作為目標函式,通過SGD等方法求得U(tf)、E、V。
這篇論文作為一種效能預測的思路,其實挺簡單的,而且實現起來也很容易。但是它也只是在單個虛擬機器上進行預測,沒有考慮分散式的需求。
相關文章
- 矩陣的奇異值分解(SVD)及其應用矩陣
- 矩陣分解矩陣
- 選用住宅代理時要考慮的因素
- SVD奇異值分解
- 在選擇框架時應該考慮哪些因素?框架
- 矩陣分解--超詳細解讀矩陣
- 2023 年 MQTT Broker 選型時需要考慮的 7 個因素MQQT
- 奇異值分解(SVD)小結
- ML.NET 示例:推薦之矩陣分解矩陣
- 伺服器託管需要考慮這些因素伺服器
- 選擇Linux發行版時要考慮的6個重要因素!Linux
- PHP的垃圾回收機制-效能方面考慮的因素PHP
- 考慮時區了嗎?
- ML.NET 示例:推薦之One Class 矩陣分解矩陣
- 用Spark學習矩陣分解推薦演算法Spark矩陣演算法
- 物聯網裝置的5個關鍵考慮因素
- 搭建Prometheus平臺,你必須考慮的6個因素Prometheus
- 大資料分析平臺選擇考慮哪些因素大資料
- 如何讓奇異值分解(SVD)變得不“奇異”?
- 我考慮的是來看考慮考慮勞福德
- 基於矩陣分解的協同過濾演算法矩陣演算法
- 網站建設前應該考慮的最佳化因素網站
- 雲伺服器如何選購,要考慮哪些因素(下)伺服器
- 選擇成長型積體電路sap系統時一定要考慮的因素
- 推薦系統實踐 0x0b 矩陣分解矩陣
- 開發邊緣計算儲存策略的關鍵考慮因素
- 管理軟體也太難選了,中小企業選型時應該考慮這些因素!
- 嵌入式開發微處理器選型需要考慮的因素
- SAP Concur:2019年全球商旅報告 自身安全成差旅首要考慮因素
- 學軟體測試選培訓機構需要考慮哪些因素
- 世界空間到觀察空間的矩陣矩陣
- 巨大的矩陣(矩陣加速)矩陣
- 鄰接矩陣、度矩陣矩陣
- 如何將一維陣列轉換成與考慮南天陣列元素?陣列
- 人工智慧-機器學習-演算法:非負矩陣分解(NMF)人工智慧機器學習演算法矩陣
- 愛奇藝矩陣管理工具,多個矩陣同時管理矩陣
- iOS APP開發公司需要考慮的因素有哪些? 北京銳智互動iOSAPP
- 空間旋轉矩陣怎麼表示矩陣
- 奇異矩陣,非奇異矩陣,偽逆矩陣矩陣