1. 程式人生 > 實用技巧 >資料整合方法發展與展望

資料整合方法發展與展望

資料整合方法發展與展望

一. 摘要

資料整合在資料管理與分析領域起著重要的作用.儘管從學術界首次提出並開始研究資料整合問題已經過去 30 多年,但在各個領域仍然存在著大量與資料整合問題密切相關的問題亟待解決.對資料整合領域從 2001 年開始到現在相關工作的發展脈絡進行了梳理與總結.通過追蹤資料整合方法的發展軌跡,不僅可以瞭解前人在解決該問題時所作出的努力以及發掘出的研究方向,還可以進一步瞭解各個資料發展領域所研究問題的成因以及發展脈絡.最終,通過分析近幾年資料整合方面的工作,可以進一步展望未來在資料整合領域的潛在研究方向,為從事相關領域研究的學者提供參考.

資料整合指通過對資料來源進行融合 , 發現來自不同資料來源中指代相同含義、實體的資料之間的關聯關係的研究。.在實際應用中,資料整合工作對大資料的管理、查詢以及分析場景都具有重要的作用.

  • 資料管理.對海量資料的高效管理是大資料時代所面臨的重要挑戰之一,良好的資料管理策略可以極大地提升資料質量、訪問效率,同時降低對資料的維護成本.而有效的資料整合方法則可以幫助使用者提出更好的資料管理策略.例如,資料整合技術可以識別出具有關聯關係的資料和檔案,通過將具有關聯關係的資料儲存於叢集中的相同節點上,在訪問這批資料時可以極大地提升對資料的訪問效率;通過梳理海量資料之間的邏輯關聯結構,可以讓管理者更容易理清當前所管理的資料結構以及基本資訊;
  • 資料查詢.對海量資料的快速查詢與檢索,需要高質量索引結構的幫助.而資料整合技術可以輔助構建更高質量的索引.例如,通過理解不同資料來源之間的資料關聯關係,結合實際應用需求,使用者可以針對整合後的資料集構建索引.相比傳統索引技術只能對單一資料來源的查詢進行加速,面向全域性模式的索引可以對面向多資料來源的複合查詢進行加速;
  • 資料分析.資料分析與資料整合工作是相互融合與促進的,資料分析技術可以幫助使用者更好的理解資料的含義,提升資料整合的質量;而對資料進行整合則可以幫助資料分析工作得到更加豐富的成果.例如在資料分析過程中,對一些含義不明確的資料,可以進一步整合網際網路上的相關資訊(維基百科等),從而更好地理解資料含義,提升資料分析質量.

二. 發展概要

首先介紹不同分類下的資料整合技術的主要特徵,結合具體的例子說明資料整合技術在不同發展階段的主要目標。
資料整合最初的任務目標是找到給定資料集內資料列、資料元組之間的關係 . 通過將代表相同屬性的屬性列、指代相同實體的元組之間建立聯絡 , 可以起到從資料集中發現更多知識的目的。
在這裡插入圖片描述
以圖 1 為例,假設最初的資料集中只有表 1 和表 2,表 1 描述的是一些書籍名字和對應的書籍作者、語言等資訊,表 2 描述的是一些作者及其國籍.通過資料整合,我們可以將表 1 中的元組與表 2 的元組按作者名字對應起來,從而得到例如《悲慘世界》 “的作者是法國人”這樣的資訊.而這條資訊並不單獨存在於表 1 或表 2 中,這就是通過資料整合從而獲得更加豐富的資料資訊的例項.
這樣的規則是可以通過人工定義的,比如使用者完全可以在查詢語句中手動將表 1 的作者與表 2 的名字列進行聯絡,或者將這樣的規則手動寫入資料庫中.然而,當資料庫中存在成千上萬甚至更多張表時,依靠人工將所有的關聯關係全部找出來是不現實的.這也是資料整合研究最初的動力:設計一種方法,能夠自動地識別出資料集中潛在的資料整合關係.如何確定這些依靠原始資料集無法發現的資料關聯,是後續資料整合研究需要解決的問題。
為了解決少量資料集提供的語義資訊不足以支撐資料整合分析問題時,一種可行的思路是繼續擴充資料集.例如,當我們發現只依靠表 1 與表 3 的資訊無法準確消除“悲慘世界”這個實體在兩張表中引起的歧義時,我們可以進一步匯入新的資料集.例如,我們可以將表 4 匯入到資料庫中.表 4 描述的是一些經典世界名著的名字以及作者,其中就包含了“悲慘世界”以及“雨果”這兩條資訊.由於這兩條資訊與表 1 中的內容相匹配,我們可以認為表 1 的“悲慘世界”這一條元組描述的是書籍,進而推斷表 1 中的資料全部是書籍的資訊.然而,能夠發現這
條知識的前提是我們能夠在表 4 中及時發現“悲慘世界”這條與表 1 資訊相匹配的內容.可以看到,表 4 中包含的內容非常多,因此我們需要設計一種方法,能夠快速從表 4 中發現我們需要的資訊.這正是後續資料整合技術發展的主要方向之一:如何從龐大的資料集中快速、高效地發現其中潛在的關聯關係.
另一種資料整合的技術思路是引入網際網路資料.網際網路中蘊藏著大量潛在的知識資訊,例如,我們可能在網際網路上看到類似圖 1 中新聞 1 這樣的資訊.這一資訊可以幫助我們識別“李安”屬於電影導演,將這條知識與表 3中的資料相結合,我們也可以得出表 3 的資料描述的是電影資訊這樣的結論.這樣將網際網路中的資訊與本地資料庫資料結合進行資料整合的技術,也是目前資料整合領域採用的主流技術之一.在此基礎上,人們甚至可以直接從網際網路上獲取資料來進行整合,直接通過網際網路挖掘有價值的知識資訊.
在對網頁資料進行整合時,有幾大挑戰需要解決.

  • 首先是資料資訊的提取.網路上的很多資料可能都是類似於圖 1 中的文字資料,在對這些資料進行整合時,首先需要將其轉換成資料整合處理的結構化資料,在這一過程中,如何實現資料格式的轉換是第一大挑戰;
  • 除此之外,網路上的資料來源質量參差不齊,有的資料集中包含的有效資訊很少.如何及時過濾掉低質量的資料來源,或者從海量資料來源中找到所需要的資訊,也是面向網路資料的資料整合需要解決的問題;
  • 考慮到網際網路所蘊藏的資料規模,如何高效地對海量資料進行整合,也是這類研究需要考慮的問題.
    有些資料整合工作使用自動化演算法很難實現,但如果由人來分辨就會很容易.正是針對這一特性,基於眾包的資料整合技術被提出.眾包技術的核心思路是:將計算機無法判斷的任務分發出去,交由人來進行判斷(人在進行判斷時一般會獲得一些獎勵),並將多人的判斷結果進行整合,得出最可信的結論.可以看到,眾包技術可以更加精確地發現數據整合問題中的資料關聯關係.因此,使用眾包技術作為解決資料整合問題的思路是一種非常熱門的方法.
    然而在使用這類技術時,仍然需要解決眾包領域的一系列通用性問題.
  • 首先是成本問題.一般的眾包任務會對參與眾包的人進行一定的獎勵,這些獎勵就是設計眾包任務時的開銷.在設計眾包任務時,應當考慮如何用最小的開銷得到最精確的結果.為了達到這一目標,需要選擇最合適的問題以及最關鍵的資料作為眾包任務.因此,如何妥善選擇合適的眾包任務,成為了這類問
    題需要解決的挑戰之一.
  • 另一個需要考慮的問題是眾包任務的時間開銷.與計算機的運算速度相比,將一個問題提交給眾包再得到結果的時間開銷是非常大的.而考慮到大資料時代對演算法效率的追求,如何取得眾包任務的時間開銷與演算法效率之間的有效平衡,也是基於眾包的資料整合領域的重要挑戰.

真正完成一個數據整合任務,除了資料整合演算法本身以外,還需要考慮到資料輸入、預處理、資料清洗以及後續的資料輸出、視覺化等一系列問題.除此之外,在有些時候,單一的資料整合演算法可能不足以處理複雜的資料整合任務,因此需要引入多種資料整合技術用於處理不同的應用場景和資料集.針對這些場景,一些學者和企業開發了資料整合系統用於處理實際生活中碰到的資料整合問題。

三. 技術綜述

3.1 早期資料整合技術

早期的資料整合領域研究主要集中在針對給定資料來源以及資料集,如何識別出描述相同屬性,相同實體的資料表、資料列與資料元組之間關聯起來.在關聯關係的挖掘方面,主要採用的是較為簡單、基於字串進行直接匹配,通過人工識別等方式完成.相關的文獻由 Erhard 等人[5]進行了較為全面的介紹與總結.在此基礎上,後續的文獻引入了在更復雜的問題定義與應用場景下解決資料整合問題的方法.Jacob 等人[6]基於貝葉斯模型對資料之間的關聯關係進行評估,再將最優的概率模型作為最終的資料整合模式.Kang 等人[7]針對之前的資料整合方法需要依賴準確的資料名進行識別的問題,基於資料之間的互資訊,提出了針對列名不明確或缺失場景下的資料整合方法.He 等人[8]針對在給定資料集範圍內可能無法得出準確資料整合結果的問題,考慮到了進一步引入網路上的知識與資料用於協助資料整合工作.Sergey 等人[9]將原始資料模式對映成圖模型,並提出了圖匹配方法對圖之間進行整合.在此基礎上,本文還進一步引入了人工監督(human supervision)來進一步提高資料整合的準確度.Robin 等人[10]針對之前的資料整合方法主要解決一對一對應的問題,提出了更加複雜的資料對應關係(一對多、多對一,多對多),進一步增加了資料整合的靈活性;同時,通過對搜尋空間進行切分來提升演算法的效率.Wang等人[11]針對傳統的資料整合只服務於查詢的功能,提出了雙模式,包括介面模式(面向查詢)與結果模式(面向檢索).與傳統方法相比,面向雙模式的資料整合可以滿足更加豐富的應用場景.Nottelmann 等人[12]提出了面向異構資料整合場景下的自動資料整合方法.Gal[13]對之前的資料整合工作進行了總結,並分析了資料整合領域後續所面臨的挑戰.

3.2 後續整合演算法的發展

隨著大資料時代的到來,資料整合研究所解決問題的重心開始逐漸發生改變.具體來說,資料整合演算法從傳統的注重準確率、基於限定資料模式開始向對演算法效率和處理更加複雜的資料型別轉變[14,15].其中較為有代表性的文獻包括由 Sarma 等人[16]提出的基於 pay-as-you-go 框架的資料整合方法,該方法主要是為了解決傳統資料整合演算法普遍複雜度較高而導致的效率低下的問題,其核心思想是:先對資料進行快速整合,形成初步(但不一定準確或完善)的資料整合模式,隨後再不斷優化整合模式,隨著時間的推移,逐漸演化成高質量的資料整合結果.

除了資料規模龐大以外,大資料帶來的另一大挑戰是資料質量問題.低質量的資料往往影響著演算法的準確度,同時也影響了演算法的搜尋空間,提升了演算法的時間開銷.因此,有一批文獻針對低質量資料的處理展開了研究.其中,Rekatsina 等人[17]通過快速對資料來源的質量(quality)進行判別,並過濾掉低質量資料來源,從而提升了資料整合演算法的效率.Deng 等人[18]提出了 SILKMOTH 系統,該系統對資料中一定程度的不相似性(dissimilarity)魯 棒.該方法可以處理不同資料來源中,相同實體的屬性值存在一定誤差導致傳統方法無法識別的問題;同時,由於
該演算法初始複雜度較高,論文進一步引入了剪枝策略來降低演算法的時間複雜度,從而提升演算法效率.

此外,針對特殊資料型別的資料整合演算法同樣是具有前景的研究目標.例如,Chen 等人[19]針對報表資料(spreadsheet)的特徵,提出了一種面向報表資料的元資料提取與資料整合方法.Chanial 等人[20]針對媒體環境下需及時整合來自不同資料來源的資訊以快速形成第一時間媒體報道的應用場景,提出了 CONNECTIONLENS 系 統,該系統主要面向的是網際網路上的文字等資料來源的資訊快速提取與整合場景.

3.3 面向網頁表格的資料整合技術

在最初的設計中,資料整合技術主要解決的是給定資料來源範圍(例如某一企業內部)的資料整合.然而隨著資料整合技術不斷髮展以及網際網路、大資料環境對資料整合問題的衝擊,人們很快發現,有時僅僅依靠企業內部資料不足以生成足夠精確的資料整合結果.與此同時,通過將來自網際網路的資料與企業資料知識相結合,可以生成更加精確的整合結果.因此,面向網頁表格(webtable)資料的資料整合工作成為了一個熱門的研究方向.該方向的工作主要目標在於通過將網際網路上的資料進行進一步整合,發現有價值的潛在資訊,或者將網路上的資料與本地資料結合起來,進一步提升資料整合的準確率等.同時,由於網路上資料規模十分龐大,如何提升面向網路規模資料的查詢、整合效率也是一個重要的研究問題.

早期具有代表性的面向網頁表格資料的相關工作包括 He 等人[21]提出的 MetaQuerier 專案,該專案基於網際網路中潛藏的龐大資料量以及其中可能蘊藏的大量有價值資訊,提出為使用者開放可以對深網(deep Web)的查詢與資料整合介面,從而幫助使用者在網際網路上更有效地查詢自己所需要的資訊。一.Cafarella 等人[22]則首次提出了網頁表格的概念,因為其在對網際網路資料進行提取時,首先從網際網路上爬取了大量資訊,再將爬取的資訊中的高質量關係表提取出來進行進一步的整合,這一整合系統被稱作 WEBTABLE。

該系統的一大優勢在於:通過整合網際網路上具有結構資訊的關係表,使
得對網際網路資訊的整合與傳統的資料整合方法可以有效地對接起來.這一定義一直被後續問題沿用,即後續的大量針對網頁表格的整合問題所研究的主要物件也是網頁中的表格資料.隨後,同樣是 Cafarella 等人[23]提出了OCTOPUS 系統,在該系統中,作者詳細描述了網頁表格資料整合的挑戰,包括資料來源選擇、資料清洗、元資料抽取等問題,並提出 OCTOPUS 系統用於解決這些潛在問題與挑戰.

隨著大資料時代對網際網路資料的衝擊,近期的面向網頁表格資料的整合方法也面臨著與研究大資料整合時類似的問題,所研究問題的發展趨勢也與其他演算法的發展趨勢類似,即主要解決資料質量以及大規模資料處理的效率等問題[24].具有代表性的工作包括 Lehmberg 等人[25]提出的資料表格縫合(stitching)技術,在該工作中,作者發現:傳統的面向網頁表格的整合效果往往受到表格大小的影響,針對較小的資料表的整合效果往往比較差.因此在這篇文獻中,作者通過將小的資料表縫合成大表的方法,解決了小資料表在資料整合中效果不佳的問題,從而進一步提升了資料整合的準確率.最後,Cafarella 等人[26]對網頁表格技術 10 多年來的發展進行了總結.

3.4 基於眾包的資料整合技術

在很多情況下,特別是針對特殊領域、特殊專業的資料,僅僅依靠有限的資料來源資訊可能不足以分辨出資料之間的關聯關係,而網際網路上可能也缺乏相關領域的資料,或者這些資料的知識模型難以提取,從而導致這些資料的整合工作無法僅僅通過自動化演算法完成.此時,就需要引入人工監督來幫助識別這些資料。

在早期的工作中,已經有方法將人工監督考慮到資料整合工作中[9].然而,系統性地將人工監督作為資料整合工作一環的仍然是將眾包技術(crowdsourcing)與資料整合技術相結合的領域.與傳統的考慮人工監督技術的應用場景相比,眾
包技術將引入“人”的開銷、眾包結果的準確率與代價估算等概念進行了更加全面與規範的定義,因此成為了需要引入人工監督時採用的主要技術標準.自然而然地,將眾包技術與資料整合問題相結合的工作也應運而生。

Franklin 等人[27]首次提出了將眾包技術與資料庫相融合的系統 CrowdDB,該系統通過加入眾包方法來回答通過資料庫與搜尋引擎都無法回答的查詢.在技術上,該系統解決了傳統的資料庫模型是閉合的(closeworld)、沒有考慮到將“人”的知識作為輸入條件的問題.針對這一問題,本文具體討論了在資料庫中引入人工知識作為介面時需要解決的問題,並描述了 CrowdDB 系統的具體實現.由於 CrowdDB 系統的思路是讓人在參與回答查詢時反饋一定的金錢作為獎勵,因此如何合理規劃問題的設計、選擇合適的問題以及回答人和判斷結果
的準確度等問題,都需要進一步分析.針對這些問題,Marcus 等人[28]提出了Qurk 系統,該系統可以對 CrowdDB的流程進行進一步優化,從而實現用最小的開銷滿足儘可能多的查詢.

類似的問題,諸如問題設計、評估答題質量、結果與資料模型結合的問題,不僅出現在 CrowdDB 中,也是整個眾包技術所面臨的共通性問題.因此,後續基於眾包技術的資料整合技術有大量文獻都在集中解決這些問題. Wang 等人[29]認為,完全依賴眾包技術無法解決對大規模資料的整合問題,因此其提出了一種混合系統,該系統首先對資料進行初步處理,隨後過濾出部分資料提交給眾包.與傳統方法相比,該技術在效率上與準確率上具有更大優勢.Whang 等人[30]與 Fan[31]針對眾包環境下對問題的選擇進行了進一步研究,他們都考慮到了眾包模型下的代價問題,因此需要選擇最有價值的答案來得到最終結果.Whang 等人的工作主要針對的是選擇未知的實體(entity)進行識別,而 Fan 等人的工作則主要面向的是選擇表格中的不確定資料列(column).Zhang 等人[32,33]考慮到眾包平臺中,詢問關係是否正確這樣的二元問題(correspondence correctness question)效果最好,提出了針對這類問題的眾包問題選擇策略.在此基礎上,該工作進一步考慮到了眾包場景下結果可能不準確導致的不確定性問題,提出了基於資訊熵的不確定性縮減方法,併為結果的準確性提出上下界,進一步提升了結果的可信度.

3.5 資料整合系統發展

在早期的資料整合演算法被提出以後,很快人們就發現,單一的演算法往往不能適用於全部的資料整合問題場景.在有些應用場景下,使用基於多重資料整合演算法的混合模型在處理資料整合問題時會達到更好的效果.基於這一發現,Doan 等人[34]提出了 GLUE 系統,該系統可以允許使用多種相似度度量來挖掘資料之間的關聯關係.與此同時,Do 等人[35]也提出了 COMA 系統,該系統集成了多個傳統的資料整合方法,通過混合模型進一步提升資料整合的準確率.這兩個系統也可以被看作早期的資料整合平臺的代表.

隨著資料整合技術的進一步發展,逐漸湧現出企業級規模的資料整合平臺用於對企業資料進行管理、搜尋與分析等工作.其中具有代表性的成果包括Stonebraker 等人[36]提出的 DataTamer 系統,該系統主要任務是快速過濾,找到使用者感興趣的資料集.在實現技術上,該系統集成了之前的一系列技術亮點,包括人工監督、模型隨時間演化等技術.在此基礎上,該系統還引入了資料的視覺化功能,該功能使得使用者能更加方便快捷地獲取所需要的資訊.

另一個具有代表性的系統是 Google 研發的 GOODS[37]系統,該系統的設計、研發初衷是為了能夠更加有效地利用 Google 企業內部的資料,通過將多資料來源異構資料有效整合,進一步挖掘企業資料的價值.在實現上,該系統充分發揮了 Google在搜尋引擎方面的技術積累,GOODS系統可以在企業級資料集上進行類似於搜尋引擎的搜尋方法,併為使用者反饋最合適的搜尋結果.

另一個具有代表性的系統是 Google 研發的 GOODS[37]系統,該系統的設計、研發初衷是為了能夠更加有效地利用 Google 企業內部的資料,通過將多資料來源異構資料有效整合,進一步挖掘企業資料的價值.在實現上,該系統充分發揮了 Google在搜尋引擎方面的技術積累,GOODS系統可以在企業級資料集上進行類似於搜尋引擎的搜尋方法,併為使用者反饋最合適的搜尋結果.

除此之外,也不斷有新的資料整合平臺概念與技術被提出.Abedjan 等人[38,39]提出了 DataXFormer 系統.在資料整合工作中,由於異構資料來源帶來的原始資料結構、模式不一致問題導致大量的時間需要花費在資料結構的統一化過程中.為了解決這一問題,DataXFormer 系統通過對資料來源進行分析,為使用者推薦可行的資料變化策略,從而節省在統一資料模式上的時間開銷.Deng 等人[40]提出了 DATA CIVILIZER 系統用於對企業內部的大量資料進行整合,該系統使用一個動態更新的關聯圖(linkage graph)模型來表示企業內部不同資料之間的資訊,同時使用資料發現(data discovery)模組從關聯圖中高效地查詢與使用者任務相關的資料.類似的基於圖模型對資料關聯關係進行建模的技術也被應用於 Aurum 系統[41],該系統針對傳統的資料整合系統只能解決某些特定場景
下的資料整合工作這一侷限性,提出了更加靈活的資料整合技術,通過將企業資料建模成企業知識圖(enterprise knowledge graph),並將資料整合與資料發現問題轉換成在知識圖上的查詢問題,使得該平臺能夠支援更加靈活的資料整合與知識挖掘任務.

四. 代表性工作介紹

4.1 面向模糊列名與資料取值的資料整合方法

文獻[7]解決的是針對資料整合中,存在資料列名與資料取值模糊而導致傳統資料整合技術無法有效識別資料之間關聯關係的問題.我們通過一個簡單的例子來說明該文的問題與貢獻.在簡單的資料整合場景中,資料集的列名與其中元素的含義都是十分明確的,如圖 1 中所示,我們需要做的工作是將代表相同含義的資料列建立對映(表 1 作者-表 2 名字)以及具有相同含義的數值建立對映(表 1 雨果-表 2 雨果).這些對映關係可以通過分析資料語義,或者計算編輯距離實現.然而在一些資料庫和資料表中,可能使用特殊的編碼或者抽象的字元對資料進行表示.例如在書庫中,有些表內可能會用書籍的編碼而非書名來標識書籍.這種情況下,傳統的通過語義資訊來識別同一含義或實體的方法不再有效.因此,該文解決的是針對模糊資料集之間的對映問題.具體來說,給定如圖 3 所示的原始資料,其中相同編號的實體代表的含義相同(例如所有的 c1 都指代相同數值),不同表之間可能存在對映關係(例如左表的 A 列與右表的 Z 列可能代表相同含義),該文所研究的就是如何對給定的若干個這樣的原始資料進行整合的問題.
在這裡插入圖片描述
該文采用的是基於資訊熵與互資訊的方法,其中:資訊熵衡量了每個資料列所包含的資訊量,而互資訊則衡量不同資料列之間的資訊量差異.如果兩個資料列所包含的資訊量類似,即資訊熵類似,則兩個資料列代表同一含義的可能性更大.類似地,如果兩列資料之間的資訊量差異在兩個表中類似,則兩個資料列分別對應的可能性更大.
直觀來說,圖 3 左表的資料列 A 可能與右表的資料列 X 代表的含義相同,因為這兩列的資料分部較為類似,都包含 3 個不同的資料值(a1,a3,a4-x1,x2,x3),且有一個數據值重複出現了一次(a1,x2).這樣的抽象資料分部可以通過資訊熵進行度量.例如,我們可以通過計算資訊熵得出 A 與 X 兩個資料列的資訊熵都為 1.5,從而推斷 A 與 X 大概率是相互對應的.
然而,僅僅依靠資訊熵來進行資料集匹配只能處理當兩個資料來源的資料列數量一致,且必定存在兩兩屬性對應的情況.在更多情況下,我們不能確定兩個資料來源是一定兩兩對應的.例如圖 1 中的表 1 與表 2 之間,只有人名字是對應的,而其他的資料列則並不存在對應關係.當需要挖掘這類資料之間的匹配關係時,僅僅依靠資訊熵是無法有效識別的.為了解決這一問題,進一步提出了支援圖(dependency graph)模型.

支援圖為一個加權圖,圖中的節點代表資料來源中的資料列,節點權重代表該資料列的資訊熵.而邊則代表兩個節點之間的互資訊.互資訊反映了兩個資料屬性之間的支援度(dependency).例如:如果兩個變數是完全獨立分佈,則兩者之間的互資訊應當為 0.在本文的支援圖模型中,引入互資訊可以進一步幫助我們識別哪些資料列可能代表相同的資訊.例如,圖 4 中展示了基於圖 3 資料所衍生出的支援圖模型.從中我們可以看到:屬性 A-B 之間的互資訊與 W-X 的互資訊
均為 1.5,而 A 的資訊熵與 X 相同,B 的資訊熵也與 W 相同.由此我們可以大概率推測出 A,B 兩個屬性分別與X,W 兩個屬性對應.
在這裡插入圖片描述
通過使用資訊熵和互資訊兩個度量,有效解決了在資料缺乏語義資訊或者資料被加密後,不同資料來源的資料融合問題.該方法是早期資料整合領域中普適性較高的一個演算法

4.2 對資料來源進行快速篩選的方法

儘管之前的很多方法中(例如上文提到的基於資訊熵與互資訊的方法)已經可以有效識別任意兩個給定資料來源之間可能存在的關聯關係,但這些方法仍然不能很好地處理大資料環境下的資料整合問題.其中一個重要的原因在於:由於需要進行整合的資料來源候選集非常龐大,而傳統方法的計算複雜度又較高,因此,如果對候選集中全部資料來源的關聯關係進行兩兩計算的話,整體時間開銷和空間開銷是非常高的.因此,為了解決這一問題,本文提出了 SilkMoth 系統,旨在快速過濾掉那些關聯關係不高的資料來源.與簡單的資料過濾策略不同,本文的資料來源篩選方法可以保證篩選出的資料集的準確性,即:相似的資料集一定會出現在過濾出的候選集中,不會出現兩個資料集本身相似,但演算法沒有識別的情況.

識別資料來源之間的關聯關係的通用方法之一是 Bipartite Matching演算法,該演算法將兩個給定資料集構造成一張二分圖,每一個數據集分別代表圖其中的一個子圖,子圖中的點代表集合中的元素,可以是關鍵詞、關鍵片語等.而跨子圖的邊則代表兩個元素之間的相似性,可以通過編輯距離(edit distance)等度量來計算.BipartiteMatching 演算法的核心是找到一批跨子圖的邊的集合,使得集合中邊的權重和最大.該演算法的優點在於其較強的魯棒性,可以有效識別集合中元素不完全一致的情況.而其缺點在於需要計算兩個集合中,所有元素之間的相似性.如果給定多個集合,則需要計算任意兩個集合之間、任意元素之間的相似性.這個過程的時間複雜度是非常大的.針對這一問題,本文的主要貢獻在於如何減少針對海量資料集整合過程中需要進行 Bipartite Matching 計算的候選集,從而壓縮演算法的時間開銷.

文獻[18]的方法主要通過以下兩個步驟:

  • 首先提出了一種 Signature 選取策略.Signature 可以被看作集合中某些關鍵詞的集合,代表了該集合的特徵.直觀上來說,如果兩個集合的 Signature 相似或相同,則有很大概率兩個集合具有較高的相似性;而如果兩個集合的 Signature 差異性很大,則可以認為兩個集合沒有相似性,無需再進行相似性的精確計算.因此,該文的第 1 個貢獻在於如何選擇出高質量的 Signature 來有效反映集合的特徵.值得注意的是:所提出的 Signature 選取策略有非常高的求全率,可以保證不會出現 False Negative 的情況,即,沒有識別出相似資料集的情況.然而為了保證高求全率,只通過 Signature 識別出的相似候選集中仍然存在大量相似度較低的資料集,因此在第 2 步工作中,主要通過兩次過濾來進一步篩選需要過濾的候選集;
  • 在第 2 步中採取了最近鄰過濾(nearest neighbor filter)策略.最近鄰過濾策略的原理是:基於樣本中的近鄰關係,發現任意兩個相鄰樣本所能達到的最大相似度,這些相似度的累加即是兩個集合之間相似度所能到達的相似度上限.因此,如果該相似度上限仍然低於使用者給出的閾值,則可以將這兩個集合的關係從候選集中剔除.由於最近鄰計算演算法本身複雜度較高,本文在文中繼續討論了若干可以對此處最近鄰計算進行進一步加速的策略.

4.3 面向網頁表資料的整合方法

大資料時代帶來的一大改變是網際網路應用的普及,隨之而來的是網際網路上,特別是網頁中包含的資料量提升.如果能將這些資料通過資料整合方法進行處理,很可能發現更多潛藏在網路上的資訊.然而,傳統的資料整合方法主要處理的都是資料庫中的資料表,這些資料表往往都遵循某種設計模式,而且每個表都比較飽滿,其中包含的資料都比較多.相比之下,存在於網頁中的資料表往往都是一些比較小、比較離散的表.例如,介紹一個電影院近期電影的網頁表中往往只會包含近期幾個上映電影的資訊,而不會把歷史中的全部電影資訊都存在表中.而考慮到傳統的資料整合問題所處理的往往是含有豐富屬性的大表,針對網頁中存在的這些小表的整合問題是面向網頁表示資料整合方向的一大重要挑戰.

考慮到直接對小的網頁表進行整合不夠理想,在本文中,作者提出了一種將網頁表進行縫合(stitching)的方法,將多個小表縫合成一張大表,再用於後續的資料整合等分析工作中.本文首先用了 3 種直觀的方法對網頁表進行縫合,並通過實驗驗證對網頁表進行縫合確實可以有效提高資料整合的準確度.接下來,作者針對直觀方法無法解決的網頁表縫合問題,進一步提出了優化策略.作者所採用的直觀縫合方法包括 3 種:基於列名的方法、基於數值型別的方法與基於重複的方法.其中:基於列名的方法是通過直接匹配兩個表中屬性的名字,將具有相同名字的屬性列看作具有相同含義的屬性列進行縫合;基於數值型別的方法是通過判斷兩個資料列中所儲存的資料型別是否一致(例如 Int-Int)來判斷屬性之間的匹配關係;基於重複的方法是直接判斷列中所包含的資料數值是否相同(例如雨果-雨果).然而,只通過這些方法不足以解決網頁表的縫合問題.

以圖 5 為例,當對圖 5 中的兩張表進行縫合時,直觀方法不能很好地識別兩張表中資料的對應關係,其原因在於:首先,兩張表的屬性名所使用的語言不同,因此,儘管兩張表的第 1 列資料都代表名字(name),由於語言不通,演算法無法識別出這兩列資料屬性所指代的含義是相同的;其次,以最後一列第 1 行資料為例,儘管兩個表中的資料數值均為 0.99,但兩張表中的單位是不一樣的,前表中是“磅”而後表中是“歐元”,這一差異也讓我們在設計演算法識別資料的對應情況時存在困難;最後,兩張表的列數量是不同的,此時,我們需要判斷哪些資料列是存在
對應關係的,哪些是可以被刪去的.
在這裡插入圖片描述
針對上文例子中存在的、直觀方法無法識別的網頁表縫合問題,本文進一步提出了混合匹配演算法(hybrid matcher).該演算法的主要功能是針對直觀方法可能錯誤識別的網頁表匹配模式進行檢查,並發現潛在的匹配模式,並排除掉那些可能錯誤的匹配模式.具體來說,本文首先將直觀方法識別出的匹配模式構建成圖模型.例如,如果通過直觀方法得出以下屬性對應關係:artist-artista,artista-interpret,naam-titulo,titulo-name,我們則可以構建出圖 6 中由節點和虛線邊組成的初始圖.接下來,我們可以首先發現一些之前沒有識別出的匹配關係.例如,由於artista 與 artist 和 interpret 都存在匹配關係,那麼可以推斷出 artist 與interpret 也存在匹配關係,同理也可以識別出 naam 與 name 之間存在匹配關係.接下來,作者計算圖中任意兩個節點之間是否存在通路,以及通路的路徑所
走過的邊.如果一條邊被走過太多次,那麼這條邊很可能代表了一個錯誤的匹配關係.
在這裡插入圖片描述
該方法基於的假設是:如果該匹配圖正確,那麼圖中的點只會與具有匹配關係的點產生邊的連結.例如{artist,artista,interpret}集合與{naam,name,titulo}集合,這些集合中,任意兩個節點之間的路徑都較短,而且走過的邊各不相同,並且兩個集合之間則不應該存在通路.反之,如果圖中存在一個錯誤的匹配關係interpret-naam,那麼原本兩個不連通的集合就通過這條錯誤的邊被連同起來,此時,當我們計算兩個集合之間任意兩個節點的通路時,這些通路都會經過 interpret-naam 這條邊.因此,可以通過追蹤那些被頻繁走過的邊來識別哪些邊所代表
的匹配關係是錯誤的.

4.4 基於眾包的資料整合方法

隨著資料整合方法所需要處理的資料集來源越來越廣泛,很可能出現一些資料集的知識過於抽象或者過於複雜,導致傳統的機器學習方法很難有效識別表中的資料含義,從而造成資料整合結果的不準確.針對這一問題,一種可行的解決思路是通過眾包策略,通過人工的方法來幫助識別那些有歧義的資料含義.然而在眾包問題中,每一個問題都伴隨著一定開銷的產生,而在一個眾包專案中,提供眾包專案的研究者的總預算往往是有限的.因此,如何在有限的預算內儘可能選擇最有意義、對提升準確度幫助最大的問題,是眾包場景下需要解決的
主要問題之一.

在這篇文章中,作者所研究的就是針對網頁表資料整合的背景下,將哪些不清晰的資料匹配關係提交給眾包進行判斷,從而能夠最大地提升資料融合準確率的問題.值得注意的是:儘管該文所研究的是針對網頁表資料的整合問題,但所提出的解決問題的方法是具有通用性的,可以廣泛應用於各種資料融合問題場景中.

該文解決資料融合問題的核心思想是:
首先,藉助網上的知識庫(例如 FREEBASE[43])對網頁表中的資料進行初步識別,對於那些識別出來結果存在較大歧義的資料屬性,選擇對結果準確度提升貢獻最大的屬性提交給眾包進行分析處理.在對資料進行初步識別時,該文采用了基於資訊熵的方法.該方法的直觀思路是:針對輸入資料集中的任意一個屬性,計算它與FREEBASE 資料集中各個概念(concept)的相關度(correlation),最後再計算這一批相關度的資訊熵.如果識別結果對該屬性的歧義比較低,那麼該屬性應當只會對一個或者少數幾個相關聯的概念相關度非常高,而對其他概念的相關度很低.基於這樣的資料分部所計算出的資訊熵應當是較低的.然而,如果該屬性的歧義比較高,則勢必會導致該屬性在多個概念上的相關度均有較高的數值,這就會導致資訊熵的升高.因此,可以通過計算每個屬性在多個概念上相關度的資訊熵,來判斷哪些屬性是可以被有效識別,而哪些屬性是仍然具備較大歧義的.

通過上一步的處理,已經可以過濾出一批歧義比較大的資料屬性.接下來需要解決的問題是選擇哪些屬性提交給眾包任務進行進一步識別.考慮到眾包任務的開銷,我們希望選擇一些具有更大價值的資料屬性來提交給眾包任務進行識別.例如通過識別某一屬性,可以同時幫我們確定多個數據屬性的含義.基於這一思路,本文通過兩個指標來判各個屬性的價值.

  • 首先是表內影響力(intra-table influence).
    直觀來說,該影響力反映了一個屬性與對其他屬性的影響力強弱.例如,以圖 1 中表 1 的資料為例,假設我們知道了第 2 列的作者與第 1 列的作品之間存在創作與被創作的關係,那麼如果我們確定了第 2 列資料代表的作者是“書籍作者”,我們同時也可以確定第 1 列的名字代表的是“書籍名字”;反之,如果第 2 列資料代表的是“電影作者”,那麼第 1 列資料代表的則一定是“電影名字”.因此,我們可以通過一次眾包任務(識別第 2 列屬性含義)確定兩列資料的屬性.這一關係就代表著第 2 列資料具有較大的“表內影響力”,因為對其含義的確定也影響了對
    其他資料列的含義識別.
  • 文中採取的第 2 個判斷指標是表間影響力(inter-table influence).
    在兩張表中可能存在一些資料屬性,我們並不知道它們的準確含義,但是我們知道它們代表的是相同的意思.這一關係就代表這兩個屬性之間具備較強的表間影響力.例如,考慮圖 1 中表 1 的“作者”屬性與表 2 的“名字”屬性,儘管我們不知道它們代表的是電影作者還是書籍作者亦或是其他作者,但我們知道它們所代表的含義是大概率相同的.在本文的方法中,考慮到網頁表一般都比較小,包含的資料可能不夠全面,因此作者並沒有選擇基於表內數值的方法來計算屬性之間的表間影響力.相對的,作者再次利用了該屬性在 FREEBASE上的相關度.直觀來說,如果兩個屬性所代表的含義相同,那麼它們在 FREEBASE上的多個概念上的相關度分部也是類似的.基於這一思路,本文提出了概念向量(concept vector)用來描述一個屬性在不同概念上的相關度分部.以圖 7 為 例,左邊的 3 個概念向量分別對應著右邊 3 個屬性(表 1 的 Title、表 2 的 Movie、表 3 的 Title)的概念向量.接下來,可以通過計算概念向量之間的 Cosine 相似度,從而發現前兩個概念向量的相似度更高,因此可以認為表 1 的Title 屬性和表 2 的 Movie 屬性之間具有較強的表間影響力.

在這裡插入圖片描述
在計算出了每個屬性的表內影響力與表間影響力以後,可以通過對兩個影響力進行加權求和,計算出綜合影響力(integrated influence),綜合影響力將作為判斷是否選擇該屬性作為眾包任務提交的標準.在選擇眾包任務時,將優先選擇綜合影響力更大的屬性.

4.5 大資料整合系統

在上文中我們已經介紹了很多資料整合的演算法.然而在真正使用中,我們需要將這些方法融合到一個系統框架中,才能發揮其作用.因此,在本文中,我們選擇GOODS,一款 Google 開發的面向其企業內部資料的管理系統(圖 8).這篇文章主要介紹了在管理海量企業資料時所面臨的挑戰,以及 Google 所採取的解決方案.
在這裡插入圖片描述

文獻[22]主要介紹了當前的大資料企業在企業資料量增加、資料模式增多的環境下所面臨的資料整合以及資料分析的問題.目前,企業為了能夠快速發展,往往會不斷啟用新的資料庫、新的編譯平臺用於快速實現短期專案成果.然而,這一做法導致了企業中的很多資料存在於不同資料庫、不同資料平臺中.由於跨平臺的異構性導致企業很難將這些跨平臺資料統一應用起來.因此,該文提出一種標準化的資料管理系統,能夠將來自企業不同引擎的資料整合在一起.
8是一個數據應用場景.圖的最底層是 Bigtable,File System等不同資料來源.通過將來自不同資料來源的資料通過在中間進行整合以及統一建模,使得來自不同資料來源的資料能夠被標準化.將這些資料標準化以後,接下來就可以用於資料查詢、資料分析、繪製報表、視覺化等一系列應用場景中.其中,中間的資料集目錄(dataset catalog)是該系統的核心元件,該目錄中儲存了從底層不同引擎、不同資料集中所提取的各種元資料資訊,用於執行上層的資料檢索、分析、報表等功能.在組織元資料的過程中,主要需要解決以下六大挑戰.

  • 資料集規模.以 Google 資料為例,目前 Google 的 Catalog 索引數量已經超過了 260 億條資料.將這些資料的元資料全部收集並存儲下來是不可能做到的.因此需要提出一種新的方法,能夠在收集資料的同時,通過取樣的思路用部分元資料代表其他資料;
  • 資料多樣性.資料的多樣性主要體現在資料本身的格式多樣性以及儲存平臺多樣性上.格式多樣性包括資料可能以 txt,csv等形式存在,而平臺的多樣性則體現在資料可能存在檔案系統或者資料庫等儲存平臺中.如何將來自不同平臺的資料整合起來是一大挑戰;
  • 資料更新.企業所產生的這些資料並不是靜態的,每天都有新的資料生成與新的資料被刪除.如何控制這些資料的元資料資訊與實際資料之間的同步狀態是很重要的:如果同步效率太高,可能造成太高的代價;如果同步效率太低,則會導致資料可用性變差;
  • 資料集重要性.資料集重要性指這些資料集資訊的真實性、可用性以及同步性等特性對使用者使用的影響.有些資料集是十分重要的(類似於資料庫系統表),這些資料應當被及時更新;而有的資料則重要性
    較低,允許降低其可用性;
  • 資料不確定性.這裡主要指元資料的不確定性.在企業大資料環境下,不可避免地存在一些資料的元資料是難以解析的,如何處理這些不確定的元資料,是該資料管理平臺需要解決的問題;
  • 資料集語義資訊.有些資料集的語義資訊十分重要,通過提取資料集中的重要語義資訊,不僅可以更好地幫助使用者對資料集進行檢索與篩選,在管理資料時,也可以基於資料之間關聯關係對資料儲存策略進行優化.

資料整合方法在解決這些挑戰的過程中扮演著重要的角色,例如:針對資料的不確定性資訊,我們可以通過上文介紹的基於眾包或是基於資料縫合的方法來更加有效地識別資料集中的不確定性資料;針對資料集的語義資訊提取功能,可以使用對屬性價值進行判斷的方法,選擇那些具有較高影響力的屬性進行提取.在管理大規模資料時,可以通過資料整合功能,將具有相同或相似功能的資料來源整合起來統一管理,用少量的元資料資訊描述這一批資料,達到壓縮元資訊儲存的目的.在本文中,由於篇幅所限,作者並沒有詳細介紹解決這些挑戰所使用的具體方法細節,但是其提出的許多解決問題思路是與資料整合方法緊密相關的.由此可見:資料整合問題不僅可以應用於資料整合領域本身,也可以在大資料管理、資料分析等領域產生重要價值.

軟體學報 ISSN 1000-9825, CODEN RUXUEW

中文引用格式: 王淞,彭煜瑋,蘭海,羅倩雯,彭智勇.資料整合方法發展與展望.軟體學報,2020,31(3):893−908. http://www.jos. org.cn/1000-9825/5911.htm

英文引用格式: Wang S, Peng YW, Lan H, Luo QW, Peng ZY. Survey and prospect: Data integration methodologies. Ruan Jian Xue Bao/Journal of Software, 2020,31(3):893−908 (in Chinese). http://www.jos.org.cn/1000-9825/5911.htm