張宇,程旻
(1.北京理工大學(xué)信息與電子學(xué)院,北京 100081;2.上海機電工程研究所,上海 201109)
隨著互聯(lián)網(wǎng)業(yè)務(wù)的蓬勃發(fā)展,網(wǎng)絡(luò)的業(yè)務(wù)模式正在由傳統(tǒng)的點對點數(shù)據(jù)傳輸模式演變?yōu)橐孕畔⒐蚕頌橹鞯霓D(zhuǎn)發(fā)模式。通信方式中數(shù)據(jù)物理位置的重要性被逐漸淡化,用戶關(guān)注的重心轉(zhuǎn)向了數(shù)據(jù)內(nèi)容本身。在此趨勢下,美國國家科學(xué)基金會針對基于TCP/IP 的傳統(tǒng)網(wǎng)絡(luò)架構(gòu)提出的解決方案——命名數(shù)據(jù)網(wǎng)絡(luò)(NDN,named data networking),其采用基于內(nèi)容名稱的路由和轉(zhuǎn)發(fā)實現(xiàn)對數(shù)據(jù)的檢索和獲取[1],成為當(dāng)前的研究熱點。與此同時,隨著計算和存儲逐漸成為網(wǎng)絡(luò)的重要功能,計算、存儲與網(wǎng)絡(luò)基礎(chǔ)設(shè)施的融合也正成為未來網(wǎng)絡(luò)發(fā)展的重要趨勢。邊緣計算作為5G 網(wǎng)絡(luò)的關(guān)鍵技術(shù)之一,將計算和存儲資源一同下沉到靠近終端用戶的邊緣節(jié)點,以緩解帶寬壓力、改善用戶體驗。NDN 的相關(guān)機制如基于內(nèi)容名稱進(jìn)行路由、節(jié)點具備一定存儲能力等,與邊緣計算的設(shè)計方向不謀而合,恰好能夠為構(gòu)建網(wǎng)絡(luò)、計算、存儲一體化的未來網(wǎng)絡(luò)提供重要的技術(shù)支撐,因此在NDN 中設(shè)計與邊緣計算相結(jié)合的綜合框架并實現(xiàn)對計算和緩存資源的協(xié)同管理具有重要的研究意義與價值。
傳統(tǒng)的資源分配和緩存策略根據(jù)特定的數(shù)學(xué)模型做出決策[2-7],忽略了節(jié)點之間流量波動的相關(guān)性和不同區(qū)域用戶偏好的差異性,使計算和緩存資源不能得以有效利用。此外,雖然全球每天產(chǎn)生約80 EB 的數(shù)據(jù)量,但用戶對其中絕大部分內(nèi)容的評價是沒有記錄的,而長尾理論表明,在網(wǎng)絡(luò)時代,冷門內(nèi)容的運營收益未必會低于當(dāng)前關(guān)注度高的內(nèi)容。事實上,當(dāng)前大多數(shù)緩存策略的設(shè)計都忽略了長尾內(nèi)容的潛在收益。
現(xiàn)有的優(yōu)化方法如凸優(yōu)化和博弈論等雖然已被廣泛應(yīng)用于改進(jìn)資源分配方案和緩存策略,但仍存在以下問題:1)一些關(guān)鍵因素如無線信道條件、不同應(yīng)用的具體要求和內(nèi)容流行度等被提前設(shè)定,而在現(xiàn)實中,這些信息難以直接獲得且會隨時間變化;2)除Lyapunov 優(yōu)化[8]外,目前大多數(shù)算法只對系統(tǒng)快照進(jìn)行優(yōu)化而沒有考慮到當(dāng)前決策對資源管理的長期影響,即系統(tǒng)的動態(tài)問題沒有得到很好的解決。
機器學(xué)習(xí)作為一種新興的數(shù)據(jù)分析及處理手段,可以從傳統(tǒng)方法難以建模和分析的數(shù)據(jù)中得到隱含的趨勢和關(guān)聯(lián),能夠更好地在內(nèi)容流行度未知且動態(tài)變化的網(wǎng)絡(luò)中賦予計算和緩存更多的自主性和智能性,幫助其學(xué)習(xí)如何根據(jù)已有的經(jīng)驗進(jìn)行協(xié)調(diào)優(yōu)化,有望推動實現(xiàn)未來網(wǎng)絡(luò)的內(nèi)生智能。深度強化學(xué)習(xí)作為機器學(xué)習(xí)領(lǐng)域中最具潛力的研究方向之一,將深度學(xué)習(xí)的感知能力和強化學(xué)習(xí)的決策能力相結(jié)合,有助于解決實際場景中的復(fù)雜問題。深度Q 網(wǎng)絡(luò)(DQN,deep Q network)算法作為經(jīng)典的深度強化學(xué)習(xí)算法,雖然解決了高維觀察空間的問題,但其依賴于找到使價值函數(shù)最大的動作[9-10],在連續(xù)域的情況下需要在每個步驟進(jìn)行迭代優(yōu)化,因此目前只能處理離散和低維的動作空間。此外,DQN 采取隨機的動作策略,即每次進(jìn)入相同狀態(tài)的時候,輸出的動作會服從一個概率分布,這導(dǎo)致智能體的行為具有較大的異變性,參數(shù)更新的方向很可能不是策略梯度的最優(yōu)方向。
針對上述問題,本文提出在NDN 邊緣節(jié)點部署計算模塊,使節(jié)點兼具緩存和計算能力,在網(wǎng)絡(luò)邊緣創(chuàng)建分布式的輕型數(shù)據(jù)處理中心[11];利用深度確定性策略梯度(DDPG,deep deterministic policy gradient)算法對計算和緩存資源的管理進(jìn)行聯(lián)合優(yōu)化,以實現(xiàn)網(wǎng)絡(luò)、計算和緩存功能動態(tài)協(xié)調(diào)的綜合框架。具體創(chuàng)新點如下。
1)在NDN 中設(shè)計與邊緣計算相結(jié)合的綜合框架。在NDN 邊緣節(jié)點部署計算模塊和智能體,在將內(nèi)容和資源向終端用戶靠近的同時,實時感知網(wǎng)絡(luò)狀態(tài),在與環(huán)境的交互中學(xué)習(xí)最優(yōu)的計算和緩存的資源分配以及緩存放置策略。
2)提出基于矩陣分解[12]的局部內(nèi)容流行度預(yù)測算法。矩陣分解算法引入了隱向量的概念,將高維矩陣映射成2 個低維矩陣的乘積,使之具有強大的處理稀疏矩陣的能力;通過補全用戶對內(nèi)容的評分矩陣,將與邊緣節(jié)點直接連接的所有用戶對某個內(nèi)容的相對評分作為該內(nèi)容的局部內(nèi)容流行度。
3)在平均時延的約束下,以系統(tǒng)運營收益最大化為目標(biāo),利用DDPG 算法對計算和緩存資源分配以及緩存放置策略進(jìn)行聯(lián)合優(yōu)化。DDPG 算法將動作策略的探索和更新分離,前者采用隨機策略,后者采用確定性策略[13];可以在高維的連續(xù)動作空間中學(xué)習(xí)策略,適用于邊緣計算和緩存聯(lián)合優(yōu)化時的連續(xù)性控制問題。
4)在ndnSIM 中構(gòu)建仿真環(huán)境,通過DDPG 算法和經(jīng)典的DQN 算法在邊緣計算和緩存的聯(lián)合優(yōu)化問題上的橫向?qū)Ρ龋C明本文方案在穩(wěn)定性、收斂速度和性能表現(xiàn)上都有明顯優(yōu)勢;與傳統(tǒng)緩存放置策略相比,本文方案可以有效地提高緩存命中率、降低系統(tǒng)成本和平均時延,改善用戶體驗。
NDN 中基于機器學(xué)習(xí)實現(xiàn)網(wǎng)絡(luò)、計算和緩存動態(tài)協(xié)調(diào)的綜合框架如圖1 所示,在邊緣節(jié)點部署計算模塊,結(jié)合NDN 的網(wǎng)內(nèi)緩存機制,將網(wǎng)絡(luò)功能、內(nèi)容和資源向終端用戶靠近[14-15];為了優(yōu)化資源分配,處理具有多樣性和時變性的復(fù)雜問題,在邊緣節(jié)點部署智能體,通過狀態(tài)、行動和獎勵與環(huán)境互動。智能體首先實時地感知網(wǎng)絡(luò)狀態(tài),例如,與節(jié)點直接連接的用戶發(fā)布的計算任務(wù)和請求的內(nèi)容、節(jié)點當(dāng)前可用的計算資源和緩存容量、局部內(nèi)容流行度等,繼而根據(jù)當(dāng)前狀態(tài)自主地設(shè)計行動,包括計算和緩存的資源分配以及緩存放置策略,最后基于環(huán)境反饋的獎勵來更新和改進(jìn)其行動策略,形成感知?動作?學(xué)習(xí)的循環(huán)結(jié)構(gòu)。
圖1 NDN 中基于機器學(xué)習(xí)實現(xiàn)網(wǎng)絡(luò)、計算和緩存動態(tài)協(xié)調(diào)的綜合框架
在此框架中,邊緣節(jié)點為其覆蓋區(qū)域內(nèi)的用戶提供通信、計算和緩存功能,同時考慮到節(jié)點計算和緩存能力的變化、不同區(qū)域用戶偏好的差異性以及內(nèi)容流行度的時變性,智能體自適應(yīng)地調(diào)整行動策略,為不同區(qū)域的用戶提供個性化的解決方案。相比邊緣節(jié)點,遠(yuǎn)程服務(wù)器具有更豐富的計算和緩存資源。當(dāng)邊緣節(jié)點不足以支持用戶的計算任務(wù)或沒有緩存用戶的請求內(nèi)容時,計算任務(wù)或請求內(nèi)容可以被卸載到遠(yuǎn)程服務(wù)器(即計算服務(wù)器和內(nèi)容服務(wù)器)。因此,智能體在優(yōu)化計算資源和緩存容量外,還需要學(xué)習(xí)在邊緣節(jié)點緩存更受歡迎的內(nèi)容和處理時延敏感的計算任務(wù),以降低網(wǎng)絡(luò)時延、改善用戶體驗。
互聯(lián)網(wǎng)時代信息量的成倍增長導(dǎo)致了信息過載問題,即不僅用戶在海量數(shù)據(jù)面前束手無策,網(wǎng)絡(luò)運營商也很難發(fā)現(xiàn)用戶的興趣點為其提供個性化的服務(wù)。推薦系統(tǒng)通過研究用戶的歷史行為、興趣偏好或者不同區(qū)域的人口統(tǒng)計學(xué)特征,產(chǎn)生用戶可能感興趣的內(nèi)容列表,精準(zhǔn)高效地滿足不同用戶的信息需求。將每個節(jié)點對所有內(nèi)容的評分抽象為一個m行(m個與該節(jié)點直接連接用戶)、n列(n個內(nèi)容)的矩陣,然而由于大多數(shù)用戶只對網(wǎng)絡(luò)中極少部分的內(nèi)容有過評價記錄,這個矩陣是很稀疏的?;诰仃嚪纸獾膮f(xié)同過濾算法引入了隱向量的概念,將高維矩陣映射成2 個低維矩陣的乘積,加強了處理稀疏矩陣的能力,同時能挖掘更深層的用戶與用戶、用戶與內(nèi)容間的關(guān)系,較高的預(yù)測精度使之成為當(dāng)前熱門的推薦系統(tǒng)主流算法。矩陣分解對原稀疏矩陣進(jìn)行填充,達(dá)到了通過分析已有數(shù)據(jù)來預(yù)測未知數(shù)據(jù)的目的,從而有助于邊緣節(jié)點提前緩存當(dāng)前冷門但未來很可能會流行的內(nèi)容,挖掘長尾內(nèi)容的潛在收益。
如圖2 所示,矩陣分解算法將m×n維的共現(xiàn)矩陣R分解為m×k維的用戶矩陣U和k×n維的內(nèi)容矩陣I相乘的形式,其中,m為用戶的數(shù)量,n為內(nèi)容的數(shù)量,k為隱向量維度。k的大小決定了隱向量表達(dá)能力的強弱,k的取值越小,隱向量包含的信息就越少,但泛化能力較高;反之,k取值越大,隱向量的表達(dá)能力就越強,但泛化能力相對降低。通常k在實驗中折中取值,以保證推薦效果和空間開銷的平衡。
圖2 矩陣分解算法
用戶u對內(nèi)容i的預(yù)估評分為
其中,pu是用戶u在用戶矩陣U中對應(yīng)的行向量,qi是內(nèi)容i在內(nèi)容矩陣I中對應(yīng)的列向量。
采用梯度下降法優(yōu)化。定義目標(biāo)函數(shù)為
其中,K是共現(xiàn)矩陣中已知評分rui的集合,λ是正則項系數(shù)。系統(tǒng)基于已知的評分以最小化均方誤差為目標(biāo)來學(xué)習(xí)qi和pu,并通過引入正則化項來避免過擬合。
分別對qi和pu求偏導(dǎo)數(shù),得到梯度下降的方向和幅度分別為
其中,γ是學(xué)習(xí)率。然后,沿梯度的反方向?qū)i和pu進(jìn)行更新,即
重復(fù)式(3)~式(6),直至迭代次數(shù)達(dá)到設(shè)定的上限或者損失函數(shù)(目標(biāo)函數(shù))收斂,由此得到節(jié)點對所有內(nèi)容的評分矩陣。
在補全邊緣節(jié)點覆蓋區(qū)域內(nèi)的用戶(與該邊緣節(jié)點直接連接的所有用戶)對所有內(nèi)容的評分矩陣后,將該區(qū)域內(nèi)所有用戶對某個內(nèi)容的評分之和除以對所有內(nèi)容的評分之和(即相對評分)作為該區(qū)域內(nèi)該內(nèi)容的局部流行度。局部流行度即當(dāng)?shù)赜脩魧υ搩?nèi)容的請求概率,記為P={P1,P2,…,PI},其中,I為網(wǎng)絡(luò)內(nèi)容總數(shù),Pi∈P為內(nèi)容i的局部流行度,有
其中,U為與節(jié)點直接連接的用戶總數(shù)。
設(shè)緩存放置策略為C={C1,C2,…,CI},其中,Ci∈C表示內(nèi)容i是否被選擇緩存。Ci=0時表示未緩存該內(nèi)容,Ci=1時表示已緩存。緩存命中率η表示為
設(shè)δ1為因沒有緩存而經(jīng)完整回程鏈路傳輸一個內(nèi)容的成本。假設(shè)各內(nèi)容大小一致,且所有用戶都處于請求內(nèi)容狀態(tài),根據(jù)緩存放置策略C,有η的概率可以直接從節(jié)點獲取,所以因緩存放置而無須經(jīng)回程鏈路傳輸請求內(nèi)容的收益為ηUδ1。
設(shè)δ2為節(jié)點內(nèi)部署單位緩存容量的成本??偩彺娌渴鸪杀倦S緩存容量V的增大而增大,所以部署緩存容量的支出為Vδ2。
設(shè) Δτ為在最后期限τmax前完成計算任務(wù)的平均節(jié)省時間。設(shè)δ3為運營商執(zhí)行計算任務(wù)期間支付的成本。假設(shè)與節(jié)點直接連接的用戶都處于發(fā)布計算任務(wù)狀態(tài),由于在節(jié)點部署了計算模塊,部分計算任務(wù)可由節(jié)點處理而無須卸載到遠(yuǎn)程計算服務(wù)器,因此計算收益為 ΔτUδ3。如果節(jié)點在其最后期限前完成任務(wù),則節(jié)省的時間為正,相應(yīng)的計算收益也為正;否則節(jié)約的時間和計算收益皆為負(fù),因為對于時延敏感的任務(wù)來說,如果沒有在最后期限前完成,可能會導(dǎo)致一定的損失。
設(shè)δ4為節(jié)點內(nèi)部署單位計算資源的成本??傆嬎悴渴鸪杀倦S著計算資源S的增大而增大。所以部署計算資源的支出為Sδ4。
上述部署緩存容量和計算資源的支出Vδ2和Sδ4為經(jīng)濟成本,而因緩存放置直接從節(jié)點獲取內(nèi)容和因部署計算模塊提前完成計算任務(wù)的收益ηUδ1和 ΔτUδ3并不直接反映在經(jīng)濟盈利上,其不僅包含無須經(jīng)完整回程鏈路傳輸所節(jié)約的能量,也包含用戶愿意為了更低時延而支付的費用以及運營商因為更低的帶寬資源消耗所減少的開銷。從網(wǎng)絡(luò)優(yōu)化的角度看,支出和收益都是可以通過經(jīng)濟指標(biāo)來衡量的,因此優(yōu)化目標(biāo)為:使利潤(運營收益)ρ=ηUδ1?Vδ2+Δτ Uδ3?Sδ4最大。約束條件如下。
3)計算資源:S≤U。S個用戶發(fā)布的計算任務(wù)由邊緣節(jié)點處理,根據(jù)不同用戶不同應(yīng)用對時延的要求選擇這S個用戶。
綜上,在平均時延的約束下,以系統(tǒng)運營收益最大化為目標(biāo),資源分配與緩存放置策略的聯(lián)合優(yōu)化問題可表示為
顯然,這是一個混合整數(shù)規(guī)劃問題,且是NP-Complete 的,本文利用深度強化學(xué)習(xí)對其進(jìn)行求解。邊緣節(jié)點的計算及緩存能力、用戶發(fā)布的計算任務(wù)和請求的內(nèi)容以及局部內(nèi)容流行度等信息被收集并發(fā)送給智能體,在獲得上述信息后,智能體會設(shè)計一個動作來執(zhí)行資源分配和緩存放置策略,由此進(jìn)入新的環(huán)境狀態(tài),并計算系統(tǒng)運營收益作為對該行動的反饋。上述過程對應(yīng)深度強化學(xué)習(xí)中的3 個關(guān)鍵要素,即狀態(tài)、行動和獎勵。
1)狀態(tài)。作為深度強化學(xué)習(xí)算法的輸入,狀態(tài)包含了智能體做出動作所需要的全部信息。本文的狀態(tài)由3 個部分組成:State=(ui,si,vi),其中,ui是與節(jié)點i直接連接的所有用戶的狀態(tài),包括其發(fā)布的計算任務(wù)、請求的內(nèi)容、任務(wù)的截止期限以及該區(qū)域的局部內(nèi)容流行度;si和vi分別是該節(jié)點的可用計算資源和緩存容量。
2)行動。作為深度強化學(xué)習(xí)算法的輸出,行動是智能體對環(huán)境產(chǎn)生影響的方式。本文的行動由3 個部分組成:Action=(Si,Vi,Ci),其中,Si和Vi分別是智能體分配給節(jié)點i的計算資源和緩存容量,Ci是該節(jié)點采取的緩存放置策略。
3)獎勵。作為智能體學(xué)習(xí)的指導(dǎo),從Learning=Representation+Evaluation+Optimization 的角度看,獎勵是Evaluation 的重要組成成分。由于深度強化學(xué)習(xí)的目標(biāo)是最大化累積獎勵,故即時獎勵的設(shè)置應(yīng)與上述聯(lián)合優(yōu)化問題的目標(biāo)(盡可能找到使系統(tǒng)運營收益最高的資源分配和緩存放置策略)相關(guān)。本文將當(dāng)前的系統(tǒng)運營收益ρ與現(xiàn)有的最高系統(tǒng)運營收益ρmax的差值作為即時獎勵 Reward=ρ?ρmax。當(dāng)累積獎勵收斂時,表明最佳資源分配和緩存放置策略訓(xùn)練完成。
本文基于DDPG 算法對計算和緩存的資源分配以及緩存放置策略進(jìn)行聯(lián)合優(yōu)化,算法流程如圖3 所示。DDPG 智能體由3 個部分構(gòu)成:主網(wǎng)絡(luò)、目標(biāo)網(wǎng)絡(luò)和經(jīng)驗回放池。
圖3 DDPG 算法流程
主網(wǎng)絡(luò)由2 個深度神經(jīng)網(wǎng)絡(luò)組成,即一個行動網(wǎng)絡(luò)Actor-M 和一個評價網(wǎng)絡(luò)Critic-M。行動網(wǎng)絡(luò)用于動作的探索,根據(jù)隨機動作策略盡可能完整地探索動作空間,即通過引入隨機噪聲,將動作的決策由確定性過程轉(zhuǎn)變?yōu)殡S機過程,再從該隨機過程中采樣得到要采取的行動。評價網(wǎng)絡(luò)通過Q值評估行動網(wǎng)絡(luò)選擇的動作,并通過計算策略梯度來更新行動網(wǎng)絡(luò)。
目標(biāo)網(wǎng)絡(luò)包括一個目標(biāo)行動網(wǎng)絡(luò)Actor-T 和一個目標(biāo)評價網(wǎng)絡(luò)Critic-T。目標(biāo)網(wǎng)絡(luò)的輸入是經(jīng)驗元組(si,ai,ri,si+1)的下一個狀態(tài)si+1,輸出是用于更新Critic-M 的目標(biāo)Q值。
經(jīng)驗回放池用于儲存經(jīng)驗元組,經(jīng)驗元組為智能體在與環(huán)境交互過程中所得到的狀態(tài)轉(zhuǎn)移序列(si,ai,ri,si+1),包括當(dāng)前狀態(tài)、所選動作、獎勵和下一個狀態(tài)。在主網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的更新階段,會從經(jīng)驗回放池中隨機采樣,以減小數(shù)據(jù)相關(guān)性的影響。
基于DDPG 算法的詳細(xì)工作過程如下。
1)將當(dāng)前環(huán)境狀態(tài)st輸入主網(wǎng)絡(luò)的Actor-M,智能體根據(jù)隨機動作策略采取行動at,即計算資源和緩存容量的分配以及緩存放置策略。
其中,μ是由Actor-M 的卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)模擬的確定性動作策略,θμ是Actor-M 的動作策略參數(shù),Νt是動作探索噪聲。
2)環(huán)境進(jìn)入下一個狀態(tài)st+1,并向智能體反饋即時獎勵rt。
3)將(st,at,rt,st+1)存入經(jīng)驗回放池。
4)從經(jīng)驗回放池中隨機采樣小批量的含有N個經(jīng)驗元組(si,ai,ri,si+1)。
5)將si和ai輸入主網(wǎng)絡(luò)的Critic-M,Critic-M利用CNN 模擬貝爾曼方程計算在狀態(tài)si下選擇動作ai的Q值為
其中,θQ是Critic-M 的Q值參數(shù)。
6)將si+1輸入目標(biāo)網(wǎng)絡(luò)的Actor-T,Actor-T 通過確定性動作策略μ′得到動作ai+1=μ′(si+1|θμ′),其中,θμ′是Actor-T 的動作策略參數(shù)。再將si+1和ai+1輸入Critic-T,得到在狀態(tài)si+1下、選擇動作ai+1的目標(biāo)Q值Q′(si+1,μ′(si+1|θμ′)|θQ′),其中,θQ′是Critic-T 的Q值參數(shù)。由ri和Q′(si+1,μ′(si+1|θμ′)|θQ′)得到在狀態(tài)si下選擇動作ai的目標(biāo)Q值為
7)將Q′(si,a i|θQ′)傳入Critic-M,通過最小化損失函數(shù)Loss 來更新Critic-M 的Q值參數(shù)θQ,即
8)將si輸入主網(wǎng)絡(luò)的Actor-M,Actor-M 通過確定性動作策略μ選擇動作a=μ(si|θμ)。再將si和a輸入Critic-M,通過策略梯度來更新Actor-M的動作策略參數(shù)θμ,即
其中,ρμ(s)是在確定性動作策略μ下狀態(tài)s服從的分布函數(shù);是狀態(tài)s服從ρμ(s)分布時,智能體根據(jù)策略μ選擇動作能夠產(chǎn)生的Q值的期望,用以衡量策略μ的表現(xiàn)。
基于蒙特卡羅方法,將小批量N的經(jīng)驗元組數(shù)據(jù)代入式(14),可以作為對策略梯度的無偏估計。
9)通過軟更新算法對目標(biāo)網(wǎng)絡(luò)中Critic-T 的Q值參數(shù)θQ'和Actor-T 的動作策略參數(shù)θμ'進(jìn)行更新。
其中,τ=0.001。
如果當(dāng)前的資源分配和緩存放置策略滿足聯(lián)合優(yōu)化問題的所有約束條件,并且當(dāng)前的系統(tǒng)運營收益大于現(xiàn)有的最高系統(tǒng)運營收益,則每幕(episode)的最高系統(tǒng)運營收益更新為當(dāng)前的系統(tǒng)運營收益,且節(jié)點基于當(dāng)前的資源分配和緩存放置策略更新其狀態(tài)。如果當(dāng)前的資源分配和緩存放置策略滿足聯(lián)合優(yōu)化問題的所有約束條件,但當(dāng)前的系統(tǒng)運營收益小于或等于現(xiàn)有的最高系統(tǒng)運營收益,則表明智能體沒有產(chǎn)生更好的優(yōu)化方案,每幕的最高運營收益保持不變,且節(jié)點仍根據(jù)現(xiàn)有的最佳資源分配和緩存放置策略進(jìn)行狀態(tài)更新。如果當(dāng)前的資源分配和緩存放置策略不能滿足聯(lián)合優(yōu)化問題的任一約束條件,智能體將受到懲罰。
基于DDPG 算法聯(lián)合優(yōu)化資源分配和緩存放置策略的偽代碼如算法1 所示。
本文的仿真使用ndnSIM2.8 模擬器。仿真場景如圖4 所示,3 個邊緣路由器(即邊緣節(jié)點)覆蓋了3 個不同區(qū)域內(nèi)的用戶。在豆瓣電影數(shù)據(jù)集中收集了3 個省份共500 名用戶對1 000 部電影的評分(包含未評分,即一些用戶只對其中某些電影打過分)來預(yù)測局部內(nèi)容流行度。對應(yīng)的遠(yuǎn)程內(nèi)容服務(wù)器提供1 000 種不同的內(nèi)容,每種內(nèi)容的大小相同。為了體現(xiàn)內(nèi)容流行度的地域差異性,各邊緣路由器覆蓋區(qū)域內(nèi)的用戶均來自同一省份,每個用戶群共50 人,用戶請求興趣包的頻率為100 個/秒,興趣包的請求概率分布與局部內(nèi)容流行度一致。緩存替換策略均采用最近最少使用(LRU,least recently used)策略,仿真時長為100 s,從用戶到遠(yuǎn)程服務(wù)器的路徑時延為60 ms。性能評價指標(biāo)采用各邊緣節(jié)點的運營收益、緩存命中率、用戶獲取數(shù)據(jù)包的平均時延、平均跳數(shù)和遠(yuǎn)程服務(wù)器負(fù)載。
圖4 仿真場景
矩陣分解算法中的可調(diào)節(jié)參數(shù)為學(xué)習(xí)率γ、正則項系數(shù)λ和隱向量維度k。學(xué)習(xí)率決定每次更新的幅度。對于固定的學(xué)習(xí)率,如果設(shè)置偏大,則會導(dǎo)致結(jié)果振蕩不收斂;反之,則會導(dǎo)致收斂速度過慢。本文采用指數(shù)衰減學(xué)習(xí)率。
其中,γinitial=0.002為初始學(xué)習(xí)率,decay_rate=0.9為衰減系數(shù),decay_step=50 用來控制衰減速度。在訓(xùn)練前期,采用較大的學(xué)習(xí)率可以快速獲得一個較優(yōu)的解,隨著迭代的繼續(xù),學(xué)習(xí)率逐漸減小,使模型在訓(xùn)練后期更加穩(wěn)定。
圖5 對比了不同的正則項系數(shù)λ和隱向量維度k組合對矩陣分解損失函數(shù)的影響,得出當(dāng)λ=0.005、k=100時損失函數(shù)最小,故在后續(xù)仿真中均采用此組合。
圖5 不同參數(shù)組合的矩陣分解誤差對比
在確定了矩陣分解的參數(shù)組合之后,按照2.1 節(jié)的算法來預(yù)測內(nèi)容流行度。圖6 以全局流行度排名前100 位的內(nèi)容為參照,展示了全局和局部內(nèi)容流行度的差異性。其中,數(shù)據(jù)集內(nèi)全部500 名用戶的評分反映全局內(nèi)容流行度,而局部內(nèi)容流行度則由在同一省份隨機抽取的50 名用戶計算而得。
如圖6 所示,全局內(nèi)容流行度大致符合Zipf 分布,即網(wǎng)絡(luò)中的少數(shù)內(nèi)容占據(jù)了用戶的大部分關(guān)注度,但在尾部也有持續(xù)穩(wěn)定的小眾需求。局部內(nèi)容流行度則更顯著地表現(xiàn)了冷門內(nèi)容的潛力,出現(xiàn)了很多突出的尾部內(nèi)容。全局和局部內(nèi)容流行度的差異性表明本文基于局部內(nèi)容流行度制定緩存放置策略更加有效,為不同區(qū)域用戶提供個性化網(wǎng)絡(luò)服務(wù)的同時,還能獲得更高的系統(tǒng)運營收益。
圖6 全局和局部內(nèi)容流行度對比
在對局部內(nèi)容流行度完成預(yù)測后,邊緣節(jié)點Rtr1、Rtr2和Rtr3以系統(tǒng)運營收益最大化為目標(biāo),基于DDPG 算法對計算和緩存的資源分配以及緩存放置策略進(jìn)行聯(lián)合優(yōu)化。圖7 顯示了各邊緣節(jié)點每幕運營收益最高時的資源分配情況及最高運營收益。當(dāng)節(jié)點緩存容量V=108,計算資源S=127時,運營收益達(dá)到峰值。
圖7 基于DDPG 算法優(yōu)化的各邊緣節(jié)點的資源分配和運營收益
δ1(經(jīng)完整回程鏈路傳輸一個內(nèi)容的成本)、δ2(節(jié)點內(nèi)部署單位緩存容量的成本)、δ3(運營商執(zhí)行計算任務(wù)期間支付的成本)和δ4(節(jié)點內(nèi)部署單位計算資源的成本)的值皆根據(jù)實際邊緣計算和緩存設(shè)備廠商提供的相關(guān)價格資料設(shè)置,表1 對比了δ1、δ2、δ3和δ4不同組合下運營收益最高時的資源分配情況。本文方案在不同組合下能夠自適應(yīng)地調(diào)節(jié)計算和緩存資源的分配,達(dá)到相對穩(wěn)定的平均收益。
表1 δ1、δ2、δ3和δ4不同組合下的資源分配和運營收益
本文將DDPG 算法和經(jīng)典的DQN 算法進(jìn)行了橫向?qū)Ρ?,如圖8 所示,DDPG 算法在平均緩存命中率和平均運營收益兩方面的表現(xiàn)都明顯優(yōu)于DQN 算法,主要原因為DDPG 采用軟更新算法更新目標(biāo)網(wǎng)絡(luò)的參數(shù),這種加權(quán)移動平均法保證了目標(biāo)網(wǎng)絡(luò)訓(xùn)練的穩(wěn)定性;與DQN 在每步都計算所有可能動作的Q值來進(jìn)行決策不同,DDPG 采用確定性策略,直接由神經(jīng)網(wǎng)絡(luò)Actor預(yù)測出該狀態(tài)下需要采取的動作,降低了算法復(fù)雜度、加快了收斂速度。
圖8 基于DDPG 算法和基于DQN 算法優(yōu)化的性能對比
LCE(leave copy everywhere)策略和LCD(leave copy down)策略[16]是NDN 緩存放置的基準(zhǔn)策略。LCE 策略是NDN 中默認(rèn)采用的緩存放置策略,其在數(shù)據(jù)包返回路徑上的每個節(jié)點都會緩存該內(nèi)容的副本,這極易導(dǎo)致網(wǎng)內(nèi)緩存的冗余度較高且在緩存容量較小時緩存替換頻繁。LCD策略相對LCE 策略更加保守,只在命中節(jié)點的下一跳進(jìn)行緩存,避免了相同內(nèi)容在網(wǎng)絡(luò)中大量復(fù)制,在一定程度上降低了緩存冗余度;此外,LCD策略需要對同一內(nèi)容進(jìn)行多次請求才能將其緩存到網(wǎng)絡(luò)邊緣,間接地考慮了內(nèi)容流行度,使緩存利用率有所提升。
圖9 對比了在節(jié)點緩存容量為108(運營收益最高時的緩存容量)和108×2 時,本文LCD 策略和LCE 策略的相關(guān)性能。在緩存命中率、平均時延、平均跳數(shù)(數(shù)據(jù)包從遠(yuǎn)程服務(wù)器或緩存節(jié)點返回所經(jīng)過的網(wǎng)絡(luò)跳數(shù))和遠(yuǎn)程服務(wù)器負(fù)載方面,本文方案都優(yōu)于LCD 策略和LCE 策略,尤其在緩存容量相對較小時,其優(yōu)勢更加明顯:在節(jié)點緩存容量為108 時,相對LCD 策略,本文方案的緩存命中率提高了70.97%,平均時延、平均跳數(shù)和遠(yuǎn)程服務(wù)器負(fù)載分別降低了 25.97%、21.11%和9.91%。
圖9 不同緩存容量下不同緩存放置策略的性能對比
前文討論了基于機器學(xué)習(xí)在NDN 網(wǎng)絡(luò)邊緣聯(lián)合優(yōu)化計算和緩存的潛力,通過仿真證明了其對運營收益和系統(tǒng)性能的提升。在此基礎(chǔ)上,本文提出以下未來的研究方向。
1)通過各邊緣節(jié)點間的相互合作進(jìn)行實時的情境感知[17-21],包括信道條件、用戶的移動性、計算任務(wù)和內(nèi)容請求的規(guī)模與優(yōu)先級等,以優(yōu)化移動性管理和主動資源分配。例如,實現(xiàn)對計算任務(wù)的自適應(yīng)分流,緩解單一邊緣節(jié)點計算壓力的同時,充分利用當(dāng)前相鄰區(qū)域的閑置資源,提供更低時延的計算服務(wù);挖掘不同區(qū)域內(nèi)容流行度之間的相關(guān)關(guān)系,預(yù)判和緩存呈現(xiàn)由局部到全局流行態(tài)勢的內(nèi)容,縮短用戶獲取內(nèi)容的時延。
2)利用聯(lián)邦學(xué)習(xí)這一面向隱私保護的分布式機器學(xué)習(xí)框架[22]。聯(lián)邦學(xué)習(xí)在不共享原始數(shù)據(jù)的基礎(chǔ)上,聚合各邊緣節(jié)點的本地訓(xùn)練的中間結(jié)果,構(gòu)建具有較高泛化能力的共享模型,以推進(jìn)全局范圍內(nèi)的性能優(yōu)化,既保證了各參與方之間的數(shù)據(jù)隔離,又實現(xiàn)了數(shù)據(jù)價值的安全流通。
3)利用機器學(xué)習(xí)優(yōu)化種類龐雜的計算和緩存服務(wù)時,往往需要一定的時間才能使模型收斂,如何提高邊緣節(jié)點機器學(xué)習(xí)的效率亦是一個亟待解決的問題。可以基于軟件定義網(wǎng)絡(luò)(SDN,software defined network)和網(wǎng)絡(luò)功能虛擬化(NFV,network function virtualization)實現(xiàn)網(wǎng)絡(luò)切片[23],結(jié)合機器學(xué)習(xí)為不同類型的服務(wù)提供差異化的支持,實現(xiàn)高效靈活的邊緣計算和緩存,并采用靈活以太網(wǎng)(FlexE,flexible Ethernet)技術(shù)使業(yè)務(wù)流以最短、最快的路徑抵達(dá)用戶[24]。
本文提出了一個NDN 與邊緣計算相結(jié)合的綜合框架并基于深度強化學(xué)習(xí)對資源分配與緩存放置策略進(jìn)行聯(lián)合優(yōu)化,以實現(xiàn)網(wǎng)絡(luò)、計算和緩存的動態(tài)協(xié)調(diào)。首先,在NDN 邊緣節(jié)點部署計算模塊,結(jié)合NDN 的網(wǎng)內(nèi)緩存機制,將網(wǎng)絡(luò)功能、內(nèi)容和資源向終端用戶靠近;然后,利用矩陣分解算法強大的處理稀疏矩陣的能力,補全各區(qū)域用戶對內(nèi)容的評分矩陣,將區(qū)域內(nèi)所有用戶對某個內(nèi)容的相對評分作為該區(qū)域內(nèi)該內(nèi)容的局部流行度;最后,在平均時延的約束下,以系統(tǒng)運營收益最大化為目標(biāo),利用DDPG 算法對計算和緩存資源分配以及緩存放置策略進(jìn)行聯(lián)合優(yōu)化。仿真結(jié)果顯示,本文方案在穩(wěn)定性、收斂速度和性能表現(xiàn)上都優(yōu)于經(jīng)典的DQN 算法;與傳統(tǒng)的緩存放置策略相比,本文方案可以更有效地提高緩存命中率、降低用戶獲取內(nèi)容的平均時延,綜合提升運營收益和用戶體驗質(zhì)量。