房 俊,薛曉東,周云亮
(1.北方工業(yè)大學(xué) 信息學(xué)院,北京 100144;2.大規(guī)模流數(shù)據(jù)集成與分析技術(shù)北京市重點實驗室,北京 100144)
當(dāng)前,用戶希望通過對大數(shù)據(jù)的分析處理來發(fā)掘潛藏在數(shù)據(jù)間的關(guān)系,以獲得更多有價值的信息。但是,由于數(shù)據(jù)量大的特性,傳統(tǒng)的精確査詢方法難以滿足用戶在訪問效率上的需求。此外,部分用戶所提出的分析需求可以理解為目的性不夠明確的探索式査詢,其特點是用戶對結(jié)果準(zhǔn)確性的要求并非十分嚴(yán)格,更在意查詢速度是否足夠快。近似查詢處理(Approximate Query Processing,AQP)技術(shù)通常以遠(yuǎn)小于精確查詢的查詢代價為用戶提供近似答案,往往允許用戶在準(zhǔn)確性和查詢執(zhí)行速度之間進(jìn)行權(quán)衡。在數(shù)據(jù)探索式和可視化分析等應(yīng)用中,這種權(quán)衡不僅可以接受,而且通常是有必要的。
目前,已經(jīng)有不少學(xué)者對AQP 相關(guān)技術(shù)進(jìn)行了研究,不同的方法在查詢準(zhǔn)確性、響應(yīng)時間、空間預(yù)算和所支持的查詢[1-2]之間進(jìn)行了不同的權(quán)衡,要綜合考慮這些方面來達(dá)成一個令人滿意的方法仍然是一個挑戰(zhàn)?;诔闃拥腁QP 是應(yīng)用最廣泛的近似查詢處理方法之一,主要分為離線抽樣和在線抽樣兩種。離線抽樣意味著在查詢開始執(zhí)行之前創(chuàng)建樣本。均勻抽樣以等概率選擇每個數(shù)據(jù)作為樣本,雖然做法簡單,但是在面對查詢答案涉及多個值的分組查詢時,隨機(jī)抽樣的方法很難為所有組提供足夠準(zhǔn)確的估計。分層抽樣[3-4]是提高抽樣精度的一種方法,它以不同的概率從每一組中進(jìn)行抽樣,但是分層抽樣通常依賴于一些先驗知識,如樣本分布等。在線抽樣[1]是在查詢出現(xiàn)后動態(tài)創(chuàng)建樣本,可以為給定的查詢謂詞選擇足夠的樣本,從而提高精度。但是,在線抽樣的缺點也很明顯,查詢時抽樣意味著需要經(jīng)常訪問原始數(shù)據(jù)集,會導(dǎo)致較高的查詢時延,這在交互分析中是不可接受的[5]。
隨著人工智能技術(shù)的發(fā)展,模型驅(qū)動的AQP 方法近年來受到了更多的關(guān)注,研究人員將數(shù)據(jù)查詢處理和優(yōu)化技術(shù)與人工智能中的機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等技術(shù)相融合[6],取得了一定的研究成果:一類研究通過生成模型來生成數(shù)據(jù)樣本,再基于樣本進(jìn)行近似查詢處理,相比于抽樣方法,其生成樣本速度較快,且在查詢準(zhǔn)確性、普適性上具有一定優(yōu)勢;另一類研究直接使用機(jī)器學(xué)習(xí)模型快速預(yù)測查詢結(jié)果,這類近似查詢方法雖然可以取得令人滿意的時間性能,但是查詢結(jié)果的誤差評價缺乏理論保障。
現(xiàn)有的模型驅(qū)動方法多數(shù)以一個估計值來回答查詢,從數(shù)理統(tǒng)計的角度來講,這種點估計的方法產(chǎn)生的結(jié)果總是會存在誤差,在面向某些不穩(wěn)定的生成模型[如生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)模型[7]]時,這種問題尤為明顯。區(qū)間估計可以在一定程度上判斷總體估計量的取值范圍,相應(yīng)地會提高精度。不僅如此,在一些數(shù)據(jù)分析的實際業(yè)務(wù)場景中,研究人員對于某個總體估計量的取值范圍更感興趣,相比于單一值的點估計,采用置信區(qū)間作為返回值可以獲得更多的數(shù)據(jù)分布特征。例如,將基于隨機(jī)抽樣方法得到的樣本數(shù)據(jù)[{“id”:1;“pm25”:129},{“id”:2;“pm25”:138},{“id”:3;“pm25”:140},{“id”:4;“pm25”:90}]記為表T,針對查詢“select avg(pm25)from T”(實際值是98.61),其點估計結(jié)果是124.25,使用區(qū)間估計方法Bootstrap[1]的計算 結(jié)果 是[104.2-7.04,104.2+7.04](置信度是90%),可以看出區(qū)間估計方法的估計值更接近實際值。
以中心極限定理及Bootstrap 方法為代表的相關(guān)技術(shù)為基于抽樣的近似查詢結(jié)果提供了誤差范圍保障。GAN 模型可快速生成多個樣本,但是這些樣本不滿足中心極限定理的前提要求,一個猜想是是否可以通過多個樣本查詢結(jié)果來生成一個相對可靠的區(qū)間結(jié)果?此時,多個樣本查詢可能帶來更大的查詢時延,這也是Bootstrap 方法很少實際應(yīng)用于AQP系統(tǒng)的主要原因。本文認(rèn)為,當(dāng)前分布式處理技術(shù)飛速發(fā)展,將相關(guān)技術(shù)引入AQP 系統(tǒng)中,有助于緩解上述性能問題?;谠撍悸?,本文提出一種基于深度生成模型的聚合查詢區(qū)間估計方法,目的是為給定查詢生成足夠樣本以提高估計精度。首先利用深度生成模型學(xué)習(xí)數(shù)據(jù)分布特征,然后利用訓(xùn)練好的模型快速生成多個樣本,隨后通過基于抽樣的AQP 方法為給定的查詢?nèi)蝿?wù)計算估計值,最后計算相應(yīng)的置信區(qū)間并返回給用戶。
近似查詢處理的主要目標(biāo)是高效地找到與精確答案接近的近似答案,多年來一直是數(shù)據(jù)管理領(lǐng)域研究的熱點問題。基于抽樣的AQP 方法由于效率和普遍性方面的優(yōu)勢而得到廣泛的研究和應(yīng)用?;谏倭繕颖镜牟樵冺憫?yīng)速度很快,但是降低了準(zhǔn)確性。很多研究人員都在尋找合適的樣本,以期在不降低查詢速度的情況下提高查詢精度。隨機(jī)抽樣的查詢方法的主要缺點是查詢精度會隨著聚合屬性值方差的增大而降低,即隨機(jī)抽樣不能為具有高傾斜分布的數(shù)據(jù)集提供足夠準(zhǔn)確的估計。分層抽樣是解決這一問題的一種方法,分層抽樣雖然可以提高精度,但是通常需要一些有關(guān)數(shù)據(jù)分布的知識。國會抽樣[3]是一種經(jīng)典的分層抽樣方法,其將每個組在總體中所占的頻數(shù)作為依據(jù),把原始數(shù)據(jù)分為若干組,在總體樣本量確定的情況下,在不同組中利用隨機(jī)抽樣方法得到一定量的分樣本,最后由分樣本組成總體樣本。CVOPT[4]是一種新的分層抽樣方法,它根據(jù)變異系數(shù)分配各組的樣本量。在線抽樣[8-9]是AQP 的另一種方式,它以不斷迭代的方式獲得更多的樣本,以提高估計精度,但是在線抽樣需要在查詢時抽取樣本,會造成較高的查詢時延。
有一些預(yù)計算的方法在執(zhí)行查詢之前根據(jù)查詢工作負(fù)載計算直方圖[10]、小波[11]、數(shù)據(jù)立方體等概要,從而快速獲取聚合查詢結(jié)果,但是這些方法不能支持通用的查詢。此外,還有一些將抽樣與預(yù)計算相融合的AQP 技術(shù),如文獻(xiàn)[12]提出了聯(lián)合基于預(yù)計算的數(shù)據(jù)立方體和基于抽樣的AQP 的AQP++技術(shù),從而估計查詢結(jié)果。
近年來,機(jī)器學(xué)習(xí)方法被廣泛應(yīng)用于數(shù)據(jù)處理和數(shù)據(jù)分析領(lǐng)域,有一些新的AQP 方法采用了機(jī)器學(xué)習(xí)技術(shù)。DBEst[13]是一種基于模型預(yù)測的AQP方法,它根據(jù)數(shù)據(jù)樣本建立概率密度模型和回歸模型,然后使用模型來直接回答查詢。但是,對于分組查詢,DBEst 需要為每個分組都構(gòu)建一個模型,這將大幅增加模型訓(xùn)練和存儲成本。文獻(xiàn)[14]對DBEst 進(jìn)行拓展,基于單詞嵌入模型與神經(jīng)網(wǎng)絡(luò)的混合架構(gòu),使用輕量級模型降低了內(nèi)存的占用率。LAQP[15]是一個融合基于抽樣的AQP、預(yù)計算方法和機(jī)器學(xué)習(xí)的AQP 方法,其通過一個小的離線樣本來獲得較高精度的查詢估計值。使用機(jī)器學(xué)習(xí)方法來獲得近似查詢結(jié)果的主要問題是目前還無法像基于抽樣的AQP 方法那樣提供誤差保障。
還有一些基于模型樣本的查詢方法致力于使用深度生成模型來學(xué)習(xí)數(shù)據(jù)分布,通過模型生成樣本然后回答查詢。文獻(xiàn)[16-17]提出一種使用深度生成模型學(xué)習(xí)數(shù)據(jù)分布并通過訓(xùn)練好的模型來生成樣本以近似回答查詢的方法,雖然該方法減少了查詢延遲,但是仍然會受到抽樣誤差的影響。文獻(xiàn)[18]訓(xùn)練一個基于工作負(fù)載的模型,該模型捕獲數(shù)據(jù)的聯(lián)合概率分布并反映其關(guān)鍵特征,也支持直接更新,即模型可以識別數(shù)據(jù)庫上的操作類型,無需重新訓(xùn)練模型。
在大多數(shù)抽樣估計方法中,置信區(qū)間被廣泛用于評價近似查詢的估計結(jié)果[19],通常根據(jù)用戶給定的置信度計算一個相應(yīng)的置信區(qū)間。如果數(shù)據(jù)集的數(shù)據(jù)分布是已知的,或者有一個足夠大的樣本來得到數(shù)據(jù)分布,則上述過程轉(zhuǎn)變?yōu)橐粋€經(jīng)典的統(tǒng)計問題——參數(shù)估計。以計算一個正態(tài)分布上的某一屬性均值為例,如果已知正態(tài)分布的方差,則可以很容易地使用高斯分布模型N(μ,σ2)來計算置信區(qū)間。如果方差是未知的,可以將其形式化為T 分布。如果數(shù)據(jù)分布是未知的,則可以通過Bootstrap 和Closed-form Estimate[20]兩種方 法。Bootstrap 旨在獲得多個樣本,對于每個樣本S,可以計算出一個估計值,由這些值組成的分布可用于估計總體聚合結(jié)果的值。Bootstrap 對數(shù)據(jù)分布沒有限制,適用于大多數(shù)查詢,但是大多數(shù)Bootstrap 方法需要數(shù)千次重采樣,而重采樣過程非常耗時,因此Bootstrap 在實際應(yīng)用中很受限制。Closed-form Estimate 方法以正態(tài)分布N(θ(S),σ2)來近似抽樣分布,并通過樣本的特殊封閉函數(shù)Var(S)估計方差σ2,利用中心極限定理可以證明這種近似的合理性。然而,Closed-form Estimate 方法只能適用于COUNT、SUM、AVG 這類比較容易計算方差的查詢。
如圖1 所示,本文基于深度生成模型的聚合查詢區(qū)間估計方法主要分為3 個階段:利用預(yù)處理后的數(shù)據(jù)訓(xùn)練深度生成模型,經(jīng)過多次迭代訓(xùn)練后得到可靠的數(shù)據(jù)生成模型;基于該模型生成多個數(shù)據(jù)樣本,等待用戶查詢;用戶查詢到來后在不同樣本上分別執(zhí)行查詢,將全部查詢結(jié)果匯總,根據(jù)用戶給定的置信水平計算相應(yīng)的查詢結(jié)果置信區(qū)間并返回給用戶。
圖1 近似查詢方法執(zhí)行過程Fig.1 The execution process of approximate query method
在模型訓(xùn)練階段,本文使用深度生成模型CWGAN-GP 來生成樣本,CWGAN-GP 是WGANGP[21]和條件生成對抗網(wǎng)絡(luò)(Conditional Generative Adversarial Network,CGAN)[22]的組合網(wǎng)絡(luò)。
GAN 模型的核心思想是用訓(xùn)練神經(jīng)網(wǎng)絡(luò)來代替對似然函數(shù)的求解,利用生成器和判別器之間的對抗學(xué)習(xí)來不斷優(yōu)化模型的參數(shù),利用這種方法規(guī)避求解似然函數(shù)的問題。但是,GAN 模型還存在一些問題,如模型難以訓(xùn)練等。WGAN(Wasserstein GAN)[23]從原理上說明了GAN 模型存在的缺陷,提出用Wasserstein 距離替代KL 散度和JS 散度,優(yōu)化了生成器和判別器的目標(biāo)函數(shù),因此,在很大程度上緩解了原始GAN 模型存在的一些問題。但是,WGAN 在訓(xùn)練過程中常會出現(xiàn)收斂速度慢、梯度爆炸等現(xiàn)象。WGAN-GP 將判別器的梯度作為正則項加入判別器的目標(biāo)函數(shù)中,該正則項通過梯度懲罰使判別器梯度在充分訓(xùn)練后穩(wěn)定在Lipschitz 常數(shù)附近。經(jīng)過優(yōu)化,WGAN-GP 幾乎不再出現(xiàn)梯度消失或梯度爆炸的問題,在很大程度上提高了模型收斂速度。CGAN 模型是GAN 模型的擴(kuò)展,它向GAN的生成器和判別器添加條件設(shè)置,可以在給定條件下生成相應(yīng)的數(shù)據(jù)。
CWGAN-GP 模型訓(xùn)練過程如圖2 所示,將真實數(shù)據(jù)x及其對應(yīng)的標(biāo)簽y提供給模型,訓(xùn)練生成器G和判別器D。首先固定G,訓(xùn)練D,這是一個二分類問題,即給定一個樣本,訓(xùn)練D 判斷其是真樣本還是由G 生成的假樣本;之后固定D,訓(xùn)練G,給G 一個隨機(jī)輸入,損失函數(shù)是D 的輸出結(jié)果,根據(jù)損失函數(shù)對G 的參數(shù)進(jìn)行更新。重復(fù)上述2 個過程,經(jīng)過多次訓(xùn)練后,生成器與判別器達(dá)到納什均衡就停止,此時生成器可以為給定的標(biāo)簽生成一個與真實樣本x相似的樣本x′。
圖2 CWGAN-GP 模型訓(xùn)練過程Fig.2 Training process of CWGAN-GP model
在模型訓(xùn)練前需要標(biāo)記數(shù)據(jù),為使模型能夠為給定的組生成樣本,本文用組屬性值來標(biāo)記數(shù)據(jù),編碼的分組屬性值將被視為訓(xùn)練數(shù)據(jù)的標(biāo)簽。一些研究人員[16-17]使用One-Hot 編碼方法來實現(xiàn),假設(shè)屬性A有3 個取值{A1,A2,A3},One-Hot 編碼為A1=001,A2=010,A3=100。如果屬性域取值較多,這種方法會導(dǎo)致2 個主要問題:編碼后的向量可能非常稀疏,導(dǎo)致性能較差[24];提高了模型學(xué)習(xí)的參數(shù)量,增加了模型的訓(xùn)練時間。針對這些問題,本文使用Binary-Encoding來降低編碼維度,同時使得編碼后的向量更加稠密。上述例子使用Binary-Encoding編碼后,只需要二維向量(「lb 3?=2),編碼結(jié)果為A1=00,A2=01,A3=10。
如圖3 所示,基于大規(guī)模并行處理(Massively Parallel Processing,MPP)[25-26]架構(gòu)快速生成多份樣本,該架構(gòu)包括Master和Segment兩類服務(wù)器節(jié)點。
圖3 基于MPP 的多樣本生成與近似聚合查詢Fig.3 Multi sample generation and approximate aggregation query based on MPP
Master 節(jié)點主要負(fù)責(zé):
1)將第2.1 節(jié)的CWGAN-GP 生成模型復(fù)制到Segment 節(jié)點的模型存儲庫
2)維護(hù)聚合查詢的生成模型映射元數(shù)據(jù)
3)接收Client的多樣本生成請求(qPattern,n,m),其中,n為生成的樣本份數(shù),m為每份樣本的數(shù)據(jù)量。形成分布式生成樣本的任務(wù)請求(mID,ni,m)并分配給Segment 節(jié)點,其中,mID 是qPattern 對應(yīng)的模型主鍵,ni是第i個Segment節(jié)點需要生成的樣本個數(shù),ni根據(jù)Segment節(jié)點數(shù)量采用均衡策略生成。
Segment 節(jié)點主要負(fù)責(zé):
1)接收并存儲數(shù)據(jù)生成模型。
2)接收Master節(jié)點的生成樣本請求(mID,ni,m),使用相應(yīng)的CWGAN-GP 生成模型生成樣本。
為了能夠有效利用物理資源,每個多核Segment節(jié)點可并行執(zhí)行多個任務(wù)實例。在每個Segment 節(jié)點上開啟多個進(jìn)程,并行生成樣本,之后將樣本放到Segment 節(jié)點的樣本內(nèi)存區(qū)域。
分組查詢的結(jié)果涉及多個值,隨機(jī)抽樣方法很難為所有組提供足夠準(zhǔn)確的估計。為提高準(zhǔn)確性,本文選擇用分層抽樣的方法獲取每份樣本,算法1描述了使用生成器G 生成樣本的過程。根據(jù)數(shù)據(jù)集中各分組屬性在總體中所占的比例來計算樣本中每組的個 數(shù)NSamplesize。Random(z,NSamplesize)表示產(chǎn) 生NSamplesize個隨機(jī)噪聲,將其作為模型的輸入。Repeat(Binary-Encoding(i),NSamplesize)表示重復(fù)得到NSamplesize個經(jīng)過Binary-Encoding 編碼的標(biāo)簽數(shù)據(jù),作為模型的輸入。
算法1模型生成樣本的過程
聚合查詢區(qū)間估計階段仍然基于圖3 的MPP 架構(gòu)來完成。由Master 節(jié)點將聚合查詢?nèi)蝿?wù)并行分發(fā)到各個Segment 處理節(jié)點,每個處理節(jié)點開啟多個進(jìn)程,每個進(jìn)程負(fù)責(zé)完成一個查詢子任務(wù),生成一個近似查詢結(jié)果,并回傳給Master 節(jié)點。在每個節(jié)點都完成查詢?nèi)蝿?wù)后,Master 節(jié)點將n個近似查詢結(jié)果匯總并計算得到最終的結(jié)果。借助中心極限定理,以正態(tài)近似的方式來計算置信區(qū)間,最終得置信區(qū)間為其中:Mean(S)表示n份樣本集上聚合結(jié)果的均值;Var(S)是聚合結(jié)果的方差;a是用戶給定的置信水平為分位數(shù)。
本文實驗中的查詢?nèi)蝿?wù)是在集群上完成的,集群由6 臺同配置服務(wù)器組成,配置如表1 所示。其中,1 臺服務(wù)器用于模型訓(xùn)練及Master 節(jié)點,其余5 臺服務(wù)器作為Segment 節(jié)點用于樣本生成和查詢處理。為了充分利用物理資源,每個多核Segment節(jié)點可并行執(zhí)行多個任務(wù)實例,在本次實驗中,每臺服務(wù)器設(shè)置16 個進(jìn)程。
表1 實驗環(huán)境Table 1 Experimental environment
本文分別在如下2 個數(shù)據(jù)集上進(jìn)行實驗:
1)PM2.5[13]數(shù)據(jù)集,包含了美國駐北京大使館的pm25 數(shù)據(jù)信息,同時還包括了北京首都國際機(jī)場的氣象數(shù)據(jù),共43 824 條數(shù)據(jù)。在對PM2.5 數(shù)據(jù)集的聚合查詢中,聚合值屬性是“pm25”,且每個謂詞只涉及一個屬性“PREC”,其余部分屬性如表2所示。
表2 PM2.5 數(shù)據(jù)Table 2 PM2.5 data
2)ROAD[16]數(shù)據(jù)集,這是一個為道路網(wǎng)絡(luò)添加海拔信息而建造的數(shù)據(jù)集,共包含434 874 條數(shù)據(jù)。ROAD 數(shù)據(jù)集 有“Longitude”“Latitude”和“Elevation”3 個屬性。本文在ROAD 數(shù)據(jù)集上添加一個按組排列的屬性“GroupID”,并將“Latitude”的取值范圍劃分為10 個相等的子范圍,每條數(shù)據(jù)添加的組屬性值是其所屬子范圍的索引。修改后的數(shù)據(jù)集有4 個屬性,如表3 所示。
表3 ROAD 數(shù)據(jù)Table 3 ROAD data
本文實驗用到的查詢包括帶謂詞的查詢以及分組查詢,聚合函數(shù)有COUNT、AVG。部分查詢語句如表4 所示。
表4 查詢語句Table 4 Query statements
本文采用置信區(qū)間的覆蓋率(Confidence Interval Coverage,CIC)來衡量查詢估計的準(zhǔn)確性。CIC 是利用本文方法計算置信區(qū)間后統(tǒng)計給定查詢的實際值落在置信區(qū)間中的比例,計算公式如下:
其中:Result 是在原始數(shù)據(jù)集上執(zhí)行查詢的結(jié)果集;truei表示第i組的真實聚合值,是集合Result 中的元素;Interval 為計算的置信區(qū)間;d(x,y)是一個判別函數(shù),若實際值x落在置信區(qū)間y中,則取值為1,否則取值為0。
為了對比不同置信區(qū)間的計算結(jié)果,將CIC 進(jìn)行歸一化,即計算CIC 與相應(yīng)置信度a的比值,如式(2)所示:
本文生成模型CWGAN-GP 的生成器有4 個全連接的隱藏層,每層中神經(jīng)元的數(shù)量分別為512、256、128、64 個。判別器有3 個全連接的隱藏層,每層中神經(jīng)元的數(shù)量分別為512、256、128 個。將優(yōu)化器設(shè)置為RMSprop,設(shè)置RMSprop 的參數(shù)為(lr=0.000 05,rho=0.95)。在計算置信區(qū)間時,增加每份樣本集的數(shù)量會對計算結(jié)果產(chǎn)生影響,但同時也需要考慮性能,在本節(jié)實驗中會比較不同樣本集數(shù)量下的結(jié)果,從而選擇合適的取值。設(shè)置抽樣輪次r=103,實驗結(jié)果均為經(jīng)過多次實驗后所得。
3.4.1 深度生成模型的抽樣效率
本次實驗基于ROAD 數(shù)據(jù)集,比較利用模型生成樣本和利用隨機(jī)抽樣方法生成樣本所耗費(fèi)的時間。為了比較不同數(shù)據(jù)規(guī)模下的抽樣效率,首先利用ROAD 數(shù)據(jù)集 生成大 小依次 為1×106、10×106、50×106、100×106、200×106的5 個實驗數(shù)據(jù)集,再分別從這5 個實驗數(shù)據(jù)集中利用隨機(jī)抽樣方法抽取1 000 個數(shù)據(jù)作為生成樣本,實驗結(jié)果如圖4 所示。從圖4 可以看出,利用模型生成樣本所需的時間小于隨機(jī)抽樣方法,且前者所需的時間與數(shù)據(jù)集大小無關(guān)。隨機(jī)抽樣方法的抽樣時間與數(shù)據(jù)集大小呈線性相關(guān),隨著數(shù)據(jù)集的增大而不斷增加??梢?,利用模型生成樣本的方法對于大數(shù)據(jù)集將更加有效。
圖4 數(shù)據(jù)集大小對抽樣時間的影響Fig.4 The impact of dataset size on sampling time
3.4.2 深度生成模型的抽樣效果
本次實驗將在ROAD 和PM2.5 數(shù)據(jù)集上分別對生成樣本和隨機(jī)樣本的分布進(jìn)行可視化。從每個數(shù)據(jù)集中選擇1 000 個隨機(jī)樣本,同樣地,利用模型也生成1 000 個樣本。為了更加準(zhǔn)確地表示數(shù)據(jù)集的數(shù)據(jù)分布,以分層抽樣的方法獲得隨機(jī)樣本,即根據(jù)數(shù)據(jù)集中不同分組中的元組數(shù)量來分配樣本集中這一分組的數(shù)量。圖5 分別顯示了在2 個數(shù)據(jù)集中隨機(jī)樣本和生成樣本的分布情況。從圖5 可以看出,生成樣本和真實樣本的分布在視覺上比較相似,即由模型生成的樣本數(shù)據(jù)比較接近數(shù)據(jù)集中的真實數(shù)據(jù),因此,可以由模型生成的樣本來代替從數(shù)據(jù)集中抽樣獲得的樣本。
圖5 樣本分布對比Fig.5 Sample distribution comparison
3.4.3 置信區(qū)間的覆蓋率
通過改變查詢謂詞范圍生成查詢數(shù)量分別為100、200、300、400、500 個的任務(wù)集。利用本文方法計算置信度分別為80%、85%、90%、95%的置信區(qū)間,在2 個數(shù)據(jù)集上對比計算所得歸一化的置信區(qū)間覆蓋率(NCIC),結(jié)果如圖6 所示。由圖6 可知,由本文方法得到的查詢結(jié)果計算的NCIC 均可達(dá)85%以上,其中有48.25%的任務(wù)集計算的NCIC 在95%以上,這表明區(qū)間估計結(jié)果具有較高的精度,而且在不同數(shù)據(jù)集、面對不同查詢?nèi)蝿?wù)時均有較好的表現(xiàn),可移植性高。
圖6 歸一化的置信區(qū)間覆蓋率對比Fig.6 Comparison of NCIC
3.4.4 查詢時間對比
將本文方法與第1 節(jié)中提到的幾種常見查詢方法進(jìn)行對比,包括隨機(jī)抽樣的查詢方法、基于模型樣本的查詢方法、基于模型預(yù)測的查詢方法,分析各方法執(zhí)行查詢所需的時間。其中,基于模型樣本與基于隨機(jī)抽樣的查詢方法的時間相同,因此沒有列出基于模型樣本的方法的結(jié)果。在PM2.5 數(shù)據(jù)集上,生成抽樣比分別為5%、10%、15%、20%、25%、30%的樣本,對比執(zhí)行查詢所需的時間,在接下來的實驗中,未加特別說明時均計算置信度為90%的置信區(qū)間,實驗結(jié)果如圖7 所示。由圖7 可知,本文方法在查詢時間上開銷大于基準(zhǔn)方法,主要原因是本文方法涉及在多份樣本上執(zhí)行查詢,之后還需要匯總查詢結(jié)果生成區(qū)間結(jié)果,這一過程比較耗時,但從整體來看,秒級時間開銷對于常規(guī)應(yīng)用還是能夠接受的。
圖7 查詢時間對比Fig.7 Query time comparison
3.4.5 樣本量對查詢結(jié)果的影響
設(shè)置300 個聚合函數(shù)為COUNT 的查詢來比較不同樣本量對查詢結(jié)果的影響。本文主要考慮執(zhí)行查詢所需時間和置信區(qū)間的覆蓋率CIC,結(jié)果如圖8所示。
圖8 樣本量對查詢結(jié)果的影響Fig.8 The impact of sample size on query results
由圖8 可以看出,隨著樣本量的增加,查詢的執(zhí)行時間不斷增加,而置信區(qū)間的覆蓋率增長率逐漸減少,即曲線逐漸變得平穩(wěn)。綜合比較來看,對于ROAD 數(shù)據(jù)集,本文選擇樣本量n=100,對于PM2.5數(shù)據(jù)集,選擇n=80。
3.4.6 查詢選擇性對查詢結(jié)果的影響
在ROAD 和PM2.5 數(shù)據(jù)集上分別測試查詢選擇性對查詢結(jié)果的影響,設(shè)置300 個聚合函數(shù)為COUNT 且選擇性低于0.03 的查詢,對比隨機(jī)樣本與生成樣本的置信區(qū)間覆蓋率,結(jié)果如圖9 所示。
圖9 查詢選擇性對結(jié)果的影響Fig.9 The impact of query selectivity on results
從圖9 可以看出,對于隨機(jī)樣本和生成樣本,置信區(qū)間覆蓋率都隨著查詢選擇性的增加而增加,并且基于生成樣本的估計更加準(zhǔn)確。其原因是:與從整個數(shù)據(jù)集中選擇的隨機(jī)樣本相比,生成樣本所包含的滿足查詢謂詞的樣本比例更高。本實驗中的查詢是低選擇性的查詢,這意味著從整個數(shù)據(jù)集中選擇的大多數(shù)樣本不滿足查詢謂詞,只有一小部分樣本對估計有貢獻(xiàn),這導(dǎo)致隨機(jī)樣本的精度較低。由于生成模型可以靈活地生成某些子范圍的樣本,因此可以獲得更多的樣本,有助于提高估計精度。
本文提出一種基于深度生成模型的聚合查詢區(qū)間估計方法。該方法在不訪問原始數(shù)據(jù)集的條件下,利用CWGAN-GP 模型為給定的查詢并行生成多個近似樣本,通過多個樣本查詢結(jié)果聚合生成相對可靠的區(qū)間查詢結(jié)果。實驗結(jié)果表明,相比于常見的點估計近似查詢方法,該方法不僅提高了近似查詢估計的精度,也能夠降低查詢誤差。此外,該方法還可以根據(jù)不同的優(yōu)化目標(biāo)與多種抽樣方法相結(jié)合。雖然本文方法取得了較好的結(jié)果,但是生成大量的樣本客觀上也增加了時間開銷,因此,下一步將繼續(xù)優(yōu)化抽樣以及查詢過程,減少時間開銷。此外,根據(jù)查詢結(jié)果日志來判斷生成樣本的質(zhì)量,有選擇性地替換部分樣本集,進(jìn)一步提高查詢精度,也是今后的研究方向。