基于機(jī)器學(xué)習(xí)的帶寬估計(jì)在淘寶直播中的探索與實(shí)踐
背景
常見的媒體傳輸中帶寬估計(jì)的算法有 GCC/BBR/PCC/QUBIC 等,主要基于傳統(tǒng)的基于策略的算法白盒地根據(jù)歷史網(wǎng)絡(luò)數(shù)據(jù)以及主動(dòng)探測(cè)等方法來(lái)推算當(dāng)前網(wǎng)絡(luò)的可用帶寬。這種固化的算法邏輯難以應(yīng)對(duì)復(fù)雜的網(wǎng)絡(luò)特性,也無(wú)法區(qū)分擁塞丟包與隨機(jī)丟包。于是我們希望借鑒機(jī)器學(xué)習(xí)的思想,使用大量的線上網(wǎng)絡(luò)數(shù)據(jù)訓(xùn)練一個(gè)黑盒模型,替代傳統(tǒng)算法來(lái)靈活應(yīng)對(duì)不同的網(wǎng)絡(luò)環(huán)境。
本文主要分享 2018-2021 年期間,大淘寶技術(shù)內(nèi)容中臺(tái)音視頻基礎(chǔ)技術(shù)團(tuán)隊(duì),基于機(jī)器學(xué)習(xí)的帶寬預(yù)測(cè)算法在淘寶直播的業(yè)務(wù)背景下的探索與大規(guī)模實(shí)踐的成果。
Concerto:媒體傳輸層與媒體編解碼層的協(xié)奏
2018年,淘寶直播基于 WebRTC 直播推拉流解決方案已經(jīng)十分成熟。主播端與淘寶直播服務(wù)器均基于開源 WebRTC 實(shí)現(xiàn)實(shí)時(shí)音視頻流的媒體編解碼與傳輸。主播的攝像頭與麥克風(fēng)所采集的音視頻,經(jīng)由媒體編碼器進(jìn)行數(shù)據(jù)壓縮,再由媒體傳輸協(xié)議 RTP/RTCP 封裝成數(shù)據(jù)包傳輸給 MCU 服務(wù)器,再經(jīng)過 CDN 分發(fā)給淘寶直播的觀眾。通常服務(wù)器間的網(wǎng)絡(luò)相對(duì)比較穩(wěn)定,因此主播的移動(dòng)設(shè)備推流到 MCU 這“第一公里”的傳輸質(zhì)量,就決定了 CDN 分發(fā)給直播間內(nèi)所有觀眾的視頻質(zhì)量上限。
為了評(píng)估淘寶直播“第一公里”的音視頻傳輸表現(xiàn),我們整理分析了 2018 年 6 月整月直播的推流埋點(diǎn)數(shù)據(jù),總計(jì)超過100 萬(wàn)小時(shí)的直播時(shí)長(zhǎng),遍布全球 57 個(gè)國(guó)家 749 個(gè)城市,覆蓋 5 種網(wǎng)絡(luò)制式(WiFi, 4G, 3G, LTE, 2G),512 個(gè)運(yùn)營(yíng)商及 934 種手機(jī)型號(hào)。埋點(diǎn)數(shù)據(jù)可以充分反映真實(shí)網(wǎng)絡(luò)世界的延遲尖刺與突發(fā)丟包狀況,對(duì)于評(píng)估低延遲直播的表現(xiàn)也至關(guān)重要。根據(jù) ITU G.114 標(biāo)準(zhǔn),要達(dá)到實(shí)時(shí)視頻通話程度的服務(wù)質(zhì)量,端到端全鏈路需要丟包率 <= 1% 且 RTT(Round Trip Time) <= 300ms。而直播場(chǎng)景中,約 20% 的場(chǎng)次平均丟包率 > 1%,約 10% 的場(chǎng)次平均 RTT > 300ms。我們將丟包率 > 1% 或 RTT > 300ms 的場(chǎng)次定義為傳輸質(zhì)量亞健康的場(chǎng)次,從地理分布來(lái)看,所有國(guó)家的亞健康場(chǎng)次占比均超過 12%;從網(wǎng)絡(luò)制式來(lái)看,WiFi 網(wǎng)絡(luò)下的亞健康場(chǎng)次占比最低為 12%,遠(yuǎn)優(yōu)于 4G(34%)、3G(54%) 網(wǎng)絡(luò),且 WiFi 網(wǎng)絡(luò)在總場(chǎng)次中占比為 73%。
直播場(chǎng)景中主播端向網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量,主要由媒體編解碼層的視頻編碼器與媒體傳輸層的擁塞控制算法決定。WebRTC 中的網(wǎng)絡(luò)傳輸層擁塞控制算法 GCC(Google Congestion Control) 單純用于傳輸協(xié)議時(shí),我們發(fā)現(xiàn)它能保持極低的延遲和幾乎0丟包的表現(xiàn)。而視頻傳輸場(chǎng)景,一次短暫的帶寬降低可能造成持續(xù)幾分鐘的低畫質(zhì)視頻。其中的原因有:視頻編碼碼率難以嚴(yán)絲合縫的按照 GCC 的評(píng)估執(zhí)行;視頻編碼碼率的變化跟不上 GCC 的變化;間歇性的視頻流量模式也會(huì)影響 GCC 對(duì)帶寬的評(píng)估。
因此,我們基于機(jī)器學(xué)習(xí)的機(jī)制設(shè)計(jì)并實(shí)現(xiàn)了 Concerto,通過加強(qiáng)與傳輸層的互動(dòng),來(lái)進(jìn)行對(duì)帶寬的評(píng)估。它的輸入既包括歷史的傳輸層丟包率、包間延遲,也包含編碼層的編碼碼率、接收碼率等。它的輸出即下一時(shí)間段(我們的設(shè)計(jì)為 1 秒)內(nèi)的帶寬預(yù)測(cè)值。這個(gè)預(yù)測(cè)值既會(huì)成為下一階段的編碼碼率,也會(huì)成為發(fā)送碼率。從上層邏輯來(lái)講,Concerto 同時(shí)知曉兩層的狀態(tài),就能推導(dǎo)出每場(chǎng)會(huì)話的特征。為了實(shí)現(xiàn)這個(gè)能力,我們需要解決兩個(gè)問題:如何在巨大的狀態(tài)空間中提取每場(chǎng)會(huì)話的特征,以及如何在任何網(wǎng)絡(luò)狀態(tài)下都能決策出最優(yōu)碼率。在 Concerto 中,我們?cè)O(shè)計(jì)了一個(gè)深度模仿學(xué)習(xí)(Imitation Learning)模型來(lái)解決這個(gè)挑戰(zhàn)。使用海量真實(shí)網(wǎng)絡(luò)環(huán)境的數(shù)據(jù),我們?cè)谟?xùn)練階段使模仿學(xué)習(xí)模型學(xué)習(xí)不同會(huì)話的特征,在真實(shí)網(wǎng)絡(luò)帶寬的指導(dǎo)下自動(dòng)生成合適的碼率。
如果我們按真實(shí)時(shí)間來(lái)使用每場(chǎng)會(huì)話的數(shù)據(jù),Concerto 的收斂將會(huì)消耗冗長(zhǎng)的時(shí)間。相反,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了一個(gè)成熟的數(shù)據(jù)驅(qū)動(dòng)的模擬器來(lái)還原網(wǎng)絡(luò)場(chǎng)景。模擬器包含一個(gè)視頻幀處理模塊,基于 ffmpeg 壓縮視頻幀;一個(gè)視頻會(huì)話控制模塊,實(shí)現(xiàn) Concerto/GCC/Salsify 和其他基于機(jī)器學(xué)習(xí)的算法;一個(gè)傳輸模塊,將視頻幀分解為 RTP 包經(jīng)由帶寬受控的路徑進(jìn)行傳輸。對(duì)于小規(guī)模受控的實(shí)驗(yàn)場(chǎng)景,我們使用三臺(tái)筆記本搭建了一個(gè)實(shí)驗(yàn)床,兩個(gè)節(jié)點(diǎn)用于視頻通話,第三個(gè)節(jié)點(diǎn)做路由,基于 Linux 內(nèi)核的流量控制工具,實(shí)現(xiàn)網(wǎng)絡(luò)蹤跡的還原。我們還將 Concerto 嵌入了淘寶主播 APP,由其碼率控制模塊所調(diào)用,實(shí)現(xiàn)毫秒級(jí)別的決策。
根據(jù)模擬器中十幾個(gè)小時(shí)的網(wǎng)絡(luò)蹤跡環(huán)境測(cè)試結(jié)果,Concerto 在可忽視的幀延遲情況下,接收吞吐率方面分別超越三種基線算法 54.9%,53.9%,以及 37.3%,從而實(shí)現(xiàn)視頻質(zhì)量的提升。我們還邀請(qǐng)了 6 位志愿者來(lái)參與嵌入了淘寶直播的 Concerto 算法的實(shí)驗(yàn)。實(shí)驗(yàn)場(chǎng)景包含家里、辦公室、校園、商店、街邊以及行駛的車?yán)?。室?nèi)場(chǎng)景志愿者大多使用 WiFi,室外場(chǎng)景大多為 4G。實(shí)驗(yàn)總計(jì)達(dá) 300 次,時(shí)長(zhǎng)達(dá) 69 小時(shí)。相較于基線算法 GCC,在所有場(chǎng)景下,Concerto 降低了 13.1% 吞吐量的同時(shí),顯著降低了卡頓率(3倍左右)。
OnRL:靈活的在線學(xué)習(xí)
基于 Concerto 的探索與實(shí)踐經(jīng)驗(yàn),我們發(fā)現(xiàn)“線下訓(xùn)練,線上推演”的策略,在模擬器中可以達(dá)到很好的效果,然而在真實(shí)線上環(huán)境的效果卻不盡如人意。主要原因有兩個(gè):完全模擬出多流競(jìng)爭(zhēng)、突發(fā)丟包等真實(shí)的網(wǎng)絡(luò)動(dòng)態(tài)是非常艱難的;數(shù)據(jù)驅(qū)動(dòng)的算法嚴(yán)格受限于其學(xué)習(xí)環(huán)境。為了縮短模擬器與真實(shí)網(wǎng)絡(luò)環(huán)境的差距,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了一種在線學(xué)習(xí)的強(qiáng)化學(xué)習(xí)模型,OnRL。它在淘寶主播的直播過程中運(yùn)行并保持學(xué)習(xí),實(shí)時(shí)對(duì)真實(shí)網(wǎng)絡(luò)環(huán)境作出反饋。
為了實(shí)現(xiàn)在線學(xué)習(xí)的目標(biāo),我們需要應(yīng)對(duì)三個(gè)挑戰(zhàn)。
一是由順序的線下訓(xùn)練轉(zhuǎn)變?yōu)橥瑫r(shí)從海量的視頻通話中進(jìn)行學(xué)習(xí)。傳統(tǒng)的線下訓(xùn)練可以合并不同獨(dú)立用戶的網(wǎng)絡(luò)軌跡,并輸入一個(gè)模擬器來(lái)訓(xùn)練模型。而線上訓(xùn)練時(shí)大量的視頻會(huì)話同時(shí)發(fā)生,期間算法需要根據(jù)每個(gè)會(huì)話實(shí)時(shí)演進(jìn)。為了應(yīng)對(duì)這個(gè)挑戰(zhàn),我們?cè)O(shè)計(jì)了一個(gè)兩階段在線學(xué)習(xí)框架,結(jié)合 PPO 算法和聯(lián)邦學(xué)習(xí)的規(guī)則來(lái)聚合個(gè)體會(huì)話的特征。
二是讓 RL 算法在真實(shí)的動(dòng)態(tài)網(wǎng)絡(luò)場(chǎng)景中充分生效。理想情況下,一旦 OnRL 算法決定了發(fā)送速率,編碼器需要按照同樣的碼率來(lái)產(chǎn)生視頻流。然而實(shí)際情況是,視頻編碼器根據(jù)圖像的動(dòng)態(tài)程度、壓縮策略甚至是設(shè)備的計(jì)算能力,影響自己的控制邏輯,造成與 RL 的碼率決策的偏差。為了解決這個(gè)問題,我們將這個(gè)偏差輸入給 RL 的神經(jīng)網(wǎng)絡(luò),來(lái)調(diào)節(jié)它的反饋操作。
三是做到健壯地混合學(xué)習(xí)。一個(gè)強(qiáng)化學(xué)習(xí)的網(wǎng)絡(luò)通過“嘗試與犯錯(cuò)”來(lái)學(xué)習(xí),這可能對(duì)系統(tǒng)造成干擾。尤其在訓(xùn)練早期階段,算法可能會(huì)執(zhí)行不正確的探測(cè)行為,而造成災(zāi)難性后果。為了應(yīng)對(duì)這樣的問題,我們?cè)O(shè)計(jì)了一個(gè)混合的學(xué)習(xí)機(jī)制,讓 OnRL 在被判定為異常時(shí),能夠回歸到傳統(tǒng)的基于規(guī)則的碼率控制算法,否則切換回 RL 的模型。為了實(shí)現(xiàn)這樣的切換,我們?cè)O(shè)計(jì)了一個(gè)動(dòng)態(tài)趨勢(shì)預(yù)測(cè)算法,來(lái)辨別一種算法執(zhí)行的表現(xiàn)優(yōu)劣。我們甚至將切換行為算作一種對(duì) RL 反饋的懲罰,來(lái)激勵(lì)模型進(jìn)化為一個(gè)獨(dú)立而健壯的算法。
實(shí)驗(yàn)過程中,我們挑選了 151 位真實(shí)的淘寶主播進(jìn)行了為期一個(gè)月的灰度,總計(jì) 543 小時(shí)的直播時(shí)長(zhǎng)?;叶冉Y(jié)果證實(shí)了在線訓(xùn)練的效果,QoE 相關(guān)指標(biāo)得到顯著優(yōu)化,例如 OnRL 在保持視頻碼率持平的情況下,卡頓率得到 14.22% 的降低。
Loki:解決長(zhǎng)尾表現(xiàn)問題
與傳統(tǒng)的基于規(guī)則的算法不同,基于學(xué)習(xí)的擁塞控制方法通常使用覆蓋了各種網(wǎng)絡(luò)狀態(tài)的大量數(shù)據(jù)集來(lái)訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)模型。這種數(shù)據(jù)驅(qū)動(dòng)的模型在平均指標(biāo)上表現(xiàn)優(yōu)異,然而因?yàn)樯窠?jīng)網(wǎng)絡(luò)的黑盒決策模式導(dǎo)致的不健壯問題,成為了在生產(chǎn)系統(tǒng)中的大規(guī)模部署的一大障礙。雖然在平均水平上表現(xiàn)符合預(yù)期,單個(gè) QoE 的災(zāi)難性表現(xiàn)也會(huì)使得用戶拋棄一款應(yīng)用。
為了探索實(shí)時(shí)視頻傳輸場(chǎng)景的長(zhǎng)尾表現(xiàn),我們對(duì)時(shí)下前沿的基于規(guī)則的和基于學(xué)習(xí)的算法進(jìn)行了對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,一方面,基于學(xué)習(xí)的算法在傳輸層指標(biāo)確實(shí)展現(xiàn)了優(yōu)勢(shì),在保持低延遲的情況下有更高的吞吐率,而這樣的優(yōu)勢(shì)卻并不能有效的轉(zhuǎn)化為 QoE 指標(biāo)的提升,部分應(yīng)用層的幀延遲和抖動(dòng)甚至可能惡化。更深入的分析表明,原因存在于傳輸層指標(biāo)的長(zhǎng)尾表現(xiàn)問題。另一方面,基于學(xué)習(xí)的方法偶然會(huì)產(chǎn)生不準(zhǔn)確的帶寬預(yù)測(cè)。一些嚴(yán)重的過載預(yù)測(cè)就能造成災(zāi)難性的表現(xiàn),如跳幀甚至是卡頓。我們發(fā)現(xiàn)問題的根因在于,這些帶寬估計(jì)的算法,尤其是廣泛使用的強(qiáng)化學(xué)習(xí)算法,是通過“嘗試與犯錯(cuò)”的模式進(jìn)行學(xué)習(xí)。它們追求最大化長(zhǎng)期的累積反饋,因此能容忍偶然過載或缺載的預(yù)測(cè)結(jié)果,這就造成了長(zhǎng)尾結(jié)果表現(xiàn)不佳。
受到上面兩方面觀察的啟發(fā),我們希望解決一個(gè)關(guān)鍵問題:是否能設(shè)計(jì)一種平均表現(xiàn)和長(zhǎng)尾表現(xiàn)均令人滿意的實(shí)時(shí)視頻傳輸算法?為此,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)了 Loki,一種混合模型。它同時(shí)利用基于規(guī)則的方法的確定性,和基于學(xué)習(xí)的方法的預(yù)測(cè)能力。當(dāng)網(wǎng)絡(luò)狀態(tài)不穩(wěn)定,Loki 使用保守的和基于規(guī)則的方法一樣的碼率決策方式,來(lái)避免災(zāi)難性的 QoE 降級(jí)。其他情況,Loki 則會(huì)通過類似學(xué)習(xí)的探測(cè)來(lái)充分利用網(wǎng)絡(luò)帶寬。
雖然頂層的設(shè)計(jì)思想比較簡(jiǎn)潔,但 Loki 仍需要解決兩個(gè)關(guān)鍵的挑戰(zhàn)。
一是如何使基于規(guī)則的算法和基于學(xué)習(xí)的模型兼容,更進(jìn)一步地說,是可混合的?前者可以由硬核的“如果-就”條件語(yǔ)句來(lái)實(shí)現(xiàn),而后者就要求基于神經(jīng)網(wǎng)絡(luò)的黑盒表現(xiàn)形式。前者的工作更多是時(shí)分復(fù)用地使用這兩種算法,而 Loki 實(shí)現(xiàn)了更深層次的融合。Loki 將一個(gè)白盒的基于規(guī)則的算法(例如 GCC),通過定制的模仿學(xué)習(xí)網(wǎng)絡(luò)模型,轉(zhuǎn)化為了一個(gè)等價(jià)的黑盒神經(jīng)網(wǎng)絡(luò)模型。這樣,兩種算法才變得可兼容,且能在“特征層面”而非決策層面實(shí)現(xiàn)共用。
二是如何保證“特征層面”的混合可以真實(shí)地保留基于決策的算法和基于學(xué)習(xí)的算法的優(yōu)勢(shì)?為此,我們?cè)O(shè)計(jì)了一種雙權(quán)重的特征混合機(jī)制來(lái)達(dá)到這個(gè)要求。詳細(xì)來(lái)講,Loki 把兩種神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練后的高層次特征作為一種置信系數(shù)。兩種算法共同決策期間,他會(huì)給能達(dá)到更優(yōu) QoE 的特征集提高優(yōu)先級(jí),給予更大的權(quán)重。為了實(shí)現(xiàn)這樣的權(quán)重機(jī)制,我們將一個(gè)基于時(shí)下頂尖的強(qiáng)化學(xué)習(xí)算法模型,內(nèi)置于淘寶主播端進(jìn)行交互式訓(xùn)練。最終 Loki 演化為一個(gè)可靠的,可以應(yīng)對(duì)新環(huán)境的獨(dú)立的模型。
最終,我們將 3 個(gè)時(shí)下頂尖的解決方案(GCC,OnRL,Orca)應(yīng)用在淘寶主播中,作為基線對(duì)比。相較于基線,Loki 平均降低了 13.98%-27.27% 的卡頓率,并將視頻質(zhì)量提升 1.37%-5.71%。同時(shí),Loki 大幅減少了長(zhǎng)尾占比,例如,95分的卡頓率降低了 26.3%-44.24%。通過減少長(zhǎng)尾占比,相較于 GCC,Loki 也使得觀看時(shí)長(zhǎng)得到了 2.62%-4.68% 的提升。前期的驗(yàn)證工作結(jié)果表明,觀看時(shí)長(zhǎng)最終會(huì)轉(zhuǎn)化為可觀的商業(yè)價(jià)值。
總結(jié)與展望
隨著對(duì)實(shí)時(shí)媒體傳輸逐步深入的研究,在大淘寶內(nèi)容中臺(tái)音視頻技術(shù)的同學(xué)和國(guó)內(nèi)高校的共同努力下,我們合作完成了業(yè)內(nèi)第一個(gè)大量實(shí)踐于商業(yè)系統(tǒng)的基于神經(jīng)網(wǎng)絡(luò)的帶寬預(yù)測(cè)算法。研究成果多次獲得國(guó)際頂級(jí)學(xué)術(shù)會(huì)議認(rèn)可,得以發(fā)表 3 篇 CCF A 類會(huì)議論文的同時(shí),與其他合作項(xiàng)目一同,獲得了 2020 年中國(guó)電子學(xué)會(huì)科學(xué)技術(shù)獎(jiǎng)的科技進(jìn)步一等獎(jiǎng)的殊榮。
由于移動(dòng)端的算力限制,我們的最新成果 Loki 模型,目前仍依賴云端服務(wù)來(lái)支撐大量的模型訓(xùn)練過程。而隨著淘寶直播的業(yè)務(wù)發(fā)展,云端的在線訓(xùn)練資源消耗成本也將大幅增加。因此,我們近期的工作,是將收集了海量網(wǎng)絡(luò)狀態(tài)的 Loki 模型固化并聚合,轉(zhuǎn)移到移動(dòng)端進(jìn)行在線推演,減少云端的算力成本。固化工作已初見成效,未來(lái)有機(jī)會(huì)也將總結(jié)歸納分享出來(lái)。
CCF A類會(huì)議論文發(fā)表情況
- Huanhuan Zhang, Anfu Zhou, Yuhan Hu, Chaoyue Li, Guangping Wang, Xinyu Zhang, Huadong Ma, Leilei Wu, Aiyun Chen, and Changhui Wu. 2021. Loki: improving long tail performance of learning-based real-time video adaptation by fusing rule-based models. Proceedings of the 27th Annual International Conference on Mobile Computing and Networking (MobiCom '21)). Association for Computing Machinery, New York, NY, USA, 775–788. DOI:https://doi.org/10.1145/3447993.3483259
- Huanhuan Zhang, Anfu Zhou, Jiamin Lu, Ruoxuan Ma, Yuhan Hu, Cong Li, Xinyu Zhang, Huadong Ma, and Xiaojiang Chen. 2020. OnRL: improving mobile video telephony via online reinforcement learning. In Proceedings of the 26th Annual International Conference on Mobile Computing and Networking (MobiCom '20). Association for Computing Machinery, New York, NY, USA, Article 29, 1–14. DOI:https://doi.org/10.1145/3372224.3419186
- Anfu Zhou, Huanhuan Zhang, Guangyuan Su, Leilei Wu, Ruoxuan Ma, Zhen Meng, Xinyu Zhang, Xiufeng Xie, Huadong Ma, and Xiaojiang Chen. 2019. Learning to Coordinate Video Codec with Transport Protocol for Mobile Video Telephony. In The 25th Annual International Conference on Mobile Computing and Networking (MobiCom '19). Association for Computing Machinery, New York, NY, USA, Article 29, 1–16. DOI:https://doi.org/10.1145/3300061.3345430
國(guó)內(nèi)獲獎(jiǎng)情況
2020 中國(guó)電子學(xué)會(huì)科學(xué)技術(shù)獎(jiǎng)科技進(jìn)步一等獎(jiǎng)。
??https://www.cie.org.cn/system/upload/file/20201211/1607675713758483.pdf??
團(tuán)隊(duì)介紹
大淘寶技術(shù)內(nèi)容中臺(tái)音視頻技術(shù)團(tuán)隊(duì),面向淘寶直播、點(diǎn)淘、逛逛、閑魚、ICBU 等集團(tuán)內(nèi)眾多業(yè)務(wù),負(fù)責(zé)提供實(shí)時(shí)音視頻通信和媒體處理的底層核心能力,為千萬(wàn)商家、達(dá)人、消費(fèi)者帶來(lái)內(nèi)容豐富、高質(zhì)量、絲滑的音視頻體驗(yàn)。