一種異構(gòu)系統(tǒng)的并行邏輯回歸方法與系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及機(jī)器學(xué)習(xí)領(lǐng)域,特別是涉及一種異構(gòu)系統(tǒng)的并行邏輯回歸方法與系 統(tǒng)。
【背景技術(shù)】
[0002] 邏輯回歸(Logistic Regression,簡(jiǎn)稱LR)是機(jī)器學(xué)習(xí)中十分常用的一種分類算 法,在互聯(lián)網(wǎng)領(lǐng)域得到了廣泛的應(yīng)用,無(wú)論是在廣告系統(tǒng)中進(jìn)行CTR預(yù)估,推薦系統(tǒng)中的預(yù) 估轉(zhuǎn)換率或是反垃圾系統(tǒng)中的識(shí)別垃圾內(nèi)容等都可以看到它的身影。LR以其簡(jiǎn)單的原理和 應(yīng)用的普適性受到了廣大應(yīng)用者的青睞。
[0003] 在LR模型中,通過(guò)特征權(quán)重向量對(duì)特征向量的不同維度上的取值進(jìn)行加權(quán),并用 邏輯函數(shù)將其壓縮到〇~1的范圍,作為該樣本為正樣本的概率。邏輯函數(shù)曲線如圖1所示, 給定M個(gè)訓(xùn)練樣本(Xi,yi),(X2,y2). . . (Xmjm),其中Xj = {xji I i = l,2. . .N}為N維的特征向 量;yj為分類標(biāo)簽,取值為+1或_1,+1表示樣本為正樣本,-1表示樣本為負(fù)樣本。在LR模型 中,第j個(gè)樣本為正樣本的概率是:
[0005] 其中1是~維的特征權(quán)重向量,也就是LR問(wèn)題中要求解的模型參數(shù)。
[0006] 求解LR問(wèn)題,就是尋找一個(gè)合適的特征權(quán)重向量W,使得對(duì)于訓(xùn)練集里面的正樣 本,P(y」= l |W,Xj)值盡量大;對(duì)于訓(xùn)練集里面的負(fù)樣本,這個(gè)值盡量小,或P(yj = _l |W,Xj) 盡量大。用聯(lián)合概率來(lái)表示為求解:
[0008]對(duì)上式求log并取負(fù)號(hào),則等價(jià)于:
[0010]公式(1)就是LR求解的目標(biāo)函數(shù),尋找合適的W令目標(biāo)函數(shù)f (W)最小,是一個(gè)無(wú)約 束最優(yōu)化問(wèn)題,解決這個(gè)問(wèn)題的通用做法是隨機(jī)給定一個(gè)初始的Wo,通過(guò)迭代,在每次迭代 中計(jì)算目標(biāo)函數(shù)的下降方向并更新W,直到目標(biāo)函數(shù)穩(wěn)定在最小的點(diǎn),迭代流程如圖2所示。
[0011] 不同的優(yōu)化算法的區(qū)別就在于目標(biāo)函數(shù)下降方向Dt的計(jì)算,然而在實(shí)際情況中, 需要利用大規(guī)模樣本數(shù)據(jù)進(jìn)行訓(xùn)練,對(duì)大規(guī)模樣本求解目標(biāo)函數(shù)下降方向Dt,要處理的數(shù) 據(jù)量巨大,直接利用單機(jī)對(duì)各樣本直接進(jìn)行Dt求解,求解效率低下。
【發(fā)明內(nèi)容】
[0012] 有鑒于此,本發(fā)明的主要目的在于提供一種異構(gòu)系統(tǒng)的并行邏輯回歸方法與系 統(tǒng),可以高效地進(jìn)行大規(guī)模樣本的LR問(wèn)題求解。
[0013] 為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種異構(gòu)系統(tǒng)的并行邏輯回歸方法,包括:
[0014] 獲取邏輯回歸模型的目標(biāo)函數(shù);
[0015] 并行計(jì)算所述目標(biāo)函數(shù)的梯度;
[0016] 根據(jù)計(jì)算結(jié)果確定目標(biāo)特征權(quán)重向量;
[0017] 所述并行計(jì)算所述目標(biāo)函數(shù)的梯度包括:
[0018] 將訓(xùn)練集中M個(gè)樣本的分類標(biāo)簽構(gòu)成一個(gè)M維的標(biāo)簽向量,將M個(gè)N維特征向量構(gòu)成 一個(gè)M*N的樣本矩陣,獲取 mRn列的計(jì)算節(jié)點(diǎn),將所述標(biāo)簽向量和樣本矩陣按行劃分,為每 個(gè)計(jì)算節(jié)點(diǎn)分配M/m個(gè)特征向量和分類標(biāo)簽,將樣本矩陣和N維的當(dāng)前特征權(quán)重向量按列劃 分,為每個(gè)計(jì)算節(jié)點(diǎn)分配N(xiāo)/n維特征向量和當(dāng)前特征權(quán)重向量;
[0019] 令各計(jì)算節(jié)點(diǎn)分別進(jìn)行特征權(quán)重向量按列劃分的對(duì)應(yīng)分量和特征向量按列劃分 的對(duì)應(yīng)分量的點(diǎn)乘,對(duì)行號(hào)相同的計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行并歸,分別得到每行的當(dāng)前特 征權(quán)重向量和對(duì)應(yīng)特征向量的點(diǎn)乘結(jié)果,將各所述點(diǎn)乘結(jié)果返回到每行對(duì)應(yīng)的計(jì)算節(jié)點(diǎn) 中;
[0020] 令各計(jì)算節(jié)點(diǎn)分別根據(jù)各所述點(diǎn)乘結(jié)果和標(biāo)簽向量按行劃分的對(duì)應(yīng)分量計(jì)算所 述目標(biāo)函數(shù)梯度的中間標(biāo)量,并分別將各所述中間標(biāo)量和特征向量按行劃分的對(duì)應(yīng)分量相 乘,對(duì)列號(hào)相同的計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行并歸,分別得到梯度向量每列的分量;
[0021] 將所述梯度向量每列的分量進(jìn)行合并得到目標(biāo)函數(shù)的梯度。
[0022] 優(yōu)選地,所述邏輯回歸模型的目標(biāo)函數(shù)為:
[0023]
1W為N維的當(dāng)前特征權(quán)重向量,Xj為N維的樣本特 征向量,yj為分類標(biāo)簽。
[0024] 優(yōu)選地,所述目標(biāo)函數(shù)的梯度為Gt,
[0025] 優(yōu)選地,根據(jù)計(jì)算結(jié)果確定目標(biāo)特征權(quán)重向量包括:
[0026] 步驟A:令迭代次數(shù)為0,確定迭代次數(shù)為0時(shí)的初始權(quán)重特征向量W0;
[0027] 步驟B:令迭代次數(shù)值加1,根據(jù)當(dāng)前權(quán)重特征向量并行計(jì)算所述目標(biāo)函數(shù)的梯度, 根據(jù)所述梯度計(jì)算搜索方向值,根據(jù)所述搜索方向值更新當(dāng)前權(quán)重特征向量;
[0028] 步驟C:判斷所述梯度值是否滿足預(yù)設(shè)迭代停止條件,如果是,則進(jìn)入步驟D,否則 返回步驟B;
[0029] 步驟D:將當(dāng)前特征權(quán)重向量確定為目標(biāo)特征權(quán)重向量。
[0030] 本發(fā)明還提供了一種異構(gòu)系統(tǒng)的并行邏輯回歸系統(tǒng),包括:
[0031] 目標(biāo)函數(shù)確定模塊,用于獲取邏輯回歸模型的目標(biāo)函數(shù);
[0032] 并行計(jì)算模塊,用于并行計(jì)算所述目標(biāo)函數(shù)的梯度;
[0033] 目標(biāo)特征權(quán)重向量確定模塊,用于根據(jù)計(jì)算結(jié)果確定目標(biāo)特征權(quán)重向量;
[0034] 所述并行計(jì)算模塊包括:
[0035] 計(jì)算節(jié)點(diǎn)分配子模塊,用于將訓(xùn)練集中M個(gè)樣本的分類標(biāo)簽構(gòu)成一個(gè)M維的標(biāo)簽向 量,將M個(gè)N維特征向量構(gòu)成一個(gè)M*N的樣本矩陣,獲取m行η列的計(jì)算節(jié)點(diǎn),將所述標(biāo)簽向量 和樣本矩陣按行劃分,為每個(gè)計(jì)算節(jié)點(diǎn)分配M/m個(gè)特征向量和分類標(biāo)簽,將樣本矩陣和N維 的當(dāng)前特征權(quán)重向量按列劃分,為每個(gè)計(jì)算節(jié)點(diǎn)分配N(xiāo)/n維特征向量和當(dāng)前特征權(quán)重向量;
[0036] 行并行計(jì)算子模塊,用于令各計(jì)算節(jié)點(diǎn)分別進(jìn)行特征權(quán)重向量按列劃分的對(duì)應(yīng)分 量和特征向量按列劃分的對(duì)應(yīng)分量的點(diǎn)乘,對(duì)行號(hào)相同的計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行并歸, 分別得到每行的當(dāng)前特征權(quán)重向量和對(duì)應(yīng)特征向量的點(diǎn)乘結(jié)果,將各所述點(diǎn)乘結(jié)果返回到 每行對(duì)應(yīng)的計(jì)算節(jié)點(diǎn)中;
[0037]列并行計(jì)算子模塊,用于令各計(jì)算節(jié)點(diǎn)分別根據(jù)各所述點(diǎn)乘結(jié)果和標(biāo)簽向量按行 劃分的對(duì)應(yīng)分量計(jì)算所述目標(biāo)函數(shù)梯度的中間標(biāo)量,并分別將各所述中間標(biāo)量和特征向量 按行劃分的對(duì)應(yīng)分量相乘,對(duì)列號(hào)相同的計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果進(jìn)行并歸,分別得到梯度向 量每列的分量;
[0038]合并子模塊,用于將所述梯度向量每列的分量進(jìn)行合并得到目標(biāo)函數(shù)的梯度。 [0039]優(yōu)選地,所述邏輯回歸模型的目標(biāo)函數(shù)為:
[0040]
,WSN維的當(dāng)前特征權(quán)重向量,Xj為N維的樣本特征 向量,yj為分類標(biāo)簽。
[0041] 優(yōu)選地,所述目標(biāo)函數(shù)的梯度為Gt,
[0042] 應(yīng)用本發(fā)明提供的一種異構(gòu)系統(tǒng)的并行邏輯回歸方法與系統(tǒng),將邏輯回歸模型的 目標(biāo)函數(shù)的梯度計(jì)算通過(guò)并行化的方式計(jì)算得到,將計(jì)算梯度使用的樣本的特征向量構(gòu)成 樣本矩陣,分類標(biāo)簽構(gòu)成標(biāo)簽向量,將樣本矩陣、標(biāo)簽向量和特征權(quán)重向量分別進(jìn)行劃分, 劃分后分配到批量的計(jì)算節(jié)點(diǎn)上分別計(jì)算再將結(jié)果并歸得到大量樣本的梯度值,從而根據(jù) 并行計(jì)算得到的梯度確定目標(biāo)特征權(quán)重向量,完成LR問(wèn)題的求解,可以利用批量的計(jì)算節(jié) 點(diǎn)高效地進(jìn)行大規(guī)模樣本的LR問(wèn)題的并行求解。
【附圖說(shuō)明】
[0043]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0044]圖1為L(zhǎng)R模型中邏輯函數(shù)的曲線圖;
[0045]圖2為L(zhǎng)R模型的迭代求解方法流程圖;
[0046] 圖3為本發(fā)明一種異構(gòu)系統(tǒng)的并行邏輯回歸方法實(shí)施例一的流程圖;
[0047] 圖4為本發(fā)明一種異構(gòu)系統(tǒng)的并行邏輯回歸方法實(shí)施例一的詳細(xì)流程圖