李 璇,吳 雷,2,姜 夢,潘 曉*
(1.石家莊鐵道大學(xué),河北 石家莊 050043;2.燕山大學(xué) 信息科學(xué)與工程學(xué)院,河北 秦皇島 066004)
隨著移動定位設(shè)備、大數(shù)據(jù)技術(shù)的不斷發(fā)展,人類活動每時每刻都會產(chǎn)生大量帶有位置坐標(biāo)和時間標(biāo)簽的軌跡大數(shù)據(jù)。軌跡大數(shù)據(jù)中蘊(yùn)含著豐富的路網(wǎng)特性與交通特性,來源廣泛,數(shù)據(jù)格式多樣。軌跡大數(shù)據(jù)中的時空維度動態(tài)關(guān)聯(lián)特性被離散化表示,語義特征被弱化,使得從軌跡大數(shù)據(jù)中挖掘有價值的信息變得困難[1-3]。基于異構(gòu)圖結(jié)構(gòu)的知識圖譜為海量、異構(gòu)、動態(tài)的數(shù)據(jù)表達(dá)、組織、管理提供了一種有效的方式,更接近于人類的認(rèn)知思維[3]。目前,知識圖譜的構(gòu)建方式主要包括自底向上和自頂向下兩種[4],兩種方式均沒有標(biāo)準(zhǔn)且統(tǒng)一的構(gòu)建流程,其中自頂向下的方式多用于借助百科類網(wǎng)站、專家知識等數(shù)據(jù)源,從高質(zhì)量數(shù)據(jù)中提取本體和模式信息,再加入到知識庫中,采用志愿者眾包編輯數(shù)據(jù)頁面或咨詢專家的方式來構(gòu)建,費(fèi)時費(fèi)力費(fèi)財[5]。另外,數(shù)字化時代中每個企業(yè)或組織在其業(yè)務(wù)系統(tǒng)中都積累了大量數(shù)據(jù),原有系統(tǒng)已不能滿足人們迅速、準(zhǔn)確、智能獲取信息的需求;更多的用戶希望數(shù)據(jù)得到更好的組織,進(jìn)而為數(shù)據(jù)擁有者提供快速準(zhǔn)確的知識抽取、加工,幫助智能決策。領(lǐng)域知識圖譜可采用自底向上的方式構(gòu)建,從大量的業(yè)務(wù)數(shù)據(jù)中提取置信度高的資源模式,方便查詢、發(fā)現(xiàn)和挖掘知識[6-7]。因此,本文基于已有的網(wǎng)約車軌跡大數(shù)據(jù),采用知識圖譜表達(dá)交通實(shí)體和關(guān)系的多樣性。基于存儲在MySQL中的網(wǎng)約車軌跡和訂單信息等業(yè)務(wù)數(shù)據(jù),自底向上構(gòu)建司機(jī)出行交通知識圖譜,提取司機(jī)出行特點(diǎn)與規(guī)律,發(fā)現(xiàn)和挖掘隱藏知識,為交通預(yù)測和決策提供更多的依據(jù)。
綜上所述,本文貢獻(xiàn)在于,基于新的知識需求探索出了從關(guān)系型數(shù)據(jù)庫到知識圖譜自動轉(zhuǎn)換與構(gòu)建的路徑;在真實(shí)數(shù)據(jù)集上構(gòu)建了司機(jī)出行知識圖譜,可通過Neo4j的Cypher語言進(jìn)行交通知識查詢,在目標(biāo)領(lǐng)域的分析上具有實(shí)用價值。
本文采用滴滴出行蓋亞數(shù)據(jù)開放計劃提供的2020年8月深圳市網(wǎng)約車的真實(shí)業(yè)務(wù)訂單數(shù)據(jù),具體包括路網(wǎng)拓?fù)鋽?shù)據(jù)和訂單行程信息,路網(wǎng)拓?fù)鋽?shù)據(jù)存儲在CSV文件中,結(jié)構(gòu)為。經(jīng)統(tǒng)計,一個月的訂單數(shù)量為8 562 059條,涵蓋了80 399位網(wǎng)約車司機(jī)。將數(shù)據(jù)源中的訂單行程數(shù)據(jù)存儲在MySQL中,結(jié)構(gòu)如表1~3所示。
表1 訂單信息表
表2 訂單下軌跡的道路小段信息表
表3 訂單下軌跡的路口信息表
對該月內(nèi)每位司機(jī)的接單數(shù)量進(jìn)行統(tǒng)計分析發(fā)現(xiàn),該月只接單一次的司機(jī)人數(shù)最多,活躍度最低;活躍度最高的司機(jī)在該月接單603次,如圖1所示,司機(jī)接單數(shù)量呈長尾右偏分布。
圖1 司機(jī)活躍度分布直方圖
網(wǎng)約車司機(jī)的訂單數(shù)量一定程度上反映了司機(jī)在某交通區(qū)域內(nèi)的通行頻率。本文選取活躍度位于Top5%的司機(jī),從每天上午8:00開始,以每5 min為一個時間戳、24 h為一循環(huán),時間戳的范圍為0~288,查看所選司機(jī)在不同時間段的訂單流量分布情況,如圖2所示,可以看出,司機(jī)接單呈現(xiàn)出早高峰和晚高峰的特點(diǎn),大量訂單產(chǎn)生在7:00—23:00時間段內(nèi),符合通勤規(guī)律。
圖2 訂單流量分布直方圖
自底向上構(gòu)建知識圖譜,即從數(shù)據(jù)層出發(fā)首先歸納實(shí)體,再抽取實(shí)體、屬性和實(shí)體間的關(guān)系,然后歸納知識并對知識進(jìn)行存儲,最終實(shí)現(xiàn)知識圖譜的構(gòu)建。其中,知識歸納的核心是知識抽取、知識融合、知識補(bǔ)全。存儲在MySQL數(shù)據(jù)庫中的出租車訂單行程數(shù)據(jù)包含大量的交通實(shí)體、屬性和實(shí)體間的關(guān)系,信息散落在不同的數(shù)據(jù)表中被割裂,對于數(shù)據(jù)查詢不利,較難從中獲取交通知識。本文采用五步法,通過知識抽取、知識存儲、知識引入、知識融合和知識補(bǔ)全,實(shí)現(xiàn)了從MySQL存儲的網(wǎng)約車業(yè)務(wù)數(shù)據(jù)到司機(jī)出行知識圖譜的構(gòu)建??傮w構(gòu)建流程如圖3所示。
圖3 總體構(gòu)建流程圖
2.2.1 知識抽取
首先,梳理存儲在MySQL訂單行程數(shù)據(jù)中數(shù)據(jù)的含義和關(guān)系,明確交通事件的實(shí)體、實(shí)體屬性以及實(shí)體間的關(guān)系,根據(jù)數(shù)據(jù)間的關(guān)聯(lián)和特征,初步分析交通軌跡的簡要特征;然后,根據(jù)所描述對象的不同,分為司機(jī)、訂單、路段和路口4大類。由表1~3可知,司機(jī)與訂單具有一對多的關(guān)系,訂單與軌跡具有一對一和一對多的關(guān)系,如視訂單為一個實(shí)體,訂單編號、訂單行程總時間、訂單路線距離是屬性。
本文采用D2R技術(shù)從網(wǎng)約車業(yè)務(wù)數(shù)據(jù)中抽取知識。D2R技術(shù),即Database to RDF,是一種能從關(guān)系型數(shù)據(jù)庫中抽取知識的技術(shù),主要包括D2R Server、D2RQ Engine和D2RQ Mapping語言。D2RQ根據(jù)可定制的D2RQ Mapping文件將關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)化為RDF格式。RDF,即資源描述框架,是一種用于描述事物的方法,其本質(zhì)是一種數(shù)據(jù)模型。RDF形式上表示為SPO三元組,即<主體,謂詞,賓語>,既可稱為一條語句,也可表示知識圖譜中的一條知識[8]。在Mapping文件中定義了整個映射的主要模式:數(shù)據(jù)庫中的表映射為一個類,表中的每一行是一個資源或?qū)嵗恳涣惺琴Y源的屬性,表與表的外鍵則映射為關(guān)系[9]。本文基于D2RQ工具對MySQL中的訂單行程數(shù)據(jù)進(jìn)行知識抽取,以一條訂單信息為例,說明從二維表數(shù)據(jù)到RDF數(shù)據(jù)的轉(zhuǎn)化過程。
MySQL中在2020年8月1日記錄了一條訂單編號為1612040的訂單。通過D2RQ工具得到的RDF數(shù)據(jù)為:
這條RDF數(shù)據(jù)表示為訂單1612040和日期20200801之間的關(guān)系是tbl_order_date,即在2020年8月1日產(chǎn)生了一條訂單編號為1612040的訂單。
2.2.2 知識存儲
通過上述操作,將存儲在MySQL中的訂單行程數(shù)據(jù)轉(zhuǎn)化為大量的RDF數(shù)據(jù)。知識圖譜主要包括RDF和圖數(shù)據(jù)庫兩種存儲方式,目前普遍認(rèn)為,RDF的重點(diǎn)在于數(shù)據(jù)發(fā)布和資源共享,圖數(shù)據(jù)庫的重點(diǎn)在于對圖數(shù)據(jù)的高效查詢和搜索[10]。因此,本文選擇主流圖數(shù)據(jù)庫Neo4j來存儲知識圖譜。
利用Neo4j的Neosemantics插件將生成的大量RDF數(shù)據(jù)導(dǎo)入到Neo4j中進(jìn)行存儲。在Neo4j中,知識便以圖的形式組織在一起,進(jìn)而形成了基于屬性圖的知識圖譜。利用Neo4j的Cypher語言進(jìn)行交通實(shí)體、關(guān)系和相關(guān)實(shí)體屬性的查詢,獲得與司機(jī)出行相關(guān)的知識,如某時段路網(wǎng)交通狀態(tài)、司機(jī)歷史軌跡和各時段網(wǎng)約車流量等。此外,利用Neo4j的可視化交互前端可以圖的形式展示交通實(shí)體、關(guān)系和屬性以及規(guī)模。
由MySQL中的訂單行程數(shù)據(jù)構(gòu)建的圖譜如圖4所示,以司機(jī)節(jié)點(diǎn)為核心,關(guān)聯(lián)到與該司機(jī)相關(guān)的訂單節(jié)點(diǎn),再由訂單節(jié)點(diǎn)關(guān)聯(lián)到該訂單行程軌跡,具體包括路段和路口。然而,這些路段和路口在圖譜中并沒有以軌跡的形式展現(xiàn),沒有還原出原有訂單行程的軌跡信息,軌跡序列仍是離散的形式。對于不同的業(yè)務(wù)訂單,其訂單行程軌跡可能存在路段交集。一方面,圖4中的圖譜不能直接顯示存在路段交集的軌跡;另一方面,這些路段交集具有相同的link id和拓?fù)潢P(guān)系,在圖譜中會出現(xiàn)多次。
圖4 訂單行程數(shù)據(jù)形成的圖譜
2.2.3 知識引入
網(wǎng)約車軌跡記錄了司機(jī)出行過程中車輛移動過程和車輛狀態(tài)變化,包含網(wǎng)約車司機(jī)出行的知識。為了連續(xù)表達(dá)訂單行程中重要的軌跡信息,完整還原司機(jī)出行的全過程,本文將動態(tài)的訂單業(yè)務(wù)數(shù)據(jù)與靜態(tài)的交通路網(wǎng)相結(jié)合,使訂單行程軌跡關(guān)聯(lián)到靜態(tài)路網(wǎng)上。本文利用Neo4j的load CSV功能和Cypher語言批量建立路段節(jié)點(diǎn)與路段間的拓?fù)潢P(guān)系,再將靜態(tài)的路網(wǎng)知識引入,最終在Neo4j中建立路網(wǎng)拓?fù)鋱D。具體構(gòu)建流程如圖5所示。
圖5 路網(wǎng)圖譜構(gòu)建流程圖
2.2.4 知識融合
如圖4所示,僅由訂單軌跡形成的圖譜不足以表示司機(jī)從接單、行駛再到目的地的全過程,且難以體現(xiàn)軌跡特點(diǎn)。因此,本文將訂單行程數(shù)據(jù)形成的圖譜與路網(wǎng)拓?fù)湫纬傻膱D譜進(jìn)行知識融合,使訂單行程軌跡關(guān)聯(lián)到靜態(tài)路網(wǎng)上。本文將具有相同link id的訂單行程軌跡路段與路網(wǎng)中的路段建立關(guān)系,表達(dá)為路網(wǎng)中的路段在不同訂單軌跡下的狀態(tài)。狀態(tài)信息包括在此訂單下路段的通行時間、通行比例和路況狀態(tài)。經(jīng)過上述處理后,離散的訂單行程軌跡通過路網(wǎng)拓?fù)浔贿B續(xù)表示;同時,靜態(tài)的路網(wǎng)拓?fù)渚哂性诓煌唵蜗碌穆范螤顟B(tài)信息。訂單下的路段與靜態(tài)路網(wǎng)的連接關(guān)系如圖6所示。
圖6 知識融合后的圖譜
2.2.5 知識補(bǔ)全
僅交通路網(wǎng)不足以體現(xiàn)軌跡中蘊(yùn)含的交通知識,還需將路口等信息補(bǔ)充到交通路網(wǎng)中。訂單行程下的路口節(jié)點(diǎn)包含其所屬訂單編號、路口編號、路口通行時間和路口上下游路段的link id。基于路網(wǎng)拓?fù)潢P(guān)系,利用Python計算每個link節(jié)點(diǎn)的出入信息,綜合訂單行程下產(chǎn)生的路口信息,再通過Cypher語言將路口知識補(bǔ)充到知識圖譜中。
2.2.6 交通知識查詢
在構(gòu)建的司機(jī)出行知識圖譜上,可利用Neo4j的Cypher語言進(jìn)行交通知識查詢,可查詢司機(jī)歷史軌跡并通過Neo4j可視化界面對網(wǎng)約車軌跡進(jìn)行展示。對于某訂單的軌跡,可進(jìn)一步查詢軌跡中各路段在司機(jī)行駛時的狀態(tài),顯示相關(guān)狀態(tài)信息,如軌跡中各路段的通行時間、通行比例、路況和路口通行時間等。
本文構(gòu)建的司機(jī)出行知識圖譜將路網(wǎng)結(jié)構(gòu)與司機(jī)出行知識相結(jié)合,支持交通出行知識的查詢。本文采用自底向上的方式從結(jié)構(gòu)化數(shù)據(jù)中構(gòu)建司機(jī)出行知識圖譜,還原了軌跡大數(shù)據(jù)中的時空關(guān)系和語義關(guān)聯(lián),探索出了從關(guān)系型數(shù)據(jù)庫到知識圖譜自動轉(zhuǎn)換與構(gòu)建的路徑,可被擴(kuò)展應(yīng)用于其他領(lǐng)域的結(jié)構(gòu)化數(shù)據(jù),對推廣知識圖譜應(yīng)用起到了推進(jìn)作用。
未來考慮從司機(jī)的視角出發(fā),結(jié)合構(gòu)建的司機(jī)出行知識圖譜,還原司機(jī)從接單到行駛、再到達(dá)目的地的全過程,從中挖掘出有關(guān)于司機(jī)的交通知識。在司機(jī)接單推薦過程中,提供交通知識進(jìn)行決策;可查詢目標(biāo)起終點(diǎn)歷史軌跡,利用知識圖譜的異構(gòu)圖結(jié)構(gòu)并結(jié)合圖算法進(jìn)行軌跡推薦和時間預(yù)估等交通出行預(yù)測,使出行更加智慧、更加個性化。