【論文筆記】基於DQN和知識遷移的訂單分配模型

本文是論文《Deep Reinforcement Learning with Knowledge Transfer for Online Rides Order Dispatching》的閱讀筆記。

一、介紹

文章把訂單分配問題建模成一個 MDP,並且提出了基於 DQN 的解決策略,爲了增強的模型的適應性和效率,文章還提出了一種相關特徵漸進遷移(Correlated Feature Progressive Transfer)的方法,並證明了先從源城市學習到分配策略,然後再將其遷移到目標城市或者同一個城市的不同時間的方法,比沒有遷移的學習效果要好。

訂單分配問題有兩個挑戰,第一個挑戰是提升訂單分配的效率,另一個挑戰是模型的可拓展性。之前的模型通常通過按照城市來將訂單分配問題分解爲小問題,將訂單分配問題建模成一個 MDP,並通過離散的基於表格的方法進行求解,但是爲每個城市構建一個模型並進行訓練也是不太現實的。這種方法存在三個問題:

  • 存在很多實時變化的因素,諸如交通的供需情況,這對於基於表格的方法來說是很難實時的考慮並處理的;
  • 不同城市的出行過程被看作是具有相同結構的不同 MDP,而基於表格的方法不能實現在不同城市之間的知識遷移;
  • 訓練的收斂往往需要很長的時間。

由於強化學習的方法在訓練初期通常學習速度很慢,所以利用相關的先驗知識進行遷移極大的提升了學習的效率。

二、MDP

智能體是從司機的角度來定義的,智能體主動去尋找適合當前司機的訂單。一次出行包括接車和把乘客送到目的地兩部分,然後司機就可以獲得即時獎勵,當然司機也可能是空閒的,此時收益爲0。

狀態 ss 包括司機的地理位置和當前的時間(單位是秒),用 s:=(l,t)s:=(l,t) 表示,其中 ll 是司機的經緯度,tt 是當前時間。除此之外,狀態還可能包括一些額外的信息 ff,如供需狀態、附件訂單的完成情況等,此時狀態表示爲 s:=(l,t,f)s:=(l,t,f)

動作 aa 將訂單分配給一個司機,用 s0:=(l0,t0,f0)s_0:=(l_0,t_0,f_0) 表示當前的狀態,用 s1:=(l1,t1,f1)s_1:=(l_1,t_1,f_1) 表示到達目的地後的狀態,那麼行爲可以表示爲 a=(l1,t1)a=(l_1,t_1),所有的行爲空間表示爲 A\mathcal{A}

收益 rr 一趟旅程的總收入,是關於狀態和動作的函數。

episode: 把一天看作一個 episode。

狀態-行爲值函數 Q(s,a)Q(s,a) 是一個 episode 內司機的累計收益的期望,表示爲 Q(s,a):=E[t=0TγtR(St,At)S0=s,A0=a]Q(s, a):=E\left[\sum_{t=0}^{T} \gamma^{t} R\left(S_{t}, A_{t}\right) | S_{0}=s, A_{0}=a\right]S,A,RS,A,Rs,a,rs,a,r 的隨機變量。TT 是到達終點狀態經過的步數,把時間劃分爲10分鐘爲一步。

策略 π(as)\pi(a|s) 是從狀態到行爲的一個映射,關於 Q(s,a)Q(s,a) 的貪心策略表示爲 π(s):=argmaxaQ(s,a)\pi(s):=\arg \max _{a} Q(s, a)

狀態值函數 V(s)V(s) 從某個狀態 ss 開始,按照策略 π\pi 採取行動,一個 episode 內司機所得到的累計收益的期望。當採取關於 Q(s,a)Q(s,a) 的貪心策略時,狀態值函數爲 V(s):=Q(s,π(s))=maxaAQ(s,a)V(s):=Q(s,\pi(s))=\max_{a\in\mathcal{A}}Q(s,a)

三、帶有行爲搜索的 DQN

1. 模型

爲了提升訓練的穩定性,使用了 Double-DQN,並使用用戶的歷史出行數據來進行訓練,同時簡單的合成了一些數據用作數據增強。

2. 行爲搜索

通過構造行爲的近似可行空間 A^(s)\hat{\mathcal{A}}(s) 來近似求解 Q(s,a)Q(s,a),文章不是在所有的有效動作中進行搜索,而是從 ss 附近的歷史行程中搜索
A~(s):={xs1xX,B(xs0)=B(s)} \tilde{\mathcal{A}}(s):=\left\{x_{s_{1}} | x \in \mathcal{X}, B\left(x_{s_{0}}\right)=B(s)\right\}
其中 X\mathcal{X} 是所有行程的集合,B(s)B(s)ss 所屬的離散的時空,文章將地區劃分成多個六邊形倉,每個六邊形倉由其中心點座標表示,搜索空間越大,需要的計算時間就越長,所以文章把搜索時的行爲數設成一個可訓練的參數。在策略估計時,也是用類似的搜索過程,那時會利用歷史出行數據來模擬司機一天的軌跡。

行爲搜索的僞代碼如下:

3. 拓展行爲搜索

在早上時在一個偏遠地區進行搜索可能會返回一個空集,這時就需要在時間和空間上進行拓展動作搜索。第一種搜索方向是保持下車的位置不變,等待下一輪進行搜索,直到以下情況的一種發生:

  • 如果 A^(s)\hat{\mathcal{A}}(s') 非空,則返回 A^(s)\hat{\mathcal{A}}(s')
  • 如果到達終止狀態,則返回終止狀態
  • 如果 sts'_t 超過了等待時間的上限,則返回 ss'

第二種搜索方向是通過分層的方式對當前位置的相鄰六邊形進行拓展搜索,定義 LL 層的時空倉爲 B(s,L)B(s,L),源自該時空倉的歷史出行數據的集合爲:
A~(s,L):={xs1xX,B(xs0)B(s,L)} \tilde{\mathcal{A}}(s, L):=\left\{x_{s_{1}} | x \in \mathcal{X}, B\left(x_{s_{0}}\right) \in B(s, L)\right\}
A~(s,L)\tilde{\mathcal{A}}(s, L) 非空時,則停止增加 LL,並返回 A~(s,L)\tilde{\mathcal{A}}(s, L);反之返回 B(s,Lmax)B(s,L_{max}),即六邊形倉的中心點及其相應的時間。LmaxL_{max} 是用來控制搜索空間的最大層數。

4. 終止狀態值

當一個 episode 結束時,無論位置如何, Q(s,a)Q(s,a) 的值應該接近於0,在每次訓練的開始,將 s1s_1 作爲終止狀態放入回放池中,這樣可以加快收斂。

5. 在多司機匹配環境下的配置

我們將調度窗口中收集的訂單分配給一組司機,以最大化分配的總價值。
argmaxaAsSQ(s,a(s)) \arg \max _{a \in \mathcal{A}^{\prime}} \sum_{s \in \mathcal{S}} Q(s, a(s))
其中 a(s)a(s) 是從多個訂單中選擇一個訂單分配給司機 ss 的分配函數,A\mathcal{A}' 是所有分配方程的空間,SS 是空閒司機的集合,訂單和司機的匹配可以看作是二分圖匹配問題,可以用 KM 算法來解決。

6. 表格形式中的狀態值

Q(s,a)Q(s,a) 可以用 r+V(B(s))r+V(B(s')) 來採樣近似,A:=r+V(B(s))V(B(s))A:=r+V(B(s'))-V(B(s)) is the advantage associated with the trip assignment x and is used as the edge weights.

V(B(s)):=maxaA~Q(s,a)V^{*}(B(s)):=\max _{a \in \tilde{\mathcal{A}}} Q^{*}(s, a)

Vπ(B(s)):=meanaA~Qπ(s,a)V^{\pi}(B(s)):=\operatorname{mean}_{a \in \tilde{\mathcal{A}}} Q^{\pi}(s, a)

四、多城市遷移

考慮三種遷移學習的方法:微調、漸進網絡(progressive network)和相關特徵漸進遷移(CFPT),遷移學習共同的思想是利用從源城市學習到的參數應用的目標城市。

  • 微調: 先在源城市訓練網絡,然後再將訓練得到的網絡權重在目標城市網絡中使用,參數在反向傳播時微調。

  • 漸進網絡: 通過與目標網絡的橫向連接利用訓練權重,連接函數爲:
    hi(t)=f(Wi(t)hi1(t)+Ui(c)hi1(s)) h_{i}^{(t)}=f\left(W_{i}^{(t)} h_{i-1}^{(t)}+U_{i}^{(c)} h_{i-1}^{(s)}\right)
    其中 Wi(t)W_i^{(t)} 表示目標網絡第 ii 層的權重矩陣,Ui(c)U_i^{(c)} 表示來自源任務網絡的橫向連接權重矩陣,hi(t)h_i^{(t)}hi(s)h_i^{(s)} 表示目標網絡和源網絡第 ii 層的輸出。f()f(\cdot) 是激活函數。

    如圖三中 Progressive 圖所示,首先訓練一個源網絡(綠色),然後將其乘以橫向連接權重連接到目標網絡(藍色),在目標網絡的訓練過程中源網絡(綠色)的權重保持不變。

  • CFPT: 由於狀態空間是十分多樣的,所以並不是所有的狀態元素對於不同的城市都適應。按照圖四爲源城市訓練一個平行的漸進結構,其連接函數和橫向連接中用到的相同。網絡的輸入也分成了兩部分:ss 表示那些直覺上不適應目標城市的元素,ff 表示那些適應目標城市的元素。目標網絡和源網絡結構相同,並且重用源網絡中漸進部分(圖四中綠色的塊)的權重。CFPT 的創新性在於當訓練源網絡時,把網絡分成了兩個平行流,下面的流只關心輸入 ff。我們將相關特徵輸入 ff 看作是時空位移向量和實時上下文特徵之間的連接,三元時空位移向量通過 (s1s0)(s_1-s_0) 計算得到,

    五、實驗

    爲了實現對目標城市的魯棒有效的網絡訓練,文章進行了兩種類型的遷移實驗,包括空間遷移和時間遷移。在空間遷移方面,將 A 市作爲源城市,將其他三個城市作爲目標城市。對於時間遷移,以一個月數據訓練的城市模型爲源,以一個月後數據訓練的同一城市模型爲目標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章