'數據整理——大數據治理的關鍵技術'

"

數據整理——大數據治理的關鍵技術

杜小勇1,2, 陳躍國1,2, 範舉1,2, 盧衛1,2

1. 中國人民大學信息學院,北京 100872;

2. 數據工程與知識工程教育部重點實驗室(中國人民大學),北京 100872

摘要數據是政府、企業和機構的重要資源。數據治理關注數據資源有效利用的眾多方面,如數據資產確權、數據管理、數據開放共享、數據隱私保護等。從數據管理的角度,探討了數據治理中的一項關鍵技術:數據整理。介紹了以數據擁有者和直接使用者(行業用戶)為核心的數據整理的關鍵技術,包括數據結構化處理、數據質量評估及數據清洗、數據規範化、數據融合與摘取、數據整理的發佈共享等。最後,針對加強數據整理方面的研究提出了一些思考。

關鍵詞數據整理 ; 數據準備 ; 數據治理 ; 數據管理

"

數據整理——大數據治理的關鍵技術

杜小勇1,2, 陳躍國1,2, 範舉1,2, 盧衛1,2

1. 中國人民大學信息學院,北京 100872;

2. 數據工程與知識工程教育部重點實驗室(中國人民大學),北京 100872

摘要數據是政府、企業和機構的重要資源。數據治理關注數據資源有效利用的眾多方面,如數據資產確權、數據管理、數據開放共享、數據隱私保護等。從數據管理的角度,探討了數據治理中的一項關鍵技術:數據整理。介紹了以數據擁有者和直接使用者(行業用戶)為核心的數據整理的關鍵技術,包括數據結構化處理、數據質量評估及數據清洗、數據規範化、數據融合與摘取、數據整理的發佈共享等。最後,針對加強數據整理方面的研究提出了一些思考。

關鍵詞數據整理 ; 數據準備 ; 數據治理 ; 數據管理

數據整理——大數據治理的關鍵技術

論文引用格式:

杜小勇, 陳躍國, 範舉, 等. 數據整理——大數據治理的關鍵技術[J]. 大數據, 2019, 5(3): 13-22.

DU X Y, CHEN Y G, FAN J, et al. Data wrangling:a key technique of data governance[J]. Big Data Research, 2019, 5(3): 13-22.

1 引言

大數據作為一種資源,在政府、大型企業和機構中發揮著越來越重要的作用。隨著大數據應用的不斷推進,與數據資源的價值提煉、保值和增值密切相關的大數據治理越來越引起人們的重視。大數據治理是一項複雜的工程,它需要在國家、行業、企業等多個層面上開展體系化的建設,技術上包含數據資產確權、數據管理、數據開放共享、數據隱私保護等諸多方面。這些技術面臨的挑戰多、難度大,很多方面還沒有形成被廣泛認可的系統化的解決方案。本文從數據管理這一關鍵環節出發,探討其中的關鍵支撐技術:數據整理(data wrangling)。

數據整理也叫數據準備,是在挖掘提煉數據價值的過程中進行的前期的數據預處理工作。它看似不足輕重,實則非常重要。有調查研究表明,很多大數據分析任務80%以上的工作花費在數據整理上,這給數據分析帶來了巨大的人力成本。很多分析設想因為承擔不起前期的數據整理工作而最終被放棄。更重要的是,由於缺少系統性和理論性的支撐,數據整理的質量千差萬別,這給數據分析的結果帶來了很大的不確定性,大大影響了大數據價值的挖掘與提煉。因此,人們很有必要重視數據整理的研究工作,它是整個數據治理環節中一項重要的基礎性工作,但是這項工作在學術界和企業界並沒有得到應有的重視。

2 數據整理概述

在數據倉庫時代,數據預處理主要指的是抽取、轉換和加載(ETL)過程。筆者探討的數據整理和ETL過程有相似的地方,兩者都將多源異構的數據集通過一系列處理和轉換,變成想要的輸出形式。但二者之間是存在較大差別的,具體如下。

● 針對的用戶不同。ETL服務於專業的數據工程師,而數據整理服務於企業內部所有的數據使用者,以對數據處理技術不熟悉的業務用戶為主。這些用戶雖然缺少數據管理與數據處理知識,但對業務非常熟悉,對數據背後的語義更清楚。他們是企業機構大數據價值發現的主力。如何針對這類業務型數據分析人員的需求和特點,提供高效的數據整理工具,是數據整理技術面臨的一大挑戰。

● 數據處理的目的不同。數據倉庫中的ETL是為了建立數據倉庫採用的相對固定的數據處理流水線。數據處理過程一旦建立,整個過程比較靜態,很少再變化。數據整理是針對企業業務系統中的問題,動態構建的數據處理過程。它針對具體問題進行數據預處理,針對不同問題採用不同的數據整理過程,一些任務之間可以共享某些數據整理過程。

● 數據處理的對象不同。ETL處理的數據對象多為業務系統數據庫中的結構化數據源,這些數據源有很規範的元數據。數據整理則面臨更復雜、更多樣化的數據源,直接應對大數據多樣性(variety)的挑戰。這種多源異構性在很多大數據應用中非常常見。數據整理技術通常需要幫助用戶將其擁有的數據與外部的一些數據源進行關聯和數據融合。融合過程中存在的大量數據質量問題(如數據項缺失、不一致、重複、錯位、異常值等)給數據整理帶來了巨大挑戰。與ETL技術相比,這種變化是一種質的變化。

數據整理是為了使數據更好地服務於數據分析而對數據進行的審查和轉換的過程,它是整個數據分析流程中最佔用精力的過程。從技術上講,數據整理包含前期數據解析與結構化處理、數據質量評估與數據清洗、數據集成和提純等過程。由於問題的複雜性,數據整理過程通常不是完全自動化的,而是需要用戶介入的反覆迭代和交互的過程。數據可視化、用戶反饋與交互在整個過程中都發揮了重要作用。數據整理是由數據可視化領域的Jeffery Heer教授(華盛頓大學)和數據庫領域的Joseph M.Hellerstein教授(加州大學伯克利分校)等人較早提出來並持續開展系列研究的。他們還將研究成果進行了產業化,成功創立了以數據整理為主業的Trifacta公司。本文主要在上述兩位教授及其合作者發表的一些成果的基礎上,對數據整理包含的一些核心要素進一步地闡述,以期引起人們對數據整理研究和應用的重視。

3 數據整理的核心技術

3.1 數據的結構化處理

很多數據模型和算法是構建在結構化數據基礎上的,多源異構數據要更好地與其他數據集融合,結構化處理是必不可少的過程。數據結構化處理首先要對原始數據進行解析,提取出需要的信息,再進一步將其轉換成結構化數據。很多非結構化數據、Web數據是以文本形式存在的,需要使用信息抽取技術識別文本中的實體、屬性、關係等信息。也有很多數據採用的是結構化強一些的數據模型,如JSO格式,這類數據相對關係型數據更靈活,在結構化轉換過程中也需要一些技術上的處理。結構化處理的主要輸出形式是二維表或者圖數據,它需要用戶確定數據在轉換過程中採用的規則。

3.2 數據質量評估與數據清洗

結構化處理主要是數據表達形式上的轉換,數據結構化之後並不意味著能夠直接使用。處理後的數據還要進行質量評估,如果發現數據中存在問題,則採取進一步的數據清洗措施。這個過程稱作數據質量評估。一些簡單的數據質量問題可以利用自動化的算法發現,因為數據質量問題的多樣性和不可預測性,數據可視化技術成為數據質量評估的關鍵技術。藉助可視化技術,對數據語義非常瞭解的業務人員更容易發現數據存在的質量問題(如缺失、不一致、異常等)。伴隨著數據質量問題的發現,用戶可以定義一些數據清洗規則,批量化地處理數據中存在的質量問題,提高數據清洗的效率。在數據庫研究領域,也有人藉助眾包的思路提升數據清洗的效率。這種做法也是基於用戶在數據清洗過程中發揮的重要作用進行的。在數據清洗過程中,需要多輪次的人機交互,系統的交互界面和交互方式對於數據清洗算法的有效性尤為重要。

3.3 數據規範化

數據清洗還有一項重要的內容是數據規範化,這也是數據準備中常見的問題。規範化有簡單的底層數據層面的,如數據類型轉換、單位變換、格式表換等,也有較為複雜的數據項規範化處理,如電話號碼、郵編、地址等。這類問題的主要成因是自然語言表達上的差異性會造成同一實體存在多種表達形式。比較典型的例子是地址,人們需要對其進行規範化處理,以提升數據的質量。地址的規範化面臨的一個比較大的挑戰就是粒度的選取,同一個地址可以用不同粒度進行表達。數據的規範化處理需要根據應用的需求特點,確定數據粒度和表達方式。地址規範化處理背後的問題是實體鏈指問題,即把同一實體的不同表達形式(不同名字)映射到同一個實體名字上,消除實體表達的語義鴻溝,進而通過關聯在數據集中不同地方出現的相同語義的實體,達到數據融合的目的。

此外,缺失值填充也是數據規範化處理過程中常見的問題。一種處理方式是利用缺失數據的上下文數據,採用數據插值的辦法修復缺失數據;另一種處理方式是採用平均值或者缺省值的辦法填充缺失數據,有時候也用這種辦法替換系統發現的異常值。

3.4 數據融合與摘取

很多數據價值的發現源自於多源異構數據之間的關聯和在關聯數據基礎之上進行的數據分析。將多個數據集(很可能來自於多個數據源)融合到一起,可使數據內容更豐富,更容易獲得新的發現。然而,多源數據融合所需的數據整理過程面臨的挑戰是很大的。多源頭的數據缺少統一的設計,這導致數據集成和數據融合的難度加大。傳統的基於模式的數據集成方法很難發揮出大的作用,解決這一難題更多地要從數據項的層面關聯數據。因此,實體鏈指操作在數據融合過程中就顯得尤為重要。數據在實體層面的鏈指可以豐富實體的語義,建立跨數據項之間的關聯。由於實體表達的模糊性,實體上下文信息對實體鏈指精度的影響非常大,有效利用實體上下文信息(如文本中的語境、表結構中同行屬性值等)是實體鏈指的關鍵。

數據融合是數據集整合的過程,有些分析任務未必需要全部整合後的數據,可能僅需要一部分數據支撐分析任務。在這種情況下,需要從數據集中提取部分數據(如一些樣本或者數據片段),降低數據量,供數據分析模型實現分析操作。這一過程稱作數據摘取,它需要根據任務的特點摘取相關數據。

3.5 發佈共享

企業中複雜的數據分析任務經常需要被共享,某些數據整理操作也會被重複使用,這意味著數據整理的操作也是企業機構的一種資源。企業需要將這些操作以腳本的形式物化出來,使其能夠被檢索、分享和重複利用。經過數據整理過程的數據,其世襲關係需要被記錄下來,以確保用戶能夠追溯數據的來源,也便於利用索引技術檢索需要的數據整理操作。企業內部對數據整理的共享對於企業內部知識管理、協同工作而言有很重要的意義。

4 以技術帶動數據治理能力

通過以上分析可以看出,數據整理以提升數據分析的效率和質量為目的,在整個大數據分析流程中佔有重要的地位。近些年來,儘管學術界在數據質量管理方面做了大量的研究性工作,但在實際應用中,很多數據整理的需求並沒有得到很好的滿足,還缺少數據整理方面的工具,尤其是系統化的數據整理工具。對於工業界而言,數據整理工作更多地被看作數據分析人員應完成的工作,人們並沒有從工具和系統的角度開發設計高效率的數據準備工具,這使得數據分析人員在執行數據整理任務時,執行了大量重複性的工作。因此,加強數據整理的研究和應用工作是很有必要的。

4.1 數據的結構化與規範化

信息抽取是指從非結構化的文本中識別實體,並發現實體的屬性、實體之間的關係,在互聯網信息抽取、知識庫構建等領域發揮著重要的作用。命名實體識別的目的是發現文檔中的各種實體,如人物、地理位置、組織、日期、時間等。命名實體識別技術分為以下3類。

● 基於正則表達式的命名實體識別:把預先定義的正則表達式和文本進行匹配,把符合正則表達式的文本模式都定位出來。基於正則表達式的命名實體識別一般用於識別日期、時間、金額、電子郵件等規則的文本。

● 基於字典的命名實體識別:把文本和字典裡的<短語,類別>對進行匹配,對匹配的短語進行實體標註,一般用於識別人名、地名。

● 基於機器學習模型的命名實體識別:預先對一部分文檔進行實體標註,產生一系列的<短語,類別>對,利用這些文檔進行機器學習模型的訓練,然後用這個模型對沒有遇到過的文檔進行命名實體識別和標註。

指代消解是自然語言處理中和命名實體識別關聯的一個重要問題。比如在對某位專家學者進行的一個訪談中,除了第一次提到其姓名、職務之外,之後提到這位專家,文本中可能使用“某博士”“某教授”“他”等代稱,或者以其擔任的職務相稱,如“所長”等。如果訪談中還提及其他人物,並且也使用了類似的代稱,那麼把這些代稱對應到正確的命名實體上就是指代消解。在自然語言處理中,經常遇到的一個問題是命名實體的歧義,比如重名問題。為了讓計算機正確地分析自然語言書寫的文本,命名實體的歧義需要被消除,也就是把具有歧義的命名實體唯一地標識出來。

關係抽取是信息抽取的一個重要的子任務,負責從文本中識別出實體之間的語義關係。它分為3類方法:有監督的學習方法,該方法包括基於特徵向量的學習方法和基於核函數的學習方法;半監督的學習方法,該方法無需人工標註語料庫,但是需要根據預定義好的關係類型人工構造出關係實例,將這個關係實例作為種子集合,然後利用Web或者大規模語料庫信息的高度冗餘性,充分挖掘關係描述模式,通過模式匹配,抽取新的實體關係實例;無監督的學習方法,該方法是一種自底向上的信息抽取策略,它假設擁有相同語義關係的實體對的上下文信息較為相似,其上下文集合代表該實體對的語義關係。較新的技術是使用向量(embedding,基於詞或者實體)的方式將結構化和非結構化數據中提及的實體關聯起來,利用向量間的相似性,實現以向量為中介的異構數據的結構化處理和關聯。

4.2 數據集成

數據集成是伴隨企業信息化建設的不斷深入而形成的。例如,因業務的需要,企事業單位內部普遍構建了多個異構的信息系統(這些信息系統可以自主選擇合適的操作系統,有獨立的數據庫和應用界面,完全是一個自治的系統),並積累了圖片、Word、PDF、Excel、網頁等大量非結構化文件。由於開發部門和開發時間的不同,這些信息系統中管理的數據源彼此獨立、相互封閉,形成了“信息孤島”,數據難以在系統之間形成快速有效的共享。數據管理與數據分析需要打破這些“信息孤島”,實現不同“孤島”信息系統的互聯互通,進而施行精準的決策分析。例如,在電子政務領域中,很多地方的政府機關有多少個委、辦、局,就有多少個信息系統,每個信息系統都由獨立的信息中心進行維護。政府機關之間需要實現信息互聯互通、資源共享,最終實現政務服務的協同操作,從而使社會大眾真正享受到一站式辦公服務(例如杭州市政府工作報告中的“最多跑一次”改革)。事實上,許多互聯網應用(包括機票、酒店、餐飲、租房、商品比價等服務)也是把來自不同數據源中的數據進行有效集成後,對外提供統一的訪問服務的。

數據集成把一組自治、異構數據源中的數據進行邏輯或物理上的集中,並對外提供統一的訪問接口,從而實現全面的數據共享。數據集成的核心任務是將互相關聯的異構數據源集成到一起,使用戶能夠以透明的方式訪問這些數據源。集成是指維護數據源整體上的數據一致性,提高信息共享利用的效率;透明的方式是指用戶無需關心如何實現對異構數據源數據的訪問,只關心以何種方式訪問何種數據即可。數據集成涉及的數據源通常是異構的,數據源可以是各類數據庫,也可以是網頁中包含的結構化信息(例如表格)、非結構化信息(網頁內容),還可以是文件(例如結構化CSV文件、半結構化的XML文件、非結構化的文本文件)等。數據集成中涉及的數據源具有自治性,這些數據源可以在不通知集成系統的前提下改變自身的結構和數據。

數據源的異構性和自治性是數據集成系統面臨的兩個主要挑戰。針對這兩個挑戰,數據集成通常採用如下兩種解決方案。

(1)數據倉庫

人們把一組自治數據源中的數據加載並存儲到一個物理數據庫(稱為數據倉庫)中,然後在數據倉庫上對集成後的數據進行後續的操作和分析。圖1顯示了基於數據倉庫的數據集成系統架構。數據倉庫技術涉及的技術包括ETL、元數據管理和數據倉庫本身涉及的技術。ETL定期地從各個數據源中抽取(extract)、轉換(transform)、加載(load)數據到數據倉庫中。元數據管理涉及對數據源的描述、對數據倉庫中數據的描述、數據倉庫中數據與數據源中數據之間的語義映射。例如,針對關係數據庫類型的數據源,語義映射維護數據源中的某個屬性對應於數據倉庫的某個屬性,並指定如何把屬性分配到不同的表中。此外,語義映射還要解決不同數據源間數據描述的不統一、語義衝突、數據的冗餘等問題。

"

數據整理——大數據治理的關鍵技術

杜小勇1,2, 陳躍國1,2, 範舉1,2, 盧衛1,2

1. 中國人民大學信息學院,北京 100872;

2. 數據工程與知識工程教育部重點實驗室(中國人民大學),北京 100872

摘要數據是政府、企業和機構的重要資源。數據治理關注數據資源有效利用的眾多方面,如數據資產確權、數據管理、數據開放共享、數據隱私保護等。從數據管理的角度,探討了數據治理中的一項關鍵技術:數據整理。介紹了以數據擁有者和直接使用者(行業用戶)為核心的數據整理的關鍵技術,包括數據結構化處理、數據質量評估及數據清洗、數據規範化、數據融合與摘取、數據整理的發佈共享等。最後,針對加強數據整理方面的研究提出了一些思考。

關鍵詞數據整理 ; 數據準備 ; 數據治理 ; 數據管理

數據整理——大數據治理的關鍵技術

論文引用格式:

杜小勇, 陳躍國, 範舉, 等. 數據整理——大數據治理的關鍵技術[J]. 大數據, 2019, 5(3): 13-22.

DU X Y, CHEN Y G, FAN J, et al. Data wrangling:a key technique of data governance[J]. Big Data Research, 2019, 5(3): 13-22.

1 引言

大數據作為一種資源,在政府、大型企業和機構中發揮著越來越重要的作用。隨著大數據應用的不斷推進,與數據資源的價值提煉、保值和增值密切相關的大數據治理越來越引起人們的重視。大數據治理是一項複雜的工程,它需要在國家、行業、企業等多個層面上開展體系化的建設,技術上包含數據資產確權、數據管理、數據開放共享、數據隱私保護等諸多方面。這些技術面臨的挑戰多、難度大,很多方面還沒有形成被廣泛認可的系統化的解決方案。本文從數據管理這一關鍵環節出發,探討其中的關鍵支撐技術:數據整理(data wrangling)。

數據整理也叫數據準備,是在挖掘提煉數據價值的過程中進行的前期的數據預處理工作。它看似不足輕重,實則非常重要。有調查研究表明,很多大數據分析任務80%以上的工作花費在數據整理上,這給數據分析帶來了巨大的人力成本。很多分析設想因為承擔不起前期的數據整理工作而最終被放棄。更重要的是,由於缺少系統性和理論性的支撐,數據整理的質量千差萬別,這給數據分析的結果帶來了很大的不確定性,大大影響了大數據價值的挖掘與提煉。因此,人們很有必要重視數據整理的研究工作,它是整個數據治理環節中一項重要的基礎性工作,但是這項工作在學術界和企業界並沒有得到應有的重視。

2 數據整理概述

在數據倉庫時代,數據預處理主要指的是抽取、轉換和加載(ETL)過程。筆者探討的數據整理和ETL過程有相似的地方,兩者都將多源異構的數據集通過一系列處理和轉換,變成想要的輸出形式。但二者之間是存在較大差別的,具體如下。

● 針對的用戶不同。ETL服務於專業的數據工程師,而數據整理服務於企業內部所有的數據使用者,以對數據處理技術不熟悉的業務用戶為主。這些用戶雖然缺少數據管理與數據處理知識,但對業務非常熟悉,對數據背後的語義更清楚。他們是企業機構大數據價值發現的主力。如何針對這類業務型數據分析人員的需求和特點,提供高效的數據整理工具,是數據整理技術面臨的一大挑戰。

● 數據處理的目的不同。數據倉庫中的ETL是為了建立數據倉庫採用的相對固定的數據處理流水線。數據處理過程一旦建立,整個過程比較靜態,很少再變化。數據整理是針對企業業務系統中的問題,動態構建的數據處理過程。它針對具體問題進行數據預處理,針對不同問題採用不同的數據整理過程,一些任務之間可以共享某些數據整理過程。

● 數據處理的對象不同。ETL處理的數據對象多為業務系統數據庫中的結構化數據源,這些數據源有很規範的元數據。數據整理則面臨更復雜、更多樣化的數據源,直接應對大數據多樣性(variety)的挑戰。這種多源異構性在很多大數據應用中非常常見。數據整理技術通常需要幫助用戶將其擁有的數據與外部的一些數據源進行關聯和數據融合。融合過程中存在的大量數據質量問題(如數據項缺失、不一致、重複、錯位、異常值等)給數據整理帶來了巨大挑戰。與ETL技術相比,這種變化是一種質的變化。

數據整理是為了使數據更好地服務於數據分析而對數據進行的審查和轉換的過程,它是整個數據分析流程中最佔用精力的過程。從技術上講,數據整理包含前期數據解析與結構化處理、數據質量評估與數據清洗、數據集成和提純等過程。由於問題的複雜性,數據整理過程通常不是完全自動化的,而是需要用戶介入的反覆迭代和交互的過程。數據可視化、用戶反饋與交互在整個過程中都發揮了重要作用。數據整理是由數據可視化領域的Jeffery Heer教授(華盛頓大學)和數據庫領域的Joseph M.Hellerstein教授(加州大學伯克利分校)等人較早提出來並持續開展系列研究的。他們還將研究成果進行了產業化,成功創立了以數據整理為主業的Trifacta公司。本文主要在上述兩位教授及其合作者發表的一些成果的基礎上,對數據整理包含的一些核心要素進一步地闡述,以期引起人們對數據整理研究和應用的重視。

3 數據整理的核心技術

3.1 數據的結構化處理

很多數據模型和算法是構建在結構化數據基礎上的,多源異構數據要更好地與其他數據集融合,結構化處理是必不可少的過程。數據結構化處理首先要對原始數據進行解析,提取出需要的信息,再進一步將其轉換成結構化數據。很多非結構化數據、Web數據是以文本形式存在的,需要使用信息抽取技術識別文本中的實體、屬性、關係等信息。也有很多數據採用的是結構化強一些的數據模型,如JSO格式,這類數據相對關係型數據更靈活,在結構化轉換過程中也需要一些技術上的處理。結構化處理的主要輸出形式是二維表或者圖數據,它需要用戶確定數據在轉換過程中採用的規則。

3.2 數據質量評估與數據清洗

結構化處理主要是數據表達形式上的轉換,數據結構化之後並不意味著能夠直接使用。處理後的數據還要進行質量評估,如果發現數據中存在問題,則採取進一步的數據清洗措施。這個過程稱作數據質量評估。一些簡單的數據質量問題可以利用自動化的算法發現,因為數據質量問題的多樣性和不可預測性,數據可視化技術成為數據質量評估的關鍵技術。藉助可視化技術,對數據語義非常瞭解的業務人員更容易發現數據存在的質量問題(如缺失、不一致、異常等)。伴隨著數據質量問題的發現,用戶可以定義一些數據清洗規則,批量化地處理數據中存在的質量問題,提高數據清洗的效率。在數據庫研究領域,也有人藉助眾包的思路提升數據清洗的效率。這種做法也是基於用戶在數據清洗過程中發揮的重要作用進行的。在數據清洗過程中,需要多輪次的人機交互,系統的交互界面和交互方式對於數據清洗算法的有效性尤為重要。

3.3 數據規範化

數據清洗還有一項重要的內容是數據規範化,這也是數據準備中常見的問題。規範化有簡單的底層數據層面的,如數據類型轉換、單位變換、格式表換等,也有較為複雜的數據項規範化處理,如電話號碼、郵編、地址等。這類問題的主要成因是自然語言表達上的差異性會造成同一實體存在多種表達形式。比較典型的例子是地址,人們需要對其進行規範化處理,以提升數據的質量。地址的規範化面臨的一個比較大的挑戰就是粒度的選取,同一個地址可以用不同粒度進行表達。數據的規範化處理需要根據應用的需求特點,確定數據粒度和表達方式。地址規範化處理背後的問題是實體鏈指問題,即把同一實體的不同表達形式(不同名字)映射到同一個實體名字上,消除實體表達的語義鴻溝,進而通過關聯在數據集中不同地方出現的相同語義的實體,達到數據融合的目的。

此外,缺失值填充也是數據規範化處理過程中常見的問題。一種處理方式是利用缺失數據的上下文數據,採用數據插值的辦法修復缺失數據;另一種處理方式是採用平均值或者缺省值的辦法填充缺失數據,有時候也用這種辦法替換系統發現的異常值。

3.4 數據融合與摘取

很多數據價值的發現源自於多源異構數據之間的關聯和在關聯數據基礎之上進行的數據分析。將多個數據集(很可能來自於多個數據源)融合到一起,可使數據內容更豐富,更容易獲得新的發現。然而,多源數據融合所需的數據整理過程面臨的挑戰是很大的。多源頭的數據缺少統一的設計,這導致數據集成和數據融合的難度加大。傳統的基於模式的數據集成方法很難發揮出大的作用,解決這一難題更多地要從數據項的層面關聯數據。因此,實體鏈指操作在數據融合過程中就顯得尤為重要。數據在實體層面的鏈指可以豐富實體的語義,建立跨數據項之間的關聯。由於實體表達的模糊性,實體上下文信息對實體鏈指精度的影響非常大,有效利用實體上下文信息(如文本中的語境、表結構中同行屬性值等)是實體鏈指的關鍵。

數據融合是數據集整合的過程,有些分析任務未必需要全部整合後的數據,可能僅需要一部分數據支撐分析任務。在這種情況下,需要從數據集中提取部分數據(如一些樣本或者數據片段),降低數據量,供數據分析模型實現分析操作。這一過程稱作數據摘取,它需要根據任務的特點摘取相關數據。

3.5 發佈共享

企業中複雜的數據分析任務經常需要被共享,某些數據整理操作也會被重複使用,這意味著數據整理的操作也是企業機構的一種資源。企業需要將這些操作以腳本的形式物化出來,使其能夠被檢索、分享和重複利用。經過數據整理過程的數據,其世襲關係需要被記錄下來,以確保用戶能夠追溯數據的來源,也便於利用索引技術檢索需要的數據整理操作。企業內部對數據整理的共享對於企業內部知識管理、協同工作而言有很重要的意義。

4 以技術帶動數據治理能力

通過以上分析可以看出,數據整理以提升數據分析的效率和質量為目的,在整個大數據分析流程中佔有重要的地位。近些年來,儘管學術界在數據質量管理方面做了大量的研究性工作,但在實際應用中,很多數據整理的需求並沒有得到很好的滿足,還缺少數據整理方面的工具,尤其是系統化的數據整理工具。對於工業界而言,數據整理工作更多地被看作數據分析人員應完成的工作,人們並沒有從工具和系統的角度開發設計高效率的數據準備工具,這使得數據分析人員在執行數據整理任務時,執行了大量重複性的工作。因此,加強數據整理的研究和應用工作是很有必要的。

4.1 數據的結構化與規範化

信息抽取是指從非結構化的文本中識別實體,並發現實體的屬性、實體之間的關係,在互聯網信息抽取、知識庫構建等領域發揮著重要的作用。命名實體識別的目的是發現文檔中的各種實體,如人物、地理位置、組織、日期、時間等。命名實體識別技術分為以下3類。

● 基於正則表達式的命名實體識別:把預先定義的正則表達式和文本進行匹配,把符合正則表達式的文本模式都定位出來。基於正則表達式的命名實體識別一般用於識別日期、時間、金額、電子郵件等規則的文本。

● 基於字典的命名實體識別:把文本和字典裡的<短語,類別>對進行匹配,對匹配的短語進行實體標註,一般用於識別人名、地名。

● 基於機器學習模型的命名實體識別:預先對一部分文檔進行實體標註,產生一系列的<短語,類別>對,利用這些文檔進行機器學習模型的訓練,然後用這個模型對沒有遇到過的文檔進行命名實體識別和標註。

指代消解是自然語言處理中和命名實體識別關聯的一個重要問題。比如在對某位專家學者進行的一個訪談中,除了第一次提到其姓名、職務之外,之後提到這位專家,文本中可能使用“某博士”“某教授”“他”等代稱,或者以其擔任的職務相稱,如“所長”等。如果訪談中還提及其他人物,並且也使用了類似的代稱,那麼把這些代稱對應到正確的命名實體上就是指代消解。在自然語言處理中,經常遇到的一個問題是命名實體的歧義,比如重名問題。為了讓計算機正確地分析自然語言書寫的文本,命名實體的歧義需要被消除,也就是把具有歧義的命名實體唯一地標識出來。

關係抽取是信息抽取的一個重要的子任務,負責從文本中識別出實體之間的語義關係。它分為3類方法:有監督的學習方法,該方法包括基於特徵向量的學習方法和基於核函數的學習方法;半監督的學習方法,該方法無需人工標註語料庫,但是需要根據預定義好的關係類型人工構造出關係實例,將這個關係實例作為種子集合,然後利用Web或者大規模語料庫信息的高度冗餘性,充分挖掘關係描述模式,通過模式匹配,抽取新的實體關係實例;無監督的學習方法,該方法是一種自底向上的信息抽取策略,它假設擁有相同語義關係的實體對的上下文信息較為相似,其上下文集合代表該實體對的語義關係。較新的技術是使用向量(embedding,基於詞或者實體)的方式將結構化和非結構化數據中提及的實體關聯起來,利用向量間的相似性,實現以向量為中介的異構數據的結構化處理和關聯。

4.2 數據集成

數據集成是伴隨企業信息化建設的不斷深入而形成的。例如,因業務的需要,企事業單位內部普遍構建了多個異構的信息系統(這些信息系統可以自主選擇合適的操作系統,有獨立的數據庫和應用界面,完全是一個自治的系統),並積累了圖片、Word、PDF、Excel、網頁等大量非結構化文件。由於開發部門和開發時間的不同,這些信息系統中管理的數據源彼此獨立、相互封閉,形成了“信息孤島”,數據難以在系統之間形成快速有效的共享。數據管理與數據分析需要打破這些“信息孤島”,實現不同“孤島”信息系統的互聯互通,進而施行精準的決策分析。例如,在電子政務領域中,很多地方的政府機關有多少個委、辦、局,就有多少個信息系統,每個信息系統都由獨立的信息中心進行維護。政府機關之間需要實現信息互聯互通、資源共享,最終實現政務服務的協同操作,從而使社會大眾真正享受到一站式辦公服務(例如杭州市政府工作報告中的“最多跑一次”改革)。事實上,許多互聯網應用(包括機票、酒店、餐飲、租房、商品比價等服務)也是把來自不同數據源中的數據進行有效集成後,對外提供統一的訪問服務的。

數據集成把一組自治、異構數據源中的數據進行邏輯或物理上的集中,並對外提供統一的訪問接口,從而實現全面的數據共享。數據集成的核心任務是將互相關聯的異構數據源集成到一起,使用戶能夠以透明的方式訪問這些數據源。集成是指維護數據源整體上的數據一致性,提高信息共享利用的效率;透明的方式是指用戶無需關心如何實現對異構數據源數據的訪問,只關心以何種方式訪問何種數據即可。數據集成涉及的數據源通常是異構的,數據源可以是各類數據庫,也可以是網頁中包含的結構化信息(例如表格)、非結構化信息(網頁內容),還可以是文件(例如結構化CSV文件、半結構化的XML文件、非結構化的文本文件)等。數據集成中涉及的數據源具有自治性,這些數據源可以在不通知集成系統的前提下改變自身的結構和數據。

數據源的異構性和自治性是數據集成系統面臨的兩個主要挑戰。針對這兩個挑戰,數據集成通常採用如下兩種解決方案。

(1)數據倉庫

人們把一組自治數據源中的數據加載並存儲到一個物理數據庫(稱為數據倉庫)中,然後在數據倉庫上對集成後的數據進行後續的操作和分析。圖1顯示了基於數據倉庫的數據集成系統架構。數據倉庫技術涉及的技術包括ETL、元數據管理和數據倉庫本身涉及的技術。ETL定期地從各個數據源中抽取(extract)、轉換(transform)、加載(load)數據到數據倉庫中。元數據管理涉及對數據源的描述、對數據倉庫中數據的描述、數據倉庫中數據與數據源中數據之間的語義映射。例如,針對關係數據庫類型的數據源,語義映射維護數據源中的某個屬性對應於數據倉庫的某個屬性,並指定如何把屬性分配到不同的表中。此外,語義映射還要解決不同數據源間數據描述的不統一、語義衝突、數據的冗餘等問題。

數據整理——大數據治理的關鍵技術

圖1 基於數據倉庫的數據集成系統架構

(2)虛擬集成系統

在虛擬集成系統中,數據保存在原來的數據源中,只在查詢時才需要訪問。圖2顯示了一個典型的虛擬集成系統的架構,該類集成系統使用中間模式建立全局數據的邏輯視圖,中間模式向下協調各數據源系統,向上為訪問集成數據的應用提供統一數據模式和數據訪問的通用接口。各數據源獨立性強,虛擬集成系統則主要為異構數據源提供高層次的數據訪問服務。元數據維護數據源的基本信息以及中間模式到數據源之間的語義映射等。虛擬集成系統接收到用戶的查詢請求後,根據元數據信息進行查詢的重寫,把對中間模式的查詢轉化為對數據源的查詢。類似於數據庫的查詢處理,虛擬集成系統也會進行查詢的優化,包括訪問數據源的順序、不同數據源之間的操作訪問(例如兩個數據源之間數據的連接算法)等。每個數據源都連有一個封裝器,負責把上層用戶的查詢轉發到數據源,並把數據源返回的結果轉發給上層的應用。虛擬集成系統的關鍵問題是如何構造邏輯視圖,並使得不同數據源的數據模式映射到這個中間模式上。

"

數據整理——大數據治理的關鍵技術

杜小勇1,2, 陳躍國1,2, 範舉1,2, 盧衛1,2

1. 中國人民大學信息學院,北京 100872;

2. 數據工程與知識工程教育部重點實驗室(中國人民大學),北京 100872

摘要數據是政府、企業和機構的重要資源。數據治理關注數據資源有效利用的眾多方面,如數據資產確權、數據管理、數據開放共享、數據隱私保護等。從數據管理的角度,探討了數據治理中的一項關鍵技術:數據整理。介紹了以數據擁有者和直接使用者(行業用戶)為核心的數據整理的關鍵技術,包括數據結構化處理、數據質量評估及數據清洗、數據規範化、數據融合與摘取、數據整理的發佈共享等。最後,針對加強數據整理方面的研究提出了一些思考。

關鍵詞數據整理 ; 數據準備 ; 數據治理 ; 數據管理

數據整理——大數據治理的關鍵技術

論文引用格式:

杜小勇, 陳躍國, 範舉, 等. 數據整理——大數據治理的關鍵技術[J]. 大數據, 2019, 5(3): 13-22.

DU X Y, CHEN Y G, FAN J, et al. Data wrangling:a key technique of data governance[J]. Big Data Research, 2019, 5(3): 13-22.

1 引言

大數據作為一種資源,在政府、大型企業和機構中發揮著越來越重要的作用。隨著大數據應用的不斷推進,與數據資源的價值提煉、保值和增值密切相關的大數據治理越來越引起人們的重視。大數據治理是一項複雜的工程,它需要在國家、行業、企業等多個層面上開展體系化的建設,技術上包含數據資產確權、數據管理、數據開放共享、數據隱私保護等諸多方面。這些技術面臨的挑戰多、難度大,很多方面還沒有形成被廣泛認可的系統化的解決方案。本文從數據管理這一關鍵環節出發,探討其中的關鍵支撐技術:數據整理(data wrangling)。

數據整理也叫數據準備,是在挖掘提煉數據價值的過程中進行的前期的數據預處理工作。它看似不足輕重,實則非常重要。有調查研究表明,很多大數據分析任務80%以上的工作花費在數據整理上,這給數據分析帶來了巨大的人力成本。很多分析設想因為承擔不起前期的數據整理工作而最終被放棄。更重要的是,由於缺少系統性和理論性的支撐,數據整理的質量千差萬別,這給數據分析的結果帶來了很大的不確定性,大大影響了大數據價值的挖掘與提煉。因此,人們很有必要重視數據整理的研究工作,它是整個數據治理環節中一項重要的基礎性工作,但是這項工作在學術界和企業界並沒有得到應有的重視。

2 數據整理概述

在數據倉庫時代,數據預處理主要指的是抽取、轉換和加載(ETL)過程。筆者探討的數據整理和ETL過程有相似的地方,兩者都將多源異構的數據集通過一系列處理和轉換,變成想要的輸出形式。但二者之間是存在較大差別的,具體如下。

● 針對的用戶不同。ETL服務於專業的數據工程師,而數據整理服務於企業內部所有的數據使用者,以對數據處理技術不熟悉的業務用戶為主。這些用戶雖然缺少數據管理與數據處理知識,但對業務非常熟悉,對數據背後的語義更清楚。他們是企業機構大數據價值發現的主力。如何針對這類業務型數據分析人員的需求和特點,提供高效的數據整理工具,是數據整理技術面臨的一大挑戰。

● 數據處理的目的不同。數據倉庫中的ETL是為了建立數據倉庫採用的相對固定的數據處理流水線。數據處理過程一旦建立,整個過程比較靜態,很少再變化。數據整理是針對企業業務系統中的問題,動態構建的數據處理過程。它針對具體問題進行數據預處理,針對不同問題採用不同的數據整理過程,一些任務之間可以共享某些數據整理過程。

● 數據處理的對象不同。ETL處理的數據對象多為業務系統數據庫中的結構化數據源,這些數據源有很規範的元數據。數據整理則面臨更復雜、更多樣化的數據源,直接應對大數據多樣性(variety)的挑戰。這種多源異構性在很多大數據應用中非常常見。數據整理技術通常需要幫助用戶將其擁有的數據與外部的一些數據源進行關聯和數據融合。融合過程中存在的大量數據質量問題(如數據項缺失、不一致、重複、錯位、異常值等)給數據整理帶來了巨大挑戰。與ETL技術相比,這種變化是一種質的變化。

數據整理是為了使數據更好地服務於數據分析而對數據進行的審查和轉換的過程,它是整個數據分析流程中最佔用精力的過程。從技術上講,數據整理包含前期數據解析與結構化處理、數據質量評估與數據清洗、數據集成和提純等過程。由於問題的複雜性,數據整理過程通常不是完全自動化的,而是需要用戶介入的反覆迭代和交互的過程。數據可視化、用戶反饋與交互在整個過程中都發揮了重要作用。數據整理是由數據可視化領域的Jeffery Heer教授(華盛頓大學)和數據庫領域的Joseph M.Hellerstein教授(加州大學伯克利分校)等人較早提出來並持續開展系列研究的。他們還將研究成果進行了產業化,成功創立了以數據整理為主業的Trifacta公司。本文主要在上述兩位教授及其合作者發表的一些成果的基礎上,對數據整理包含的一些核心要素進一步地闡述,以期引起人們對數據整理研究和應用的重視。

3 數據整理的核心技術

3.1 數據的結構化處理

很多數據模型和算法是構建在結構化數據基礎上的,多源異構數據要更好地與其他數據集融合,結構化處理是必不可少的過程。數據結構化處理首先要對原始數據進行解析,提取出需要的信息,再進一步將其轉換成結構化數據。很多非結構化數據、Web數據是以文本形式存在的,需要使用信息抽取技術識別文本中的實體、屬性、關係等信息。也有很多數據採用的是結構化強一些的數據模型,如JSO格式,這類數據相對關係型數據更靈活,在結構化轉換過程中也需要一些技術上的處理。結構化處理的主要輸出形式是二維表或者圖數據,它需要用戶確定數據在轉換過程中採用的規則。

3.2 數據質量評估與數據清洗

結構化處理主要是數據表達形式上的轉換,數據結構化之後並不意味著能夠直接使用。處理後的數據還要進行質量評估,如果發現數據中存在問題,則採取進一步的數據清洗措施。這個過程稱作數據質量評估。一些簡單的數據質量問題可以利用自動化的算法發現,因為數據質量問題的多樣性和不可預測性,數據可視化技術成為數據質量評估的關鍵技術。藉助可視化技術,對數據語義非常瞭解的業務人員更容易發現數據存在的質量問題(如缺失、不一致、異常等)。伴隨著數據質量問題的發現,用戶可以定義一些數據清洗規則,批量化地處理數據中存在的質量問題,提高數據清洗的效率。在數據庫研究領域,也有人藉助眾包的思路提升數據清洗的效率。這種做法也是基於用戶在數據清洗過程中發揮的重要作用進行的。在數據清洗過程中,需要多輪次的人機交互,系統的交互界面和交互方式對於數據清洗算法的有效性尤為重要。

3.3 數據規範化

數據清洗還有一項重要的內容是數據規範化,這也是數據準備中常見的問題。規範化有簡單的底層數據層面的,如數據類型轉換、單位變換、格式表換等,也有較為複雜的數據項規範化處理,如電話號碼、郵編、地址等。這類問題的主要成因是自然語言表達上的差異性會造成同一實體存在多種表達形式。比較典型的例子是地址,人們需要對其進行規範化處理,以提升數據的質量。地址的規範化面臨的一個比較大的挑戰就是粒度的選取,同一個地址可以用不同粒度進行表達。數據的規範化處理需要根據應用的需求特點,確定數據粒度和表達方式。地址規範化處理背後的問題是實體鏈指問題,即把同一實體的不同表達形式(不同名字)映射到同一個實體名字上,消除實體表達的語義鴻溝,進而通過關聯在數據集中不同地方出現的相同語義的實體,達到數據融合的目的。

此外,缺失值填充也是數據規範化處理過程中常見的問題。一種處理方式是利用缺失數據的上下文數據,採用數據插值的辦法修復缺失數據;另一種處理方式是採用平均值或者缺省值的辦法填充缺失數據,有時候也用這種辦法替換系統發現的異常值。

3.4 數據融合與摘取

很多數據價值的發現源自於多源異構數據之間的關聯和在關聯數據基礎之上進行的數據分析。將多個數據集(很可能來自於多個數據源)融合到一起,可使數據內容更豐富,更容易獲得新的發現。然而,多源數據融合所需的數據整理過程面臨的挑戰是很大的。多源頭的數據缺少統一的設計,這導致數據集成和數據融合的難度加大。傳統的基於模式的數據集成方法很難發揮出大的作用,解決這一難題更多地要從數據項的層面關聯數據。因此,實體鏈指操作在數據融合過程中就顯得尤為重要。數據在實體層面的鏈指可以豐富實體的語義,建立跨數據項之間的關聯。由於實體表達的模糊性,實體上下文信息對實體鏈指精度的影響非常大,有效利用實體上下文信息(如文本中的語境、表結構中同行屬性值等)是實體鏈指的關鍵。

數據融合是數據集整合的過程,有些分析任務未必需要全部整合後的數據,可能僅需要一部分數據支撐分析任務。在這種情況下,需要從數據集中提取部分數據(如一些樣本或者數據片段),降低數據量,供數據分析模型實現分析操作。這一過程稱作數據摘取,它需要根據任務的特點摘取相關數據。

3.5 發佈共享

企業中複雜的數據分析任務經常需要被共享,某些數據整理操作也會被重複使用,這意味著數據整理的操作也是企業機構的一種資源。企業需要將這些操作以腳本的形式物化出來,使其能夠被檢索、分享和重複利用。經過數據整理過程的數據,其世襲關係需要被記錄下來,以確保用戶能夠追溯數據的來源,也便於利用索引技術檢索需要的數據整理操作。企業內部對數據整理的共享對於企業內部知識管理、協同工作而言有很重要的意義。

4 以技術帶動數據治理能力

通過以上分析可以看出,數據整理以提升數據分析的效率和質量為目的,在整個大數據分析流程中佔有重要的地位。近些年來,儘管學術界在數據質量管理方面做了大量的研究性工作,但在實際應用中,很多數據整理的需求並沒有得到很好的滿足,還缺少數據整理方面的工具,尤其是系統化的數據整理工具。對於工業界而言,數據整理工作更多地被看作數據分析人員應完成的工作,人們並沒有從工具和系統的角度開發設計高效率的數據準備工具,這使得數據分析人員在執行數據整理任務時,執行了大量重複性的工作。因此,加強數據整理的研究和應用工作是很有必要的。

4.1 數據的結構化與規範化

信息抽取是指從非結構化的文本中識別實體,並發現實體的屬性、實體之間的關係,在互聯網信息抽取、知識庫構建等領域發揮著重要的作用。命名實體識別的目的是發現文檔中的各種實體,如人物、地理位置、組織、日期、時間等。命名實體識別技術分為以下3類。

● 基於正則表達式的命名實體識別:把預先定義的正則表達式和文本進行匹配,把符合正則表達式的文本模式都定位出來。基於正則表達式的命名實體識別一般用於識別日期、時間、金額、電子郵件等規則的文本。

● 基於字典的命名實體識別:把文本和字典裡的<短語,類別>對進行匹配,對匹配的短語進行實體標註,一般用於識別人名、地名。

● 基於機器學習模型的命名實體識別:預先對一部分文檔進行實體標註,產生一系列的<短語,類別>對,利用這些文檔進行機器學習模型的訓練,然後用這個模型對沒有遇到過的文檔進行命名實體識別和標註。

指代消解是自然語言處理中和命名實體識別關聯的一個重要問題。比如在對某位專家學者進行的一個訪談中,除了第一次提到其姓名、職務之外,之後提到這位專家,文本中可能使用“某博士”“某教授”“他”等代稱,或者以其擔任的職務相稱,如“所長”等。如果訪談中還提及其他人物,並且也使用了類似的代稱,那麼把這些代稱對應到正確的命名實體上就是指代消解。在自然語言處理中,經常遇到的一個問題是命名實體的歧義,比如重名問題。為了讓計算機正確地分析自然語言書寫的文本,命名實體的歧義需要被消除,也就是把具有歧義的命名實體唯一地標識出來。

關係抽取是信息抽取的一個重要的子任務,負責從文本中識別出實體之間的語義關係。它分為3類方法:有監督的學習方法,該方法包括基於特徵向量的學習方法和基於核函數的學習方法;半監督的學習方法,該方法無需人工標註語料庫,但是需要根據預定義好的關係類型人工構造出關係實例,將這個關係實例作為種子集合,然後利用Web或者大規模語料庫信息的高度冗餘性,充分挖掘關係描述模式,通過模式匹配,抽取新的實體關係實例;無監督的學習方法,該方法是一種自底向上的信息抽取策略,它假設擁有相同語義關係的實體對的上下文信息較為相似,其上下文集合代表該實體對的語義關係。較新的技術是使用向量(embedding,基於詞或者實體)的方式將結構化和非結構化數據中提及的實體關聯起來,利用向量間的相似性,實現以向量為中介的異構數據的結構化處理和關聯。

4.2 數據集成

數據集成是伴隨企業信息化建設的不斷深入而形成的。例如,因業務的需要,企事業單位內部普遍構建了多個異構的信息系統(這些信息系統可以自主選擇合適的操作系統,有獨立的數據庫和應用界面,完全是一個自治的系統),並積累了圖片、Word、PDF、Excel、網頁等大量非結構化文件。由於開發部門和開發時間的不同,這些信息系統中管理的數據源彼此獨立、相互封閉,形成了“信息孤島”,數據難以在系統之間形成快速有效的共享。數據管理與數據分析需要打破這些“信息孤島”,實現不同“孤島”信息系統的互聯互通,進而施行精準的決策分析。例如,在電子政務領域中,很多地方的政府機關有多少個委、辦、局,就有多少個信息系統,每個信息系統都由獨立的信息中心進行維護。政府機關之間需要實現信息互聯互通、資源共享,最終實現政務服務的協同操作,從而使社會大眾真正享受到一站式辦公服務(例如杭州市政府工作報告中的“最多跑一次”改革)。事實上,許多互聯網應用(包括機票、酒店、餐飲、租房、商品比價等服務)也是把來自不同數據源中的數據進行有效集成後,對外提供統一的訪問服務的。

數據集成把一組自治、異構數據源中的數據進行邏輯或物理上的集中,並對外提供統一的訪問接口,從而實現全面的數據共享。數據集成的核心任務是將互相關聯的異構數據源集成到一起,使用戶能夠以透明的方式訪問這些數據源。集成是指維護數據源整體上的數據一致性,提高信息共享利用的效率;透明的方式是指用戶無需關心如何實現對異構數據源數據的訪問,只關心以何種方式訪問何種數據即可。數據集成涉及的數據源通常是異構的,數據源可以是各類數據庫,也可以是網頁中包含的結構化信息(例如表格)、非結構化信息(網頁內容),還可以是文件(例如結構化CSV文件、半結構化的XML文件、非結構化的文本文件)等。數據集成中涉及的數據源具有自治性,這些數據源可以在不通知集成系統的前提下改變自身的結構和數據。

數據源的異構性和自治性是數據集成系統面臨的兩個主要挑戰。針對這兩個挑戰,數據集成通常採用如下兩種解決方案。

(1)數據倉庫

人們把一組自治數據源中的數據加載並存儲到一個物理數據庫(稱為數據倉庫)中,然後在數據倉庫上對集成後的數據進行後續的操作和分析。圖1顯示了基於數據倉庫的數據集成系統架構。數據倉庫技術涉及的技術包括ETL、元數據管理和數據倉庫本身涉及的技術。ETL定期地從各個數據源中抽取(extract)、轉換(transform)、加載(load)數據到數據倉庫中。元數據管理涉及對數據源的描述、對數據倉庫中數據的描述、數據倉庫中數據與數據源中數據之間的語義映射。例如,針對關係數據庫類型的數據源,語義映射維護數據源中的某個屬性對應於數據倉庫的某個屬性,並指定如何把屬性分配到不同的表中。此外,語義映射還要解決不同數據源間數據描述的不統一、語義衝突、數據的冗餘等問題。

數據整理——大數據治理的關鍵技術

圖1 基於數據倉庫的數據集成系統架構

(2)虛擬集成系統

在虛擬集成系統中,數據保存在原來的數據源中,只在查詢時才需要訪問。圖2顯示了一個典型的虛擬集成系統的架構,該類集成系統使用中間模式建立全局數據的邏輯視圖,中間模式向下協調各數據源系統,向上為訪問集成數據的應用提供統一數據模式和數據訪問的通用接口。各數據源獨立性強,虛擬集成系統則主要為異構數據源提供高層次的數據訪問服務。元數據維護數據源的基本信息以及中間模式到數據源之間的語義映射等。虛擬集成系統接收到用戶的查詢請求後,根據元數據信息進行查詢的重寫,把對中間模式的查詢轉化為對數據源的查詢。類似於數據庫的查詢處理,虛擬集成系統也會進行查詢的優化,包括訪問數據源的順序、不同數據源之間的操作訪問(例如兩個數據源之間數據的連接算法)等。每個數據源都連有一個封裝器,負責把上層用戶的查詢轉發到數據源,並把數據源返回的結果轉發給上層的應用。虛擬集成系統的關鍵問題是如何構造邏輯視圖,並使得不同數據源的數據模式映射到這個中間模式上。

數據整理——大數據治理的關鍵技術

圖2 基於中間模式的數據集成系統架構

無論是基於數據倉庫還是基於中間模式的數據集成系統,都需要完成實體與關聯抽取、模式匹配(schema matching)、實體對齊(record linkage或entity resolution)和實體融合(data fusion)這4個步驟。面向結構化數據的實體與關聯抽取技術比較直觀,面向非結構化數據的實體與關聯抽取可參考第4.1節。模式匹配主要用於發現並映射兩個或多個異構數據源之間的屬性對應關係,在大規模數據背景下尤為重要。目前,基於樸素貝葉斯、stacking等機器學習算法的模式匹配得到了廣泛的研究,並在某些特定領域得到了良好的應用。基於模式匹配,實體對齊的目標是根據匹配屬性的記錄特徵,將數據源中指代同一實體的記錄連接起來。實體對齊主要分為3個步驟:獲取候選集、成對匹配、聚簇處理。廣義地說,實體對齊的方法可以劃分為無監督學習和有監督學習。隨著人工智能技術的發展,基於決策樹、Logistic迴歸、支持向量機(support vector machine,SVM)的機器學習方法以及基於詞向量(word embedding)的深度學習方法被應用於實體對齊,以提高算法的性能。使用實體對齊可以把一組數據源中同一實體的不同記錄連接起來,由於數據質量問題,這些記錄在描述同一實體時可能存在數據衝突,例如同一個人的住址在不同數據源之間的描述可能是不一樣的。因此,在數據集成的最終環節中,實體融合旨在消除不同數據源之間同一個實體屬性值的衝突,將不同的數據信息進行綜合,從而提取出統一、豐富、高精度的數據。實體融合的主要方法包括基於規則的無監督學習、結合標註數據的半監督學習等。雖然基於標註數據的半監督學習在精度、召回率等方面均獲得了令人滿意的效果,但是其最大的挑戰在於帶標籤訓練數據的獲取往往需要耗費較大的人力和物力。如何利用主動學習獲取訓練數據以降低研究代價,是當前學術界和工業界研究的熱點話題。

4.3 數據清洗與數據質量評估

數據清洗是指從數據中檢測並糾正可能的錯誤,以確保數據的質量並符合與領域相關的完整性約束。數據清洗是絕大多數數據驅動的任務的必要步驟。缺乏有效的數據清洗可能會使後續的數據分析產生垃圾進、垃圾出(garbage in,garbage out, GIGO)的不良後果。然而,由於數據越發顯著的大規模、異質性、高噪音等特點,數據清洗也面臨著極大的挑戰,這也是近年來學術界和工業界的攻堅重點。一般來說,數據清洗可以分為兩個基本的任務:錯誤檢測,即發現數據中潛在的錯誤、重複或缺失等;數據修復,即針對發現的錯誤,對數據進行修復。下面結合一個具體的實例分別進行介紹。

錯誤檢測任務旨在發現影響數據質量的錯誤因素。一般將錯誤因素劃分為4類,下面通過圖3的示例進行說明。

"

數據整理——大數據治理的關鍵技術

杜小勇1,2, 陳躍國1,2, 範舉1,2, 盧衛1,2

1. 中國人民大學信息學院,北京 100872;

2. 數據工程與知識工程教育部重點實驗室(中國人民大學),北京 100872

摘要數據是政府、企業和機構的重要資源。數據治理關注數據資源有效利用的眾多方面,如數據資產確權、數據管理、數據開放共享、數據隱私保護等。從數據管理的角度,探討了數據治理中的一項關鍵技術:數據整理。介紹了以數據擁有者和直接使用者(行業用戶)為核心的數據整理的關鍵技術,包括數據結構化處理、數據質量評估及數據清洗、數據規範化、數據融合與摘取、數據整理的發佈共享等。最後,針對加強數據整理方面的研究提出了一些思考。

關鍵詞數據整理 ; 數據準備 ; 數據治理 ; 數據管理

數據整理——大數據治理的關鍵技術

論文引用格式:

杜小勇, 陳躍國, 範舉, 等. 數據整理——大數據治理的關鍵技術[J]. 大數據, 2019, 5(3): 13-22.

DU X Y, CHEN Y G, FAN J, et al. Data wrangling:a key technique of data governance[J]. Big Data Research, 2019, 5(3): 13-22.

1 引言

大數據作為一種資源,在政府、大型企業和機構中發揮著越來越重要的作用。隨著大數據應用的不斷推進,與數據資源的價值提煉、保值和增值密切相關的大數據治理越來越引起人們的重視。大數據治理是一項複雜的工程,它需要在國家、行業、企業等多個層面上開展體系化的建設,技術上包含數據資產確權、數據管理、數據開放共享、數據隱私保護等諸多方面。這些技術面臨的挑戰多、難度大,很多方面還沒有形成被廣泛認可的系統化的解決方案。本文從數據管理這一關鍵環節出發,探討其中的關鍵支撐技術:數據整理(data wrangling)。

數據整理也叫數據準備,是在挖掘提煉數據價值的過程中進行的前期的數據預處理工作。它看似不足輕重,實則非常重要。有調查研究表明,很多大數據分析任務80%以上的工作花費在數據整理上,這給數據分析帶來了巨大的人力成本。很多分析設想因為承擔不起前期的數據整理工作而最終被放棄。更重要的是,由於缺少系統性和理論性的支撐,數據整理的質量千差萬別,這給數據分析的結果帶來了很大的不確定性,大大影響了大數據價值的挖掘與提煉。因此,人們很有必要重視數據整理的研究工作,它是整個數據治理環節中一項重要的基礎性工作,但是這項工作在學術界和企業界並沒有得到應有的重視。

2 數據整理概述

在數據倉庫時代,數據預處理主要指的是抽取、轉換和加載(ETL)過程。筆者探討的數據整理和ETL過程有相似的地方,兩者都將多源異構的數據集通過一系列處理和轉換,變成想要的輸出形式。但二者之間是存在較大差別的,具體如下。

● 針對的用戶不同。ETL服務於專業的數據工程師,而數據整理服務於企業內部所有的數據使用者,以對數據處理技術不熟悉的業務用戶為主。這些用戶雖然缺少數據管理與數據處理知識,但對業務非常熟悉,對數據背後的語義更清楚。他們是企業機構大數據價值發現的主力。如何針對這類業務型數據分析人員的需求和特點,提供高效的數據整理工具,是數據整理技術面臨的一大挑戰。

● 數據處理的目的不同。數據倉庫中的ETL是為了建立數據倉庫採用的相對固定的數據處理流水線。數據處理過程一旦建立,整個過程比較靜態,很少再變化。數據整理是針對企業業務系統中的問題,動態構建的數據處理過程。它針對具體問題進行數據預處理,針對不同問題採用不同的數據整理過程,一些任務之間可以共享某些數據整理過程。

● 數據處理的對象不同。ETL處理的數據對象多為業務系統數據庫中的結構化數據源,這些數據源有很規範的元數據。數據整理則面臨更復雜、更多樣化的數據源,直接應對大數據多樣性(variety)的挑戰。這種多源異構性在很多大數據應用中非常常見。數據整理技術通常需要幫助用戶將其擁有的數據與外部的一些數據源進行關聯和數據融合。融合過程中存在的大量數據質量問題(如數據項缺失、不一致、重複、錯位、異常值等)給數據整理帶來了巨大挑戰。與ETL技術相比,這種變化是一種質的變化。

數據整理是為了使數據更好地服務於數據分析而對數據進行的審查和轉換的過程,它是整個數據分析流程中最佔用精力的過程。從技術上講,數據整理包含前期數據解析與結構化處理、數據質量評估與數據清洗、數據集成和提純等過程。由於問題的複雜性,數據整理過程通常不是完全自動化的,而是需要用戶介入的反覆迭代和交互的過程。數據可視化、用戶反饋與交互在整個過程中都發揮了重要作用。數據整理是由數據可視化領域的Jeffery Heer教授(華盛頓大學)和數據庫領域的Joseph M.Hellerstein教授(加州大學伯克利分校)等人較早提出來並持續開展系列研究的。他們還將研究成果進行了產業化,成功創立了以數據整理為主業的Trifacta公司。本文主要在上述兩位教授及其合作者發表的一些成果的基礎上,對數據整理包含的一些核心要素進一步地闡述,以期引起人們對數據整理研究和應用的重視。

3 數據整理的核心技術

3.1 數據的結構化處理

很多數據模型和算法是構建在結構化數據基礎上的,多源異構數據要更好地與其他數據集融合,結構化處理是必不可少的過程。數據結構化處理首先要對原始數據進行解析,提取出需要的信息,再進一步將其轉換成結構化數據。很多非結構化數據、Web數據是以文本形式存在的,需要使用信息抽取技術識別文本中的實體、屬性、關係等信息。也有很多數據採用的是結構化強一些的數據模型,如JSO格式,這類數據相對關係型數據更靈活,在結構化轉換過程中也需要一些技術上的處理。結構化處理的主要輸出形式是二維表或者圖數據,它需要用戶確定數據在轉換過程中採用的規則。

3.2 數據質量評估與數據清洗

結構化處理主要是數據表達形式上的轉換,數據結構化之後並不意味著能夠直接使用。處理後的數據還要進行質量評估,如果發現數據中存在問題,則採取進一步的數據清洗措施。這個過程稱作數據質量評估。一些簡單的數據質量問題可以利用自動化的算法發現,因為數據質量問題的多樣性和不可預測性,數據可視化技術成為數據質量評估的關鍵技術。藉助可視化技術,對數據語義非常瞭解的業務人員更容易發現數據存在的質量問題(如缺失、不一致、異常等)。伴隨著數據質量問題的發現,用戶可以定義一些數據清洗規則,批量化地處理數據中存在的質量問題,提高數據清洗的效率。在數據庫研究領域,也有人藉助眾包的思路提升數據清洗的效率。這種做法也是基於用戶在數據清洗過程中發揮的重要作用進行的。在數據清洗過程中,需要多輪次的人機交互,系統的交互界面和交互方式對於數據清洗算法的有效性尤為重要。

3.3 數據規範化

數據清洗還有一項重要的內容是數據規範化,這也是數據準備中常見的問題。規範化有簡單的底層數據層面的,如數據類型轉換、單位變換、格式表換等,也有較為複雜的數據項規範化處理,如電話號碼、郵編、地址等。這類問題的主要成因是自然語言表達上的差異性會造成同一實體存在多種表達形式。比較典型的例子是地址,人們需要對其進行規範化處理,以提升數據的質量。地址的規範化面臨的一個比較大的挑戰就是粒度的選取,同一個地址可以用不同粒度進行表達。數據的規範化處理需要根據應用的需求特點,確定數據粒度和表達方式。地址規範化處理背後的問題是實體鏈指問題,即把同一實體的不同表達形式(不同名字)映射到同一個實體名字上,消除實體表達的語義鴻溝,進而通過關聯在數據集中不同地方出現的相同語義的實體,達到數據融合的目的。

此外,缺失值填充也是數據規範化處理過程中常見的問題。一種處理方式是利用缺失數據的上下文數據,採用數據插值的辦法修復缺失數據;另一種處理方式是採用平均值或者缺省值的辦法填充缺失數據,有時候也用這種辦法替換系統發現的異常值。

3.4 數據融合與摘取

很多數據價值的發現源自於多源異構數據之間的關聯和在關聯數據基礎之上進行的數據分析。將多個數據集(很可能來自於多個數據源)融合到一起,可使數據內容更豐富,更容易獲得新的發現。然而,多源數據融合所需的數據整理過程面臨的挑戰是很大的。多源頭的數據缺少統一的設計,這導致數據集成和數據融合的難度加大。傳統的基於模式的數據集成方法很難發揮出大的作用,解決這一難題更多地要從數據項的層面關聯數據。因此,實體鏈指操作在數據融合過程中就顯得尤為重要。數據在實體層面的鏈指可以豐富實體的語義,建立跨數據項之間的關聯。由於實體表達的模糊性,實體上下文信息對實體鏈指精度的影響非常大,有效利用實體上下文信息(如文本中的語境、表結構中同行屬性值等)是實體鏈指的關鍵。

數據融合是數據集整合的過程,有些分析任務未必需要全部整合後的數據,可能僅需要一部分數據支撐分析任務。在這種情況下,需要從數據集中提取部分數據(如一些樣本或者數據片段),降低數據量,供數據分析模型實現分析操作。這一過程稱作數據摘取,它需要根據任務的特點摘取相關數據。

3.5 發佈共享

企業中複雜的數據分析任務經常需要被共享,某些數據整理操作也會被重複使用,這意味著數據整理的操作也是企業機構的一種資源。企業需要將這些操作以腳本的形式物化出來,使其能夠被檢索、分享和重複利用。經過數據整理過程的數據,其世襲關係需要被記錄下來,以確保用戶能夠追溯數據的來源,也便於利用索引技術檢索需要的數據整理操作。企業內部對數據整理的共享對於企業內部知識管理、協同工作而言有很重要的意義。

4 以技術帶動數據治理能力

通過以上分析可以看出,數據整理以提升數據分析的效率和質量為目的,在整個大數據分析流程中佔有重要的地位。近些年來,儘管學術界在數據質量管理方面做了大量的研究性工作,但在實際應用中,很多數據整理的需求並沒有得到很好的滿足,還缺少數據整理方面的工具,尤其是系統化的數據整理工具。對於工業界而言,數據整理工作更多地被看作數據分析人員應完成的工作,人們並沒有從工具和系統的角度開發設計高效率的數據準備工具,這使得數據分析人員在執行數據整理任務時,執行了大量重複性的工作。因此,加強數據整理的研究和應用工作是很有必要的。

4.1 數據的結構化與規範化

信息抽取是指從非結構化的文本中識別實體,並發現實體的屬性、實體之間的關係,在互聯網信息抽取、知識庫構建等領域發揮著重要的作用。命名實體識別的目的是發現文檔中的各種實體,如人物、地理位置、組織、日期、時間等。命名實體識別技術分為以下3類。

● 基於正則表達式的命名實體識別:把預先定義的正則表達式和文本進行匹配,把符合正則表達式的文本模式都定位出來。基於正則表達式的命名實體識別一般用於識別日期、時間、金額、電子郵件等規則的文本。

● 基於字典的命名實體識別:把文本和字典裡的<短語,類別>對進行匹配,對匹配的短語進行實體標註,一般用於識別人名、地名。

● 基於機器學習模型的命名實體識別:預先對一部分文檔進行實體標註,產生一系列的<短語,類別>對,利用這些文檔進行機器學習模型的訓練,然後用這個模型對沒有遇到過的文檔進行命名實體識別和標註。

指代消解是自然語言處理中和命名實體識別關聯的一個重要問題。比如在對某位專家學者進行的一個訪談中,除了第一次提到其姓名、職務之外,之後提到這位專家,文本中可能使用“某博士”“某教授”“他”等代稱,或者以其擔任的職務相稱,如“所長”等。如果訪談中還提及其他人物,並且也使用了類似的代稱,那麼把這些代稱對應到正確的命名實體上就是指代消解。在自然語言處理中,經常遇到的一個問題是命名實體的歧義,比如重名問題。為了讓計算機正確地分析自然語言書寫的文本,命名實體的歧義需要被消除,也就是把具有歧義的命名實體唯一地標識出來。

關係抽取是信息抽取的一個重要的子任務,負責從文本中識別出實體之間的語義關係。它分為3類方法:有監督的學習方法,該方法包括基於特徵向量的學習方法和基於核函數的學習方法;半監督的學習方法,該方法無需人工標註語料庫,但是需要根據預定義好的關係類型人工構造出關係實例,將這個關係實例作為種子集合,然後利用Web或者大規模語料庫信息的高度冗餘性,充分挖掘關係描述模式,通過模式匹配,抽取新的實體關係實例;無監督的學習方法,該方法是一種自底向上的信息抽取策略,它假設擁有相同語義關係的實體對的上下文信息較為相似,其上下文集合代表該實體對的語義關係。較新的技術是使用向量(embedding,基於詞或者實體)的方式將結構化和非結構化數據中提及的實體關聯起來,利用向量間的相似性,實現以向量為中介的異構數據的結構化處理和關聯。

4.2 數據集成

數據集成是伴隨企業信息化建設的不斷深入而形成的。例如,因業務的需要,企事業單位內部普遍構建了多個異構的信息系統(這些信息系統可以自主選擇合適的操作系統,有獨立的數據庫和應用界面,完全是一個自治的系統),並積累了圖片、Word、PDF、Excel、網頁等大量非結構化文件。由於開發部門和開發時間的不同,這些信息系統中管理的數據源彼此獨立、相互封閉,形成了“信息孤島”,數據難以在系統之間形成快速有效的共享。數據管理與數據分析需要打破這些“信息孤島”,實現不同“孤島”信息系統的互聯互通,進而施行精準的決策分析。例如,在電子政務領域中,很多地方的政府機關有多少個委、辦、局,就有多少個信息系統,每個信息系統都由獨立的信息中心進行維護。政府機關之間需要實現信息互聯互通、資源共享,最終實現政務服務的協同操作,從而使社會大眾真正享受到一站式辦公服務(例如杭州市政府工作報告中的“最多跑一次”改革)。事實上,許多互聯網應用(包括機票、酒店、餐飲、租房、商品比價等服務)也是把來自不同數據源中的數據進行有效集成後,對外提供統一的訪問服務的。

數據集成把一組自治、異構數據源中的數據進行邏輯或物理上的集中,並對外提供統一的訪問接口,從而實現全面的數據共享。數據集成的核心任務是將互相關聯的異構數據源集成到一起,使用戶能夠以透明的方式訪問這些數據源。集成是指維護數據源整體上的數據一致性,提高信息共享利用的效率;透明的方式是指用戶無需關心如何實現對異構數據源數據的訪問,只關心以何種方式訪問何種數據即可。數據集成涉及的數據源通常是異構的,數據源可以是各類數據庫,也可以是網頁中包含的結構化信息(例如表格)、非結構化信息(網頁內容),還可以是文件(例如結構化CSV文件、半結構化的XML文件、非結構化的文本文件)等。數據集成中涉及的數據源具有自治性,這些數據源可以在不通知集成系統的前提下改變自身的結構和數據。

數據源的異構性和自治性是數據集成系統面臨的兩個主要挑戰。針對這兩個挑戰,數據集成通常採用如下兩種解決方案。

(1)數據倉庫

人們把一組自治數據源中的數據加載並存儲到一個物理數據庫(稱為數據倉庫)中,然後在數據倉庫上對集成後的數據進行後續的操作和分析。圖1顯示了基於數據倉庫的數據集成系統架構。數據倉庫技術涉及的技術包括ETL、元數據管理和數據倉庫本身涉及的技術。ETL定期地從各個數據源中抽取(extract)、轉換(transform)、加載(load)數據到數據倉庫中。元數據管理涉及對數據源的描述、對數據倉庫中數據的描述、數據倉庫中數據與數據源中數據之間的語義映射。例如,針對關係數據庫類型的數據源,語義映射維護數據源中的某個屬性對應於數據倉庫的某個屬性,並指定如何把屬性分配到不同的表中。此外,語義映射還要解決不同數據源間數據描述的不統一、語義衝突、數據的冗餘等問題。

數據整理——大數據治理的關鍵技術

圖1 基於數據倉庫的數據集成系統架構

(2)虛擬集成系統

在虛擬集成系統中,數據保存在原來的數據源中,只在查詢時才需要訪問。圖2顯示了一個典型的虛擬集成系統的架構,該類集成系統使用中間模式建立全局數據的邏輯視圖,中間模式向下協調各數據源系統,向上為訪問集成數據的應用提供統一數據模式和數據訪問的通用接口。各數據源獨立性強,虛擬集成系統則主要為異構數據源提供高層次的數據訪問服務。元數據維護數據源的基本信息以及中間模式到數據源之間的語義映射等。虛擬集成系統接收到用戶的查詢請求後,根據元數據信息進行查詢的重寫,把對中間模式的查詢轉化為對數據源的查詢。類似於數據庫的查詢處理,虛擬集成系統也會進行查詢的優化,包括訪問數據源的順序、不同數據源之間的操作訪問(例如兩個數據源之間數據的連接算法)等。每個數據源都連有一個封裝器,負責把上層用戶的查詢轉發到數據源,並把數據源返回的結果轉發給上層的應用。虛擬集成系統的關鍵問題是如何構造邏輯視圖,並使得不同數據源的數據模式映射到這個中間模式上。

數據整理——大數據治理的關鍵技術

圖2 基於中間模式的數據集成系統架構

無論是基於數據倉庫還是基於中間模式的數據集成系統,都需要完成實體與關聯抽取、模式匹配(schema matching)、實體對齊(record linkage或entity resolution)和實體融合(data fusion)這4個步驟。面向結構化數據的實體與關聯抽取技術比較直觀,面向非結構化數據的實體與關聯抽取可參考第4.1節。模式匹配主要用於發現並映射兩個或多個異構數據源之間的屬性對應關係,在大規模數據背景下尤為重要。目前,基於樸素貝葉斯、stacking等機器學習算法的模式匹配得到了廣泛的研究,並在某些特定領域得到了良好的應用。基於模式匹配,實體對齊的目標是根據匹配屬性的記錄特徵,將數據源中指代同一實體的記錄連接起來。實體對齊主要分為3個步驟:獲取候選集、成對匹配、聚簇處理。廣義地說,實體對齊的方法可以劃分為無監督學習和有監督學習。隨著人工智能技術的發展,基於決策樹、Logistic迴歸、支持向量機(support vector machine,SVM)的機器學習方法以及基於詞向量(word embedding)的深度學習方法被應用於實體對齊,以提高算法的性能。使用實體對齊可以把一組數據源中同一實體的不同記錄連接起來,由於數據質量問題,這些記錄在描述同一實體時可能存在數據衝突,例如同一個人的住址在不同數據源之間的描述可能是不一樣的。因此,在數據集成的最終環節中,實體融合旨在消除不同數據源之間同一個實體屬性值的衝突,將不同的數據信息進行綜合,從而提取出統一、豐富、高精度的數據。實體融合的主要方法包括基於規則的無監督學習、結合標註數據的半監督學習等。雖然基於標註數據的半監督學習在精度、召回率等方面均獲得了令人滿意的效果,但是其最大的挑戰在於帶標籤訓練數據的獲取往往需要耗費較大的人力和物力。如何利用主動學習獲取訓練數據以降低研究代價,是當前學術界和工業界研究的熱點話題。

4.3 數據清洗與數據質量評估

數據清洗是指從數據中檢測並糾正可能的錯誤,以確保數據的質量並符合與領域相關的完整性約束。數據清洗是絕大多數數據驅動的任務的必要步驟。缺乏有效的數據清洗可能會使後續的數據分析產生垃圾進、垃圾出(garbage in,garbage out, GIGO)的不良後果。然而,由於數據越發顯著的大規模、異質性、高噪音等特點,數據清洗也面臨著極大的挑戰,這也是近年來學術界和工業界的攻堅重點。一般來說,數據清洗可以分為兩個基本的任務:錯誤檢測,即發現數據中潛在的錯誤、重複或缺失等;數據修復,即針對發現的錯誤,對數據進行修復。下面結合一個具體的實例分別進行介紹。

錯誤檢測任務旨在發現影響數據質量的錯誤因素。一般將錯誤因素劃分為4類,下面通過圖3的示例進行說明。

數據整理——大數據治理的關鍵技術

圖3 數據清洗中錯誤檢測的示例

(1)異常值

異常值是指明顯不符合屬性語義的取值。例如,圖3中t2的年齡為5歲,顯然與其有工作單位這一事實是相悖的。然而,設計一種方法讓計算機自動地、通用地檢測出異常值是個挑戰性很大的問題。現有的代表性解決方案包含以下幾類。

● 基於統計的方法:首先使用一定的分佈對數據進行建模,進而檢測某個取值是否顯著性地偏離正常值。例如,針對圖3示例中年齡的例子,可以使用正態分佈對數據建模,並計算均值與標準差。如果某個取值在k倍的標準差(如k=3)外,則認定其為異常值。更進一步地,由於均值對異常值比較敏感,很多方法使用中位數作為均值。

● 基於距離的方法:度量數據值之間的距離,將與大多數數據距離過遠的值認定為異常值。

(2)結構性錯誤

結構性錯誤是指數據不符合特定領域語義要求的完整性約束。例如圖3示例中t1的工作單位是中國人民大學,其所在城市應該為北京,而非上海。檢測結構性錯誤最直接的方法是從外部輸入與領域相關的約束條件,如工作單位決定了所在城市。然而,這種方法往往耗時耗力,且很難達到通用性。因此,現有的大多數工作聚焦於從數據中發現潛在的約束條件,如條件函數依賴、拒絕約束規則等。近些年,也有些研究者考慮藉助外部通用的知識圖譜及互聯網上公開可用的眾包服務(crowdsourcing),其基本的思想是通過發現數據中與知識圖譜或眾包標註違背的部分,歸納出結構性錯誤。

(3)記錄重複

記錄重複在真實數據中十分普遍,其原因是多方面的,比如數據可能由不同的機構提供,或者數據整合自組織的內外部渠道。例如,圖3中的t1和t4實際上指代同一個人,但由於數據存在結構性錯誤(如t1的城市)、縮寫(如t4中的“人大”實為“中國人民大學”的縮寫)、屬性對應錯誤(t4中的姓氏與名字填反了)等問題,而被計算機認為是兩條不同的記錄。記錄重複會對數據分析造成很大的影響。人們一般採取實體識別技術解決記錄重複問題,其本質與上文提到的實體匹配是相同的。由於前文已經給出了詳細的探討,此處不再贅述。

(4)數據缺失

數據缺失是指數據的部分屬性不存在於數據庫中,例如,圖3示例中的t3缺失了工作單位信息。這會在兩個層面給數據分析帶來負面影響:一方面,數據缺失帶來信息的損失;另一方面,不同數據源在數據缺失時使用的默認值不盡相同,如“NA”“NaN”“”等,這會進一步誤導後續的分析過程。針對數據缺失,現有的方法是採用缺失值插補(data imputation)技術進行修復,其基本想法是使用合理的模型推斷出缺失值。比較簡單的辦法是使用統一的全局值或其他記錄在該屬性的平均值進行插補,然而這些方法沒有考慮具體的數據記錄,在實際中難以得到良好的效果。更為有效的辦法是採用最大可能性的數據值並進行推理,例如找出最相似記錄的相應取值並進行插補,或通過建立貝葉斯或決策樹分類器,將缺失值插補建模成一個分類的問題。

數據修復任務是指根據檢測出的錯誤對數據進行更新,以達到糾正錯誤的目的。與前文介紹的錯誤檢測相比,數據修復的挑戰性更大,因為通常缺乏對修復進行指導的信號。為了應對這一挑戰,現有的方法往往採用外部知識或一些定量的統計指標。最近,也有人提出一些新方法,即採用機器學習的手段融合多源信號,將數據修復建模成一個聯合推理的問題。

5 結束語

數據整理需要研究的工作還有很多。如何開展有針對性的研究工作,並系統化地集成各方面的相關研究工作,形成數據整理方面整體上的研究和應用影響力?威斯康辛大學麥迪遜分校的AnHai Doan教授等人[4]倡議,從事相關領域的研究學者應充分利用龐大的Python開源社區PyData,投入系統化的數據準備工具研製中,將研究成果更好地應用在實際場景中。這或許是一條較為可行的技術路線。

作者簡介

杜小勇(1963-),男,博士,中國人民大學信息學院二級教授、學術委員會主任、博士生導師,中國人民大學校長助理,數據工程與知識工程教育部重點實驗室(中國人民大學)主任兼任教育部科學技術委員會信息學部委員,國家重點研發計劃“雲計算與大數據”專家組成員,中國計算機學會常務理事、教育工作委員會主任、數據庫專業委員會主任,《大數據》期刊副主編,全國信息技術標準化技術委員會大數據標準工作組副組長等曾擔任中國人民大學信息學院院長,國家“863”計劃數據庫重大專項專家組組長,國家“863”計劃軟件重大專項專家組成員等先後獲得國家科技進步獎二等獎,北京市科技進步獎一等獎,教育部科技進步獎一等獎,中國計算機學會科學技術獎一等獎等獎項 。

陳躍國(1978-),男,博士,中國人民大學信息學院教授、博士生導師,中國計算機學會高級會員,數據庫專業委員會委員,大數據專家委員會通訊委員主要研究方向為高性能大數據分析系統和語義搜索主持國家自然科學基金重點項目1項廣東省科技應用重大專項1項,近年來在SIGMOD、SIGIR、ICDE、AAAI、TKDE、WWW等國際重要會議和期刊上發表論文20餘篇 。

範舉(1984-),男,博士,中國人民大學信息學院副教授、碩士生導師,中國計算機學會會員,數據庫專業委員會委員,主要研究方向為大數據分析、數據集成與眾包計算先後在SIGMOD、VLDB、ICDE、TKDE等國際重要會議和期刊上發表論文30餘篇擔任國際重要會議SIGMOD2020、VLDB2018/2020的程序委員會委員 。

盧衛(1981-),男,博士,中國人民大學信息學院副教授、碩士生導師,中國人工智能學會智能服務專業委員會委員近年來主要從事數據庫基礎理論、大數據系統研製等相關領域的研究,先後在SIGMOD、VLDB、ICDE、SIGIR、AAAI、VLDBJournal、TKDE等國際重要會議和期刊上發表論文30餘篇,主持和參與多項國家自然科學基金項目 。

《大數據》期刊

《大數據(Big Data Research,BDR)》雙月刊是由中華人民共和國工業和信息化部主管,人民郵電出版社主辦,中國計算機學會大數據專家委員會學術指導,北京信通傳媒有限責任公司出版的中文科技核心期刊。

關注《大數據》期刊微信公眾號,獲取更多內容

"

相關推薦

推薦中...