一種帶約束的非負(fù)矩陣分解方法及求解方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及矩陣分解算法,特別是側(cè)重于非負(fù)矩陣分解算法,以及對應(yīng)的基于隨 機(jī)梯度下降法的具體解法,并在此基礎(chǔ)上提出了在推薦系統(tǒng)中的應(yīng)用實(shí)例。
【背景技術(shù)】
[0002] 矩陣在各類科學(xué)研宄中都廣為應(yīng)用,矩陣分解可以將描述問題的原始矩陣的維數(shù) 大大減少,起到壓縮數(shù)據(jù)的作用,甚至還可以用來對原始數(shù)據(jù)中缺少的部分進(jìn)行預(yù)測。
[0003] 非負(fù)矩陣分解(NMF)是近年來提出的一種矩陣分解的新方法,已成功地應(yīng)用于許 多領(lǐng)域當(dāng)中。較系統(tǒng)的NMF理論由D. D. Lee和H. S. Seung在1999年《Nature》上提出,并 同時(shí)用于人臉識別,引起了科學(xué)界的廣泛關(guān)注。
[0004] 常見的傳統(tǒng)矩陣分解方法有:主成分分析(PCA)、獨(dú)立成分分析(ICA)、矢量量化 (VQ)、奇異值分解(SVD)等。這些方法都允許結(jié)果中出現(xiàn)負(fù)值,這雖然在計(jì)算上是正確的, 但是往往造成了結(jié)果的不可解釋性,比如在下文中將提及的評分矩陣中,用戶的評分就不 可能是負(fù)數(shù)。而非負(fù)矩陣分解正是在矩陣分解過程中加上了所有元素均為非負(fù)這一限制條 件,大大提高了結(jié)果的可解釋性。
[0005] 但是目前的NMF方法較為復(fù)雜,難以在其基礎(chǔ)上進(jìn)行擴(kuò)展,如增加其他約束條件。
[0006] 為此,我們提出了一種新的帶約束的非負(fù)矩陣分解及求解方法。
【發(fā)明內(nèi)容】
[0007] 發(fā)明目的:由于現(xiàn)有的非負(fù)矩陣分解方法通常難以根據(jù)實(shí)際情況進(jìn)行進(jìn)一步的擴(kuò) 展,本發(fā)明提出了一種新的帶約束的非負(fù)矩陣分解及求解方法,能在得到較高精度結(jié)果的 同時(shí),具有易于擴(kuò)展的特效,能夠有效地適用于各種實(shí)際的應(yīng)用場景,并給出了其在推薦系 統(tǒng)中的一種具體應(yīng)用。
[0008] 技術(shù)方案:一種帶約束的非負(fù)矩陣分解方法及求解方法,包括如下部分:
[0009] 1)帶約束的非負(fù)矩陣分解算法;
[0010] 2)基于隨機(jī)梯度下降的分布式矩陣分解求解方法;
[0011] 這種帶約束的非負(fù)矩陣分解算法,區(qū)別于傳統(tǒng)的NMF算法,由對R = UV中的U, V 兩個(gè)矩陣進(jìn)行約束,來保證分解結(jié)果的非負(fù)性。設(shè)U'、V'為與U、V相同大小的兩個(gè)矩陣, 令 U = Sigmoid (U'),V = Sigmoid (V'),其中 Sigmoid (x) = 1/ (l+e-x)。由 Sigmoid 函數(shù) 的定義可知,其定義域?yàn)椋╛ <-,+ <-),而值域?yàn)椋ī? 1),由此可以保證U,V中的每一項(xiàng)都 為非負(fù)值。但由于u,V中的項(xiàng)的取值范圍被限定在(0, 1),因此還需要對R矩陣進(jìn)行標(biāo)準(zhǔn) 化,將其中的每個(gè)元素也轉(zhuǎn)換到(〇,1)上,才能保證分解的正確性。即令Rij= (Ru-R^J/ (Rupper-RlOTJ,其中Rupper為R中元素取值的上界,R丨。卿為R中元素取值的下界。
[0012] 在矩陣分解中,通常由損失函數(shù)來給出具體的解法。在本發(fā)明所提出的矩陣分解 算法中,采用的是常見的平方損失函數(shù):c = (R-UV)2,此為最基礎(chǔ)的形式。
[0013] 在矩陣分解的具體求解過程中,通常會(huì)遇到過擬合的問題,即求得的模型對 于用于訓(xùn)練的樣本能得到很精確結(jié)果,但對于用來測試(或?qū)嶋H中需要預(yù)測)的樣本 卻只能得到較差的結(jié)果。為了減輕過擬合的問題,通常在損失函數(shù)中加入正則項(xiàng):C = (r-uv)2+入(|| U || 2+ || V ||2)。再代入對u,v的約束后可以得到c= (R-S(u' )s(v' ))2+入 (||S(U' )||2+||S(V' )||2),其中 S 為 Sigmoid 函數(shù)。由公式 argmin((R-S(U' )S(V')) 2+入(II S(U' ) || 2+ || S(V,)|| 2))求得U',V',再由 U = Sigmoid(U'),V = Sigmoid(V') 最終求得U,V,即得到我們需要的模型。
[0014]公式 argmin((R-S(U' )S(V' ))2+MIIS(U' ) ||2+||S(V' ) ||2))給出了 U, V兩個(gè)矩陣?yán)碚撋系慕夥?,本發(fā)明中采用隨機(jī)梯度下降法來對該公式進(jìn)行具體的求解。 在實(shí)際求解中,R通常為一個(gè)稀疏矩陣,我們將這些已知的項(xiàng)稱之為訓(xùn)練數(shù)據(jù)。要最小 化損失函數(shù)C的值,實(shí)際上是要最小化C在訓(xùn)練集上的值,因此這里可以進(jìn)一步展開為
【主權(quán)項(xiàng)】
1. 一種帶約束的非負(fù)矩陣分解方法及求解方法,其特征在于,包括如下部分: 1) 帶約束的非負(fù)矩陣分解算法; 2) 基于隨機(jī)梯度下降的分布式矩陣分解求解方法。
2. 如權(quán)利要求1所述的帶約束的非負(fù)矩陣分解方法及求解方法,其特征在于: 對R=UV中的U,V兩個(gè)矩陣進(jìn)行約束,來保證分解結(jié)果的非負(fù)性;令U=Sigmoid〇J'),V=Sigmoid(V'),其中Sigmoid(X) =l/(l+e-x);由Sigmoid函數(shù)的定義可 知,其定義域?yàn)椋?°°,+°° ),而值域?yàn)椋?, 1),由此可W保證U,V中的每一項(xiàng)都為非負(fù)值; 但由于U,V中的項(xiàng)的取值范圍被限定在(0, 1),因此還需要對R矩陣進(jìn)行標(biāo)準(zhǔn)化,將其中的 每個(gè)元素也轉(zhuǎn)換到化1)上,才能保證分解的正確性。
3. 如權(quán)利要求2所述的帶約束的非負(fù)矩陣分解方法及求解方法,其特征在于;矩陣分 解算法中,采用平方損失函數(shù);C= (R-UV)2; 在矩陣分解的具體求解過程中,在損失函數(shù)中加入正則項(xiàng);C= (R-UV)2+MIIU||2+||V||2)巧代入對u,V的約束后可W得到C= (R-S(U' )S(V'))2+入 (IIS扣')||2+||S(V' )||2),其中S為Sigmoid函數(shù);由公式argmin((R-S扣')S(V' ))2+ 入(IIS扣')II2+IIS(V')II2))求得U,,V,,再由U=Sigmoid扣,),V=Sigmoid(V')最 終求得U,V; 公式argmin((R-S(U' )S(V' ))2+A(IIS扣')||2+||S(V' )||2))給出了U,V兩個(gè)矩陣?yán)碚撋系慕夥?,采用隨機(jī)梯度下降法來對該公式進(jìn)行具體的求解;在實(shí)際 求解中,R通常為一個(gè)稀疏矩陣,我們將該些已知的項(xiàng)稱之為訓(xùn)練數(shù)據(jù);要最小化損 失函數(shù)C的值,實(shí)際上是要最小化C在訓(xùn)練集上的值,因此該里可W進(jìn)一步展開為
在函數(shù)C中有兩組參數(shù) 化k和VA),對他們分別求偏導(dǎo)數(shù)可W得到:
S(x) =l/(l+e-x) S'(X) =eV(l+eX)2 根據(jù)梯度下降法,需要將參數(shù)沿著最速下降方向向前推進(jìn),因此可W得到如下遞推公 式:
而隨機(jī)梯度下降法,即是隨機(jī)地抽取訓(xùn)練數(shù)據(jù),用上述遞推公式進(jìn)行迭代,直到滿足終 止條件為止。
4. 如權(quán)利要求2所述的帶約束的非負(fù)矩陣分解方法及求解方法,其特征在于;對所采 用的隨機(jī)梯度下降法進(jìn)行了改良,使其可W支持分布式的計(jì)算環(huán)境;在分布式環(huán)境下,利用 交替優(yōu)化U、V矩陣的方法,尋找局部最優(yōu)解;在奇數(shù)輪將數(shù)據(jù)按行分成N份(N為節(jié)點(diǎn)數(shù)), 在該一輪只對U矩陣進(jìn)行更新,在該一輪完成之后,在所有節(jié)點(diǎn)間進(jìn)行U矩陣的同步;在偶 數(shù)輪將數(shù)據(jù)按列分成N份,在該一輪只對V矩陣進(jìn)行更新,在該一輪完成之后,在所有節(jié)點(diǎn)
【專利摘要】本發(fā)明公開一種帶約束的非負(fù)矩陣分解方法及求解方法,矩陣分解是將一個(gè)稀疏矩陣R分解為兩個(gè)矩陣U和V的乘積的過程,從而用于預(yù)測稀疏矩陣R中未知值,因此廣泛應(yīng)用于各類推薦系統(tǒng)中。而非負(fù)矩陣分解在此基礎(chǔ)上加上了U,V兩個(gè)矩陣中所有元素均為非負(fù)的約束,使結(jié)果對于實(shí)際應(yīng)用而言更具有可解釋性。常見的非負(fù)矩陣分解方法往往較為復(fù)雜難以進(jìn)一步增加其他約束條件,從而限制了其擴(kuò)展性。本發(fā)明提出了一種易于擴(kuò)展的,同時(shí)對矩陣R中未知值具有較高預(yù)測準(zhǔn)確度的非負(fù)矩陣分解方法,并給出了其在推薦系統(tǒng)中應(yīng)用的具體實(shí)施步驟。
【IPC分類】G06F17-16
【公開號】CN104850533
【申請?zhí)枴緾N201510194619
【發(fā)明人】呂建, 徐鋒, 周昊一
【申請人】南京大學(xué)
【公開日】2015年8月19日
【申請日】2015年4月22日