雷永琪,李 娜,陳智軍,何 渡,張雨昂
(1.湖北大學 計算機與信息工程學院,湖北 武漢 430072;2.湖北省科技信息研究院,湖北武漢 430071)
新一代智慧城市環境下,傳統交通系統逐漸轉變為融合了技術支持、城市建設和交通變革的“智慧出行”[1]。作為城市的主要交通工具之一,出租車具有靈活和便捷等特點,可以滿足居民出行的一般搭乘需求[2]。然而,由于城市交通的動態時空變化及司乘信息不對稱等因素,出租車規模量和居民打車需求之間經常出現供需不平衡現象,大中型城市的居民出行普遍存在出租車等待時間長、打車困難等問題,亟需合理有效的解決方法[3]。
當前,絕大多數城市出租車都已具備GPS 定位設備,這使得出租車行車軌跡數據大量可得。海量出租車軌跡數據蘊涵著豐富的行駛規律,常被用來研究城市居民活動規律或城市畫像。鄭宇[4]提出“城市計算”理念,開啟了GPS軌跡數據挖掘的潮流;Deng 等[5]使用聯立方程模型基于城市整體的出租車數量、計價,乘客數量、等候時間等進行建模;基于網絡模型,Yang 等[6]對大面積區域之間的乘客流動進行建模,進而分析出租車運營的供求關系,并在供求平衡計算時對乘客的等候時間進行了預測;齊觀德等[7-8]以概率為落腳點,重新定義了出租車乘客候車時間,根據出租車歷史軌跡對某地某時段的候車時間進行建模,通過建立空駛出租車到達時間間隔的概率模型預測候車時長;Yuan 等[9]和Ma 等[10]基于改進的地圖匹配低頻采樣算法ST-Matching,提出基于投票表決的地圖匹配算法IVMM 和基于非齊次泊松過程的出租車乘車推薦模型,設計實現了T-Finder 系統、T-Share 系統,通過“拼車”解決出租車載客高峰期打車難的問題;Luis 等[11]提出一種使用增量規則的增量框架,給出一種能實時預測出租車乘客需求量的辦法;單雄宇等[12]通過分析出租車軌跡數據,通過聚類算法提取出租車載客熱點和計算空車到達時間,建立了對特定時間的特定載客熱點區域的乘客候車時間預測模型;王詔遠等[13]結合修復的GPS 數據和經驗分布規律,計算出在等待特征點和時間點的打車概率,并且建立了等待時間模型;朱東杰[14]在車載自組織網路由協議及路徑決策模型研究中,將車載自組織網絡(VANET)和海量出租車軌跡數據結合,模型基于最大似然估計將車輛到達率近似為分段線性函數,預測出租車乘客打車概率與打車等待時間;劉仰東等[15]在基于車流量的司乘推薦模型研究中,提出基于出租車軌跡的出租車流量模型,并利用綜合時間、天氣等因素優化模型,建立車流量與打車概率、等車時間之間的函數關系,以預測用戶所在位置的打車概率和等待時間;呂明等[16]通過對比小區內空駛出租車的總量與居民出行需求量,根據每個小區中不同的標記狀態計算其乘客平均等待出租車的時間,該方法適用的研究區域有一定要求。
現有研究成果能夠為城市居民打車提供一些科學的參考依據,但主要采用的是聚類和建模等傳統手段,尚未充分挖掘并利用出租車的行駛規律,預測的準確性仍需進一步提高。利用神經網絡方法學習海量軌跡數據中隱含的時空規律知識,可提高候車時長建模的準確性[17]。
基于以上分析,本文提出利用作息時空特征改進神經網絡的出租車乘客候車時長預測方法。本文以精細時空網格為單位,對城市興趣點、出租車軌跡數據和時間作息片段等多源數據進行融合,并利用作息時空特征優化神經網絡對出租車運載的時空規律進行建模,從而預測一定時空約束條件下的出租車乘客候車時長。本文方法的研究思路如圖1 所示。

Fig.1 Research thoughts圖1 研究思路
出租車GPS 數據包括數據ID、記錄時間、地理位置(經度和緯度)、行駛速度、行駛朝向、載客情況等信息。大量精度高、覆蓋面積廣和內容豐富的出租車軌跡數據成為研究城市居民出行規律的重要數據來源[18-19]。常見的關鍵出租車軌跡數據結構如表1 所示。

Table 1 GPS taxi trajectory data structure表1 GPS 出租車軌跡數據結構
表2 為常見出租車軌跡數據中的數據片段。其中,T_Status 表示出租車載客狀態標記,T_Status 為262 144 表示出租車為載客狀態,T_Status 為0 表示該時刻出租車為空駛狀態。

Table 2 Taxi trajectory data fragments表2 出租車軌跡數據片段
出租車作為城市公共交通的重要參與者,在生活、工作與出行等方面扮演越來越重要的角色,是維持城市交通正常運行的重要螺絲釘。城市居民的作息時間、城市功能區域分類都反映出租車行車規律在城市中不斷變化的靈活性、動態性[20]。
作息時空規律描述了城市居民生活、工作、學習和活動等各方面的時間空間特點,它是受城市生活習慣、人文環境、自然地理條件和社會經濟水平等影響而形成的社會性特征。城市中的生活主體主要由國家公務員、專業技術人員、商務管理人員、個體營業者、上班族、學生、工人、退休人員和其他職業者組成[21-22]。由于居民工作日、節假日(包括周末和法定節假日)和乘車點的功能區類別是影響出租車乘客候車時長的主要因素[23-24]。因此,本文將軌跡數據記錄根據時間標記為工作日和節假日兩類,以區分不同時間特征片段的數據差異。同時,根據出租車所在城市網格的功能區屬性標識數據記錄的空間特征,以便為神經網絡模型提供空間規律的學習依據。
節假日城市居民的作息時空特征與在工作日時有明顯區別。清晨05:00—08:59,城市居民大多處于休息狀態,僅小部分居民有出行等活動;09:00—13:59 大部分居民陸續有外出活動,是節假日一天中的早高峰;14:00—17:59,居民一般會有就餐和逛街等活動需求;18:00—23:59 時間段是節假日一天中居民活動最頻繁的晚高峰時期,包括夜晚用餐、出行及返家等出行活動;24:00—04:59,屬于午夜時間段,居民一般處于睡眠狀態。如表3 所示,將節假日一天24 小時按照城市居民的作息時空特征劃分為5個時間片段并記上不同的標簽。
工作日是勞動者在法定限度內應當從事勞動或者工作的時間,是工作時間的基本形式。一般在工作日中,務工人員和學生的作息時空特征具有相似性和重合性。工作日中,將夜晚分為上半夜和下半夜,上半夜為23:00—03:59,此時城市居民基本都處于睡眠狀態;下半夜為04:00—06:59,此時一些個體營業者如早餐店經營者、環衛工人等已經開始工作。07:00—08:59 是城市居民一天中出行的第一個高峰期,稱為早高峰,在此期間,學生和上班族都需外出上學或上班。09:00—11:59 為學生在校學習時間段,也是絕大部分上班族和其他職業者的工作時間,居民的出行活動在該時間段中趨于穩定。12:00—14:29 為午休時間段,人們有出行就餐或者短時間回家等活動,城市居民處于出行的小高峰。14:30—17:30 是下午上學和上班時間段。17:31—20:59,學生放學、上班族下班或者逛街購物等外出活動,是一天中的第二個高峰期,稱為晚高峰。21:00—22:59 時間段內,居民一般會結束晚間活動回家休息。如表4 所示,將工作日中一天24 小時按照城市居民作息時空特征劃分8 個時間片段。

Table 3 Holiday time sliced data set表3 節假日時間分片數據集
本文采用的高德城市PO(IPoint of Interest)數據包含了公司、購物、教育、商業住宅、風景、餐飲、公共設施、交通設施、生活、體育、醫療、政府和住宿等共計14 張表格。基于該數據,本文進一步將POI 細分為餐飲服務、公共設施、購物服務、商務住宅、生活服務、體育休閑服務、風景名勝、科教文化服務、私人診所與專科醫院、住宿服務、政府機構及社會團體、公司企業、ATM 與銀行、停車場、大型商圈、大型醫院、大型場館和公交車站等19 種類別。由于一些體育館、科技館、少年宮等大型場館、大型商圈、景區和綜合醫院的活動規律對節假日和工作日的依賴程度較大,將景區、大型場館、大型商圈和綜合醫院歸納為特殊功能區類。最終形成的興趣點類別如表5 所示。功能區類型數據結構如表6 所示。

Table 4 Workday time sliced data set表4 工作日時間分片數據集

Table 5 Urban functional areas category data set表5 城市功能區類別數據

Table 6 Time slice data structure表6 功能區類型數據結構
考慮到同一個地理網格可能存在多個功能區屬性,本文通過綜合經濟引力、交通可達性和金融聯系網絡3 個維度,基于城市間經濟流、人流和物流、資本(金融)流等要素相互作用的強度,確定每類功能區主導地位權重[25]。根據單位網格中主導地位權重高低,確定網格功能區類別為其最高級別的優先級。
以不破壞房屋和道路結構為前提,綜合考慮城市規劃布局、地理地形和資源配置等影響出租車乘客候車時間的因素,將完整的行政地圖按照規定大小的單位矩陣劃分為若干個矩陣,即地圖網格[26]。地圖網格細節如圖2 所示。

Fig.2 Mapping gridding圖2 地圖網格化
地圖網格數據信息包括網格序號和網格中心點坐標(經度和緯度)。基于單位網格大小和網格中心點坐標,根據經緯度和米的換算公式得出:
經度(東西方向)1m 的實際度:

緯度(南北方向)1m 的實際度:

根據式(1)、式(2)可以計算得到網格中經度的最小值、最大值和緯度的最小值、最大值,分別記為Longi?tude_min、Longitude_max、Latitude_min 和Latitude_max。本文地圖匹配采用點到線匹配的九宮格網格,這是一種基于普通網格算法擴展的匹配算法。在設計網格大小時,主要考慮到打車點周圍環境因素對空載出租車停車的影響,即在大多數情況下,50m*50m 范圍內的環境因素較為一致,而超過該范圍,容易出現不同的停車周邊環境,可能影響到空車停車的決策。如,紅綠燈附近,出租車無法停靠;公交車站周圍30m 內,出租車無法停車等。鑒于此,本文九宮格由9 個邊長為50m 的正方形組成。每個網格所在的值都已在圖中標識出來,如圖3 所示。

Fig.3 Nine-grid geographic information圖3 九宮格網格地理信息
地圖網格信息表格式及含義如表7 所示。fishnet_id 表示網格id,POINT_X 表示網格中心的x坐標,POINT_Y 表示網格中心的y坐標。

Table 7 Map grid information data表7 地圖網格信息數據
地圖網格信息表中的數據片段如表8 所示。

Table 8 Map grid information data fragment表8 地圖網格信息表數據片段
根據出租車軌跡數據中記錄的GPS 定位信息(經度、緯度)與地理網格信息對比匹配,尋找出租車軌跡點所屬網格號。此外,根據軌跡數據中的時間點和日期,對照節假日和工作日不同的時間片段分類,標記所屬時間片段。最后,通過行政地圖網格化的操作實現出租車連續軌跡離散化,將候車時間數據、POI 數據、出租車軌跡數據、作息時間數據和地理空間數據,根據時間和空間數據匹配對比后映射至每個網格中,使得每個單位網格都包含融合的多源數據。多源數據融合后的軌跡數據片段如圖4 所示。

Fig.4 Data fragment of multi-source data fusion圖4 多源數據融合的數據片段
由上文可知,根據出租車軌跡數據中空駛狀態(T_Sta?tus 為0)出租車出現在該網格中的記錄時間(T_UTCTime),根據式(3),可計算出租車乘客的候車時長。

根據之前分析的作息規律,結合網格區域特征,歷史軌跡數據被劃分為若干個時空片段,每一個軌跡時空片段即為該時間段中該區域網格的軌跡數據,這些時空片段作為神經網絡模型的訓練數據[27-28],式(3)中的候車時長表示單位網格中乘客的候車時間。
靳蕃[29]提出:只要有一個隱藏層的三層BP 神經網絡,就可以無限接近任何映射函數并完成給定的映射任務。本文比較不同隱藏層的層數分別為1、2、3、4 時,作息時空特征約束神經網絡模型結果。
由表9 可知,當隱藏層節點數為3 時,模型精度最高。因此,本文模型基于一個五層結構的全連接網絡的神經網絡建立相關模型,對乘客候車時長進行預測。模型拓撲結構如圖5 所示。

Table 9 Error table for different hidden level表9 隱藏節層數對應誤差
多方位分析影響出租車上下車點變化的因素,便于從出租車軌跡數據中發現規律、歸納特征,從而為本文在構建算法模型時提取實際影響乘客候車時長的元素,并為乘客推薦候車點提供科學合理的決策依據。
本文神經網絡模型的特征輸入值選取了4 個主要影響該網格內出租車乘客候車時長的因素,分別標記為:X1是基于城市居民作息特征的所屬時間片段,X2是基于POI 數據劃分的城市功能區類別,X3標記該天是否是節假日,X4是判斷該網格是否處于大型商圈、大型場館和綜合醫院等特殊地點。輸出層為唯一神經元輸出Y,表示乘客在網格中等待第一輛空駛出租車所需要的時間。由于Relu 函數分段線性的特征,該函數的負值都為0,而正值不發生改變,即單側抑制。使得神經網絡中的神經元也具有了稀疏激活性,更容易學習優化。對于非線性函數而言,Relu 函數由于非負區間的梯度為常數的特性,克服了梯度消失問題(Vanishing Gradient Problem),使得模型收斂速度維持在一個穩定狀態。Relu 函數公式如式(4)所示,Relu 函數的圖像如圖6 所示。


Fig.5 Topological structure of neural network圖5 神經網絡拓撲結構

Fig.6 Relu activation function diagram圖6 Relu 激活函數圖像
自適應性矩估計(Adaptive Moment Estimation,Adam)的基礎是訓練數據迭代更新神經網絡權重的一階優化算法,結合了自適應梯度算法和均方根傳播算法最優的性能,它還是能提供解決稀疏梯度和噪聲問題的優化方法,可以替代傳統隨機梯度下降(Stochastic Gradient Descent,SGD)算法。其核心是初始化偏差修正項,偏差修正項可基于一階矩估計和二階矩估計推導,更適合解決本文這類大規模數據問題。本文模型使用自適應學習率優化算法Ad?am 對網絡參數進行更新。
本文針對為出租車乘客推薦候車點的問題,基于大量融合后時空軌跡數據的時空特性,提出一種候車點推薦算法。詳細分析居民作息時間規律特征和城市功能區的類型特征,提出影響候車時長的主要因素;通過對時間特征標記獲取工作日或節假日等信息,通過定位數據結合POI標記乘客所處地點的功能區類型,判斷是否處于大型場館、商圈或者綜合醫院。乘客所處的動態時空環境信息直接影響著出租車運載規律。本文模型預測流程如下:
步驟1:將網絡初始化,輸入特征值歸一化處理,如式(5)所示。

步驟2:神經網絡正向傳播,計算預測結果。式(6)、式(7)分別為隱藏層和輸出層的輸出公式。Xi為輸入層的值,Wij和Wjk是隱藏層和輸出層對應神經元的權值矩陣,b為神經元的偏置。

(fx)函數為Relu 激活函數,如式(8)所示。

步驟3:利用梯度下降計算每一個神經元的損失。權值和偏置損失如式(9)、式(10)所示。

其中,Ed為損失函數,如式(11)所示,y 表示神經網絡的預測值,y_表示實際值,η 為學習率。

步驟4:神經網絡反向傳播誤差信息,更新每個神經元的權值和偏置,如式(12)和式(13)所示。

基于優化神經網絡的出租車乘客候車時間預測流程如圖7 所示。
本文動態計算模型主要步驟包括:①將用戶提交的時間、空間信息,轉換為時間分片數據、節假日工作日類型數據、城市功能類型數據和是否特殊地點數據;②將步驟①的4 種數據標記為模型輸入特征值;③若用戶的時間空間信息發生變化,則需要重復步驟①、步驟②;④根據輸入特征值模型得到計算結果,即乘客的預測候車時長。
基于優化神經網絡的出租車乘客候車時間預測算法偽代碼如下:
預測模型算法
input:乘客時間信息Tu,乘客空間地理信息Su
output:乘客候車時長Lu
1.初始化定期更新時間“T”
2.for(每隔時間T)
3.while(Tuor Su發生改變)
4.計算根據Tu和Su信息,得到該網格中乘客時長Lu
5.end for

Fig.7 Work and rest spatio-temporal feature optimization neural network flow圖7 作息時空特征優化神經網絡流程
本文實驗的硬件環境是Inte(lR)Core(TM),i7-8550U CPU@ 1.80HZ,Windows 10,8G 內存;軟件環境為Py?thon3.5,TensorFlow1.7.0 和Keras 框架。
實驗選取2014 年2 月13 日至2014 年2 月19 日湖北省武漢市武昌區的出租車軌跡數據,經過異常數據清洗剔除后得到出租車軌跡數據共6 705 086 條,該時間段內涵蓋工作日、節假日和特殊節日(情人節),數據具有典型代表性且穩定。
武昌區地理位置為東經114°14'~114°30',北緯30°32'~30°37',按照50m*50m 單位使用ArcGIS 10.3 一共劃分了84 048 個網格。武昌區內共有POI 數據34 195 條,作息特征網格化后軌跡數據共有6 705 086 條,選擇其中5 705 086條數據作為訓練數據,1 000 000 條數據作為測試數據。實驗針對處在不同時間片段和功能區的出租車進行預測,由于平均絕對誤差(Mean Absolute Error,MAE)直觀反映實驗預測結果與實際值的偏離程度,因此選用MAE 對實驗結果進行評估,如式(14)所示。

式(14)中,N 表示實驗結果個數;yi表示出租車乘客的候車時長;yi' 表示乘客等到第一輛空車的預測時間。
根據表4 將工作日中連續的24 個小時劃分為8 個時間片段;表3 將節假日中連續的24 個小時劃分為5 個時間片段。系統對工作日和節假日中出租車乘客等待時間進行預測,根據實驗結果和預測結果計算不同時間片段的平均絕對值結果如圖8 所示。

Fig.8 Prediction effect of different time segments圖8 不同時間片段的預測效果
圖8 中,不同時間片段預測得出的MAE 值在一定范圍內,最差效果的MAE 值為105s,即乘客在任意時間片段等待第一輛空駛出租車的時間預測平均誤差不超過2min,誤差范圍屬于理想范圍[30]。因此,出租車乘客在不同時間片段內都可通過本文算法模型預測出比較準確的出租車乘客候車時長。
根據上文將城市功能區劃分為19 種類別。本文模型針對所處不同功能區類別的乘客等待時間進行預測,按照分類其平均絕對誤差如圖9 所示。

Fig.9 Prediction effect of different functional areas圖9 不同功能區的預測效果
由圖9 可以看出,不同功能區的預測MAE 值在一定范圍內,最差效果的MAE 值為116s,即乘客在任意功能區等待第一輛空駛出租車的時間預測平均誤差不超過2min,說明通過本文算法模型可以計算出誤差較小的出租車乘客候車時長。
乘客在不同功能區內等待出租車都可通過該模型預測出誤差較小的候車時長。即模型不考慮空間特征因素對預測結果的影響時,模型的預測結果與原始模型的預測結果相比,準確率降低。由此可得,時間和空間因素影響出租車乘客候車時長。
原始未優化的三層BP 神經網絡算法模型屬于一種“有教師學習的”的多層前饋網絡,采用誤差逆傳播進行網絡訓練,本質上是在訓練過程中尋求誤差最小化并對網絡連接權值進行調整與優化,從而對乘客候車時長進行預測。文獻[13]中提出的基于經驗分布預測等待時間的算法模型適用于經驗分布,模型簡單、計算量少,適用于大數據處理,通過修復后的大量GPS 數據進行基于經驗分布模型統計和計算后得到乘客候車時長。上述兩種算法模型均未充分挖掘出出租車的行駛規律,候車時長的預測準確性有待提高。
通過使用本文提出的算法模型、原始未優化的三層BP神經網絡算法模型和文獻[13]中提出的基于經驗分布預測等待時間的算法模型,分別記為SF1、SF2 和SF3。實驗數據統一為6 705 086 條,為了提高實驗結果的可信度,添加準確率作為評價指標之一。
其中,wt表示真實值,wp表示模型預測值,acc表示模型預測結果準確率。算法模型的MAE 值和準確率如圖10 所示。

Fig.10 Experimental result graphs of different algorithm models圖10 不同算法模型實驗結果
由圖10 可知,本文提出的作息時空特征優化神經網絡算法模型即SF1,MAE 值為58.7,其準確率為92.4%;原始未優化的三層BP 神經網絡算法模型即SF2,MAE 值為112.3,該模型的準確率為58.3%;文獻[13]中模型即SF3,MAE 結果為76.6,準確率為68%。
根據模型預測結果比較可知,本文提出利用作息時間特征優化神經網絡的出租車候車時長預測模型能夠提高預測出租車乘客候車時長的準確率,減小誤差。
為了直觀展示本文模型的作用,基于作息時空特征優化神經網絡模型,開發了出租車打車決策原型APP。如圖11 所示,某乘客在此時所處位置選擇打車,預計需要等待4.5min 才會有第一輛空駛出租車經過。在一定半徑范圍內,原型APP 還根據預測的候車時間長度進行長度倒排序,優先為用戶推薦等待時長最短的乘車點。

Fig.11 Application effect of waiting time model in mobile APP圖11 等待時間模型在手機APP 中的應用效果
影響出租車乘客候車時間的因素有很多,比如城市交通發展戰略、出租車運營利潤和城市交通基礎設施等因素,都會對乘客候車時長產生影響。結合軌跡數據和城市居民的作息時空規律,通過比較分析改進神經網絡建模的預測結果與實際數據,證明了本文模型的適用性、準確性和有效性。本文模型有助于確保空駛出租車與乘客之間的供需一致性,幫助乘客提前預判候車時長,極大提高了打車成功率,促進城市居民的智慧出行。然而,本文模型僅考慮到時間和空間因素對打車的影響,后續研究將進一步展開空氣質量和天氣狀態等因素對出租車候車等待時長的影響。