• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向高維特征和多分類的分布式梯度提升樹?

    2019-04-18 05:07:20江佳偉符芳誠(chéng)邵鎣俠
    軟件學(xué)報(bào) 2019年3期
    關(guān)鍵詞:直方圖特征值梯度

    江佳偉,符芳誠(chéng),邵鎣俠,崔 斌

    1(高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室(北京大學(xué)),北京 100871)

    2(北京郵電大學(xué) 計(jì)算機(jī)學(xué)院,北京 100876)

    梯度提升樹(gradient boosting decision tree,簡(jiǎn)稱 GBDT)是一種使用 Boosting策略的集成機(jī)器學(xué)習(xí)算法.集成機(jī)器學(xué)習(xí)算法通常使用Bagging,Boosting,AdBoost等策略[1,2],基本思想是訓(xùn)練多個(gè)弱分類器來生成更準(zhǔn)確的結(jié)果.GBDT使用的 Boosting策略通過依次學(xué)習(xí)多個(gè)弱學(xué)習(xí)器不斷地提升性能,梯度提升樹使用樹模型作為弱學(xué)習(xí)器.梯度提升樹算法在分類、回歸、排序等諸多問題上取得了優(yōu)異的性能[3-5],在學(xué)術(shù)界和工業(yè)界中被廣泛地使用[6],也是例如Kaggle等數(shù)據(jù)競(jìng)賽中最受歡迎的算法之一.在大數(shù)據(jù)時(shí)代,由于單機(jī)的計(jì)算能力和存儲(chǔ)能力有限,無法有效地處理動(dòng)輒達(dá)到TB甚至PB級(jí)別的數(shù)據(jù),因而需要在分布式環(huán)境下設(shè)計(jì)和執(zhí)行梯度提升樹算法,分布式梯度提升樹算法因而成為目前的研究熱點(diǎn).

    梯度提升樹算法的訓(xùn)練主要包括3個(gè)關(guān)鍵過程.

    1) 建立梯度直方圖.對(duì)于給定的損失函數(shù),對(duì)輸入的訓(xùn)練數(shù)據(jù),計(jì)算它們的梯度,將所有的梯度數(shù)據(jù)組織成梯度直方圖的數(shù)據(jù)結(jié)構(gòu);

    2) 尋找最佳分裂點(diǎn).根據(jù)建立的所有特征的梯度直方圖,計(jì)算出樹節(jié)點(diǎn)的最佳分裂點(diǎn),包括特征和分裂特征值;

    3) 分裂樹節(jié)點(diǎn).根據(jù)計(jì)算出的最佳分裂點(diǎn)來分裂樹節(jié)點(diǎn),建立子節(jié)點(diǎn),根據(jù)分裂點(diǎn)將訓(xùn)練數(shù)據(jù)劃分到子節(jié)點(diǎn)上,并回到步驟1)開始下一輪迭代.

    在分布式環(huán)境下設(shè)計(jì)機(jī)器學(xué)習(xí)算法,有數(shù)據(jù)并行和特征并行兩種策略:數(shù)據(jù)并行將訓(xùn)練數(shù)據(jù)集按行進(jìn)行切分,每個(gè)計(jì)算節(jié)點(diǎn)處理一部分?jǐn)?shù)據(jù)子集;而特征并行將訓(xùn)練數(shù)據(jù)集按列進(jìn)行切分,每個(gè)計(jì)算節(jié)點(diǎn)處理一部分特征子集.已有的分布式梯度提升樹系統(tǒng),例如MLlib[7],XGBoost[8],LightGBM[9,10]等,通常使用數(shù)據(jù)并行策略在分布式環(huán)境下訓(xùn)練.目前,沒有工作系統(tǒng)性地比較數(shù)據(jù)并行和特征并行策略的優(yōu)劣,數(shù)據(jù)并行是否在所有情況下都能取得最佳的性能,是一個(gè)仍然未被討論和解決的問題.

    筆者發(fā)現(xiàn),在多種情況下,采用數(shù)據(jù)并行的分布式梯度提升樹算法會(huì)遇到性能瓶頸:一方面,在梯度提升樹算法所處理的多種問題中,多分類問題由于較高的計(jì)算復(fù)雜度和空間復(fù)雜度,采用數(shù)據(jù)并行的梯度提升樹算法目前無法在分布式環(huán)境下有效地處理;另一方面,隨著各行業(yè)的飛速發(fā)展,數(shù)據(jù)的來源越來越多,因而數(shù)據(jù)集的特征維度越來越高,這樣的高維特征給數(shù)據(jù)并行的梯度提升樹算法帶來了新的挑戰(zhàn).為了解決以上存在的問題,本文關(guān)注在高維特征和多分類問題下如何高效地訓(xùn)練分布式梯度提升樹算法.

    在分布式環(huán)境下訓(xùn)練梯度提升樹算法時(shí),數(shù)據(jù)并行和特征并行采用不同的方式:數(shù)據(jù)并行策略將訓(xùn)練數(shù)據(jù)集按行切分到計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)建立局部梯度直方圖,然后通過網(wǎng)絡(luò)匯總計(jì)算節(jié)點(diǎn)的局部梯度直方圖;特征并行策略將訓(xùn)練數(shù)據(jù)集按列切分到計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)建立梯度直方圖并計(jì)算出最佳分裂點(diǎn),然后通過網(wǎng)絡(luò)交換分裂結(jié)果.由于梯度直方圖的大小與特征數(shù)量和類別數(shù)量成正比,對(duì)于高維和多分類問題,數(shù)據(jù)并行需要通過網(wǎng)絡(luò)傳輸大量的梯度直方圖,因而存在性能不佳的問題.相比之下,特征并行需要通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)只與數(shù)據(jù)量大小有關(guān),因而更適合高維和多分類的場(chǎng)景.

    為了使用梯度提升樹算法高效地求解高維和多分類問題,本文提出了一種基于特征并行的梯度提升樹算法FP-GBDT.通過從理論上比較數(shù)據(jù)并行和特征并行,本文證明特征并行更適合高維和多分類場(chǎng)景,然后設(shè)計(jì)了特征并行的分布式梯度提升樹算法.本文的貢獻(xiàn)可以總結(jié)如下:在提出代價(jià)模型的基礎(chǔ)上,從理論上比較了數(shù)據(jù)并行和特征并行兩種訓(xùn)練策略的開銷,證明對(duì)于高維和多分類數(shù)據(jù)集,特征并行具有較小的網(wǎng)絡(luò)開銷、內(nèi)存開銷和可擴(kuò)展性;提出了基于特征并行的分布式梯度提升樹算法FP-GBDT.首先,設(shè)計(jì)了一種分布式矩陣轉(zhuǎn)置方法轉(zhuǎn)換數(shù)據(jù)表征;然后,在建立梯度直方圖時(shí)使用了稀疏感知的方法;最后,在分裂樹節(jié)點(diǎn)時(shí)提出了比特圖壓縮方法來減少數(shù)據(jù)傳輸;通過與現(xiàn)有分布式梯度提升樹算法進(jìn)行詳盡的實(shí)驗(yàn)比較,證明了FP-GBDT算法的高效性.

    本文第 1節(jié)介紹梯度提升樹算法的預(yù)備知識(shí)和相關(guān)工作,包括算法模型和訓(xùn)練方法.第 2節(jié)從理論上比較數(shù)據(jù)并行和特征并行的開銷.第3節(jié)介紹FP-GBDT算法的細(xì)節(jié).第4節(jié)給出實(shí)驗(yàn)對(duì)比結(jié)果.第5節(jié)總結(jié)全文.

    1 預(yù)備知識(shí)及相關(guān)工作

    在本節(jié)中,主要介紹研究對(duì)象梯度提升樹算法的模型和訓(xùn)練方法.其中,第 1.1節(jié)介紹數(shù)據(jù)集表征,第 1.2節(jié)簡(jiǎn)要介紹梯度提升樹算法,第1.3節(jié)介紹梯度提升樹的訓(xùn)練方法,第1.4節(jié)介紹分布式梯度提升樹的研究進(jìn)展.

    1.1 輸入數(shù)據(jù)集

    1.2 梯度提升樹算法概述

    梯度提升樹算法是基于樹的集成機(jī)器學(xué)習(xí)方法[8],梯度提升樹算法會(huì)依次訓(xùn)練多個(gè)回歸樹模型.在一棵樹中,從根節(jié)點(diǎn)開始,每個(gè)樹節(jié)點(diǎn)需要給出一個(gè)分裂規(guī)則,此分裂規(guī)則包括分裂特征和分裂特征值,根據(jù)分裂規(guī)則將數(shù)據(jù)樣本切分到下一層的子樹節(jié)點(diǎn),最終,每個(gè)數(shù)據(jù)樣本xi被分配到一個(gè)葉子節(jié)點(diǎn),葉子節(jié)點(diǎn)將其上的數(shù)據(jù)樣本預(yù)測(cè)為w.與決策樹不同之處在于:梯度提升樹的葉子節(jié)點(diǎn)給出的是連續(xù)值,而不是類別,在訓(xùn)練完一棵樹之后,將w加到每個(gè)數(shù)據(jù)樣本的預(yù)測(cè)值上,然后以新的預(yù)測(cè)值開始訓(xùn)練下一棵樹.梯度提升樹累加所有樹的預(yù)測(cè)值作為最終的預(yù)測(cè)值[1]:

    其中,T是樹的數(shù)量,ft(xi)是第t棵樹的預(yù)測(cè)結(jié)果,η是一個(gè)叫學(xué)習(xí)速度的超參數(shù).

    圖1展示了梯度提升樹算法的例子,目的是預(yù)測(cè)一個(gè)購(gòu)物網(wǎng)站上用戶的消費(fèi)能力.

    Fig.1 An example of gradient boosting decision tree圖1 梯度提升樹算法示例

    第1棵樹使用年齡是否小于20和工資是否小于5 000作為分裂規(guī)則,得到第1棵樹的預(yù)測(cè)值,并以此更新數(shù)據(jù)樣本的預(yù)測(cè)值;接著,以新的預(yù)測(cè)值開始訓(xùn)練第2棵樹,第2棵樹以是否為男性作為分裂規(guī)則,得到第2棵樹的預(yù)測(cè)值.最終的預(yù)測(cè)值為兩棵樹的預(yù)測(cè)值之和,例如,標(biāo)識(shí)為“/”的用戶,預(yù)測(cè)值為5加上5,等于10.

    1.3 訓(xùn)練方法

    梯度提升樹算法是有監(jiān)督機(jī)器學(xué)習(xí)算法,其目標(biāo)是最小化一個(gè)目標(biāo)函數(shù),對(duì)于梯度提升樹來說,在建立第t棵樹時(shí),需要最小化以下的代價(jià)函數(shù):

    這里,l對(duì)于真實(shí)值和預(yù)測(cè)值給出損失,例如,logistic損失,square損失.Ω是正則項(xiàng),可以避免過擬合.依照XGBoost的選擇[8],選擇如下的正則項(xiàng):

    L是樹中葉子節(jié)點(diǎn)的數(shù)量,w是葉子節(jié)點(diǎn)的預(yù)測(cè)值組成的向量,γ和λ是超參數(shù).LogitBoost算法用二階近似來擴(kuò)展F(t):

    這里,gi和hi是數(shù)據(jù)的一階和二階梯度:.用Ij={i|xi∈leafj}代表屬于第j個(gè)葉子節(jié)點(diǎn)的數(shù)據(jù)樣本的集合,去掉常數(shù)項(xiàng)之后,可以得到F(t)的近似表達(dá):

    根據(jù)以上的公式,第j個(gè)葉子節(jié)點(diǎn)的最佳預(yù)測(cè)值和最佳目標(biāo)函數(shù)是:

    以上的結(jié)果假設(shè)已經(jīng)知道樹的結(jié)構(gòu)和數(shù)據(jù)樣本的分布,可以遍歷所有可能的樹結(jié)構(gòu)和數(shù)據(jù)樣本分布來找到最佳的解.但是這種方法的計(jì)算復(fù)雜度太高,在實(shí)際中不可行.因此,現(xiàn)有的方法采用一種貪心的方法,從根節(jié)點(diǎn)開始逐層地分裂樹節(jié)點(diǎn),見算法1.

    算法1.訓(xùn)練梯度提升樹的貪心分裂算法.

    輸出增益最大的分裂結(jié)果

    在計(jì)算一個(gè)樹節(jié)點(diǎn)的最佳分裂點(diǎn)時(shí),首先對(duì)每個(gè)特征計(jì)算出K個(gè)候選分裂點(diǎn),然后掃描一遍所有數(shù)據(jù)樣本,用梯度數(shù)據(jù)建立梯度直方圖.例如:Gmk對(duì)應(yīng)第m個(gè)特征,累加所有對(duì)應(yīng)特征值處在第k-1和第k個(gè)候選分裂點(diǎn)之間的數(shù)據(jù)樣本的一階梯度;Hmk以同樣的方式累加二階梯度.建立完所有特征的梯度直方圖之后,根據(jù)下面公式找到代價(jià)函數(shù)增益最大的分裂結(jié)果:

    這里,IL和IR代表分裂之后的左子節(jié)點(diǎn)和右子節(jié)點(diǎn).選擇候選分裂點(diǎn)有多種方式,精確的方法依據(jù)每個(gè)特征對(duì)所有數(shù)據(jù)樣本進(jìn)行排序,然后選擇所有可能的分裂點(diǎn).但這種方法需要反復(fù)地排序,在數(shù)據(jù)量很大時(shí),計(jì)算開銷和時(shí)間開銷過于昂貴.另外一種叫分位數(shù)據(jù)草圖的方法使用基于概率的近似數(shù)據(jù)結(jié)構(gòu),對(duì)每個(gè)特征產(chǎn)生對(duì)應(yīng)特征值的近似分布[11].經(jīng)典的分位數(shù)據(jù)草圖的算法是GK[12],基于GK的變種有DataSketches[13]和WQS[8]等.

    梯度提升樹算法中,兩種避免過擬合的方法是衰減和特征下采樣:衰減方法在累加樹的預(yù)測(cè)值時(shí)乘以一個(gè)叫做學(xué)習(xí)速度的超參數(shù)η;特征下采樣方法對(duì)每棵樹采樣一個(gè)特征子集,這種方法被證明能夠加快訓(xùn)練速度和提高模型的泛化能力.

    1.4 分布式訓(xùn)練

    目前已經(jīng)有一些研究工作提出了分布式梯度提升樹算法,例如 XGBoost[8],LightGBM[10],TencentBoost[14],DimBoost[18]等.XGBoost由華盛頓大學(xué)的研究者提出,采用數(shù)據(jù)并行的訓(xùn)練模式,在單個(gè)計(jì)算節(jié)點(diǎn)上將數(shù)據(jù)集按列切分,以列存塊的形式存儲(chǔ)數(shù)據(jù)樣本,為每個(gè)特征值增加一個(gè)指針指向其屬于的數(shù)據(jù)樣本,這樣帶來了很大的額外內(nèi)存開銷.XGBoost提出了一系列的優(yōu)化方法,包括一種對(duì)數(shù)據(jù)加權(quán)的分位數(shù)據(jù)草圖算法、一種稀疏感知的尋找分裂點(diǎn)算法、一種將列存塊存儲(chǔ)到磁盤的塊壓縮和塊切分的算法.LightGBM由微軟亞洲研究院的研究者提出,默認(rèn)采用數(shù)據(jù)并行的訓(xùn)練模式,提出了深度優(yōu)先的策略.實(shí)驗(yàn)證明,這能夠提高準(zhǔn)確率.除了數(shù)據(jù)并行之外,LightGBM 也實(shí)現(xiàn)了特征并行.但是這個(gè)簡(jiǎn)單的實(shí)現(xiàn)不支持?jǐn)?shù)據(jù)集按列切分,需要在每個(gè)計(jì)算節(jié)點(diǎn)上存儲(chǔ)完整的數(shù)據(jù)集,這在超大規(guī)模數(shù)據(jù)和真實(shí)的工業(yè)界環(huán)境中是不可行的.TencentBoost和DimBoost由北京大學(xué)和騰訊聯(lián)合設(shè)計(jì),采用數(shù)據(jù)并行的訓(xùn)練模式,利用參數(shù)服務(wù)器[16-18]架構(gòu)分布式存儲(chǔ)算法模型,以支持高維度的數(shù)據(jù)集,在建立梯度直方圖階段提出了稀疏感知的算法,只需要讀取數(shù)據(jù)樣本中的非零特征;同時(shí),用高效的并行機(jī)制加速梯度直方圖的建立,在尋找最佳分裂點(diǎn)階段提出了量化壓縮算法減少梯度數(shù)據(jù)的傳輸.針對(duì)參數(shù)服務(wù)器的特殊架構(gòu)提出了兩階段的方法,在參數(shù)服務(wù)器端計(jì)算局部最佳分裂點(diǎn),在計(jì)算節(jié)點(diǎn)端匯總得到全局最佳分裂點(diǎn).可以看到,目前的分布式梯度提升樹算法的系統(tǒng)基本都采用數(shù)據(jù)并行的訓(xùn)練方式,或者實(shí)現(xiàn)的特征并行方式在實(shí)際中不可行,不能有效地處理本文針對(duì)的高維特征和多分類問題.

    2 并行策略比較

    將一個(gè)串行的機(jī)器學(xué)習(xí)算法并行化,首先需要設(shè)計(jì)如何將數(shù)據(jù)樣本在多個(gè)計(jì)算節(jié)點(diǎn)之間分配.常用的并行策略包括數(shù)據(jù)并行和特征并行.假設(shè)訓(xùn)練數(shù)據(jù)集是一個(gè)矩陣,每一行是一個(gè)數(shù)據(jù)樣本,數(shù)據(jù)并行按行切分?jǐn)?shù)據(jù)集,這樣,每個(gè)計(jì)算節(jié)點(diǎn)負(fù)責(zé)一個(gè)數(shù)據(jù)子集.與此相對(duì)應(yīng)的,特征并行按列切分?jǐn)?shù)據(jù)集,每個(gè)計(jì)算節(jié)點(diǎn)負(fù)責(zé)一個(gè)特征子集.

    本節(jié)將針對(duì)內(nèi)存開銷和網(wǎng)絡(luò)開銷兩個(gè)方面,從理論上比較運(yùn)用兩種并行策略的分布式梯度提升樹算法,并針對(duì)本文研究的高維和多分類問題選擇合適的并行策略.為了形式化地描述結(jié)果,本文中用到的符號(hào)定義見表1,其中,訓(xùn)練數(shù)據(jù)集是一個(gè)N×D的矩陣,N是數(shù)據(jù)樣本的數(shù)量,D是數(shù)據(jù)樣本的特征數(shù)量;集群中有W個(gè)計(jì)算節(jié)點(diǎn),梯度提升樹模型包含T棵樹,每棵樹有L層,每個(gè)特征的候選分裂點(diǎn)的個(gè)數(shù)是q;對(duì)于多分類問題,用C來表示類別數(shù)量.

    Table 1 Definition of symbols表1 符號(hào)定義

    2.1 梯度直方圖大小

    梯度提升樹算法的核心操作是建立梯度直方圖和尋找分裂點(diǎn).梯度直方圖的大小與3個(gè)因素有關(guān).

    1) 特征維度D.由于需要為每種特征建立兩個(gè)梯度直方圖(一階梯度直方圖和二階梯度直方圖),因而梯度直方圖的總數(shù)量與2D成比例;

    2) 候選分裂點(diǎn)的數(shù)量q.一個(gè)梯度直方圖中箱子的數(shù)量等于候選分裂點(diǎn)的個(gè)數(shù);

    3) 類別數(shù)量C.在多分類問題中,每個(gè)梯度數(shù)據(jù)是一個(gè)向量,表示在所有類別上的偏微分,因此,梯度直方圖的大小與C成比例.二分類是一個(gè)特例,二分類時(shí)C=1.

    綜上,一個(gè)樹節(jié)點(diǎn)的梯度直方圖大小為Sh=8×2×D×q字節(jié),其中,8字節(jié)表示一個(gè)雙精度浮點(diǎn)數(shù)的大小.

    2.2 內(nèi)存開銷

    梯度提升樹訓(xùn)練中的一個(gè)技巧是,只要樹節(jié)點(diǎn)之間不存在數(shù)據(jù)重疊,就可以同時(shí)處理多個(gè)樹節(jié)點(diǎn),代價(jià)是存儲(chǔ)更多的梯度直方圖.對(duì)于目前普遍采用的逐層訓(xùn)練的方式,樹的同一層的樹節(jié)點(diǎn)之間不存在數(shù)據(jù)重疊,因而可以同時(shí)被處理,樹的深度最大為L(zhǎng),因此,同時(shí)處理的樹節(jié)點(diǎn)的最大數(shù)量是2L-1.

    使用數(shù)據(jù)并行策略時(shí),每個(gè)計(jì)算節(jié)點(diǎn)需要建立所有待處理樹節(jié)點(diǎn)上每個(gè)特征的直方圖,因此,每個(gè)計(jì)算節(jié)點(diǎn)上梯度直方圖的內(nèi)存開銷最多是Sh×2L-1.但是用特征并行時(shí),每個(gè)計(jì)算節(jié)點(diǎn)只需要負(fù)責(zé)計(jì)算一部分特征的梯度直方圖,因此內(nèi)存開銷是Sh×2L-1/W,與數(shù)據(jù)并行相比要低得多.

    2.3 通信開銷

    當(dāng)使用數(shù)據(jù)并行時(shí),主要的通信開銷是梯度直方圖的匯總.盡管目前存在多種在分布式環(huán)境下聚合數(shù)據(jù)的分布式架構(gòu),例如 MapReduce[7],AllReduce[8],ReduceScatter[10],Parameter Server[14-17]等,但是每個(gè)計(jì)算節(jié)點(diǎn)至少需要通過網(wǎng)絡(luò)傳輸本地存儲(chǔ)的梯度直方圖,因此,一棵樹需要傳輸?shù)奶荻戎狈綀D的大小至少是Sh×W×(2L-1).

    當(dāng)使用特征并行時(shí),由于每個(gè)計(jì)算節(jié)點(diǎn)上存儲(chǔ)著一個(gè)特征的全部特征值,因此,梯度提升樹算法不需要在計(jì)算節(jié)點(diǎn)之間匯總梯度直方圖.但由于按列切分?jǐn)?shù)據(jù)集,在尋找最佳分裂點(diǎn)時(shí),每個(gè)計(jì)算節(jié)點(diǎn)從本地存儲(chǔ)的梯度直方圖中計(jì)算出一個(gè)局部最佳分裂點(diǎn),然后從所有計(jì)算節(jié)點(diǎn)中選擇出一個(gè)全局最佳分裂點(diǎn),這樣的代價(jià)是只有一個(gè)計(jì)算節(jié)點(diǎn)知道數(shù)據(jù)樣本的分裂結(jié)果,也就是數(shù)據(jù)樣本被分到左子節(jié)點(diǎn)還是右子節(jié)點(diǎn).這樣,在完成樹節(jié)點(diǎn)分裂之后,此計(jì)算節(jié)點(diǎn)需要向其他計(jì)算節(jié)點(diǎn)廣播數(shù)據(jù)樣本的位置(左子節(jié)點(diǎn)或者右子節(jié)點(diǎn)),帶來了一定的通信開銷.這部分的通信開銷與數(shù)據(jù)樣本的數(shù)量成正比,因此當(dāng)樹的深度增大時(shí),通信量保持不變.綜上,一棵樹的總通信開銷是4×N×W×L字節(jié),其中,4字節(jié)表示32位整型數(shù)的大小.這樣簡(jiǎn)單地實(shí)現(xiàn)存在的問題是,直接用整型來發(fā)送數(shù)據(jù)樣本的位置開銷較大.為了解決這個(gè)問題,本文提出將數(shù)據(jù)樣本的位置編碼為比特圖,每個(gè)比特代表一個(gè)數(shù)據(jù)樣本的位置,0代表左子節(jié)點(diǎn),1代表右子節(jié)點(diǎn).這種方法能夠顯著降低通信開銷,對(duì)于一個(gè)L層的樹,總的通信開銷是字節(jié).

    2.4 分析結(jié)果總結(jié)

    根據(jù)之前的分析結(jié)果,使用數(shù)據(jù)并行策略最多需要Sh×2L-1的內(nèi)存開銷和Sh×W×(2L-1)的通信開銷,特征并行需要Sh×2L-1/W的內(nèi)存開銷和的通信開銷.

    下面以公開數(shù)據(jù)集 RCV1-multi為例,定量地比較兩種策略的內(nèi)存開銷和通信開銷.RCV1-multi數(shù)據(jù)集有53.4萬個(gè)樣本、4.7萬個(gè)特征和53個(gè)類別,使用8個(gè)計(jì)算節(jié)點(diǎn)建立深度為7的樹,候選分裂點(diǎn)的個(gè)數(shù)設(shè)置為100,每棵樹上梯度直方圖的大小是 3.7GB.當(dāng)使用數(shù)據(jù)并行時(shí),建立一棵樹的內(nèi)存開銷最大是 118.4GB,通信開銷最差情況下總共是 1.8TB;當(dāng)使用特征并行時(shí),建立一棵樹的內(nèi)存開銷是 14.8GB,通信開銷是 3.8MB.由此可見,對(duì)于高維和多分類問題,特征并行與數(shù)據(jù)并行相比,在通信開銷和內(nèi)存開銷上明顯更為高效.

    3 算法介紹

    本節(jié)首先從整體上介紹本文提出的算法FP-GBDT,然后分別詳細(xì)介紹FP-GBDT的關(guān)鍵技術(shù).

    3.1 整體介紹

    圖2是FP-GBDT整體工作流程,主要包括以下幾個(gè)關(guān)鍵步驟.

    (1) 訓(xùn)練數(shù)據(jù)集存儲(chǔ)在分布式文件系統(tǒng)上,例如 HDFS,GFS,Ceph等,默認(rèn)的存儲(chǔ)方式是按行切分.FPGBDT從分布式文件系統(tǒng)上加載訓(xùn)練數(shù)據(jù)集到計(jì)算節(jié)點(diǎn),讀入內(nèi)存中;

    (2) FP-GBDT對(duì)訓(xùn)練數(shù)據(jù)集執(zhí)行數(shù)據(jù)集轉(zhuǎn)置操作,將原本按行切分的數(shù)據(jù)集轉(zhuǎn)換為按列切分的方式,以特征行的方式存儲(chǔ)在計(jì)算節(jié)點(diǎn)上;

    (3) 每個(gè)計(jì)算節(jié)點(diǎn)獨(dú)立地建立梯度直方圖.為了有效地處理普遍存在的高維稀疏數(shù)據(jù),本文提出了一種稀疏感知的方法來加速梯度直方圖的建立;

    (4) 建立完梯度直方圖之后,每個(gè)計(jì)算節(jié)點(diǎn)從本地的梯度直方圖中找出一個(gè)局部最佳分裂點(diǎn),然后通過一個(gè)主節(jié)點(diǎn)從所有候選中找到全局最佳分裂點(diǎn);

    (5) 產(chǎn)生全局最佳分裂點(diǎn)的計(jì)算節(jié)點(diǎn)執(zhí)行分裂樹節(jié)點(diǎn)的操作,并產(chǎn)生數(shù)據(jù)樣本在樹中的位置;然后,使用一種比特圖的壓縮方法發(fā)送數(shù)據(jù)樣本的位置給其他計(jì)算節(jié)點(diǎn).

    Fig.2 Framework of FP-GBDT圖2 FP-GBDT的架構(gòu)

    3.2 數(shù)據(jù)集轉(zhuǎn)置

    原始的訓(xùn)練數(shù)據(jù)集由多行組成,每行包含了一個(gè)數(shù)據(jù)樣本的特征和標(biāo)簽.目前的數(shù)據(jù)集常常是稀疏格式,因此經(jīng)常將數(shù)據(jù)樣本的特征存儲(chǔ)為鍵值對(duì)的形式,其中,鍵是特征索引、值是特征值.數(shù)據(jù)集常常按行切分并存儲(chǔ)在分布式文件系統(tǒng)上,例如HDFS等,這種存儲(chǔ)格式天然不適合特征并行,因?yàn)樘卣鞑⑿行枰趩蝹€(gè)計(jì)算節(jié)點(diǎn)上匯總一個(gè)特征的所有特征值.為了解決這個(gè)問題,需要在梯度提升樹算法執(zhí)行之前對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行轉(zhuǎn)置操作,將按行存儲(chǔ)的數(shù)據(jù)集轉(zhuǎn)換為按列存儲(chǔ)的方式.本文設(shè)計(jì)了一種高效的分布式數(shù)據(jù)集轉(zhuǎn)置算法,如圖3所示.

    Fig.3 Distributed dataset transposition圖3 分布式數(shù)據(jù)集轉(zhuǎn)置

    本方法的計(jì)算流程包括4個(gè)步驟.

    (1) 計(jì)算數(shù)據(jù)樣本的偏移.為了唯一標(biāo)識(shí)每個(gè)數(shù)據(jù)樣本,每個(gè)計(jì)算節(jié)點(diǎn)將本地?cái)?shù)據(jù)樣本的數(shù)量發(fā)送給主節(jié)點(diǎn),然后,主節(jié)點(diǎn)從全局上統(tǒng)計(jì)數(shù)據(jù)樣本的數(shù)量,給每個(gè)計(jì)算節(jié)點(diǎn)發(fā)送一個(gè)全局偏移值,限定了每個(gè)計(jì)算節(jié)點(diǎn)上數(shù)據(jù)樣本標(biāo)識(shí)范圍.這樣,每個(gè)數(shù)據(jù)樣本的標(biāo)識(shí)就等于計(jì)算節(jié)點(diǎn)的全局偏移加上本地偏移;

    (2) 轉(zhuǎn)置數(shù)據(jù)集.每個(gè)計(jì)算節(jié)點(diǎn)對(duì)本地的數(shù)據(jù)樣本進(jìn)行轉(zhuǎn)置操作.原始的數(shù)據(jù)集由樣本行組成,每個(gè)樣本行存儲(chǔ)著(特征索引,特征值)的鍵值對(duì).本節(jié)的數(shù)據(jù)集轉(zhuǎn)置方法將這種數(shù)據(jù)表示方式轉(zhuǎn)換為特征行,每個(gè)特征行存儲(chǔ)著一個(gè)特征出現(xiàn)的所有位置,也就是(樣本索引,特征值)的鍵值對(duì),表示此特征在每個(gè)數(shù)據(jù)樣本中的非零值,這里的樣本索引根據(jù)上一步產(chǎn)生的樣本偏移計(jì)算而出;

    (3) 重切分特征行.由于一個(gè)特征的特征值可能存在多個(gè)計(jì)算節(jié)點(diǎn)上,因而每個(gè)特征在多個(gè)計(jì)算節(jié)點(diǎn)上存在局部特征行.本方法通過MapReduce操作重切分所有計(jì)算節(jié)點(diǎn)上的局部特征行,使得每個(gè)特征的所有局部特征行在一個(gè)計(jì)算節(jié)點(diǎn)行進(jìn)行匯總,形成此特征完整的特征行.通過這個(gè)操作,每個(gè)計(jì)算節(jié)點(diǎn)負(fù)責(zé)一個(gè)特征子集,存儲(chǔ)著這個(gè)特征子集中所有特征的特征行,由(樣本索引,特征值)的鍵值對(duì)組成;

    (4) 廣播樣本標(biāo)簽.主節(jié)點(diǎn)從所有計(jì)算節(jié)點(diǎn)收集數(shù)據(jù)樣本的標(biāo)簽,然后廣播給計(jì)算節(jié)點(diǎn).這些標(biāo)簽被每個(gè)計(jì)算節(jié)點(diǎn)用來計(jì)算數(shù)據(jù)樣本的梯度.

    3.3 建立梯度直方圖

    在數(shù)據(jù)集轉(zhuǎn)置之后,每個(gè)計(jì)算節(jié)點(diǎn)使用特征行來建立梯度直方圖.首先掃描特征行,為每個(gè)特征建立分位數(shù)據(jù)草圖,然后使用數(shù)據(jù)草圖產(chǎn)生候選分裂點(diǎn),具體而言,使用一組 0~1之間的分位值,例如{0,0.1,0.2,…,1.0},從分位數(shù)據(jù)草圖中查詢出每個(gè)特征的候選分裂值.

    特征并行策略下,一個(gè)計(jì)算節(jié)點(diǎn)包含了某個(gè)特征所有出現(xiàn)的特征值,而數(shù)據(jù)并行策略下,一個(gè)計(jì)算節(jié)點(diǎn)只包含了某個(gè)特征的部分特征值.因此在特征并行策略下,一個(gè)樹節(jié)點(diǎn)建立梯度直方圖的操作比數(shù)據(jù)并行策略的計(jì)算量更大.由此可見:針對(duì)特征并行的特點(diǎn),設(shè)計(jì)高效的機(jī)制來加速梯度直方圖的建立是非常有意義的.

    · 稀疏感知的建立梯度直方圖方法.

    建立梯度直方圖需要直接處理數(shù)據(jù)樣本,要達(dá)到優(yōu)化的目標(biāo),應(yīng)該考慮數(shù)據(jù)樣本的特點(diǎn).在實(shí)際應(yīng)用中,很多真實(shí)的數(shù)據(jù)集常常是稀疏的,一個(gè)數(shù)據(jù)樣本中只有一部分非常少的特征有非零值.傳統(tǒng)的建立梯度直方圖的方法需要數(shù)據(jù)樣本的所有特征值,包括值為零和值非零的特征,因此計(jì)算復(fù)雜度是O(N×D),這里,N是數(shù)據(jù)樣本的數(shù)量,D是特征數(shù)量.對(duì)于數(shù)據(jù)量大、特征維度高的情況,這樣的計(jì)算復(fù)雜度過高.考慮到稀疏的數(shù)據(jù)特點(diǎn)和存在的問題,一個(gè)直觀的想法是,能否利用數(shù)據(jù)稀疏性來加速梯度直方圖的建立.基于這樣的思路,本文提出一種稀疏感知的建立梯度直方圖的技術(shù),如圖4所示,主要技術(shù)細(xì)節(jié)如下所述.

    (1) 在讀取數(shù)據(jù)樣本之前,假設(shè)數(shù)據(jù)樣本的所有特征值都為 0.一般情況下會(huì)認(rèn)為特征值為非零是正常情況,特征值為0是異常情況,但真實(shí)情況是,數(shù)據(jù)樣本中大部分特征值為0,從概率的角度來看,特征值為0是大多數(shù)情況,而特征值為非零是極少數(shù)情況.基于這樣的觀察,本方法在讀取數(shù)據(jù)樣本之前,假設(shè)它們所有的特征值都為0;

    (2) 累加數(shù)據(jù)樣本的梯度.經(jīng)過數(shù)據(jù)集轉(zhuǎn)置之后,每個(gè)計(jì)算節(jié)點(diǎn)上保存著所有數(shù)據(jù)樣本的標(biāo)簽,使用數(shù)據(jù)樣本的標(biāo)簽和預(yù)測(cè)值,計(jì)算數(shù)據(jù)樣本的梯度,接著累加所有的梯度;

    (3) 將梯度和增加到零桶中.一個(gè)特征的梯度直方圖中,每個(gè)桶包含特征值的一個(gè)區(qū)間,這里將零桶定義為包含特征值為零的桶.本方法的第 1步中假設(shè)所有特征值都為零,這樣應(yīng)該將每個(gè)數(shù)據(jù)樣本的梯度放入零桶中,因此,本方法將第2步求得的梯度和加到每個(gè)特征的梯度直方圖的零桶中;

    (4) 重定位非零特征值.依次讀取特征行存儲(chǔ)的非零特征值,根據(jù)特征值的大小找到對(duì)應(yīng)的梯度直方圖的桶,然后將此特征值對(duì)應(yīng)的數(shù)據(jù)樣本的梯度加到此梯度直方圖桶中;同時(shí),為了保證梯度直方圖的正確性,從零桶中減去此數(shù)據(jù)樣本的梯度.

    Fig.4 Sparsity-aware histogram construction圖4 稀疏感知的建立梯度直方圖方法

    · 計(jì)算復(fù)雜度分析.

    使用本文提出的稀疏感知建立梯度直方圖的方法,首先需要掃描一遍數(shù)據(jù)樣本計(jì)算梯度和,然后將梯度和加到每個(gè)特征的梯度直方圖的零桶中,最后掃描一遍非零特征值.這樣的計(jì)算復(fù)雜度是.這里,N是數(shù)據(jù)樣本的數(shù)量,D是特征的數(shù)量,W是集群計(jì)算節(jié)點(diǎn)的數(shù)量,d代表一個(gè)數(shù)據(jù)樣本中非零特征值的平均數(shù)量.與傳統(tǒng)方法的計(jì)算復(fù)雜度O(N×D)相比,由于d<

    3.4 分裂樹節(jié)點(diǎn)

    找到一個(gè)樹節(jié)點(diǎn)的最佳分裂點(diǎn)后,下一步是分裂樹節(jié)點(diǎn).使用特征并行策略時(shí),某個(gè)計(jì)算節(jié)點(diǎn)產(chǎn)生了全局最佳分裂點(diǎn),樹節(jié)點(diǎn)的分裂結(jié)果(數(shù)據(jù)樣本的位置)也只有此計(jì)算節(jié)點(diǎn)知道,因而,此計(jì)算節(jié)點(diǎn)需要將數(shù)據(jù)樣本的位置廣播給其他計(jì)算節(jié)點(diǎn).為了減少通信開銷,本文設(shè)計(jì)了一種比特圖的方法來壓縮數(shù)據(jù)樣本的位置,如圖5所示.

    Fig.5 Bitmap compression圖5 比特圖壓縮方法

    · 比特圖壓縮.

    如果使用整型的表達(dá)方式,廣播數(shù)據(jù)樣本位置的通信開銷是4×N×W字節(jié).一個(gè)數(shù)據(jù)樣本的位置是左子節(jié)點(diǎn)或者右子節(jié)點(diǎn),因此,本方法使用一個(gè)比特圖來二進(jìn)制編碼樣本位置,左子節(jié)點(diǎn)編碼為 0,右子節(jié)點(diǎn)編碼為 1.使用這種方法,通信開銷降低為N×W/8字節(jié),帶來了32倍的提升.當(dāng)其他計(jì)算節(jié)點(diǎn)接收到比特圖后,逐個(gè)比特地讀取,然后更新數(shù)據(jù)樣本在樹中的位置.

    除了能夠節(jié)省通信開銷,特征并行相比數(shù)據(jù)并行還有另外一個(gè)優(yōu)勢(shì):當(dāng)樹的層數(shù)加深時(shí),同層樹節(jié)點(diǎn)的數(shù)量指數(shù)增長(zhǎng),數(shù)據(jù)并行策略下通信開銷也會(huì)指數(shù)級(jí)增長(zhǎng);而使用特征并行策略時(shí),樹的一層的通信開銷與樹節(jié)點(diǎn)的數(shù)量無關(guān),樹深度的增加不會(huì)造成通信開銷的增加.

    4 實(shí)驗(yàn)對(duì)比

    本節(jié)通過詳盡的實(shí)驗(yàn)來驗(yàn)證FP-GBDT算法的有效性.

    4.1 實(shí)驗(yàn)設(shè)置

    · 原型實(shí)現(xiàn).

    FP-GBDT在Spark[19]的基礎(chǔ)上實(shí)現(xiàn),數(shù)據(jù)存儲(chǔ)在HDFS上,機(jī)器學(xué)習(xí)任務(wù)提交到一個(gè)8節(jié)點(diǎn)的Yarn[20]集群上.每個(gè)機(jī)器配置了4個(gè)E3-1220 v3 CPU,32GB內(nèi)存和1Gb網(wǎng)絡(luò).

    · 數(shù)據(jù)集.

    本文的實(shí)驗(yàn)使用了3個(gè)數(shù)據(jù)集,見表2.RCV1[21]和 RCV1-multi[22]是兩個(gè)公開的文本分類數(shù)據(jù)集[23],樣本數(shù)量分別為69.7萬和53.4萬,特征數(shù)量均為4.7萬,RCV1有2種類別,RCV1-multi有53種類別.Synthesis是一個(gè)人造數(shù)據(jù)集,包含1千萬個(gè)樣本和10萬個(gè)特征.Synthesis是一個(gè)二分類數(shù)據(jù)集,用來評(píng)估本文提出的優(yōu)化方法的效果和特征維度的影響,RCV1和RCV1-multi的特征相同而類別數(shù)量不同,被用來評(píng)估類別數(shù)量的影響.

    · 基準(zhǔn)方法.

    如前所述,目前有多種分布式梯度提升樹算法的實(shí)現(xiàn),例如Mllib,XGBoost和LightGBM等.本文基于兩個(gè)原因選擇 XGBoost作為數(shù)據(jù)并行策略的代表:第一,XGBoost是目前使用最廣泛的分布式梯度提升樹系統(tǒng);第二,XGBoost有基于Spark實(shí)現(xiàn)的版本,因而實(shí)驗(yàn)對(duì)比是公平的.

    · 超參數(shù).

    除非另外聲明,對(duì)RCV1和RCV1-multi數(shù)據(jù)集選擇L=7,對(duì)Synthesis數(shù)據(jù)集選擇L=8,計(jì)算節(jié)點(diǎn)數(shù)量W=10.對(duì)于其他超參數(shù),候選分裂點(diǎn)數(shù)量q=100,學(xué)習(xí)速度η=0.1,特征采樣率設(shè)為1.0,樹的數(shù)量設(shè)為100.

    Table 2 Datasets表2 數(shù)據(jù)集

    4.2 優(yōu)化方法有效性

    本節(jié)的實(shí)驗(yàn)用來評(píng)估本文提出的優(yōu)化方法,驗(yàn)證它們的有效性,這些優(yōu)化方法包括數(shù)據(jù)集轉(zhuǎn)置、稀疏感知建立梯度直方圖和比特圖壓縮.

    · 數(shù)據(jù)集轉(zhuǎn)置.

    首先展示分布式數(shù)據(jù)集轉(zhuǎn)置方法的性能,實(shí)驗(yàn)數(shù)據(jù)如圖6所示,從HDFS上加載3個(gè)數(shù)據(jù)集的時(shí)間分別是17s、12s和 106s.使用簡(jiǎn)單的直接數(shù)據(jù)集轉(zhuǎn)置,在 RCV1,RCV1-multi和 Synthesis數(shù)據(jù)集上需要的時(shí)間分別是20s、13s和168s;而FP-GBDT執(zhí)行數(shù)據(jù)集轉(zhuǎn)置的操作,在3個(gè)數(shù)據(jù)集上的耗時(shí)分別是9s、6s和95s,相比原始的數(shù)據(jù)集轉(zhuǎn)置方法,速度得到了最高 2倍的提升.雖然相比于數(shù)據(jù)并行的策略,FP-GBDT帶來了額外的時(shí)間開銷,但是在后面的實(shí)驗(yàn)中將顯示,FP-GBDT顯著提升了整體的性能.

    · 稀疏感知建立梯度直方圖.

    當(dāng)使用稀疏感知的方法時(shí),對(duì)Synthesis數(shù)據(jù)集,建立樹的根節(jié)點(diǎn)的梯度直方圖的時(shí)間是9s.但是當(dāng)不使用這種方法時(shí),在1h之內(nèi)無法完成建立根節(jié)點(diǎn)的梯度直方圖,原因是需要讀取一個(gè)數(shù)據(jù)樣本的所有特征.

    · 比特圖壓縮.

    找到最佳分裂點(diǎn)后,處理分裂樹節(jié)點(diǎn)的任務(wù)時(shí),FP-GBDT廣播數(shù)據(jù)樣本的位置時(shí)使用比特圖的壓縮方法.本實(shí)驗(yàn)在 Synthesis數(shù)據(jù)集上訓(xùn)練梯度提升樹算法,建立一棵樹的總時(shí)間開銷中分裂樹節(jié)點(diǎn)需要 18s;當(dāng)使用了比特圖壓縮方法后,此部分時(shí)間開銷降低為8s,帶來了2倍的速度提升.

    Fig.6 Effects of dataset transposition圖6 數(shù)據(jù)集轉(zhuǎn)置的效果

    4.3 性能對(duì)比

    4.3.1 FP-GBDT與XGBoost的性能對(duì)比

    本節(jié)的實(shí)驗(yàn)比較FP-GBDT與XGBoost,FP-GBDT使用特征并行策略,XGBoost使用數(shù)據(jù)并行策略,下面分別評(píng)估特征數(shù)量、類別數(shù)量等因素對(duì)結(jié)果的影響.

    · 特征數(shù)量的影響.

    本文提出的FP-GBDT適合高維特征的數(shù)據(jù)集,為了評(píng)估特征數(shù)量對(duì)于實(shí)驗(yàn)結(jié)果的影響,本文使用Synthesis數(shù)據(jù)集的一部分特征子集,例如Synthesis-25K代表使用Synthesis數(shù)據(jù)集前2.5萬個(gè)特征,Synthesis-100K代表Synthesis數(shù)據(jù)集的全部特征.分別用FP-GBDT與XGBoost在Synthesis的多個(gè)數(shù)據(jù)子集上訓(xùn)練梯度提升樹算法,FP-GBDT與XGBoost對(duì)比的實(shí)驗(yàn)結(jié)果如圖7所示.當(dāng)特征數(shù)量從2.5萬增加到5萬和10萬時(shí),XGBoost建立一棵樹的時(shí)間從80s增加到了144s和301s,性能分別下降了1.8倍和3.7倍.原因是特征數(shù)量增大1倍時(shí),梯度直方圖的大小也增加 1倍,XGBoost使用數(shù)據(jù)并行,通信開銷線性增大,從而造成性能幾乎線性下降;FPGBDT的性能下降較小,分別慢了1.4倍和2.2倍,FP-GBDT使用特征并行,通信開銷與特征數(shù)量無關(guān),樹的每一層的開銷一樣,因而只會(huì)受到計(jì)算開銷增大的影響.總的來說,特征數(shù)量增大時(shí)FP-GBDT比XGBoost更加高效.

    · 類別數(shù)量的影響.

    如前文所分析,對(duì)于多分類問題,類別數(shù)量對(duì)梯度直方圖的大小有直接的影響.為了更好地顯示結(jié)果,本實(shí)驗(yàn)選擇了兩分類的RCV1數(shù)據(jù)集和53分類的RCV1-multi數(shù)據(jù)集,同時(shí)又將RCV1-multi的53類合并為5類.用8個(gè)計(jì)算節(jié)點(diǎn)對(duì)這3個(gè)數(shù)據(jù)集訓(xùn)練梯度提升樹模型,圖8顯示了實(shí)驗(yàn)結(jié)果,統(tǒng)計(jì)了建立一棵樹的平均時(shí)間.在2分類上的RCV1數(shù)據(jù)集上,XGBoost平均需要53s訓(xùn)練一棵樹,而FP-GBDT只需要26s,訓(xùn)練速度快了2倍,所以FP-GBDT的收斂速度比 XGBoost快得多.在 5分類的RCV1-multi數(shù)據(jù)集上,XGBoost需要251s訓(xùn)練一棵樹,FP-GBDT只需要41s,快了6.1倍.類別增加到5類時(shí),梯度直方圖的大小增大了5倍,XGBoost的性能下降了接近5倍,而FP-GBDT只慢了1.5倍,這說明FP-GBDT更適合多分類問題.當(dāng)使用53類的RCV1-multi數(shù)據(jù)集時(shí),FP-GBDT訓(xùn)練一棵樹需要 161s,而 XGBoost出現(xiàn)了內(nèi)存溢出(out of memory,簡(jiǎn)稱 OOM)的錯(cuò)誤,這證明了XGBoost使用的數(shù)據(jù)并行策略的內(nèi)存開銷較大.總的來說,FP-GBDT比XGBoost更適合多分類任務(wù),特別是類別數(shù)量較大的情況.

    Fig.7 Impact of feature dimensionality圖7 特征數(shù)量的影響

    Fig.8 Impact of class number圖8 類別數(shù)量的影響

    · 樹深度的影響.

    接下來的實(shí)驗(yàn)將評(píng)估樹的深度對(duì)性能的影響.一般來說,樹的深度越大,訓(xùn)練時(shí)間越長(zhǎng),模型準(zhǔn)確率更高.本實(shí)驗(yàn)在RCV1數(shù)據(jù)集上訓(xùn)練梯度提升樹算法,逐步地增加樹的深度,實(shí)驗(yàn)結(jié)果顯示在圖9和圖10中.

    深度增大時(shí),XGBoost和 FP-GBDT的誤差均下降,證明更深的樹可以提高模型的準(zhǔn)確率,代價(jià)是訓(xùn)練時(shí)間的增大.當(dāng)樹的深度從8增大到9時(shí),數(shù)據(jù)并行策略下梯度直方圖的大小增大1倍,因此,XGBoost的運(yùn)行速度慢了2倍;繼續(xù)將樹的深度增大到10時(shí),XGBoost出現(xiàn)了內(nèi)存溢出的錯(cuò)誤.

    與此相對(duì)應(yīng),FP-GBDT使用特征并行,能夠高效地處理更深的樹,樹的深度增大時(shí),每一層的通信開銷保持不變,因此性能下降較為平穩(wěn),在可接受范圍之內(nèi);同時(shí),FP-GBDT的內(nèi)存開銷較小,樹的深度增加時(shí)沒有出現(xiàn)資源不足的情況.

    Fig.9 Impact of tree depth (time to build one tree)圖9 樹深度的影響(建立一棵樹的平均時(shí)間)

    Fig.10 Impact of tree depth (error after the first tree)圖10 樹深度的影響(第1棵樹后的誤差)

    4.3.2 FP-GBDT與LightGBM的性能對(duì)比

    如第1.4節(jié)所述,LightGBM也實(shí)現(xiàn)了一個(gè)特征并行的梯度提升樹算法,但是LightGBM的實(shí)現(xiàn)需要每個(gè)計(jì)算節(jié)點(diǎn)上已經(jīng)存有完整的數(shù)據(jù)集,訓(xùn)練時(shí),LightGBM 將整個(gè)數(shù)據(jù)集加載進(jìn)內(nèi)存,這樣,LightGBM 不需要進(jìn)行數(shù)據(jù)集轉(zhuǎn)置的處理,也不需要在節(jié)點(diǎn)之間廣播分裂后數(shù)據(jù)樣本的位置.嚴(yán)格意義上,這不是一種真正的特征并行方式,在真實(shí)的應(yīng)用中,單機(jī)的內(nèi)存常常無法存儲(chǔ)完整的數(shù)據(jù)集;在真實(shí)的環(huán)境中,數(shù)據(jù)集常常以存儲(chǔ)在分布式文件系統(tǒng)上,LightGBM在這種情況下無法工作.因此,LightGBM的特征并行實(shí)現(xiàn)無法用在實(shí)際中.

    但是為了給出更加全面的結(jié)果,本節(jié)使用Synthesis數(shù)據(jù)集比較了FP-GBDT和LightGBM的性能,實(shí)驗(yàn)設(shè)置與之前的實(shí)驗(yàn)保持一致.由于LightGBM無法從分布式文件系統(tǒng)讀取數(shù)據(jù),首先使用hadoop fs命令從HDFS上下載到每一個(gè)計(jì)算節(jié)點(diǎn)上,在所有計(jì)算節(jié)點(diǎn)下載完成之后,在每個(gè)計(jì)算節(jié)點(diǎn)上啟動(dòng) LightGBM,從 HDFS下載數(shù)據(jù)集加上本地讀取數(shù)據(jù)的總時(shí)間是LightGBM的數(shù)據(jù)預(yù)處理的時(shí)間.

    圖11給出了實(shí)驗(yàn)結(jié)果,FP-GBDT的數(shù)據(jù)預(yù)處理(包括加載數(shù)據(jù)集和數(shù)據(jù)集轉(zhuǎn)置)時(shí)間是201s,而LightGBM需要 820s來對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,比 FP-GBDT慢了 4倍多;在訓(xùn)練階段,FP-GBDT建立一棵樹的平均時(shí)間是105s,LightGBM需要90s;在內(nèi)存開銷方面,LightGBM由于需要在每個(gè)節(jié)點(diǎn)上存儲(chǔ)完整的數(shù)據(jù)集,因此每臺(tái)機(jī)器上消耗了30GB的內(nèi)存,是FP-GBDT的內(nèi)存開銷的6倍.總體來看,LightGBM單棵樹的速度略快.這主要是因?yàn)槊總€(gè)計(jì)算節(jié)點(diǎn)加載完整的數(shù)據(jù)集,從而避免了通過網(wǎng)絡(luò)傳輸數(shù)據(jù)樣本的分裂位置;很多工業(yè)界的數(shù)據(jù)集大小常常達(dá)到 TB級(jí)別,單個(gè)計(jì)算節(jié)點(diǎn)的內(nèi)存顯然無法存儲(chǔ)這樣大的數(shù)據(jù)集;對(duì)于存儲(chǔ)在分布式文件系統(tǒng)上的數(shù)據(jù)集,LightGBM 首先需要將數(shù)據(jù)集下載到每個(gè)計(jì)算節(jié)點(diǎn)上,這帶來了很大的開銷.因此,對(duì)于較小的數(shù)據(jù)集和實(shí)驗(yàn)室級(jí)別的環(huán)境,并且資源較充裕時(shí),LightGBM 是一個(gè)不錯(cuò)的選擇;但是對(duì)于較大的數(shù)據(jù)集和真實(shí)的生產(chǎn)環(huán)境,LightGBM常常是不可用的,而FP-GBDT的適用性很廣,更加適合大數(shù)據(jù)時(shí)代的需求和發(fā)展趨勢(shì).

    Fig.11 Performance comparison of FP-GBDT and LightGBM圖11 FP-GBDT與LightGBM的性能對(duì)比

    5 總 結(jié)

    本文研究面向高維特征和多分類問題的分布式梯度提升樹算法.根據(jù)一個(gè)嚴(yán)格的代價(jià)模型,比較了數(shù)據(jù)并行策略和特征并行策略,證明了特征并行策略更適合高維和多分類場(chǎng)景;基于理論分析的結(jié)果,本文提出一種使用特征并行的分布式梯度提升樹算法FP-GBDT.FP-GBDT首先利用對(duì)數(shù)據(jù)集進(jìn)行分布式轉(zhuǎn)置,轉(zhuǎn)換為特征并行需要的數(shù)據(jù)表征;在建立梯度直方圖時(shí),FP-GBDT設(shè)計(jì)了稀疏感知的方法;在分裂樹節(jié)點(diǎn)時(shí),FP-GBDT使用一種比特圖壓縮的方法傳輸數(shù)據(jù)樣本的位置.實(shí)驗(yàn)結(jié)果顯示,FP-GBDT與使用數(shù)據(jù)并行的 XGBoost相比,性能的提升最高達(dá)到6倍以上,證明了特征并行的FP-GBDT在高維和多分類問題上的高效性.

    猜你喜歡
    直方圖特征值梯度
    統(tǒng)計(jì)頻率分布直方圖的備考全攻略
    符合差分隱私的流數(shù)據(jù)統(tǒng)計(jì)直方圖發(fā)布
    一個(gè)改進(jìn)的WYL型三項(xiàng)共軛梯度法
    一類帶強(qiáng)制位勢(shì)的p-Laplace特征值問題
    單圈圖關(guān)聯(lián)矩陣的特征值
    一種自適應(yīng)Dai-Liao共軛梯度法
    用直方圖控制畫面影調(diào)
    一類扭積形式的梯度近Ricci孤立子
    基于商奇異值分解的一類二次特征值反問題
    基于直方圖平移和互補(bǔ)嵌入的可逆水印方案
    在线天堂中文资源库| av欧美777| 91九色精品人成在线观看| 亚洲人成网站高清观看| 亚洲av电影不卡..在线观看| 女人被狂操c到高潮| 人人妻人人澡人人看| 亚洲欧美激情综合另类| 欧美成狂野欧美在线观看| 日韩高清综合在线| 69av精品久久久久久| 91成年电影在线观看| 99精品欧美一区二区三区四区| av有码第一页| 999久久久精品免费观看国产| 中文字幕av电影在线播放| 精品一区二区三区av网在线观看| 51午夜福利影视在线观看| 黄色视频不卡| 日本免费一区二区三区高清不卡| 欧美亚洲日本最大视频资源| 久久婷婷成人综合色麻豆| 色哟哟哟哟哟哟| 悠悠久久av| 亚洲 国产 在线| 男人舔女人的私密视频| 亚洲精品一卡2卡三卡4卡5卡| 亚洲成国产人片在线观看| av片东京热男人的天堂| 国产爱豆传媒在线观看 | 麻豆国产av国片精品| 桃红色精品国产亚洲av| 欧美日韩福利视频一区二区| 视频在线观看一区二区三区| 久久精品91蜜桃| 欧美最黄视频在线播放免费| 国产伦一二天堂av在线观看| 一区二区三区精品91| a级毛片a级免费在线| 宅男免费午夜| 巨乳人妻的诱惑在线观看| 丝袜在线中文字幕| 老熟妇乱子伦视频在线观看| 色播在线永久视频| 最新美女视频免费是黄的| 午夜老司机福利片| 99riav亚洲国产免费| 免费人成视频x8x8入口观看| 成在线人永久免费视频| 久久香蕉国产精品| 日日干狠狠操夜夜爽| 嫁个100分男人电影在线观看| 国产亚洲av嫩草精品影院| 欧美日韩一级在线毛片| 在线观看日韩欧美| 午夜激情福利司机影院| 免费在线观看成人毛片| 狂野欧美激情性xxxx| 色av中文字幕| 丰满人妻熟妇乱又伦精品不卡| 最近最新中文字幕大全电影3 | 久久久精品国产亚洲av高清涩受| 桃红色精品国产亚洲av| 欧美日韩福利视频一区二区| 免费在线观看成人毛片| 成年女人毛片免费观看观看9| 色av中文字幕| 国产人伦9x9x在线观看| 观看免费一级毛片| 欧美一级a爱片免费观看看 | 亚洲人成网站高清观看| 人妻丰满熟妇av一区二区三区| 日日爽夜夜爽网站| 亚洲av成人一区二区三| 国产精品乱码一区二三区的特点| 两性午夜刺激爽爽歪歪视频在线观看 | 国产三级黄色录像| 听说在线观看完整版免费高清| 久久精品国产亚洲av高清一级| 啪啪无遮挡十八禁网站| 亚洲黑人精品在线| 国产精华一区二区三区| 久久九九热精品免费| 美女 人体艺术 gogo| 日本撒尿小便嘘嘘汇集6| 两人在一起打扑克的视频| 精品日产1卡2卡| 国产高清videossex| 成人欧美大片| 黑人操中国人逼视频| 日韩精品中文字幕看吧| 在线观看66精品国产| 国产精品亚洲一级av第二区| 日本黄色视频三级网站网址| 91九色精品人成在线观看| 激情在线观看视频在线高清| 一区二区三区激情视频| 大型黄色视频在线免费观看| 亚洲欧美日韩无卡精品| av在线播放免费不卡| 99热只有精品国产| 久久久久久久午夜电影| 亚洲性夜色夜夜综合| 最近最新中文字幕大全免费视频| 精品久久久久久久末码| 久9热在线精品视频| 黄色片一级片一级黄色片| bbb黄色大片| 欧美另类亚洲清纯唯美| 黄色a级毛片大全视频| 国产1区2区3区精品| 国产精品亚洲美女久久久| 黄网站色视频无遮挡免费观看| 精品电影一区二区在线| 欧美av亚洲av综合av国产av| 丰满的人妻完整版| 哪里可以看免费的av片| 国产精品精品国产色婷婷| 日日干狠狠操夜夜爽| 一本久久中文字幕| x7x7x7水蜜桃| 国产精品久久电影中文字幕| 观看免费一级毛片| 久久精品亚洲精品国产色婷小说| 欧美精品亚洲一区二区| 国产成人欧美| 久久国产精品男人的天堂亚洲| 欧美激情 高清一区二区三区| 亚洲成av片中文字幕在线观看| videosex国产| 国产精品久久久久久人妻精品电影| 热99re8久久精品国产| 欧美另类亚洲清纯唯美| 国产人伦9x9x在线观看| 香蕉久久夜色| 精品一区二区三区视频在线观看免费| 神马国产精品三级电影在线观看 | 亚洲美女黄片视频| 国产精品久久久久久精品电影 | 精品国内亚洲2022精品成人| 搞女人的毛片| 熟女电影av网| 人妻久久中文字幕网| 日本a在线网址| 18禁裸乳无遮挡免费网站照片 | 脱女人内裤的视频| 久热爱精品视频在线9| 天天躁狠狠躁夜夜躁狠狠躁| 老汉色av国产亚洲站长工具| 免费观看人在逋| 高清毛片免费观看视频网站| 人人妻人人澡欧美一区二区| 欧美又色又爽又黄视频| 欧美激情极品国产一区二区三区| 免费看十八禁软件| 99热这里只有精品一区 | 国产欧美日韩一区二区精品| 法律面前人人平等表现在哪些方面| 久久精品亚洲精品国产色婷小说| 一区二区三区高清视频在线| 日本免费一区二区三区高清不卡| 两个人看的免费小视频| 亚洲国产日韩欧美精品在线观看 | 每晚都被弄得嗷嗷叫到高潮| 国产av一区二区精品久久| videosex国产| 禁无遮挡网站| 精品欧美一区二区三区在线| 国产99久久九九免费精品| 亚洲色图av天堂| 国产野战对白在线观看| 日本精品一区二区三区蜜桃| 日韩av在线大香蕉| 女警被强在线播放| 亚洲人成网站高清观看| 老司机在亚洲福利影院| 最好的美女福利视频网| 亚洲熟妇中文字幕五十中出| 国产高清有码在线观看视频 | 久久久精品欧美日韩精品| 国产熟女午夜一区二区三区| 少妇的丰满在线观看| 看免费av毛片| 欧美不卡视频在线免费观看 | 一级毛片女人18水好多| 啦啦啦观看免费观看视频高清| 亚洲av成人一区二区三| 欧美日韩黄片免| 在线永久观看黄色视频| or卡值多少钱| 黄片大片在线免费观看| 日本三级黄在线观看| 亚洲av片天天在线观看| 999久久久精品免费观看国产| 精品国产一区二区三区四区第35| av在线天堂中文字幕| 久久久国产成人免费| 91大片在线观看| 国产精品免费视频内射| 国产在线观看jvid| 久久久精品欧美日韩精品| 亚洲一卡2卡3卡4卡5卡精品中文| 午夜久久久在线观看| 99国产精品99久久久久| 麻豆久久精品国产亚洲av| 最好的美女福利视频网| 黄色视频不卡| 亚洲精品久久国产高清桃花| 一卡2卡三卡四卡精品乱码亚洲| 精品高清国产在线一区| 中文亚洲av片在线观看爽| 草草在线视频免费看| 亚洲九九香蕉| 非洲黑人性xxxx精品又粗又长| 久久热在线av| 亚洲av五月六月丁香网| 人人妻人人澡欧美一区二区| 久久中文字幕人妻熟女| 日本撒尿小便嘘嘘汇集6| 一区二区三区国产精品乱码| 亚洲国产欧美日韩在线播放| 亚洲国产精品sss在线观看| 久久中文字幕一级| 亚洲人成电影免费在线| 亚洲人成网站高清观看| 国产精品98久久久久久宅男小说| 性欧美人与动物交配| 最近最新中文字幕大全电影3 | 男女视频在线观看网站免费 | 国产麻豆成人av免费视频| 久久 成人 亚洲| ponron亚洲| 国产精品二区激情视频| 这个男人来自地球电影免费观看| 欧美成人免费av一区二区三区| 搞女人的毛片| 99国产极品粉嫩在线观看| 国产精品日韩av在线免费观看| 别揉我奶头~嗯~啊~动态视频| 亚洲精品av麻豆狂野| 成人av一区二区三区在线看| 黄片小视频在线播放| 一区二区三区精品91| 正在播放国产对白刺激| 又紧又爽又黄一区二区| 久久精品国产亚洲av香蕉五月| 黄频高清免费视频| 性欧美人与动物交配| 国产伦一二天堂av在线观看| 午夜福利在线在线| 亚洲成av片中文字幕在线观看| 免费人成视频x8x8入口观看| 一卡2卡三卡四卡精品乱码亚洲| 欧美 亚洲 国产 日韩一| 国产又爽黄色视频| 99热只有精品国产| 精品国产一区二区三区四区第35| 狠狠狠狠99中文字幕| 亚洲国产精品久久男人天堂| 国产精品免费视频内射| 亚洲国产精品999在线| 日本 欧美在线| 窝窝影院91人妻| 国产又爽黄色视频| 久久性视频一级片| 波多野结衣巨乳人妻| 手机成人av网站| 中文字幕人妻丝袜一区二区| 亚洲av熟女| 成人国语在线视频| 亚洲专区字幕在线| 国产一卡二卡三卡精品| 国产成人av教育| 一本大道久久a久久精品| 一a级毛片在线观看| 欧美乱妇无乱码| 久久国产亚洲av麻豆专区| 91成人精品电影| 91av网站免费观看| 久久精品国产99精品国产亚洲性色| 在线观看舔阴道视频| 亚洲全国av大片| 成人亚洲精品一区在线观看| 夜夜夜夜夜久久久久| 看黄色毛片网站| 亚洲自拍偷在线| 黑丝袜美女国产一区| 非洲黑人性xxxx精品又粗又长| 99精品在免费线老司机午夜| 国产高清视频在线播放一区| 99在线人妻在线中文字幕| 国产熟女午夜一区二区三区| 看免费av毛片| 波多野结衣高清无吗| 最近最新中文字幕大全免费视频| 欧美人与性动交α欧美精品济南到| 国产成人精品无人区| 在线播放国产精品三级| 侵犯人妻中文字幕一二三四区| 91麻豆精品激情在线观看国产| 青草久久国产| 国产精品野战在线观看| 91成人精品电影| 欧美激情高清一区二区三区| 女人被狂操c到高潮| 熟妇人妻久久中文字幕3abv| www日本黄色视频网| 两个人视频免费观看高清| 亚洲人成伊人成综合网2020| 又黄又粗又硬又大视频| 午夜a级毛片| 麻豆国产av国片精品| 欧美乱码精品一区二区三区| 天堂动漫精品| 黄色a级毛片大全视频| 午夜福利一区二区在线看| 亚洲一区高清亚洲精品| 欧美日本亚洲视频在线播放| 很黄的视频免费| 国产一区二区三区视频了| 精品久久久久久久末码| 亚洲专区国产一区二区| 精品久久久久久久末码| 欧美日韩瑟瑟在线播放| 日本a在线网址| 亚洲国产日韩欧美精品在线观看 | 黄色视频不卡| 免费观看精品视频网站| 免费高清视频大片| 黄色a级毛片大全视频| 亚洲激情在线av| 99热这里只有精品一区 | 久久精品亚洲精品国产色婷小说| 嫩草影院精品99| 日日摸夜夜添夜夜添小说| 亚洲久久久国产精品| 伦理电影免费视频| 国产精品久久久久久精品电影 | 亚洲国产欧洲综合997久久, | 久久久久久大精品| 久久久久久久久中文| 啦啦啦 在线观看视频| 亚洲人成网站高清观看| 午夜福利一区二区在线看| 久99久视频精品免费| 国产麻豆成人av免费视频| aaaaa片日本免费| 亚洲午夜精品一区,二区,三区| 国产精品久久久久久精品电影 | 色播在线永久视频| 99re在线观看精品视频| 在线观看免费日韩欧美大片| 人人妻人人看人人澡| 巨乳人妻的诱惑在线观看| 久久精品91无色码中文字幕| 一级毛片精品| 国产又色又爽无遮挡免费看| 欧美日韩福利视频一区二区| 国产精品国产高清国产av| 国产精品二区激情视频| 亚洲欧美日韩高清在线视频| 男女床上黄色一级片免费看| 人妻丰满熟妇av一区二区三区| 日韩欧美三级三区| 黄片播放在线免费| 变态另类丝袜制服| 一区二区三区国产精品乱码| or卡值多少钱| 国产精品亚洲美女久久久| 成在线人永久免费视频| 又黄又粗又硬又大视频| 最近最新中文字幕大全免费视频| 激情在线观看视频在线高清| 夜夜爽天天搞| 国产精品一区二区精品视频观看| 国产精品久久视频播放| 国产精品亚洲一级av第二区| 18禁裸乳无遮挡免费网站照片 | 午夜亚洲福利在线播放| 两性午夜刺激爽爽歪歪视频在线观看 | 亚洲片人在线观看| 伦理电影免费视频| 日本精品一区二区三区蜜桃| 99精品在免费线老司机午夜| 成人亚洲精品一区在线观看| 久久久久免费精品人妻一区二区 | 黄片播放在线免费| 亚洲精品美女久久av网站| 亚洲在线自拍视频| 女生性感内裤真人,穿戴方法视频| 国产99久久九九免费精品| 99在线人妻在线中文字幕| 欧美最黄视频在线播放免费| 亚洲无线在线观看| 看黄色毛片网站| 久久久精品欧美日韩精品| 久久精品国产综合久久久| 国产精品自产拍在线观看55亚洲| 熟妇人妻久久中文字幕3abv| 亚洲国产精品成人综合色| 国产黄片美女视频| 国产成人影院久久av| 国产精品亚洲一级av第二区| 后天国语完整版免费观看| 每晚都被弄得嗷嗷叫到高潮| 久久久精品国产亚洲av高清涩受| 无遮挡黄片免费观看| 女人被狂操c到高潮| 国产成人系列免费观看| 日韩欧美在线二视频| 国产高清激情床上av| 国产av一区在线观看免费| 精品国产美女av久久久久小说| 亚洲欧洲精品一区二区精品久久久| 午夜免费观看网址| 久久青草综合色| 亚洲精品国产精品久久久不卡| 国产精品野战在线观看| 丝袜美腿诱惑在线| 美女国产高潮福利片在线看| 视频在线观看一区二区三区| 亚洲中文字幕一区二区三区有码在线看 | 国产亚洲欧美在线一区二区| 男男h啪啪无遮挡| 国产精品自产拍在线观看55亚洲| 亚洲最大成人中文| 久久精品成人免费网站| 国产一区二区三区视频了| 在线观看日韩欧美| 免费看a级黄色片| 可以免费在线观看a视频的电影网站| 99re在线观看精品视频| 中文字幕最新亚洲高清| АⅤ资源中文在线天堂| 热re99久久国产66热| 亚洲狠狠婷婷综合久久图片| 日韩三级视频一区二区三区| 一区二区日韩欧美中文字幕| 日韩有码中文字幕| 亚洲中文字幕日韩| 亚洲一卡2卡3卡4卡5卡精品中文| av中文乱码字幕在线| 精品一区二区三区四区五区乱码| 人人妻人人澡欧美一区二区| 欧美另类亚洲清纯唯美| 岛国视频午夜一区免费看| 可以在线观看毛片的网站| 免费高清在线观看日韩| 国产精品乱码一区二三区的特点| 国产精品 国内视频| 亚洲国产高清在线一区二区三 | 精品久久久久久久人妻蜜臀av| 天堂√8在线中文| 精品久久久久久久人妻蜜臀av| av在线天堂中文字幕| 欧美 亚洲 国产 日韩一| 99国产精品一区二区蜜桃av| 国产亚洲精品久久久久久毛片| 99在线视频只有这里精品首页| 国产精品久久久久久亚洲av鲁大| 特大巨黑吊av在线直播 | 日日爽夜夜爽网站| 少妇裸体淫交视频免费看高清 | 亚洲一区二区三区色噜噜| 国产极品粉嫩免费观看在线| 国产精品久久久av美女十八| 国产高清videossex| 亚洲成av片中文字幕在线观看| 精品久久久久久久人妻蜜臀av| 俄罗斯特黄特色一大片| av免费在线观看网站| 两性夫妻黄色片| 成人国产一区最新在线观看| 特大巨黑吊av在线直播 | 人人妻人人看人人澡| 51午夜福利影视在线观看| 变态另类成人亚洲欧美熟女| 欧美日韩福利视频一区二区| 国产在线观看jvid| 精品第一国产精品| 亚洲av日韩精品久久久久久密| 熟妇人妻久久中文字幕3abv| 久久精品91无色码中文字幕| 国产爱豆传媒在线观看 | 两性午夜刺激爽爽歪歪视频在线观看 | www.www免费av| 成人av一区二区三区在线看| 在线av久久热| 18禁国产床啪视频网站| 一级毛片高清免费大全| 18禁美女被吸乳视频| 黑人巨大精品欧美一区二区mp4| 国产真实乱freesex| 国产亚洲精品第一综合不卡| 校园春色视频在线观看| 长腿黑丝高跟| 两性午夜刺激爽爽歪歪视频在线观看 | 99riav亚洲国产免费| 成人av一区二区三区在线看| 可以免费在线观看a视频的电影网站| 国产欧美日韩一区二区三| 窝窝影院91人妻| 日本免费a在线| 精品少妇一区二区三区视频日本电影| bbb黄色大片| 国产真人三级小视频在线观看| 欧美久久黑人一区二区| 久久中文字幕人妻熟女| 在线观看免费视频日本深夜| 久久这里只有精品19| 久久国产精品男人的天堂亚洲| 国产又黄又爽又无遮挡在线| 日韩视频一区二区在线观看| 欧美日韩精品网址| 可以在线观看的亚洲视频| 精华霜和精华液先用哪个| 国产又黄又爽又无遮挡在线| 嫩草影院精品99| 激情在线观看视频在线高清| 别揉我奶头~嗯~啊~动态视频| 国产精品久久久av美女十八| 精品一区二区三区av网在线观看| 啦啦啦 在线观看视频| 又黄又粗又硬又大视频| 一本久久中文字幕| 国产三级在线视频| 日韩欧美国产在线观看| 日韩视频一区二区在线观看| 精品少妇一区二区三区视频日本电影| 精品无人区乱码1区二区| 日韩精品免费视频一区二区三区| 免费观看精品视频网站| 满18在线观看网站| 一进一出抽搐gif免费好疼| 亚洲成国产人片在线观看| 宅男免费午夜| 怎么达到女性高潮| 女性生殖器流出的白浆| 国产人伦9x9x在线观看| 搞女人的毛片| 久久中文字幕一级| 亚洲一区中文字幕在线| 啪啪无遮挡十八禁网站| 婷婷精品国产亚洲av| 母亲3免费完整高清在线观看| 亚洲av五月六月丁香网| 这个男人来自地球电影免费观看| 亚洲精品在线美女| 欧美日韩一级在线毛片| 亚洲精品一区av在线观看| 99久久综合精品五月天人人| 亚洲片人在线观看| 制服人妻中文乱码| 国产私拍福利视频在线观看| √禁漫天堂资源中文www| 少妇被粗大的猛进出69影院| 久久久久精品国产欧美久久久| 亚洲精品久久成人aⅴ小说| 级片在线观看| 19禁男女啪啪无遮挡网站| 人人妻人人看人人澡| 性色av乱码一区二区三区2| 欧美不卡视频在线免费观看 | 少妇裸体淫交视频免费看高清 | 老司机福利观看| 两个人免费观看高清视频| 日韩欧美国产在线观看| 日韩欧美三级三区| 久久青草综合色| 99国产综合亚洲精品| 成年版毛片免费区| 亚洲成av人片免费观看| 午夜福利高清视频| 欧美中文日本在线观看视频| 久热这里只有精品99| 日本一本二区三区精品| 美女高潮到喷水免费观看| 成人永久免费在线观看视频| 欧美在线一区亚洲| 亚洲三区欧美一区| 久9热在线精品视频| 亚洲精品在线观看二区| 老司机午夜福利在线观看视频| 日韩精品免费视频一区二区三区| 亚洲第一电影网av| 欧美黄色片欧美黄色片| 成人欧美大片| 亚洲性夜色夜夜综合| 亚洲一区二区三区不卡视频| 亚洲av第一区精品v没综合| 欧美精品亚洲一区二区| 视频在线观看一区二区三区| 妹子高潮喷水视频| bbb黄色大片| 亚洲国产精品999在线| svipshipincom国产片| 国产精品亚洲美女久久久| 欧美在线一区亚洲| 久久精品91蜜桃| 久9热在线精品视频| 欧美日本亚洲视频在线播放| 国产又黄又爽又无遮挡在线| 亚洲欧美一区二区三区黑人| 成人特级黄色片久久久久久久| 精品欧美一区二区三区在线| 国产亚洲欧美在线一区二区| 欧美成人午夜精品| 国产成人欧美在线观看| 黄色视频不卡| 精品不卡国产一区二区三区| 免费看日本二区| 国产一区二区在线av高清观看| 在线观看免费视频日本深夜| 狂野欧美激情性xxxx| 日韩三级视频一区二区三区|