祁祥威
(西南交通大學制造業產業鏈協同與信息化支撐技術四川省重點實驗室,成都 611756)
實體解析(entity resolution,ER)是一種用于識別數據集中多個數據記錄是否為同一現實世界實體的技術。隨著時代的發展,實體解析成為了大數據應用中數據清洗和數據集成的關鍵技術之一[1],并且在信息檢索、人工智能、機器學習、數據庫等各個領域中都受到了相當的重視。
目前實體解析技術在各個領域都有不同的適用于其領域的方法,但還是以統計學中的概率決策為主,即,計算記錄之間屬性值的相似度,根據相似值與預設的屬性級閾值或記錄級閾值,判斷兩條記錄是否匹配[2]。
而數據空間是以圖數據庫為基礎的數據管理系統,集成了大量異質數據,沒有統一的語義[3],無法將不同的記錄的屬性值進行一一對應,從而無法進行基于統計學的實體解析。但數據空間中存有實體之間的關系,從實體之間的關系入手可以有效地進行數據空間的實體解析任務。
數據空間是為了應對海量異構的數據,由Franklin 提出的一個概念:一個數據空間由一系列相關的異構資源對象集和資源對象間的關聯關系集組成,包含某個組織或個體相關的一切信息,這些信息可以以任意形式,在任意地方存儲;在將數據加入到數據空間之前,無需像關系數據庫事先為其定義嚴格的關系模式,直接將數據源加入數據空間,并以pay-as-you-go模式實現數據的管理[4]。數據空間主要具有數據優先、模式滯后的特點[5],即優先集成數據,隨著數據的不斷加入再進行數據模式的演化。
實體關系模型是一種描述現實世界中實體之間關系的模型,通常被應用于數據庫設計和數據建模領域。實體通常指從現實生活抽象出的一種有區分性的概念,可以指向具體的物體,如房子、車,也可以是一種邏輯上的概念,如交易、訂單。而關系則描述了實體之間的連接方式,一般有三種:“一對一”“一對多”和“多對多”。
利用實體間關系進行實體解析的思想比較簡單。首先,找到兩側的實體至少有一個具有唯一性的關系,即,實體之間“一對一”或“一對多”的關系,稱為“決策關系”。將決策關系兩端的只能有一個出度或入度的結點(這里表示的是數據記錄)稱為決策結點。例如,“顧客”“酒店房間”之間的“預訂”關系,就可以稱為決策關系,而“酒店房間”則稱為決策結點。因為在這個關系中,“顧客”可以預訂多個“酒店房間”,但是“酒店房間”不能被多個“顧客”預訂(見圖1)。
其次,在數據空間中,查詢所有與決策結點具有決策關系的結點,在這些結點之間增加一個“匹配”關系(見圖2)。

圖2 基于實體關系進行匹配
最后,將結點進行分組合并。具體過程如下:
(1)為每一個結點分配一個整數ID 作為標識;
(2)將這個ID 傳送到與之具有“匹配”關系的相鄰的結點;
(3)使用從相鄰結點接收到的最小值ID 作為結點的新ID;
(4)重復步驟(2)、(3)直到沒有可以更新的ID;
(5)將具有相同ID的結點分為一組;
(6)對于每組內的結點,保留其中一個并使其繼承其它結點的屬性,刪除其它的結點。
目前對于異質數據的實體解析任務,尚未有公認的數據集,因此,根據研究對象的特點,構建了包含顧客和房間兩種對象的小規模數據集作為實驗數據,見表1。

表1 包含顧客和房間兩種對象的小規模實驗數據集
如表1所示,顧客擁有的不同屬性用于表達數據空間中集成的異質數據,即,沒有統一的語義。將上述數據進行前文所描述的算法,則可以得到決策實體類型為房間,決策結點為結點1、結點2和結點3。
本文以Neo4J為基礎進行算法的驗證。數據的初始狀態如圖3所示。

圖3 Neo4j中數據初始狀態
通過上文所述算法過程,如圖4 所示,Costomer 4、Costomer 5 和Costomer 6 之間增加了“Matches”關系,而Costomer 7 和Costomer 8之間增加了“Matches”關系。最后通過連通分量算法進行冗余結點的刪除,得到如圖5所示的結果??梢钥闯觯撍惴ê啙嵱行?。

圖4 Neo4j中進行匹配后的數據

圖5 進行屬性繼承和刪除冗余結點后的數據
實體解析是一個領域性較強的問題,不同的領域有著適合該領域的方法。對于結構性較強的數據,可以采用基于屬性值相似度計算的辦法。但是在數據空間中,大量的數據是異質,沒有統一的語義,無法運用類似的實體解析方法。本文針對這個問題,從數據空間中的數據關系入手,提出了基于實體關系的實體解析方法,并通過構建小規模數據集驗證了算法的有效性。但是對于缺少決策關系的數據,本算法則有一定的局限性,有待后續研究。