楊 ?!陨睢¤础?yán)建峰
(蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 江蘇 蘇州 215006)
?
基于共享內(nèi)存的并行LDA算法
楊希劉曉升楊璐嚴(yán)建峰*
(蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院江蘇 蘇州 215006)
現(xiàn)有的共享內(nèi)存的并行潛在狄利克雷分配(LDA)主題模型,通常由于數(shù)據(jù)分布的原因,線程之間一般存在等待導(dǎo)致效率低下。針對(duì)線程等待問(wèn)題進(jìn)行研究,提出一種基于動(dòng)態(tài)的線程調(diào)度方案。該方案能夠根據(jù)線程的數(shù)量進(jìn)行分塊,在此基礎(chǔ)上及時(shí)為空閑的線程動(dòng)態(tài)地分配任務(wù),從而減少線程間等待時(shí)間。實(shí)驗(yàn)表明,這種新的調(diào)度方案能夠有效地解決線程等待問(wèn)題。該方案不僅在保證收斂精度的同時(shí)能夠獲得加速比25%的提升,還能顯著提高向上擴(kuò)展比。對(duì)于大規(guī)模分布式集群上單個(gè)節(jié)點(diǎn)的并行LDA算法來(lái)說(shuō),這種調(diào)度可以更有效地利用計(jì)算資源。
潛在狄利克雷分配共享內(nèi)存并行動(dòng)態(tài)調(diào)度
潛在狄利克雷分配(LDA)是現(xiàn)下非常流行的一種概率主題模型,自從2003年由Blei[1]等人提出以后,在文本挖掘,計(jì)算機(jī)視覺(jué)以及計(jì)算生物學(xué)等方面有著很好的應(yīng)用。LDA已經(jīng)被認(rèn)為是分析大規(guī)模的非結(jié)構(gòu)化文檔集合的最有效的工具。LDA常用的近似推理方法有三種,吉布斯采樣GS(GibbsSampling)[2]、變分貝葉斯VB(VariationalBayes)[3]、置信傳播BP(BeliefPropagation)[4],其中精度最好的就是置信傳播算法。隨著近年來(lái)大數(shù)據(jù)的普及,單機(jī)單核版本的計(jì)算已經(jīng)無(wú)法滿足日益增加的數(shù)據(jù)處理需求,而并行計(jì)算就是最好的解決方案之一。而并行計(jì)算可以分為共享內(nèi)存以及非共享內(nèi)存兩個(gè)方面。對(duì)于共享內(nèi)存我們有多線程并行計(jì)算的OpenMP等,對(duì)于非共享內(nèi)存的我們有消息傳遞機(jī)制MPI(MessagePassingInterface),以及hadoop,spark等平臺(tái)。相對(duì)于非共享內(nèi)存的并行計(jì)算,共享內(nèi)存并行計(jì)算具有在多核或多CPU結(jié)構(gòu)上效率高、內(nèi)存開(kāi)銷小的優(yōu)勢(shì)。通常大規(guī)模的分布式集群就是將非共享內(nèi)存與共享內(nèi)存的并行算法進(jìn)行混合編程,實(shí)現(xiàn)多主機(jī)與單機(jī)之間的優(yōu)勢(shì)互補(bǔ)。但是由于內(nèi)存的共享,導(dǎo)致不同線程之間存在著讀取寫入的沖突,而通過(guò)“鎖”這種方式雖然能夠一定程度上解決沖突問(wèn)題,但是依然會(huì)導(dǎo)致線程之間相互等待的問(wèn)題。
本文基于共享內(nèi)存的方式,在LINUX操作系統(tǒng)使用g++的編譯環(huán)境,利用std中的thread模塊來(lái)靈活地調(diào)動(dòng)線程,通過(guò)動(dòng)態(tài)調(diào)度線程來(lái)消除線程等待時(shí)間,實(shí)驗(yàn)表明,動(dòng)態(tài)調(diào)度的線程能夠顯著提高算法的效率以及并行的加速比。
非共享內(nèi)存與共享內(nèi)存這兩種不同的并行框架,其本質(zhì)的區(qū)別的就是對(duì)于內(nèi)存的使用。對(duì)于非共享內(nèi)存的方法,相對(duì)來(lái)說(shuō)已經(jīng)非常成熟了,從Newman等人提出近似分布LDA(AD-LDA)[5]開(kāi)始,異步通信的異步分布LDA(AS-LDA)[6],使用MapReduce實(shí)現(xiàn)的Parallel-LDA(PLDA)[7],以及與AS-LDA完全不同的PLDA+[8]、Mr.LDA[9]的相繼提出,非共享內(nèi)存的LDA計(jì)算方法上得到了很好的擴(kuò)充。
而對(duì)于共享內(nèi)存的LDA,2007年的Yan[10]等人提出了將數(shù)據(jù)進(jìn)行二維切分。這種分割方式,讓數(shù)據(jù)能夠在小內(nèi)存的GPU上進(jìn)行計(jì)算。通過(guò)這種數(shù)據(jù)流的方式來(lái)避免數(shù)據(jù)的沖突,從而實(shí)現(xiàn)了共享內(nèi)存的并行LDA計(jì)算。GPU使得共享內(nèi)存的LDA使用成百上千線程進(jìn)行并行計(jì)算變成了可能,但是GPU的核心只能處理簡(jiǎn)單的計(jì)算,而且GPU本身的成本相對(duì)較高。而后,Yahoo!LDA[11]提出了一種黑板結(jié)構(gòu)的memcached技術(shù),通過(guò)分布式的共享緩存服務(wù),使得LDA的參數(shù)矩陣保存共享狀態(tài)。同時(shí)通過(guò)加鎖的方式來(lái)解決兩個(gè)或兩個(gè)以上訪問(wèn)同一個(gè)內(nèi)存塊會(huì)導(dǎo)致嚴(yán)重的訪問(wèn)沖突。但是加鎖的方式依舊會(huì)導(dǎo)致線程間會(huì)產(chǎn)生等待的問(wèn)題。
LDA模型是一個(gè)無(wú)監(jiān)督的概率生成模型[2]。模型假設(shè)文檔集合是由有D篇文檔組成的,該集合共有K個(gè)隱含的主題,其文檔的生成過(guò)程如下:
θd~Dir(α)φk~Dir(β)
(1)
首先我們從β的狄利克雷分布中獲得每個(gè)主題上單詞的概率分布φk,重復(fù)K次。
圖1 LDA圖模型
然后對(duì)于每一篇文檔d,我們從α的狄利克雷分布中獲取文檔d上主題的概率分布θd,而zn是滿足概率分布為θd的多項(xiàng)式分布的,我們可以通過(guò)θd中采樣獲得該文檔的一個(gè)主題zn。在這里zn就是φk中的k,而我們知道wn是滿足φk的多項(xiàng)式分布的,我們可以通過(guò)φk獲得單詞wn。重復(fù)以上過(guò)程N(yùn)次,就是LDA中一篇文檔的生成過(guò)程。其圖模型如1所示。
圖2 互不沖突的塊
對(duì)于一般的共享內(nèi)存的并行LDA算法解決內(nèi)存沖突的辦法就是分塊(blocks),通過(guò)為每一個(gè)線程劃分出處理的范圍,從而達(dá)到互不干擾的目的。如GPU-LDA中就是將文檔劃分為J={1,z,…,D},將單詞劃分為V={1,z,…,W},將互不沖突的塊,分配給不同的線程。如圖2所示。
我們可以看到,在這里的每個(gè)塊,都是互不沖突的。即相互之間不存在相同的單詞或者文檔序列。
本文主要選取了BP算法作為主要的比較對(duì)象的原因是,BP算法在精度上有較大的優(yōu)勢(shì),同時(shí)BP算法中不同文檔之間是完全獨(dú)立的。 另外一個(gè)原因是BP算法有相應(yīng)的在線版本OBP(Online Belief Propagation),以及主動(dòng)版本ABP(Active Belief Propagation)[12]等,有利于本文中調(diào)度方法后續(xù)的擴(kuò)展。
在這里我們將一般的并行LDA算法稱為PBP(Parallel Belief Propagation)。其中μw,d表示文檔d中單詞w的主題分布。具體算法過(guò)程如下:
算法1并行LDA(PBP)重復(fù):1. Forl=0toT-1do:2. ForeachthreadTinparalleldo:3. 獲取文檔集d=Jt⊕l,獲取單詞集w=Vt⊕l4. 通過(guò)全局的θd,?w更新μw,d5. Endfor6. Endfor7. 同步,更新全局的θ,?直到達(dá)到停止條件
對(duì)于每一次迭代,不同的線程之間是并行計(jì)算的。這里t⊕l表示t+lmodT,這保證了各個(gè)線程之間是相互獨(dú)立不發(fā)生數(shù)據(jù)上的沖突的。在每個(gè)線程中都可以獨(dú)立更新那一部分的μw,d,當(dāng)所有的分塊都計(jì)算完畢之后,我們?cè)偻礁氯值摩群挺?。?dāng)然在這里我們可以把中間的步驟換成任何一個(gè)LDA近似推斷的方法也是可以的。
可以發(fā)現(xiàn),傳統(tǒng)的調(diào)度方法是通過(guò)為每個(gè)線程分配固定的非沖突任務(wù)來(lái)實(shí)現(xiàn)線程獨(dú)立,進(jìn)而來(lái)避免讀寫數(shù)據(jù)沖突。然而這種方法在數(shù)據(jù)分布不均勻時(shí)(大部分時(shí)候數(shù)據(jù)的分布并不是均勻的),就會(huì)造成不同線程之間任務(wù)的分配不均勻。這樣最終導(dǎo)致的后果就是同步更新時(shí),大多數(shù)線程需要等待某個(gè)任務(wù)最重(運(yùn)行時(shí)間最長(zhǎng))的線程。
對(duì)此我們首先對(duì)數(shù)據(jù)進(jìn)行隨機(jī)洗牌[13],即對(duì)單詞以及文檔的序列進(jìn)行隨機(jī)的調(diào)換位序,這樣可以一定程度上使得數(shù)據(jù)分布均勻(本文所有數(shù)據(jù)都由隨機(jī)洗牌進(jìn)行預(yù)處理)。另外就是不再為每個(gè)線程安排固定的任務(wù),每當(dāng)有線程呈現(xiàn)空閑狀態(tài)的時(shí)候,可以通過(guò)調(diào)度獲得與當(dāng)前運(yùn)行線程不產(chǎn)生沖突的任務(wù)塊,直到當(dāng)前次迭代任務(wù)完結(jié)需要進(jìn)行同步更新為止,這種動(dòng)態(tài)的調(diào)度處理,可以讓每個(gè)線程在當(dāng)前迭代過(guò)程中均為滿負(fù)載運(yùn)算。
圖3是2個(gè)線程的動(dòng)態(tài)調(diào)度示例,也就是我們動(dòng)態(tài)調(diào)度的基本原理。將數(shù)據(jù)進(jìn)行隨機(jī)洗牌后,我們將數(shù)據(jù)分割成4P2塊。當(dāng)某個(gè)線程完成當(dāng)前數(shù)據(jù)塊的計(jì)算之后,能夠迅速為空閑的線程找到一個(gè)與其他當(dāng)前運(yùn)行線程不會(huì)產(chǎn)生讀寫沖突的塊,將之分配給該線程之后進(jìn)行計(jì)算。例如:我們開(kāi)始將1號(hào)塊分給1號(hào)線程,而將6號(hào)塊分給2號(hào)線程。當(dāng)2號(hào)線程結(jié)束在6號(hào)塊的計(jì)算時(shí),1號(hào)線程還在進(jìn)行1號(hào)塊的計(jì)算。此時(shí)我們?yōu)?號(hào)線程分配了8號(hào)塊,這是個(gè)與1號(hào)塊不會(huì)產(chǎn)生沖突的塊。當(dāng)1號(hào)塊的計(jì)算完畢之后,我們又為1號(hào)線程分配了14號(hào)塊,此時(shí)2號(hào)線程依然在進(jìn)行8號(hào)塊的計(jì)算,依次類推直到所有的塊都計(jì)算完畢。
圖3 動(dòng)態(tài)調(diào)度的線程
我們可以看到,2個(gè)線程在整個(gè)過(guò)程中沒(méi)有等待時(shí)間的滿負(fù)載運(yùn)行。同時(shí)我們也可以注意到,不同的數(shù)據(jù)塊,由于數(shù)據(jù)分布的問(wèn)題,其計(jì)算時(shí)間也是不同的。比如,1和9號(hào)塊,其計(jì)算時(shí)間差不多相差一倍。如果還是通過(guò)硬性分配的話,線程之間的等待時(shí)間無(wú)疑會(huì)是一個(gè)巨大的浪費(fèi)。我們通過(guò)線程之間的動(dòng)態(tài)調(diào)度,消除了等待時(shí)間。
我們稱動(dòng)態(tài)調(diào)度的并行算法為DPBP(DynamicParallelBeliefPropagation),其中R為訓(xùn)練數(shù)據(jù)集,P為線程數(shù),其余變量與算法1中相同,其計(jì)算方法如下:
算法2加速優(yōu)化并行LDA(DPBP)將數(shù)據(jù)R分為4P2塊{R0,...,R4P2-1}重復(fù):1. While(notallblocksfinished)2. Getonefreethreaddo:3. GetonefreeblockRi4. 由Ri獲取文檔集d=Ji,獲取單詞集w=Vi5. 通過(guò)全局的θd,?w更新μw,d6. Endfor7. Endfor8. 同步,更新全局的θ,?直到達(dá)到停止條件
5.1實(shí)驗(yàn)環(huán)境與數(shù)據(jù)集
本文基于單機(jī)多核服務(wù)器進(jìn)行實(shí)驗(yàn),該服務(wù)器有2個(gè)IntelXeonX5690 3.47GHz的CPU,每個(gè)CPU有6個(gè)核,總計(jì)12個(gè)核,140GB內(nèi)存。在這里,為了保證并行效率,我們最多使用了12個(gè)線程進(jìn)行實(shí)驗(yàn)。本文使用的兩個(gè)數(shù)據(jù)集,分別是ENRON和NYTIMES,具體統(tǒng)計(jì),概括統(tǒng)計(jì)實(shí)驗(yàn)用的三個(gè)數(shù)據(jù)集,這里D是文檔的總數(shù)目,W是單詞表的大小,NNZ表示總共有多少條記錄,也就是非零數(shù)據(jù)的數(shù)量。具體如下:
表1 數(shù)據(jù)集
實(shí)驗(yàn)先驗(yàn)參數(shù)初始化都設(shè)置為α=0.01,β=0.01,由于主題數(shù)對(duì)我們并行LDA實(shí)驗(yàn)沒(méi)有任何影響,故我們?cè)谶@里統(tǒng)一將主題數(shù)K設(shè)置為100。本文中所有實(shí)驗(yàn)都是以主題數(shù)為100來(lái)進(jìn)行計(jì)算的。
我們的實(shí)驗(yàn)將表1中的數(shù)據(jù)切割出1/5文檔作為測(cè)試集,其余部分作為訓(xùn)練集。實(shí)驗(yàn)將表1中的數(shù)據(jù)在訓(xùn)練集上求得模型,在測(cè)試集上得到測(cè)試混淆度結(jié)果。同時(shí)為了滿足向上擴(kuò)展比的計(jì)算,本文將相對(duì)較大的數(shù)據(jù)集NYTIMES另外分出10到120MB(10,20,40,60,80,100,120)不同大小的7個(gè)小的數(shù)據(jù)集,而ENRON則是另外分出1到12MB(1,2,4,6,8,10,12)的7個(gè)數(shù)據(jù)集。
本文對(duì)基于共享內(nèi)存的并行LDA即PBP進(jìn)行線程調(diào)度上的優(yōu)化,新的算法記為DPBP。
5.2評(píng)價(jià)標(biāo)準(zhǔn)
本文主要采用了混淆度,加速比以及縱向擴(kuò)展比來(lái)評(píng)價(jià)算法的效果。其中混淆度,經(jīng)常被用于語(yǔ)言模型之中,用來(lái)衡量語(yǔ)料庫(kù)建模能力的好壞,混淆度的計(jì)算公式如下:
(2)
此處xw,d表示文檔d中單詞w的詞頻。其余變量與前文相同。越低的混淆度表示越好的泛化能力。
加速比通常用于評(píng)價(jià)并行的能力,加速比越高,說(shuō)明并行能力越好。加速比其實(shí)也可以認(rèn)為是并行資源的利用率。
縱向擴(kuò)展比則是,在數(shù)據(jù)大小發(fā)生變化時(shí),通過(guò)增加相應(yīng)的線程,對(duì)并行算法效率的提升,也可以說(shuō)是算法的泛化能力的一種比較。比如使用1個(gè)線程計(jì)算1MB的數(shù)據(jù)的時(shí)間和10個(gè)線程計(jì)算10MB數(shù)據(jù)的時(shí)間肯定是有差距的,其比值就是縱向擴(kuò)展比??v向擴(kuò)展比越小,其泛化能力越好。
5.3實(shí)驗(yàn)結(jié)果分析
(1) 收斂效果比較
圖4和圖5是DPBP與PB在NYTIMES數(shù)據(jù)集以及ENRON數(shù)據(jù)集上收斂曲線的比較。
圖4 DPBP與PBP在NYTIMES 數(shù)據(jù)集上的收斂比較
圖5 DPBP與PBP在ENRON 數(shù)據(jù)集上的收斂比較
表2是我們?cè)?個(gè)數(shù)據(jù)集上的綜合比較,表示的是2個(gè)算法在不同的數(shù)據(jù)集的測(cè)試集上的收斂精度。
表2 DPBP與PBP的訓(xùn)練集集收斂時(shí)間與測(cè)試集收斂的混淆度
可以較明顯的看出,DPBP算法不僅具有更快的收斂速度,同時(shí)其收斂精度與原算法并沒(méi)有太大的差別。相對(duì)于PBP,DPBP并不會(huì)在本質(zhì)上改變算法,只是通過(guò)調(diào)度改變了數(shù)據(jù)的計(jì)算順序,通過(guò)減少調(diào)度時(shí)間,DPBP不僅能夠?qū)炔划a(chǎn)生影響并且能夠顯著地提升收斂速度。
(2) 加速比與向上擴(kuò)展比
圖6和圖7是DPBP與PBP在NYTIMES數(shù)據(jù)集以及ENRON數(shù)據(jù)集上加速比的比較。當(dāng)我們使用12個(gè)線程的時(shí)候在NYTIMES數(shù)據(jù)集上,DPBP相對(duì)于PBP的加速比提高了25%,而在ENRON數(shù)據(jù)集上,我們的DPBP要比PBP的加速比提高了18%。這是由于我們的調(diào)度算法可以更加有效地調(diào)度線程,使線程的利用更加的高效。當(dāng)線程數(shù)量增加得越多、分塊粒度越小,DPBP在加速比上的優(yōu)勢(shì)就更加明顯。
圖6 DPBP與PBP在NYTIMES數(shù)據(jù)集上的加速比
圖7 DPBP與PBP在ENRON數(shù)據(jù)集上的加速比
圖8 DPBP與PBP在NYTIMES數(shù)據(jù)集上的向上擴(kuò)展比
圖9 DPBP與PBP在ENRON數(shù)據(jù)集上的向上擴(kuò)展比
圖8和圖9是DPBP與PBP分別在NYTIMES以及ENRON上關(guān)于向上擴(kuò)展比的比較。我們可以看到當(dāng)使用12個(gè)線程的時(shí)候,在NYTIMES上,我們的DPBP在向上擴(kuò)展度方面,要比PBP提高了57%。而在數(shù)據(jù)集相對(duì)較小的ENRON數(shù)據(jù)集上,使用相應(yīng)的線程數(shù),我們的PDBP要比PBP提高51%。這是由于我們DPBP分割線程的粒度更小,使得數(shù)據(jù)量越是增加,線程之間負(fù)載越是均勻,DPBP的效率優(yōu)勢(shì)自然是越大。從而可以看出我們的DPBP在處理更大數(shù)據(jù)的時(shí)候有著更好的適應(yīng)能力。
本文介紹了基于共享內(nèi)存的并行LDA的一般構(gòu)架,提出了通過(guò)動(dòng)態(tài)調(diào)度實(shí)現(xiàn)的并行LDA算法。通過(guò)改進(jìn)線程的調(diào)度,提高了線程的利用率,使得算法的運(yùn)行更有效率,從而改善了基于共享內(nèi)存的LDA算法。通過(guò)實(shí)驗(yàn)的比較,動(dòng)態(tài)的線程調(diào)度,不僅在保證精度沒(méi)有太大變化的同時(shí),使得并行LDA的收斂速度以及加速比明顯的提高,而且也使得算法的向上擴(kuò)展比也得到了顯著的提升。PDBP能夠使并行LDA算法更加適用于海量的數(shù)據(jù),以及大規(guī)模分布式集群并行算法的單機(jī)擴(kuò)展。
[1] Blei D M,Ng A Y,Jordan M I.Latent dirichlet allocation[J].Journal of machine Learning research,2003,3(1):993-1022.
[2] Heinrich G.Parameter estimation for text analysis[R].Fraunhofer IGD Darmstadt,2005.
[3] Teh Y W,Newman D,Welling M.A collapsed variational Bayesian inference algorithm for latent Dirichlet allocation[C]//Advances in neural information processing systems.2006:1353-1360.
[4] Zeng J,Cheung W K,Liu J.Learning topic models by belief propagation[J].Pattern Analysis and Machine Intelligence,IEEE Transactions on,2013,35(5):1121-1134.
[5] Newman D,Smyth P,Welling M,et al.Distributed inference for latent dirichlet allocation[C]//Advances in neural information processing systems.2007:1081-1088.
[6] Smyth P,Welling M,Asuncion A U.Asynchronous distributed learning of topic models[C]//Advances in Neural Information Processing Systems.2009:81-88.
[7] Wang Y,Bai H,Stanton M,et al.Plda:Parallel latent dirichlet allocation for large-scale applications[M].AAIM,2009:301-314.
[8] Liu Z,Zhang Y,Chang E Y,et al.Plda+:Parallel latent dirichlet allocation with data placement and pipeline processing[J].ACM TIST,2011,2(3):26.
[9] Zhai K,Boyd Graber J,Asadi N,et al.Mr.LDA:A flexible large scale topic modeling package using variational inference in mapreduce[C]//Proceedings of the 21st international conference on World Wide Web.ACM,2012:879-888.
[10] Yan F,Xu N,Qi Y.Parallel inference for latent dirichlet allocation on graphics processing units[C]//NIPS,2009:2134-2142.
[11] Smola A,Narayanamurthy S.An architecture for parallel topic models[J].Proceedings of the VLDB Endowment,2010,3(1-2):703-710.MLA.
[12] Zeng J.A topic modeling toolbox using belief propagation[J].The Journal of Machine Learning Research,2012,13(1):2233-2236.MLA.
[13] Zhuang Y,Chin W S,Juan Y C,et al.A fast parallel SGD for matrix factorization in shared memory systems[C]//Proceedings of the 7th ACM Conference on Recommender Systems.ACM,2013:249-256.
PARALLELLDAALGORITHMBASEDONSHAREDMEMORY
YangXiLiuXiaoshengYangLuYanJianfeng*
(School of Computer Science and Technology,Soochow University,Suzhou 215006,Jiangsu,China)
ExistingtopicalmodelofparallellatentDirichletallocation(LDA)withsharedmemoryneedstowaitbetweenthreadsasaruleusuallyduetotheunbalancedistributionofdata,whichleadstolowefficiency.Inthispaperwestudytheproblemofthreadwaitingandproposeadynamic-basedthreadsschedulingscheme.Theschemecanpartitionthedatatoblocksaccordingtothenumberofthreadsanddynamicallyallocatestaskstoidlethreadstimelyonthisbasis,soastoreducethewaitingtimebetweenthreads.Experimentshowsthatsuchnewschedulingschemecaneffectivelysolvethreadswaitingproblem.Itcanachievea25%raiseinspeedupswhileensuringconvergenceaccuracy,besides,itcanalsoremarkablyimprovetheupwardexpansionratio.ForparallelLDAalgorithmofasinglenodeinlarge-scaledistributedcluster,theschedulingcanmoreeffectivelyutilisethecomputingresource.
LatentDirichletallocationSharedmemoryParallelDynamicscheduling
2014-10-29。國(guó)家自然科學(xué)基金項(xiàng)目(61373092,61033013,61272449,61202029);江蘇省教育廳重大項(xiàng)目(12KJA520004);江蘇省科技支撐計(jì)劃重點(diǎn)項(xiàng)目(BE2014005);廣東省重點(diǎn)實(shí)驗(yàn)室開(kāi)放課題(SZU-GDPHPCL-2012-09)。楊希,碩士生,主研領(lǐng)域:機(jī)器學(xué)習(xí)。劉曉升,博士生。楊璐,副教授。嚴(yán)建峰,副教授。
TP3
ADOI:10.3969/j.issn.1000-386x.2016.03.059