胡桂銀 翟東君
1(安徽師范大學計算機與信息學院 安徽 蕪湖 241008) 2(網絡與信息安全安徽省重點實驗室 安徽 蕪湖 241008) 3(蘇州大學計算機科學與技術學院 江蘇 蘇州 215006)
隨著移動設備的大量普及,空間眾包已經從衣食住行各個方面融入人們的生活。相對于傳統眾包,空間眾包增加了對位置的相關約束,意味著工人需要移動到指定的地點才能完成相應的任務。配備了各種各樣傳感器的移動設備的普及使得空間眾包融入到了人們的生活,由于空間眾包充分利用了工人的靈活性,且空間眾包的成本遠遠低于雇傭專業人才,因此空間眾包具有廣泛的發展前景。空間眾包中最重要的研究方向是任務分配。任務分配是指在滿足一定約束的前提下,將空間眾包平臺收集到的任務分配給合適的工人,例如,外賣平臺將配送訂單的任務分配給合適的騎手。目前的相關研究大多集中在優化空間眾包平臺的整體效益上,例如旅行開銷[1-2]、任務完成質量[3-4]和任務分配數量[5-6]等。為了簡化算法設計,目前大多數任務分配方法都假設平臺上的任務和工人是固定不變的。然而,在實際應用中這種假設過于簡單,無論是工人還是任務都在實時動態地變化,這種動態性與任務完成的質量和效率息息相關。如果一個空間眾包系統在進行任務分配時僅考慮當前時刻系統內的工人和任務,無論采取哪一種任務分配機制,都只能達到局部最優解。如果能捕捉到空間眾包中動態性并用于任務分配,那么將會形成一種三贏的局面:工人可以提前到達任務現場,完成更多的任務;任務發布者的任務會被更快地完成,從而具有更好的用戶體驗;平臺能夠有效配置工人資源,提高平臺的總收益。
如果平臺想提供更優質的服務,必須考慮工人和任務在將來一段時間內是如何分布的,即考慮工人和任務的預測問題。為了利用預測信息,兼顧工人、任務發布者和平臺三方的收益,需要設計一種合理的任務分配機制。
基于上述動機,本文設計一種同時考慮多方利益的任務分配機制。基于預測信息設計了合理的路徑規劃方案來提高工人順風型任務所獲得的任務訂單數量,同時為了保證任務發布者的用戶體驗,按一定的任務完成效率比來限制工人不能無限制地行動,進而防止任務完成時間無限制延長。通過實驗驗證了模型的有效性。
任務分配一般分為兩種模式:服務器分配模式(SAT)和工人自主選擇模式(WST)。WST模式是指服務器發布空間眾包任務,工人直接選擇任務去執行。SAT模式則是由服務器收集工人信息并且基于這些信息為工人分配任務。
在WST模式下如文獻[7-8]允許用戶瀏覽和接收可接受的空間任務。這種模式不需要用戶上傳自己的隱私數據,在一定程度上可以保護用戶的隱私,但是會造成獎勵低或者距離遠的任務長期不被工人選擇完成的情況。在SAT模式下如文獻[9]給出了一種考慮簡單度量標準的解決方案,比如最大化服務器端分配任務的數量。文獻[10]提出了一種基于離線指導的在線任務分配框架,將離線預測方法與實時任務分配策略相結合,能夠在維持高效任務分配效率的同時最大化任務分配數量。文獻[11]考慮了移動用戶可能拒絕執行眾包平臺分配的任務這一情況,提出了最大化任務接受率的問題,并設計了兩種任務分配機制來解決這一問題。文獻[12]考慮如何使得任務發布者和工人雙方利益最大化。
與WST相比,SAT能夠從更加全局的視角控制任務分配,為每個工人提供均衡的工作負載,因此SAT更加受到研究者的重視。然而無論WST還是SAT,這些方法都沒有很好地利用預測信息,也沒有同時考慮工人、任務發布者和平臺三方的利益。
在實際生產生活中,任務通常是隨機動態到達的,因此增加了預測的困難性。機器學習近年來被廣泛地應用于各種各樣的預測問題。深度神經網絡,例如卷積神經網絡(CNN)、循環神經網絡(RNN)使得對具有復雜時空特性的問題的建模變得簡單。在空間眾包的相關問題研究中,文獻[13-14]對工人從接收到任務到到達任務地點所需的旅行時間進行了預測。文獻[15-16]對降水概率進行了預測。文獻[17]對人員流動性進行了預測。
文獻[18]將一整個城市區域劃分為網格,提出了一個名為ST-ResNet的模型對不同網格區域上進出車流量分別進行了預測。其中,模型運用卷積神經網絡對空間依賴性進行建模,使得模型可以學習到任意兩個區域間的相關性,然而卻忽略了對時間依賴性的建模。文獻[19]使用局部卷積神經網絡對具有強相關性的近鄰區域進行建模,對于弱相關性的區域使用了表示學習的方法來刻畫整個區域的語義信息,對于時間依賴性的建模使用了長短期記憶神經網絡。然而在研究過程中,可以發現在任務預測問題中,長短期記憶神經網絡無法很好地捕獲時間依賴性。
本節介紹使用的預測模型——序列化時空殘差網絡[20]SeqST-ResNet(Sequential Spatial Temporal ResNet)——是一種深度神經網絡模型,如圖1所示,用于捕獲序列化的時間和空間特征。

圖1 預測模型結構
由于準確地預測任務的出現時間和地點十分困難,在該模型中將預測目標松弛到預測特定時空范圍內的任務出現次數。將一個特定區域的地圖劃分為H×W的網格。其中H和W的數值由需求決定。這種網格劃分在很多時空問題中得到了廣泛的應用。任務分布圖是由每個網格中特定時空范圍出現次數組成的矩陣X。
給出歷史記錄中的任務分布圖{X0,X1,…,Xt-1},預測模型的目標就是預測下一時刻的任務分布圖Xt。
模型主要包括五個部分:輸入層、卷積層、殘差單元、合并層和融合層。
組件的輸入層是任意一種粒度的序列數據,如下:
時間片粒度:{Xt-n,Xt-n+1,…,Xt-1}
(1)
周級粒度:{Xt-n×p,Xt-(n-1)×p,…,Xt-p}
(2)
天級粒度:{Xt-n×q,Xt-(n-1)×q,…,Xt-q}
(3)
式中:p=48,q=48×7,表示將每一天劃分為48個時間片,每一周劃分為48×7個時間片。
卷積層可以用來捕獲空間依賴性信息,任務分布圖可以看作一幅圖片,經過卷積層后的輸出如下:
X(1)=f(W*X(0)+b)
(4)
式中:W和b為模型學習到的參數;*表示矩陣的哈達瑪乘積運算。
形式上,殘差單元可以給出如下定義:
Xl=Xl-1+F(X)
(5)
式中:Xl和Xl-1分別代表了一個殘差單元的輸出和輸入;函數F(·)是一個包含了很多卷積層、BN(Batch Normalization)操作以及一ReLU激活函數的殘差函數。BN操作具有很多優點,包括訓練更快、可以設置更高的學習率、易初始化網絡權重、具有正則化效果、提高網絡性能等。
合并層用于將任務分布圖一幅一幅地按照順序吸收進模型組件。
(6)
融合層用一種簡單的基于參數矩陣的方法合并三個序列的輸出,令Xc、Xp、Xq分別為時間片粒度、周級粒度和天級粒度的輸出,則融合層輸出為:
Xout=Wc×Xc+Wp×Xp+Wq×Xq
(7)
預測模型使用Adam優化算法,學習速率設定為0.003,批處理大小設定為16,卷積核的大小為3×3,對于每種粒度的輸入層序列數據長度設定為3,殘差單元L長度設定為5,更多模型細節請參照文獻[20]。
本節研究并提出一種任務分配算法,能夠合理地利用預測模型產生的預測信息為工人合理規劃路線,同時考慮了任務發布者的用戶體驗問題,對任務訂單的完成效率比設定了限制。
在說明順風型任務訂單含義之前,給出一些相關定義。

任務訂單:用o=

(8)
當任意兩個任務訂單同時被分配給一個工人時,為了保證所有用戶的用戶體驗,空間眾包平臺為工人所規劃的訂單必須保證任意任務訂單的完成效率比不能夠超過一定閾值θ。為了保證這一限制,當想要為工人分配一個新任務訂單時,需要考慮新任務訂單是否與原本所有任務訂單均兼容。為此提出順風型任務分配和順風型任務訂單的概念:順風型的任務分配是指在與工人完成當前所進行的任務訂單的路徑、時間不沖突的條件下進行任務分配,一個任務訂單與其他訂單兼容(不沖突)可以稱作原訂單的順風型任務訂單。

為了使工人能夠盡可能多地獲得順風型任務訂單,需要基于預測信息給工人提供指導,即為工人提供一個路徑規劃,使得路徑上所有區域上在目標時刻的預測的任務分布圖中的任務數量最大,即優化目標為:
(9)
式中:E(pi)為目標時刻任務分布圖的預測結果Xt中pi區域的任務數量;pi∈P,P={p1,p2,…,pn}。
本文采用動態規劃來解決路徑規劃問題。
令O={o1,o2,…,on}為工人當前擁有的任務訂單集合,工人一直遵循之前所規劃的路徑,到達了某個點,此時恰好有個新任務到來o=
(10)
此時需要計算新任務訂單是否滿足順風型任務分配策略,首先需要計算完成任務的時間上限CTi(Cell Time)為:
(11)
那么,為了完成后續每個任務所剩余的可消耗時間RTi(RemainTime)為:
(12)

那么此時需要為os到oe′之間規劃順風型任務訂單數量期望最大的路徑。用t表示從os到某一點u所需的旅行時間,令node是與點u相連的一條邊的另一端點,若t+δ(u,node)