數(shù)據(jù)處理系統(tǒng)和方法
【技術領域】
[0001] 本公開的實施例一般地涉及數(shù)據(jù)處理的系統(tǒng)和方法。本公開的實施例尤其涉及用 于在MapReduce環(huán)境(例如,Apache?Hadoop!)中處理數(shù)據(jù)的系統(tǒng)和方法。
【背景技術】
[0002] 隨著諸如云計算、社交媒體、電子商務和物聯(lián)網(wǎng)等趨勢的廣泛興起,大量數(shù)據(jù)隨之 產生。
[0003] 大數(shù)據(jù)是來自方方面面,可以是生活中的購物交易,也可以是工業(yè)上的生產制造; 從社交網(wǎng)絡媒體信息,到在線視頻圖像資料;從企業(yè)的信息管理系統(tǒng),到政府部門的電子政 務,都有著大量的數(shù)據(jù)產生。
[0004] 例如,當今,成萬上億計的網(wǎng)絡傳感器被嵌入到現(xiàn)實世界的各種設備中,如移動電 話、智能電表、汽車和工業(yè)機器中,用來感知、創(chuàng)造并交換數(shù)據(jù),無處不在的傳感網(wǎng)絡帶來了 無處不在的數(shù)據(jù)。
[0005] 可是,當前的數(shù)據(jù)技術和算法大部分都是針對單機數(shù)據(jù)處理的,不能滿足日益增 長的數(shù)據(jù)處理需求。
【發(fā)明內容】
[0006] 本發(fā)明目的是解決上述問題中的一個或多個。
[0007] 根據(jù)一個方面,本發(fā)明提出一種用于對數(shù)據(jù)進行處理的方法,包括:
[0008] 通過特征提取對所述數(shù)據(jù)進行結構化;以及
[0009] 通過多個映射任務和多個化簡任務對結構化后的數(shù)據(jù)進行并行處理,
[0010] 其中所述多個映射任務和多個化簡任務中的至少一個任務處理的數(shù)據(jù)被復制到 多個計算設備上,每個計算設備只對復制數(shù)據(jù)的一部分進行處理。
【附圖說明】
[0011] 從下面結合附圖對本發(fā)明的【具體實施方式】的描述中可以更好地理解本發(fā)明,其 中:
[0012] 圖1示出根據(jù)本發(fā)明的一個示例性實施例的數(shù)據(jù)處理方法的流程圖;
[0013] 圖2示出用于實現(xiàn)本公開中描述的方法的一個實例計算設備。
【具體實施方式】
[0014] 下面將詳細描述本發(fā)明各個方面的特征和示例性實施例。下面的描述涵蓋了許多 具體細節(jié),以便提供對本發(fā)明的全面理解。但是,對于本領域技術人員來說顯而易見的是, 本發(fā)明可以在不需要這些具體細節(jié)中的一些細節(jié)的情況下實施。下面對實施例的描述僅僅 是為了通過示出本發(fā)明的示例來提供對本發(fā)明更清楚的理解。本發(fā)明絕不限于下面所提 出的任何具體配置,而是在不脫離本發(fā)明的精神的前提下覆蓋了相關元素或部件的任何修 改、替換和改進。
[0015] 圖1示出根據(jù)本發(fā)明的一個示例性實施例的數(shù)據(jù)處理方法的流程圖。
[0016] 通過云計算、社交媒體、電子商務和物聯(lián)網(wǎng)等產生的大量數(shù)據(jù)一般作為原始數(shù)據(jù) 存儲在數(shù)據(jù)庫中。這些數(shù)據(jù)例如可以是文檔、視頻、圖像等等,它們是數(shù)據(jù)處理所針對的對 象。
[0017] 根據(jù)本發(fā)明的示例性實施例,首先在步驟S101對數(shù)據(jù)庫中的原始數(shù)據(jù)進行數(shù)據(jù) 預處理。數(shù)據(jù)預處理例如可以包括調節(jié)圖像大小、去除噪聲、背景差分等,數(shù)據(jù)預處理還可 以包括去除私密數(shù)據(jù)以及清除明顯無關的數(shù)據(jù)。
[0018] 接下來,在步驟S102對預處理之后的數(shù)據(jù)進行特征提取。通過特征提取,對數(shù)據(jù) 庫里面的數(shù)據(jù)對象采用特征向量或特征矩陣等數(shù)據(jù)結構進行描述。這是一個非結構化向結 構化轉化的處理過程。
[0019] 為了構造數(shù)據(jù)結構要為數(shù)據(jù)庫中的對象選擇感興趣的特征。例如,當數(shù)據(jù)對象是 電影時,可以使用電影名稱、上映時間、放映次數(shù)、觀眾人數(shù)、電影票價等特征表示對象電 影,這些特征構成電影對象的特征向量。當數(shù)據(jù)對象是圖像時,可以使用顏色特征、紋理特 征、形狀特征、空間關系特征等表示,這些特征構成圖像對象的特征向量。
[0020] 文檔指文本或文本中的片段,例如一片文章。詞語是組成文檔的基本元素。在不 同內容的文檔中,各詞語出現(xiàn)頻率有一定的規(guī)律性,不同的特征詞語可以區(qū)分不同內容的 文檔,這些特征詞語構成特征向量,用這個特征向量表示文檔。
[0021] 由于數(shù)據(jù)千差萬別,各特征的作用不同,因此還要對不同的特征起的不同作用賦 值,即賦予權重。賦予權重例如可以運用統(tǒng)計學的方法。
[0022] 根據(jù)本發(fā)明的可選實施例,可以以數(shù)據(jù)矩陣的形式表示多個數(shù)據(jù)對象A,例如 nXm矩陣,即n個對象,每個對象都有m維特征,矩陣中的元素Xlj表示對象A中特征&的 值(例如中特征匕的權重值),其中,其中i大于等于1且小于等于n,j大于等于1且小于 等于m。每個對象1^有111維特征。
[0023] 根據(jù)本發(fā)明的示例性實施例,上述數(shù)據(jù)矩陣為向量矩陣,也就是說,矩陣中的每行 構成一個特征向量,每個特征向量表示一個對象,矩陣具有n行也就表示n個對象。
[0024] 根據(jù)本發(fā)明的一個示例性實施例,為了使運算方便,可以將這些權重值映射到[0, 1]區(qū)間,即標準化。而根據(jù)本發(fā)明的另一些實施例,不進行標準化。
[0025] 下面的表1給出了數(shù)據(jù)矩陣的一個例子,該數(shù)據(jù)矩陣例如可以用來計算用戶(即 對象)喜好相似度。用戶U1喜歡科幻、喜劇、和動畫類視頻。用戶U2喜歡科幻、喜劇、和恐 怖類視頻。用戶U3喜歡科幻類視頻。用戶U4喜歡科幻類視頻。用戶U5喜歡喜劇類視頻。 可以構造如表1所示的數(shù)據(jù)矩陣以計算用戶喜好相似度。其中特征F1表示科幻類視頻,特 征F2表示喜劇類視頻,特征F3表示動畫類視頻,特征F4表示恐怖類視頻。
[0026]
[0027]
[0028] 表 1
[0029] 上述表1中,如果用戶喜歡某一類視頻,用權重值1表示,否則用權重值0表示。
[0030] 還可以構造表示用戶的特征向量Xu;,例如,用戶U1的特征向量是Xm = {1,1,1, 0),用戶1]2的特征向量是父。2={1,1,0,1)。
[0031] 下面的表2給出了文檔的特征矩陣,該特征矩陣可以用于計算例如文檔之間的相 似度。表2中,特征F1. . . .F13表示詞語,有U1到U12共12個文檔(即對象)。其中的數(shù) 字代表詞語在文檔中的權重,權重與詞語在文檔中出現(xiàn)的頻率成正比。表2中空白的表格 代表0,即對應的詞語在相應的文檔中沒有出現(xiàn)。
[0032]
[0033]表2
[0034] 接下來,在步驟S103,挑選出比較有效的特征,舍棄其他特征,以達到降低特征空 間維數(shù)的目的,這個過程叫做特征選擇。特征選擇主要用于排除無關或者關聯(lián)性不大的特 征,以減小計算量。
[0035] 例如,表示文檔的特征向量通常會達到數(shù)十萬維的大小,其中不少特征未必是必 要的。未經(jīng)處理的文本向量會給后繼的處理工作帶來巨大的計算開銷,因此,減少維數(shù)至關 重要。這往往決定了數(shù)據(jù)處理的效率。
[0036] 可以用數(shù)學的方法進行篩選來找出有價值的特征。例如,可以設置一閾值,如果一 個特征的值對于所有對象都小于該閾值,舍棄該特征。
[0037] 接下來,在步驟S104,執(zhí)行并行計算。
[0038] 通常,例如相似度計算時,可以使用向量的內積來表示相似度,即向量和Xut的 內積等于XuXxg對j從1到m求和,其中m表示特征的維數(shù)。當向量矩陣沒有歸一化時, 求出的和通常再除以向量和Xut的絕對值的乘積。通過改變i,t的值,可以求出所有對 象間的相似度。
[0039] 在對象數(shù)目比較小的時候,一般的計算機內存可以完全載入這些向量,可以很快 的計算;但是當對象數(shù)目變大到一定程度,程序就會運行的很慢,一是因為內存不能裝載 下,不停的內存換入換出十分耗時,二是因為對象數(shù)目變大會導致程序所需時間成立方級 增長。為了解決這一問題,本發(fā)明采用并行處理。根據(jù)本發(fā)明的一個示例性實施例,并行處 理例如可以采用MapReduce(映射-化簡)平臺進行。步驟S103中得到的結構化的數(shù)據(jù)(例 如向量矩陣)可以作為MapReduce平臺的輸入。輸入數(shù)據(jù)被切分到集群的不同節(jié)點(一個 節(jié)點是一臺普通的計算機)上,在這些節(jié)點上并行執(zhí)行map(映射)計算任務,map計算任 務從輸入數(shù)據(jù)中抽取出鍵值對((key,value)),生成做為中間結果的鍵值對,然后這些中間 結果又由大量的節(jié)點并行執(zhí)行Reduce(化簡)計算任務。共享同一個鍵(key)的值對由同 一個Reduce來處理。MapReduce中使用的鍵值對中的鍵例如可以是向量矩陣中的特征,而 值是向量矩陣中的權重值。
[0040] 根據(jù)本發(fā)明的另一個可選實施例,數(shù)據(jù)的并行處理包括多個MapReduce過程(例 如兩個MapReduce過程),一個M