王 琳
(哈爾濱工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,哈爾濱150001)
劣質(zhì)數(shù)據(jù)會嚴重影響各類數(shù)據(jù)驅(qū)動的服務(wù)的質(zhì)量。近年來,數(shù)據(jù)質(zhì)量的研究受到了人們的廣泛關(guān)注[1-2]。在一些多數(shù)據(jù)源的應(yīng)用中,如無線傳感器網(wǎng)絡(luò)和物聯(lián)網(wǎng),每個實體的值通常會在不止一個數(shù)據(jù)源處得到提供,但來自不同數(shù)據(jù)源的數(shù)據(jù)卻存在著偏差。數(shù)據(jù)質(zhì)量控制是基于傳感器的系統(tǒng)中需要解決的重要問題之一[3]。當前,隨著傳感云(sensor-cloud)[4]的興起,在很多場景下,人們更傾向于將傳感器的數(shù)據(jù)傳至云端處理。這樣云端便累積了大量的歷史數(shù)據(jù)?;谶@些歷史數(shù)據(jù),并借助云服務(wù)的計算能力,就可以評估數(shù)據(jù)源的質(zhì)量,從而,當同一實體的來自不同數(shù)據(jù)源的數(shù)據(jù)存在偏差時,可以根據(jù)數(shù)據(jù)源的質(zhì)量來確定哪些數(shù)據(jù)可被進一步用于數(shù)據(jù)分析和回答查詢。
傳感云環(huán)境下,數(shù)據(jù)源的質(zhì)量評估可以帶來下述2方面的收益。首先,如果能夠預(yù)先知道數(shù)據(jù)源質(zhì)量,可以在傳感器推送數(shù)據(jù)至云端、云端將數(shù)據(jù)存入數(shù)據(jù)庫時做出質(zhì)量標記(可以類比為店鋪信用),在之后的應(yīng)用中,如果需要快速返回一個查詢結(jié)果,就可以無需再遍歷所有數(shù)據(jù),而直接讀取高質(zhì)量的數(shù)據(jù)源的數(shù)據(jù)來回答查詢。研究可知,遍歷和計算需要花費的時間和消耗的計算資源均要高于直接讀取數(shù)據(jù),因此當查詢頻繁到達時,該方式可以節(jié)省大量資源。其次,如果應(yīng)用或查詢需要即時從傳感器中提取數(shù)據(jù),那么在獲知數(shù)據(jù)源質(zhì)量之后,提取數(shù)據(jù)時將可直接忽略低質(zhì)量的數(shù)據(jù)源,這樣不僅可以避免劣質(zhì)數(shù)據(jù)污染查詢結(jié)果,而且也可以節(jié)省網(wǎng)絡(luò)帶寬等資源;甚至,還可以不要求全部傳感器都返回結(jié)果,而是直接要求在當前場景下會返回高質(zhì)量數(shù)據(jù)的某一個數(shù)據(jù)源返回數(shù)據(jù),此時的其它節(jié)點就不用采集和返回數(shù)據(jù),如此也可以有效節(jié)省能源。
這里,研究還給出了一個傳感器網(wǎng)絡(luò)中數(shù)據(jù)源質(zhì)量評估的具體示例,詳情如下。
例1圖1所示為不同時刻3個數(shù)據(jù)源關(guān)于3種污染物指數(shù)的測量值,其中列名k_pm1、k_pm25、k_pm10表示k號數(shù)據(jù)源返回的pm1、pm2.5和pm10的測量值,t列表示時刻。假設(shè)有多個數(shù)據(jù)源,為了簡便,選取3種污染物指數(shù),在不同時刻的均值如圖2前三列所示,數(shù)據(jù)源測得污染物指數(shù)與均值的最大絕對偏差值如圖2后三列所示。對圖1中的每個值,研究采用相對偏差作為數(shù)據(jù)質(zhì)量的度量。設(shè)值v對應(yīng)的屬性為A,則v的相對偏差=1-abs(vavg_A)/d_A,其中avg_A和d_A分別為屬性A的均值和最大絕對偏差。同時,研究也對圖1中的每個值都計算數(shù)據(jù)質(zhì)量,得到的質(zhì)量評分結(jié)果如圖3所示。
圖1 原始數(shù)據(jù)集Fig.1 The raw data set
圖2 各屬性平均值和最大絕對偏差Fig.2 The average and maximum absolute deviation of every attribute
圖3 質(zhì)量分值結(jié)果Fig.3 The result of quality score
從圖3中可以直觀看出,不同數(shù)據(jù)源的質(zhì)量存在著明顯的差異。例如,對1號數(shù)據(jù)源來說,其數(shù)據(jù)在0時刻3個屬性的值的質(zhì)量均較好,在1~3時刻pm1屬性值較好,但pm25和pm10屬性值的質(zhì)量較為一般,在4時刻3個屬性值的質(zhì)量均不理想。對2號數(shù)據(jù)源來說,其0~2時刻有數(shù)據(jù),且3個屬性上的值差異不大,在3~4時刻卻存在著數(shù)據(jù)丟失。3號數(shù)據(jù)源則只在時刻4提供過一次較好的pm1值,其它時間質(zhì)量均不理想。由此可見,即使是同一個數(shù)據(jù)源,其質(zhì)量也存在著隨時間和屬性波動的情況,因此,用單一的值來描述一個數(shù)據(jù)源的質(zhì)量有失偏頗,研究需要尋找更為規(guī)范合理的質(zhì)量描述。
基于歷史數(shù)據(jù),為了能夠切實評估數(shù)據(jù)源質(zhì)量,本文擬展開多個方面研究。對此可闡釋如下。
首先,定義了數(shù)據(jù)源質(zhì)量矩陣,用于描述一個數(shù)據(jù)源在不同條件下的質(zhì)量情況。
其次,給出了質(zhì)量矩陣的計算框架。基于該框架可以對每個數(shù)據(jù)源計算其質(zhì)量矩陣,且用戶可以調(diào)整平衡參數(shù)來改變質(zhì)量矩陣對于數(shù)據(jù)源質(zhì)量描述的細致程度。
最后,在真實數(shù)據(jù)上進行了實驗。實驗結(jié)果表明,本文提出的質(zhì)量矩陣定義及其計算框架能夠有效地評估數(shù)據(jù)源的質(zhì)量。
綜上所述,本文的研究內(nèi)容可安排組織如下:首先介紹相關(guān)工作;然后論述了問題定義;再次則提出質(zhì)量矩陣的計算方法;接下來給出了實驗結(jié)果;最后就是本文研究結(jié)論。下面,針對各部分研究將展開分述如下。
當前,很多研究都在探討基于約束的數(shù)據(jù)質(zhì)量判定[1-2,5-6]。也就是說,這些工作均圍繞著當給定一個數(shù)據(jù)集合時,應(yīng)如何判定其中每個值的數(shù)據(jù)質(zhì)量。而與本文研究的不同之處就在于,這些研究僅是關(guān)注單個值的數(shù)據(jù)質(zhì)量,卻沒有指出應(yīng)如何基于每個值的數(shù)據(jù)質(zhì)量來綜合度量整個數(shù)據(jù)源在不同條件下的質(zhì)量。因此,這些工作也只可作為本文研究的支撐。
另一方面,數(shù)據(jù)融合和真值發(fā)現(xiàn)則研究如何從多源中找到高質(zhì)量的數(shù)據(jù)[7-9]。在設(shè)計時考慮了如何根據(jù)來自不同數(shù)據(jù)源的各類錯誤來發(fā)現(xiàn)各個數(shù)據(jù)源之間的依賴,而且可憑借數(shù)據(jù)源間的依賴關(guān)系尋找被查詢屬性的最新值。這些工作雖然可以用來評估數(shù)據(jù)源質(zhì)量,但其更多地僅是著眼于當數(shù)據(jù)源之間存在拷貝依賴關(guān)系時,該如何找到數(shù)據(jù)的最新值。而在傳感云環(huán)境下,不同傳感器采集數(shù)據(jù)可以被認為是獨立的,不同數(shù)據(jù)源也不存在拷貝依賴,其值之間的相似性不會來自于互相拷貝,因此,需要研發(fā)專門的方法來評估這種場景下的數(shù)據(jù)源質(zhì)量。
設(shè)S={s1,…,sn}是數(shù)據(jù)源的集合,T={t0,…,tm}是時刻的集合,dk是數(shù)據(jù)源sk提供的各時刻采集的數(shù)據(jù)集合。Q是一個質(zhì)量度量函數(shù),Q(v)是值v根據(jù)度量函數(shù)Q計算得到的質(zhì)量分值。
根據(jù)Q,針對數(shù)據(jù)源sk可計算得到Dk中每一個值的質(zhì)量分值。舉例來說,對例1中的1號數(shù)據(jù)源,研究可以基于相對偏差這一質(zhì)量度量,得到如圖3中1_pm1、1_pm25、1_pm10這3列所示的質(zhì)量度量結(jié)果。
過程中,將這樣的質(zhì)量評分結(jié)果稱為原始質(zhì)量矩陣。令QM(dk)表示由Dk計算得到的質(zhì)量矩陣,則QM(dk)和dk具有相同的行數(shù)和列數(shù)。而如例1中所言,不同的數(shù)據(jù)源在各時刻、各屬性上表現(xiàn)出質(zhì)量差異的同時,也在一些時刻或?qū)傩陨媳憩F(xiàn)出一定的質(zhì)量上的共性。例如例1中的數(shù)據(jù)源在時刻1~3提供的數(shù)據(jù)就表現(xiàn)出質(zhì)量上的共性。因此,為了清楚地描述數(shù)據(jù)源在不同場景下數(shù)據(jù)質(zhì)量的差異和共性,研究還需要對原始質(zhì)量矩陣做一些調(diào)整,即合并具有共性的行、同時區(qū)分具有差異的行。由此,本文要研究的問題的形式化定義表述見如下:
輸入:數(shù)據(jù)源集合S={s1,…,sn},時刻集合T={t0,…,tm},數(shù)據(jù)集集合D={d1,…,dn},質(zhì)量度量函數(shù)Q
輸出:abbr(QM(d1)), … ,abbr(QM(dm))
其中,abbr(QM(dk))是QM(dk)化簡后的結(jié)果。
化簡質(zhì)量矩陣有2個好處。首先,化簡后的矩陣較原始矩陣來說,更能夠突出數(shù)據(jù)源在不同場景下數(shù)據(jù)質(zhì)量的差異和共性。其次,當數(shù)據(jù)量很大時,存儲原始數(shù)據(jù)已經(jīng)消耗了大量資源,再消耗同樣多的資源來存儲質(zhì)量矩陣顯得并不現(xiàn)實,而只要化簡得足夠充分,那么化簡后的質(zhì)量矩陣可以大幅節(jié)省存儲資源,同時,對化簡后的質(zhì)量矩陣進行訪問的時間開銷也遠低于訪問原始質(zhì)量矩陣。在下一節(jié)中,將詳盡探究質(zhì)量矩陣化簡方法的研發(fā)與設(shè)計。
給定質(zhì)量矩陣QM(dk),研究對其進行化簡的設(shè)計思想如下:對原始質(zhì)量矩陣QM(dk)和數(shù)據(jù)源sk,分別計算QM(dk)的相鄰兩行數(shù)據(jù)質(zhì)量分數(shù)向量的相似度,同時,根據(jù)用戶給定的閾值θ,如果距離不超過θ,則合并兩行為一行,并用兩行的均值填充該行。流程步驟見如下。
Step 1自上向下掃描QM(dk),設(shè)當前掃描到第r行,計算r行和r+1行的相似度Simr,r+1。
Step 2判斷Simr,r+1是否小于θ,如果是則進入Step 3,否則進入Step 4。
Step 3合并r和r+1行得到新的r行,計算新的r行和r+1行的相似度Simr,r+1,跳轉(zhuǎn)Step 2。
Step 4掃描繼續(xù),跳回Step 1。
在此基礎(chǔ)上,將使用例2來說明例1中的原始質(zhì)量矩陣的化簡過程,其主旨要點可概述如下。
例2假定給定閾值為0.1,以圖3的1號數(shù)據(jù)源為例,研究選用向量的歸一化距離來度量行的相似度,合并策略選取計算均值。在0,1兩時刻的質(zhì)量評分向量的歸一化距離為0.202 587,不合并。在2,3兩時刻的歸一化距離為0.092 421,可以合并,所以得到2,3時刻的數(shù)據(jù)合并結(jié)果如圖4(a)所示。接著,時刻(2, 3)與1 的歸一化距離為0.088 093,可以合并;時刻(2, 3)與4 的歸一化距離為0.159 589,不合并;最終得到的無法繼續(xù)合并的結(jié)果即是化簡后的質(zhì)量矩陣,如圖4(b)所示。該合并結(jié)果也與前文在例1中的分析相一致—1,2,3時刻1號數(shù)據(jù)源的質(zhì)量情況比較相似,所以被合并在了一起,而0時刻和4時刻的狀態(tài)與其它狀態(tài)不同,所以被單獨列出了。
圖4 質(zhì)量矩陣化簡過程Fig.4 The reduction process of quality matrix
研究中需要注意的是,本文給出的質(zhì)量矩陣及其化簡框架中,質(zhì)量度量函數(shù)Q和相似度度量函數(shù)Sim均是可替換的,可以根據(jù)應(yīng)用場景來自由選擇合適的質(zhì)量度量函數(shù)Q和相似度度量函數(shù)Sim,在選擇時只需保證2點,具體如下:
(1)質(zhì)量度量函數(shù)Q應(yīng)能夠?qū)k中的每一個值映射為一個質(zhì)量評分。
(2)相似度度量函數(shù)Sim應(yīng)能夠計算向量的相似度。
用python對波蘭城市克拉科夫的2017年的空氣質(zhì)量數(shù)據(jù)(天氣、壓強、溫度、pm1、pm2.5、pm10)進行實驗。其中,數(shù)據(jù)源為56個傳感器,均對6個屬性進行觀測。實驗數(shù)據(jù)包括自2017年1月1日到2017年12月24日的8 953條記錄。
研究測試了所提出框架的效率和有效性。在效率方面,定制設(shè)計了2方面的實驗。首先,保持閾值不變,測試隨著時刻數(shù)目(原始質(zhì)量矩陣行數(shù))的增加,合并質(zhì)量矩陣所需的時間變化,實驗結(jié)果如圖5所示。接著,保持時刻數(shù)目不變(固定在最大值),觀察隨著閾值的變化,合并所需的時間的變化,實驗結(jié)果如圖6所示。在有效性方面,保持時刻數(shù)目不變,觀察閾值變化時矩陣大小的變化,實驗結(jié)果如圖7所示。
由圖5可知,當固定閾值為0.1,同時不斷增加時刻數(shù)目,測量對多個數(shù)據(jù)源的化簡質(zhì)量矩陣所需的平均時間變化??梢杂^察得知,該時間呈嚴格線性增加的變化趨勢。
圖5 原始行數(shù)對效率的影響Fig.5 The influence of original row numbers on efficiency
由圖6可知,當固定原始數(shù)據(jù)行數(shù)為最大值,閾值從0~1變化時,測試合并時間的變化情況。分析結(jié)果可知,當閾值變化時,合并時間隨閾值增大而增加,時間增加幅度卻在遞減。這是因為當閾值增大到一定程度(在本實驗中約為0.4)之后,化簡后的質(zhì)量矩陣的大小基本不再發(fā)生大幅的變化,即每次化簡合并的行數(shù)不再發(fā)生大的變化,故所需時間的變化也會較小。
圖6 閾值對效率的影響Fig.6 The influence of threshold on efficiency
由圖7可知,當保持時刻數(shù)目不變時,測試閾值變化時化簡后矩陣大小的變化。當閾值從0~1逐漸增大時,合并后的矩陣行數(shù)不斷減少,減少幅度也隨之逐漸變小。該實驗結(jié)果也與圖6中的實驗結(jié)果互相印證,即當閾值增大到一定程度后,化簡的結(jié)果將不再發(fā)生變化。因此在實際使用中,可以通過實驗測定閾值和化簡后矩陣的變化關(guān)系,大致給出閾值設(shè)定的建議,例如,可建議其將閾值設(shè)定在化簡變化較陡的區(qū)域,這樣只需要微調(diào)就可以看到結(jié)果的明顯變化。
圖7 閾值對化簡后矩陣大小的影響Fig.7 The influence of threshold on reducted matrix size
針對目前傳感器系統(tǒng)中的數(shù)據(jù)質(zhì)量問題,本文提出了一種面向傳感云的數(shù)據(jù)源質(zhì)量評估框架。基于云端的大量歷史數(shù)據(jù),并借助云服務(wù)的計算能力,評估數(shù)據(jù)源的質(zhì)量。本文定義了數(shù)據(jù)源質(zhì)量矩陣,描述一個數(shù)據(jù)源在不同條件下的質(zhì)量情況,給出質(zhì)量矩陣的計算框架,從而快速高效地評估數(shù)據(jù)源的質(zhì)量,確定哪些數(shù)據(jù)可被進一步應(yīng)用于數(shù)據(jù)分析與查詢??紤]到傳感器網(wǎng)絡(luò)中傳感器數(shù)量多、環(huán)境復(fù)雜多變,可以獲取的信息量巨大,在不同的數(shù)據(jù)質(zhì)量狀況下,如何從海量傳感數(shù)據(jù)中,對數(shù)據(jù)質(zhì)量和數(shù)據(jù)源質(zhì)量進行不同角度的評估,仍是未來工作的重點。