基於機器學習的自適應碼率算法的進一步探索與改進

ai科技評論 發佈 2020-07-15T03:15:59+00:00

鑒此,快手音視頻技術部聯合清華大學孫立峰教授團隊對基於學習的ABR算法在兩方面進行了研究和改進,並分別發表在國際頂級會議IEEE INFOCOM 2020與國際頂級期刊IEEE JSAC。

據思科統計數據,網際網路視頻流在網絡帶寬中占有很大份額,到2022年將增長到消費網際網路流量的82%以上。視頻服務已經成為人們生活中不可或缺的一部分。

為了克服網絡抖動帶來不必要的播放卡頓,自適應多碼率被公認為最有效的手段之一,例如MPEG-DASH、Apple的HLS、快手的LAS等。ABR算法自適應多碼率方案的核心,依據網絡狀態、播放狀態等信息,動態調整請求視頻流的清晰度(碼率),從而在流暢度、清晰度和平滑性上取得平衡,最大化用戶體驗。

ABR算法可以分為兩大類,一類是基於啟發式的策略,通過建立各種模型或規則來控制碼率的選擇,然而這些算法通常需要仔細調參以適應多變的網絡環境。另一類則是採用機器學習的方式,讓播放器通過與現實中的網絡交互,「自主地」學習出一個適應當前網絡狀態的ABR算法。

任何算法在落地前都需要經歷漫長從理論到實踐的調試與優化,特別是解決各種各樣「實驗室中認為不重要但是在落地階段非常重要」的問題。

鑒此,快手音視頻技術部聯合清華大學孫立峰教授團隊對基於學習的ABR算法在兩方面進行了研究和改進,並分別發表在國際頂級會議IEEE INFOCOM 2020與國際頂級期刊IEEE JSAC。

論文地址:https://ieeexplore.ieee.org/abstract/document/9109427

1

自適應多碼率

圖1 碼率自適應傳輸架構圖

自適應多碼率的傳輸架構分為基於分片(MPEFG-DASH、HLS)和基於流式(LAS)兩類,本文以基於分片為例,如圖1所示:視頻在發布前,會先進行切片和轉碼,得到不同碼率和清晰的分片,在客戶端,每次噹噹前切片下載完成時,客戶端上的ABR算法將綜合考慮帶寬、緩衝情況以及用戶信息等信息,選擇下一個切片的碼率,從而實現自適應,提升用戶的體驗(QoE)。用戶的QoE通常由以下指標組成(如公式1所示)。

公式1 自適應碼率傳輸中的QoE定義

其中代表視頻的碼率,代表視頻的卡頓時長,最後一項為平滑項:即不希望視頻碼率頻繁切換。μ和τ為懲罰係數。對ABR算法來說,該優化是一種長時優化(long-term optimization)。例如在某個時刻ABR算法「貪心地」選擇了高碼率,然而網絡在之後變差了,導致之後幾個時刻ABR算法都只能「被迫」選擇較低的碼率或造成卡頓,那麼綜合來說,這次選擇就是不合適的。

2

基於學習的ABR

機器學習是否能解決這個問題呢?答案是肯定的。例如Pensieve(SIGCOMM'17)將碼率自適應過程建模為了一個馬爾可夫決策過程(MDP),並使用深度強化學習算法(Deep Reinforcement Learning, DRL) 從零開始訓練,最終學習到的策略在QoE指標上超越了過去最優算法18%。然而,儘管Pensieve在「性能」上獲得了巨大的突破,但是該算法由於諸多限制很難在現實中部署:

  1. 開銷:為了減少客戶端上的開銷,Pensieve將整個模型推理放在了伺服器上,並作為服務運行。然而在實際部署中,大多數的ABR算法部署在客戶端上以避免額外的消耗,例如端到端延遲,伺服器上作為服務的消耗等。故如何進一步從機理上降低模型的開銷將成為其部署的一大挑戰。

  2. 效率:Pensieve使用強化學習算法進行訓練,通常需要至少8小時才能訓練收斂一個策略。如何改善訓練效率,使其始終能適應當前網絡狀態是ABR任務的另一大挑戰。

1、結合領域知識,降低整體開銷

面對第一個挑戰,我們提出了「結合領域知識」這一概念。基本動機是:雖然AlphaZero等突破性的算法在摒棄了人類領域知識後獲得了更高的水準。但是考慮到ABR算法是一個「狀態,動作空間較小,物理意義明確」的任務,是否過去優秀的ABR算法已經挖掘出足夠的「領域特徵了」?

圖2 BBA算法原理介紹

BBA(Buffer-Based Approach,SIGCOMM』14)是優秀的代表之一,其原理如圖2所示。BBA算法內部有兩個閾值(RESEVIOR和CUSHION)。在當前緩衝小於閾值RESEVIOR時(偏左的紅色虛線),BBA算法恆選擇最小的視頻碼率;當緩衝區儲存的視頻時長大於RESEVIOR+CUSHION(偏右的紅色虛線)時,BBA會選擇最大的視頻碼率;在緩衝區處於其他狀態下時,BBA算法會使用線性擬合的方式,根據當前的緩衝選擇一個適合的視頻碼率。由此可知,BBA算法的性能非常依賴RESEVIOR和CUSHION這兩個值的取值。在本文中,我們嘗試是否可以將BBA算法和基於學習的算法可以有機地結合在一起,即,我們能通過深度學習方法增強BBA算法,與此同時,BBA算法又能給學習算法帶來更多的領域知識,從而降低模型開銷。

圖3 Stick系統架構圖

我們提出了Stick,一種融合了傳統基於緩衝區方法和基於學習的方法的自適應碼率方案。該方案的系統框架圖如圖3所示,模塊主要由兩大部分組成,分別是:1) 基本Stick模塊。該模塊主要利用一個線下訓練完的神經網絡,根據當前客戶端接收的狀態輸出連續值,該值用於控制傳統的BBA算法的閾值。2) Trigger模塊。Trigger模塊是一個輕量級的神經網絡,部署在Stick啟動之前,用於決策是否開啟基本Stick模塊,從而進一步降低Stick神經網絡的整體開銷。

圖4 Stick神經網絡結構

Stick模塊:採用連續值下的深度強化學習算法DDPG來訓練神經網絡,將過去的碼率決策,過去一段時間的帶寬大小,下載時長,未來視頻大小,剩餘時長,當前緩衝區大小等輸入神經網絡,並輸出一個單值,代表允許下最大碼率的緩衝值。隨後我們採用經典的BBA方案,該值將被擴展為一個緩衝表,用於決策每一個緩衝下的對應下載碼率。之後的實驗表明,運用領域知識可以大幅度降低神經網絡的開銷,最高可將模型大小縮減88%。

Trigger模塊:在使用領域知識縮減了模型大小後,我們進一步通過實驗挖掘出BBA的潛力:由於Stick使用緩衝表去選擇碼率,很明顯,它比一般的輸出攜帶了更多的信息,所以在大多數網絡情況下,只有30%到40%的情形需要去開啟Stick神經網絡去推端新的閾值,在其他時候,只需要沿用上一個閾值即可。故我們可以在Stick神經網絡之前再部署一個非常輕量級的小型神經網絡,使用簡單的結構決定是否需要更新當前閾值參數。在此我們使用的模仿學習,即在訓練時實時求解最優解並引導神經網絡漸漸「靠近」最優策略。

實驗結果:我們比較了Stick與經典的buffer-based算法(包括BBA和BOLA)的性能,結果表明Stick分別提升了44.26%和25.93%的QoE。隨後在進一步和過去多個算法的比較中,Stick也表現出了更好的性能,總體提升了3.5%-25.86%的QoE。於此同時,與Pensieve相比,Stick減少了88%的模型開銷。

圖5 Stick實驗結果

圖6 Trigger實驗結果

我們隨後對Trigger三個不同的數據集上進行了實驗測試。結果表明Trigger會明顯減少Stick的綜合開銷,總體節省幅度在39%-61%。此外我們可以看到Trigger甚至幫助過去的一些經典算法提升了性能,包括Rate-based和經過改進的Pensieve。

更詳細的內容請參考我們的IEEE INFOCOM2020的論文《Stick: A Harmonious Fusion of Buffer-based and Learning-based Approach for Adaptive Streaming》。

2、改善訓練效率,在線終身學習

第二個挑戰來自強化學習的低訓練效率。在強化學習方案中,智能體通過與環境交互獲得{狀態,動作,回報}集合,隨後通過學習增大每次動作獲得的回報。然而,在學習過程中,智能體無法獲取在當前狀態下的最優動作,因此不能為神經網絡提供準確的梯度方向更新,基於強化學習的ABR算法也遭受著這個缺點。

圖7 LifeLong-Comyco系統架構

針對這些問題,我們提出了Lifelong-Comyco,一種終身模仿學習的ABR算法。Lifelong-Comyco的系統架構如圖7所示。該系統由外循環系統(Outer-loop)和內循環(Inner-loop)系統兩部分組成。其中內循環系統使用模仿學習方法更快更有效地從專家序列中學到策略;外循環系統則給予了系統持續更新能力,採用終身學習的方式自主「查缺補漏」,學習有必要的數據。該系統的系統流程為:在視頻開始之前,位於客戶端的視頻播放器從ABR模型伺服器下載最新的神經網絡模型。每次當視頻在客戶端上播放完成後,播放器將通過過去的下載塊大小和下載時間生成帶寬數據。隨後,收集到的帶寬數據將被提交到位於伺服器端的外循環系統。外環系統將即時估計當前策略與最優策略之間的差距。根據該差距,我們可以確定該網絡帶寬數據是否需要加入訓練集中。隨後在每個時間段(例如1小時),在內循環系統將被調用並通過終身模仿學習有效地更新神經網絡。最後,每隔一段時間,我們會將訓練好的模型凍結並提交給ABR模型伺服器。

圖8 內循環系統架構

內循環系統:在內循環系統中,我們充分利用了自適應碼率任務的特點,即可以通過線下模擬器,在給定的網絡和視頻的條件下準確地判斷出當前的最優或者接近最優的解。在獲取到最優解後,我們便可以使用傳統的監督學習方法高效地對神經網絡進行更新。大致方法如下:首先,我們使用蒙特卡洛採樣,即從相同的狀態開始,將過程推演到N步之後。隨後我們選擇得到地QoE得分最高地那條軌跡中地第一個選擇作為未來地碼率選擇。之後,我們將{狀態,最優選擇}保存入經驗池中。最後,每次訓練開啟,我們需要訓練的智能體就會從經驗池中隨機選出數據進行訓練。這裡我們可以注意到,與強化學習不同,模仿學習做到了採樣和訓練解耦,從而更能提升並行效率,達到高效訓練。

圖9 外循環系統架構

外循環系統:外循環子系統的核心思想是進一步減少訓練時所需地訓練集。我們會先對客戶端上報的帶寬數據進行整理,核算線下最優解。隨後我們查看當前線上策略與線下最優解所取得的QoE的差距,當差距超過某個值時,我們會將當前帶寬數據放入要訓練的數據集中。最後,我們會採用終身學習的訓練方法訓練神經網絡,這是一種經典的主動學習(Active Learning)方案,可以在不忘記過去表現良好的帶寬數據的情況下,記住表現不好的帶寬數據。

圖13 內循環系統訓練曲線

圖14 內循環系統實驗結果。算法在FCC和HSDPA數據集上進行了細緻地測試

實驗結果:首先我們測試了內循環系統訓練出的神經網絡的性能。如圖10 所示,我們看到了模仿學習有效並快速的學習到了更好的策略:整體訓練步數相較於強化學習的訓練步數減少了1700倍,同時,整體訓練時長減少了16倍。於此同時算法的整體性能還有提升。在HSDPA數據集上,我們測得模仿學習訓練處的策略比過去的方法高出了7.5%-17.99%的QoE。

圖15 外循環系統實驗結果

隨後我們對外循環系統進行了測試。測試數據是我們搜集12小時帶寬序列數據。我們會在整點對神經網絡進行更新,並在其他時候記錄需要使用的帶寬數據集。實驗結果表示,使用終身學習算法將有效避免災難性遺忘問題,並且能夠跟隨網絡分布的變化實時更新自己的策略,使其性能用於處於較好的狀態。反觀其他算法,包括實時fine-tune,重新訓練,與只是用內循環系統,都不能很好地做到這一點。實驗表明,使用外循環系統更新能比只使用內循環系統的方案再高出1.07%到9.81%的性能。

更詳細的內容請參考我們的JSAC的論文《Quality-aware Neural Adaptive Video Streaming with Lifelong Imitation Learning》。

3

結語

基於機器學習的ABR算法在落地上還有很多的內容需要被探索,包括可解釋性,魯棒性,以及更小巧的模型等。快手有完善的數據集、AB測試平台、優秀的算法團隊,非常歡迎各位同行、學者和我們一起研究、探討、合作,做落地有效的算法,提升用戶體驗。

招 聘

AI 科技評論希望能夠招聘 科技編輯/記者

辦公地點:北京、深圳

職務:以跟蹤學術熱點、人物專訪為主

工作內容:

1、關注學術領域熱點事件,並及時跟蹤報導;

2、採訪人工智慧領域學者或研發人員;

3、參加各種人工智慧學術會議,並做會議內容報導。

要求:

1、熱愛人工智慧學術研究內容,擅長與學者或企業工程人員打交道;

2、有一定的理工科背景,對人工智慧技術有所了解者更佳;

3、英語能力強(工作內容涉及大量英文資料);

4、學習能力強,對人工智慧前沿技術有一定的了解,並能夠逐漸形成自己的觀點。

感興趣者,可將簡歷發送到郵箱:jiangbaoshang@yanxishe.com

關鍵字: