葉 進,肖慶宇,陳梓晗,陳貴豪,李陶深
(廣西大學計算機與電子信息學院 南寧 530004)
近年來,基于HTTP 的視頻流觀看需求迅速增長。為了在各種網(wǎng)絡(luò)條件下實現(xiàn)流暢的視頻播放,客戶端視頻播放器采用自適應比特率(adaptive bitrate, ABR)算法來動態(tài)確定每個視頻塊的比特率以優(yōu)化視頻質(zhì)量。這樣做的目標是使視頻比特率適應潛在的網(wǎng)絡(luò)條件來最大化用戶的體驗質(zhì)量(quality of experience, QoE)。但是由于網(wǎng)絡(luò)流量的高突發(fā)性,為每一個視頻塊選擇一個合適的比特率是具有挑戰(zhàn)性的。
國際電信聯(lián)盟(international telecommunication union, ITU)對QoE 進行了明確的定義[1],即一個應用或一項服務(wù)的整體可接受性,它由終端用戶的主觀感知決定。當QoE 較差時,用戶可能會更早關(guān)閉視頻頁面,這導致視頻內(nèi)容提供方的大量經(jīng)濟損失。而在視頻傳輸場景下,QoE 是指用戶在某一次觀看視頻后對這次觀看體驗的接受性。一些現(xiàn)有研究以評分的形式直接從用戶處獲取QoE,文獻[2]則采用一些應用層或網(wǎng)絡(luò)層的指標來定義QoE。
現(xiàn)有的ABR 算法采用固定的控制規(guī)則來選擇未來的視頻比特率。但這類方法具有很強的假設(shè)性,難以適應不同的網(wǎng)絡(luò)環(huán)境。因此利用強化學習(reinforcement learning, RL)生成ABR 的方法被提出,能從零開始學習并生成算法而無需任何網(wǎng)絡(luò)假設(shè),這類方法通過提高訓練時的獎勵值來優(yōu)化神經(jīng)網(wǎng)絡(luò),而獎勵定義為QoE 函數(shù)。但獎勵函數(shù)往往被預先設(shè)置且設(shè)置時缺乏現(xiàn)實依據(jù),因此該類基于RL 的方法具有獲得相對良好的獎勵值的能力,但它們也可能為用戶提供與用戶期望不匹配的觀看體驗。
播放視頻時用戶QoE 受到多種因素影響,以準確的QoE 值作為RL 訓練時的獎勵,能讓ABR朝著最大化QoE 的方向做出比特率決策。QoE 與視頻播放時的指標密切相關(guān),其中包括視頻播放時的卡頓持續(xù)時間、平均播放比特率和比特率的變化值等。恰當?shù)莫剟詈瘮?shù)設(shè)計能使獎勵值的變化更貼近真實用戶的QoE。但如何確定用于ABR 的獎勵,目前缺乏統(tǒng)一的標準,而現(xiàn)有方法中的獎勵函數(shù)在訓練之前就被預先設(shè)置,且設(shè)置過程缺乏描述和依據(jù),無法得知是否與用戶真實意圖相匹配。
本文提出用戶QoE 預測網(wǎng)絡(luò)(user QoE prediction network, UQPN),以真實用戶數(shù)據(jù)進行監(jiān)督學習并預測用戶QoE 的方法。UQPN 將視頻流狀態(tài)作為輸入,輸出為現(xiàn)在用戶的QoE 預測分數(shù),并以UQPN作為“獎勵函數(shù)”。本文提出了一種基于RL 的ABR算法,引入UQPN 加入ABR 訓練過程,避免了獎勵函數(shù)建模的盲目性,從而使ABR 算法可以在滿足用戶要求的方向上進行訓練。
基于客戶端的ABR 算法主要分為兩種類型:基于模型的方法和基于學習的方法[3]。
第一類方法考慮了吞吐量的預測值和視頻緩沖區(qū)大小等因素來選擇比特率。文獻[4]通過過去視頻塊大小和下載時間預測網(wǎng)絡(luò)吞吐量,并以此作為未來吞吐量的估計值,估計值大時選擇高視頻比特率。另一些方法通過觀察緩沖區(qū)大小來避免卡頓事件,并以此作為標準為下一個視頻塊選擇盡可能高的比特率。文獻[5]提出了一個線性標準閾值來控制可用的播放緩沖區(qū)大小。以model predictive control (MPC)[6]為代表的混合策略綜合考慮了吞吐量預測值和緩沖區(qū)大小,進行下一個視頻塊的比特率決策。此外,文獻[7]研究了電池電量與移動流媒體QoE 的關(guān)系。文獻[8]提出的Oboe 對現(xiàn)有ABR 策略參數(shù)進行自動調(diào)整,使現(xiàn)有算法能夠找到更佳的參數(shù)配置。此類方法往往針對某些網(wǎng)絡(luò)條件,并在具有較強假設(shè)的前提下進行設(shè)計,嚴重依賴于微調(diào)的參數(shù),難以適用于不同的網(wǎng)絡(luò)環(huán)境。
基于學習的方法針對上述不足進行了改進,在獲取到不同網(wǎng)絡(luò)條件下的經(jīng)驗后,該類算法能夠顯著提高ABR 的性能。D-DASH (a deep Q-learning frame work for dynamic adaptive streaming over HTTP)[9]結(jié)合了深度學習和強化學習技術(shù),利用深度Q-learning 這種基于價值的強化學習方法優(yōu)化視頻的QoE。在相同的網(wǎng)絡(luò)條件下,Tiyuntsong[10]用生成對抗網(wǎng)絡(luò),通過兩個智能體的競爭來朝著規(guī)則或特定的獎勵進行自我優(yōu)化。Pensieve[11]采用最新的A3C[12]算法生成ABR算法模型,其中包含兩個神經(jīng)網(wǎng)絡(luò)模型,一個用于比特率決策,另一個用于評估當前狀態(tài)并給出狀態(tài)價值,實驗結(jié)果顯示其性能優(yōu)于基于模型的方法。HOT Dash[13]將視頻中的幀區(qū)分為熱點和非熱點,并將熱點部分在帶寬允許時優(yōu)先傳輸,這樣的做法使用戶能夠高質(zhì)量的觀看特定視頻塊。Comyco[14]針對該類方法采樣效率低的缺陷,通過模仿即時求解器給出的專家軌跡來訓練策略,這不僅可以避免多余的探索,還可以更好地利用收集的樣本。
上述方法在訓練時擁有相同的目標:最大化累計獎勵值?;趯W習的方法多采用線性QoE 公式作為獎勵函數(shù),應用層的網(wǎng)絡(luò)或播放器參數(shù)作為其輸入,每一項參數(shù)給與固定的權(quán)重以表示對其的重視程度,但是權(quán)重的設(shè)置過程缺乏描述和依據(jù)。因此出現(xiàn)了一些采用機器學習的方法對用戶的QoE進行預測。Video ATLAS[15]是一種機器學習框架,其中結(jié)合了許多與QoE 相關(guān)的特征,包括客觀視頻質(zhì)量、卡頓以及記憶特征進行QoE 預測。在此基礎(chǔ)上,文獻[16]采用非線性自回歸外生模型來在連續(xù)時間上對QoE 進行預測,在幀級別的粒度上測量QoE,并利用了多模型聯(lián)合預測來提升準確率。文獻[17]選擇長短期記憶網(wǎng)絡(luò)(long short-term memory, LSTM)來捕捉QoE 在時序上的依賴關(guān)系,并在真實的用戶數(shù)據(jù)上展現(xiàn)了良好的性能。
綜上,現(xiàn)有強化學習的訓練目標都可以被描述成使預期的累計獎勵值達到最大化,而基于RL 的ABR 算法輸出比特率決策,視頻播放器以該比特率請求下載下一個視頻塊。下載完成后狀態(tài)發(fā)生轉(zhuǎn)移,獎勵函數(shù)以這些狀態(tài)指標作為輸入,計算得到下一步的獎勵值,從而使算法模型沿著獎勵值的梯度方向進行更新,因此獎勵函數(shù)的設(shè)置對于算法性能具有重要影響。如果獎勵函數(shù)設(shè)計未經(jīng)充分考慮,一般會導致網(wǎng)絡(luò)不收斂,結(jié)果不優(yōu)或者使模型無法按照希望的方法做出決策。
已有基于RL 的ABR 算法均以量化的QoE 作為獎勵值。QoE 由播放中的指標如視頻平均比特率、卡頓時間、比特率切換值等構(gòu)成,每項指標賦予固定的權(quán)重表達對其重視程度。但由于用戶的主觀因素(如期望、體驗經(jīng)歷)和環(huán)境因素,QoE 的量化十分復雜。獎勵函數(shù)中權(quán)重的設(shè)置體現(xiàn)了用戶對不同指標的傾向,而定量描述用戶對這樣的事件的傾向,用以確定獎勵函數(shù)的設(shè)置是一項難以實施的工作。本文認為,ABR 算法獎勵值應該體現(xiàn)對播放質(zhì)量變化事件的相應懲罰或獎勵,應該針對用戶QoE 進行大量采樣和訓練建模,用以研究用戶QoE 預測的方法。因此本文提出了UQPN,從用戶數(shù)據(jù)出發(fā)訓練得到QoE 預測模型代替以往的函數(shù),以此網(wǎng)絡(luò)用于訓練,能夠獲得更加符合用戶需求的ABR 算法模型。
本文提出UQPN 并讓其加入RL 訓練過程,因為RL 訓練的目標為最大化累計獎勵值,所以有了UQPN 輸出更準確的QoE 預測值作為獎勵,可以使ABR 學會做出令用戶QoE 更佳的比特率決策。據(jù)此設(shè)計的ABR 算法其整體系統(tǒng)結(jié)構(gòu)如圖1 所示。

圖1 ABR 算法整體結(jié)構(gòu)
該方法采用離線訓練模式,在離線仿真器上讀取收集好的數(shù)據(jù)進行訓練。仿真訓練時,設(shè)某一視頻塊下載完成的時間為t,離線仿真器將不同的狀態(tài)向量st和s′t輸出至UQPN 和ABR 智能體。UQPN接受當前狀態(tài)后將用戶QoE 預測值rt輸出給ABR智能體作為獎勵用于訓練。智能體接收該值并基于該值采用策略梯度法更新神經(jīng)網(wǎng)絡(luò),隨后發(fā)送下一視頻塊的碼率決策at至仿真器,開始下一塊的模擬下載。待訓練過程結(jié)束后,將最新的ABR 模型發(fā)送至在線使用的ABR 服務(wù)器進行替換,為在線視頻播放器提供自適應比特率服務(wù)。與離線訓練階段相比,在線應用階段則無需獎勵機制,由ABR 獲取播放器狀態(tài)并做出碼率決策即可。
使用RL 生成ABR 模型時,受到獎勵函數(shù)建模困難和權(quán)重難以確定的困擾。因此,本節(jié)給出UQPN 的設(shè)計細節(jié),該網(wǎng)絡(luò)能夠接收當前視頻流狀態(tài)并輸出當前QoE 預測值。訓練UQPN 讓其“學會”捕捉用戶數(shù)據(jù)中潛藏的信息,以UQPN 作為獎勵能夠使ABR 模型做出更迎合用戶需求的碼率決策。
UQPN 的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)采用具有雙隱藏層的多層感知器(multi-layer perceptron, MLP)結(jié)構(gòu)。MLP是一種前饋人工神經(jīng)網(wǎng)絡(luò),層與層之間的節(jié)點進行全連接。每當下載完成一個視頻塊,設(shè)此時時刻為t,UQPN 收到狀態(tài)輸入st={x,n,m},x 為已下載完成的上個視頻塊的比特率;n 為上個視頻塊的比特率切換值;如果某個塊的比特率和上一個塊的比特率不相等,則有第i 個塊的比特率切換值ni=|xi-xi-1|。比特率切換值越大,代表用戶觀看視頻時的質(zhì)量波動越大;m 則表示上個視頻塊播放過程中的卡頓持續(xù)時間。在特征選擇時,使用Multi-RELIEF[18]方法來篩選特征,它計算每個特征對于QoE 貢獻的權(quán)重。其中以現(xiàn)有數(shù)據(jù)集LIVE-NFLXII[19]中記錄的用戶評分作為其觀看的QoE,各個視頻流中記錄的參數(shù)作為特征來計算權(quán)重。取權(quán)重值最大的前3 位特征作為狀態(tài)輸入st。接收輸入st后,UQPN 給出當前狀態(tài)的QoE 預測值,即獎勵值rt。
UQPN 以梯度下降法訓練,采用反向傳播的方式更新網(wǎng)絡(luò)節(jié)點,使訓練集上的累計誤差不斷減小。訓練開始之前,以輸入層的下一層為第一層,為所有節(jié)點隨機初始化權(quán)重和偏置值。其中設(shè)第i 層的權(quán)重矩陣為Wi、偏置為bi。節(jié)點的激活函數(shù)采用sigmoid,令其為f。于是,第i 隱藏層的節(jié)點激活值為:

式中,xi-1為第i-1 層所有節(jié)點的輸出組成的矩陣。
最終輸出層的激活值為:

式中,L 為神經(jīng)網(wǎng)絡(luò)層數(shù)。
訓練時的損失函數(shù)定義為訓練數(shù)據(jù)集之中用戶觀看視頻給出的QoE 得分y 與UQPN 輸出值r 之間差值的平方,并加入正則化項以防止過擬合。訓練過程中通過反向傳播算法逐一計算誤差的偏導數(shù),并以此更新神經(jīng)網(wǎng)絡(luò)參數(shù)來達到最小化累計誤差的目標。
在此基礎(chǔ)上,本文提出一種強化學習的ABR算法。UQPN 訓練完成后,令其加入RL 訓練,替代以往的獎勵函數(shù)給出獎勵值。該方法的基本訓練算法使用A3C,這是一種高效的actor-critic 算法,其中包括用于做出決策的actor 網(wǎng)絡(luò)和預測狀態(tài)價值的critic 網(wǎng)絡(luò)。訓練時采用策略梯度算法更新網(wǎng)絡(luò)參數(shù),梯度方向則是能使UQPN 輸出值增加的方向。
在每一個視頻塊完成下載的時刻t,actor 網(wǎng)絡(luò)接收狀態(tài)觀察向量s′t并輸出比特率決策at。同樣的,使用Multi-RELIEF 方法篩選特征后,考慮到該方法網(wǎng)絡(luò)結(jié)構(gòu)的復雜性和客戶端獲取特征的可行性,定義狀態(tài)觀察向量s′t={ot,nt,at,et,τt,B},其中ot為t 之前的k 個視頻塊的下載時的吞吐量測量值; nt為t 之前的k 個視頻塊的大??; at表示t 之前的k 個視頻塊的比特率; et儲存了t 之前的k 個視頻塊各自下載時播放視頻的卡頓時間; τt為t 之前的k 個視頻塊的下載時間;B 為當前播放器緩沖區(qū)的大小。
需要注意的是,actor 網(wǎng)絡(luò)的實際輸出并非某一確定值,而是一個概率分布。即在某一狀態(tài)下特定比特率被選擇的概率,將其標識為π(s′,a),輸入狀態(tài)和動作后輸出概率。而具有可管理的、可調(diào)整的神經(jīng)網(wǎng)絡(luò)權(quán)重集θ 的網(wǎng)絡(luò),標識為πθ(s′,a)。因此,訓練目標,即累積獎勵相對于θ 的梯度可表示為:

因此,actor 網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)權(quán)重集θ 更新公式為:



環(huán)境部署應用at后狀態(tài)由s′t轉(zhuǎn)移至s′t+1,s′t+1的預期獎勵估計為V(s′t+1),γ 為未來折扣系數(shù),γ∈[0,1]。γ=1 時表示未來狀態(tài)和當前狀態(tài)同等權(quán)重。而critic 網(wǎng)絡(luò)接收s′t后輸出狀態(tài)價值V(s′t),以評價當前狀態(tài)好壞。對于critic 網(wǎng)絡(luò)的更新,使用時序差分法更新所有critic 網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)權(quán)重集θv,對于每次t,critic 估計值和真實值之間的誤差可以表示為:

θv的更新公式為:

式中,μ為critic 網(wǎng)絡(luò)的學習速率。為提升訓練速度,算法使用多個ABR 智能體并行訓練,每個智能體的輸入不同。默認情況下,本文工作按照Pensieve 建議,使用16 個并行智能體。這樣互不干預的獨立訓練可獲得不同的經(jīng)驗。每個智能體將其獲得的數(shù)據(jù)發(fā)送給中央智能體,該智能體會對其進行匯總以生成一個ABR 算法模型。對于中央智能體接收到的每組數(shù)據(jù),它都使用actor-critic 算法來計算梯度并進行更新。最后,中央智能體更新actor 網(wǎng)絡(luò),并將新模型返回給其余智能體使用。
當前的客戶端視頻播放器網(wǎng)絡(luò)條件多變,且流量行為變化復雜,為了保證ABR 模型決策的有效性和對環(huán)境變化的適應性,算法中設(shè)置了觸發(fā)更換新模型的觸發(fā)機制。當客戶端播放器播放視頻時記錄其吞吐量,即每次視頻播放完成時都可以獲得該次播放的網(wǎng)絡(luò)吞吐量追蹤。其次,播放完成或頁面關(guān)閉時,向用戶詢問該次播放的QoE 評分并記錄。考慮到用戶評分收集難度較大,當吞吐量追蹤獲取到一定數(shù)量時,離線ABR 智能體在現(xiàn)有模型基礎(chǔ)上進一步訓練,結(jié)束后則進行模型更新,即將剛經(jīng)過訓練的ABR 模型部署至在線的ABR 服務(wù)器。具體算法如下。
算法1:ABR 模型更新算法
輸入:吞吐量追蹤向量o,用戶QoE 評分向量N,現(xiàn)有ABR 模型π,UQPN 模型r
輸出:模型更新結(jié)果
初始化更新所需閾值S;


其中S 為模型更新的吞吐量追蹤數(shù)量閾值,該值應隨客戶端具體需求變化。當客戶端網(wǎng)絡(luò)條件變化較為頻繁時,可以適當減小S 以更多地更新模型。網(wǎng)絡(luò)條件較為穩(wěn)定時,可以適當增大S 以減少更新次數(shù)。
本節(jié)首先進行了相關(guān)性對比來驗證UPQN 的效果,然后對基于UPQN 的RL 獎勵及其ABR 算法進行了對比。其中相關(guān)性對比實驗采用LIVENFLX-II 數(shù)據(jù)集,包括訓練所需的視頻流信息和用戶QoE 信息。實驗收集了由15 個不同類型的視頻、4 種不同的ABR 算法、7 種不同的網(wǎng)絡(luò)狀態(tài)生成的視頻流,以及由65 個受試者給出的視頻評分。對于每個視頻流,在連續(xù)時間上生成了連續(xù)評分。數(shù)據(jù)集記錄了視頻卡頓狀況和多種視頻質(zhì)量評價指標的變化。
對于RL 獎勵及其ABR 算法,結(jié)合兩個真實網(wǎng)絡(luò)帶寬數(shù)據(jù)集進行仿真:由FCC 提供的寬帶數(shù)據(jù)集[20]和挪威收集的移動設(shè)備網(wǎng)絡(luò)數(shù)據(jù)集[21]。仿真實驗采用文獻[16]提出的QoE 預測方法作為評價標準,實驗中包含多個測試視頻流,每個視頻流均需下載若干個視頻塊,因此實驗采用每一視頻塊的平均QoE 作為評價指標。
UPQN 為雙隱藏層MLP 結(jié)構(gòu),其中將第二隱藏層固定為4 節(jié)點,進行第一層的節(jié)點實驗性探索,發(fā)現(xiàn)第一隱藏層具有12 節(jié)點時最優(yōu)。因此論文使用上述UQPN 網(wǎng)絡(luò)結(jié)構(gòu)在數(shù)據(jù)集上進行評估。表1 使用了兩個度量來對比UQPN 模型與其他獎勵函數(shù)的QoE 預測的性能:線性相關(guān)系數(shù)(linear correlation coefficient, LCC)以及斯皮爾曼等級相關(guān)系數(shù)(spearman rank order correlation coefficient,SROCC)。LCC 和SROCC 度量的是兩組數(shù)據(jù)之間的相關(guān)程度。對本實驗來說,這兩個指標值越大,預測的分值和QoE 越接近。
表1 可見經(jīng)過真實用戶數(shù)據(jù)訓練得到的UQPN相比于現(xiàn)有方法的獎勵函數(shù)平均提升了12%~22.4%的LCC 和11.6%~14.3%的SRCC。

表1 UQPN 與其他獎勵函數(shù)相關(guān)性對比
本節(jié)主要考慮以下3 種常用的RL 算法:
Policy-Gradient:使用函數(shù)逼近器明確表示策略,并根據(jù)預期獎勵相對于策略參數(shù)的梯度進行更新,并證明了具有任意可微函數(shù)逼近器的策略迭代之后可以收斂到局部最優(yōu)策略。
A2C:A2C 是一種改進的actor-critic 算法,使用優(yōu)勢函數(shù)代替critic 網(wǎng)絡(luò)中的原始獎勵,可以作為衡量被選取動作值和所有動作平均值好壞的指標。
A3C:神經(jīng)網(wǎng)絡(luò)訓練時,需要的數(shù)據(jù)是獨立同分布的,因此A3C 采用異步訓練的方法,打破數(shù)據(jù)的相關(guān)性并加速了訓練過程。
之后將每種RL 算法中的獎勵設(shè)定為由3 種方法給出:Pensieve、Comyco 和UQPN。其中前兩者均為線性函數(shù),由播放中比特率、卡頓時間等指標與固定權(quán)重的乘積組成。實驗中RL 智能體采用的輸入與Pensieve 中一致,并設(shè)置所有ABR 模型訓練次數(shù)為10 000 次。實驗中訓練、測試數(shù)據(jù)均為離線仿真器讀取網(wǎng)絡(luò)帶寬數(shù)據(jù)并模擬下載特定視頻得出。
如圖2 所示,在兩種用于測試的網(wǎng)絡(luò)帶寬數(shù)據(jù)下,與Pensieve、Comyco 提出的獎勵函數(shù)相比,UQPN 在3 種不同的RL 算法上的性能均更優(yōu),展現(xiàn)了良好的泛化能力。在A3C 方法上UQPN 的優(yōu)勢最為明顯,相比另外兩種方法的平均歸一化QoE在挪威數(shù)據(jù)集上帶來約27.9%提升并在FCC 數(shù)據(jù)集上帶來約27.7%的QoE 提升。而在A2C 方法上,UQPN 能夠帶來平均約27.2%和18.3%的QoE提升,在Policy-Gradient 上則有約15.4%和8.6%的QoE 性能上升。這是由算法的學習能力導致,A3C 算法的學習能力最強,同樣的訓練次數(shù)下更能夠發(fā)揮UQPN 的優(yōu)勢。而Policy-Gradient 則相反,不同的獎勵方法帶來的差異并不明顯。

圖2 3 種獎勵方法得到的ABR 模型QoE 對比
結(jié)果顯示,該方法分別能夠帶來平均約29.6%和26.1%的歸一化QoE 提升。這意味著,將UQPN和本文提出的訓練方法結(jié)合,以UQPN 輸出值作為獎勵,使ABR 策略模型在強化學習時有了更準確、合理的訓練目標,因此該方法在寬帶和移動兩種真實網(wǎng)絡(luò)條件下都能夠比現(xiàn)有的基于RL 的ABR方法給用戶帶來更好的QoE。
本文提出了一種使用用戶QoE 預測值作為強化學習獎勵的自適應比特率算法。有了更加準確的QoE 預測值加入訓練,該方法能夠給用戶帶來更好的觀看體驗。該方法采用離線訓練,僅基于收集的數(shù)據(jù)即可生成算法模型,其輸入?yún)?shù)也易于獲取,無需修改現(xiàn)有的流媒體視頻傳輸框架,具備較好的可行性。未來的工作中,將考慮采用更細粒度、更準確的方法來探索用戶在觀看視頻時的QoE變化,能夠更準確把握用戶在觀看視頻時的感受,為用戶提供更好的觀看體驗。