矩陣補全(matrix completion)的經典演算法有哪些?目前比較流行的演算法是什麼?
請教一下,矩陣補全的經典演算法有哪些?目前比較流行的矩陣補全演算法是什麼?打算往這方面研究下,還沒任何頭緒,也沒代碼。
簡單科普一下這個問題,最早這個問題火起來是因為Netflix公司的公開挑戰:懸賞100萬美金給予能夠improve公司現行的matrix completion演算法10%以上的最優勝隊伍。最後的結果是09年9月BellKor』s
Pragmatic拿走了獎金。當時比賽的網址:Netflix Prize: Home
獲勝者的演算法paper http://www.stat.osu.edu/~dmsl/GrandPrize2009_BPC_BellKor.pdf
我們先看看什麼是matrix completion問題,就用Netflix的dataset來說明。簡單來說就是在一個豆瓣電影評分系統做inference,要根據非常稀疏的現有數據集(一個用戶可能就只rate了幾十部電影)來推斷整個用戶群對不同電影的評分。見下圖,480000 x 18000規模的matrix completion(各位可以算算光存儲這個矩陣就需要多少GB)。
最早人們用一些啟發式演算法如下圖。即局部讓user對item做迭代(vote)最後演算法收斂到一個局部最優解。
核心想法是把Z作low rank factorization(有一些比較有效的演算法,比如regularized SVD,但具體implementation detail水其實很深)然後解這個reformulate之後的優化問題。
另外一種方法是對原問題作convex relaxation,即把原問題的目標函數rank(Z)換成Z的nuclear norm(定義不清楚的可查Matrix norm),這個在里有介紹。見下圖:
(http://arxiv.org/pdf/0810.3286.pdfhttp://www.jmlr.org/papers/v12/recht11a.html)不過我們發現這兩種reformulation仍然有太過於rigid或者無法控制noise的缺陷,所以最後簡單介紹一下這篇工作:http://www.jmlr.org/papers/v11/mazumder10a.html 思路是把那個constraint dualize來做。
為了快速解這個問題我們也需要考慮合理利用每步的SVD做很多fast subroutine,具體也不展開。哦對了,以上這些圖大多是我research advisor課件里的,最後一篇是他當phd時候的一篇很不錯的paper...
樓上已經講了 trace-norm , 這個方法應該是 Maryam Fazel 的論文裡面的結果。
因為我們希望復原的矩陣是low-rank 的,所以 第一個optimization 是:這個最優化問題因為目標函數不是凸函數, 所以沒辦法保證全局最優,並且計算很複雜,所以想到需要把目標函數換成convex的。 Fazel 在她的phd thesis 裡面證明了, trace-norm 這個函數是 rank這個函數的 convex envelope。convex envelope 就是說 trace-norm 是 所有convex function裡面對rank 函數 point-wise approximation 最好的。於是上面的問題就可以通過解以下凸優化問題來得到一個近似。
看上去很好, 但是理論上只有當observed entries 是 uniformly sampled(所有matrix entries 有相同的概率被採樣) 的時候, trace-norm是最好的convex relaxation。但這在現實中並不成立。 以 Netflix 這個問題來說, 有的用戶可能會評價很多部電影,有的可能只評價很少的幾部。 有的電影比較熱門可能會有很多的評價,有的比較冷門而沒有多少評價。 所以為了避免這個問題,Srebro 和 Salakhutdinov 提出了一個新的formulation。
所以可以看出 max-norm是通過 mapping user 和 item 到一個 r-維的空間(r = rank)形成一個hard margin separation problem。
semi-definite programming formulation:(知乎不支持 bmatrix??)
(trace-norm)soft-margin 的 SDP formulation, S : observed entries這個問題的對偶問題是:
可以得到一個sparse的psd matrix。 而且滿足 slater『s condition, 沒有 duality gap, 同時問題矩陣是sparse的, 並且constraint數量等於observed entries的數量, 所以計算比較方便。(max-norm)soft-margin 的 SDP formulation,和對偶形式謝邀。
參考:稀疏矩陣中的空缺元素是怎樣通過機器學習填補的? - li Eta 的回答一些代碼:http://perception.csl.illinois.edu/matrix-rank/sample_code.htmlhttp://cvxr.com/tfocs/demos/matrixcompletion/Matrix Completion.mMatrix Completion via Thresholdinghttps://bamdevmishra.com/codes/qgeommc/
GitHub - alaa-saade/macbeth_matlab: Matrix Completion with the Bethe Hessian : matlab demo
Matlab codes for linearized Bregman algorithmshttp://users.ece.gatech.edu/~mdavenport/software/1BMC-1.2.zipRTRMC - A Riemannian Trust-Region method for low-rank MatrixCompletionInductive Matrix CompletionMatrix CompletionLINKS OF SOFTWARE / CODESGitHub - adrtod/hasi: Hierarchical Adaptive Soft Imputehttp://perso.telecom-paristech.fr/~lafond/downloads/code.tar.gz
可以參考一下我寫的一個project report,裡面總結了matrix completion的主要理論結果以及演算法,有code。
pdf:
https://staff.ie.cuhk.edu.hk/~zbyang/projects/matrix_completion/manu_mtxcomp.pdfcode:https://staff.ie.cuhk.edu.hk/~zbyang/projects/matrix_completion/codes.zipsvd lda word2vec
以下內容有可能有謬誤,如果發現有問題麻煩告訴我,非常感謝!
該方向目前最為完整的理論是candes Recht把壓縮感知中對正交基的假設(incoherence)擴展到矩陣補全問題的論文, exact matrix completion via convex optimazation, 以及第二年candes和陶哲軒提升bound的論文(the power of convex relaxation: near optimal xxx)。該方法提供了目前最好的bound O(nr log n), r=rank(X).
鑒於個人數學水平有限這兩篇論文都有一部分內容沒看懂……
求解目標函數目前最精確、理論分析最完整的解法是使用SDP,收斂速度非常快(參見boyd關於SDP的tutorial),缺點是每輪計算複雜度非常不可接受,也就是非常不實用。recht他們有一篇singular value thresholding(SVT)的演算法,該演算法可以認為是求解有約束優化問題的一種通用方法,這種思路類似於對拉格朗日函數加入平方項,對矩陣補全問題效果很不錯。特此指出,這種方法是有bad case的,有些優化問題用這種方法求解效果會很糟糕。對於這類方法的分析可以參考ALM和ALM出現之前的一些工作。
從10年開始,幾乎每年都有從矩陣分解角度方向來做bound的,該類方法優勢在於計算速度會快很多,但是bound基於eigen gap。由於本人方向所限,我閱讀的這類論文大都發表在EECS會議和期刊上,不排除數學期刊上有這類論文我沒有讀到,如果有的話麻煩私信或留言告訴我,非常感謝。這類論文另一問題在於我看過的有很大一部分證明多多少少有點瑕疵.
沒有bound的方法很多,在此不表。
The field of matrix completion is overly crowded with all those TCS, Stats, Opt, ML, DM researchers. Too hard to make large impact.
樓上回答的大神們,給你們跪了。【真跪】
棒,大神
最近又有聚類與矩陣補全相結合的工作,見"high-rank-matrix-completion-and-clustering-under-self-expressive-models","A Structured Sparse Plus Structured Low-Rank Framework for Subspace Clustering and Completion"
推薦閱讀: