? ? ? ?你在看視頻時(shí)是否被上面的畫(huà)面激怒過(guò)?你是否被視頻緩沖困擾過(guò)?你是否因?yàn)樽穭】吹疥P(guān)鍵時(shí)刻突然卡頓而抱怨過(guò)?MIT最新研究讓你的視頻體驗(yàn)不再那么糟。在今年剛剛召開(kāi)的SIGCOMM 2017上,MIT的研究者們利用最新的AI技術(shù)提出了一種全新的系統(tǒng),Pensieve, 試圖解決長(zhǎng)久困擾視頻觀看者的問(wèn)題——視頻卡頓。
???????在開(kāi)始正文之前,首先應(yīng)該介紹一下SIGCOMM。SIGCOMM 全名是Special Interest Group on Data Communication,它是計(jì)算機(jī)網(wǎng)絡(luò)科學(xué)領(lǐng)域排名第一的國(guó)際會(huì)議,每年舉辦一次,論文的平均錄取率為10%左右。因?yàn)槠鋰?yán)苛的評(píng)審標(biāo)準(zhǔn),所以被該會(huì)議錄取的工作都被學(xué)術(shù)界當(dāng)作計(jì)算機(jī)網(wǎng)絡(luò)科學(xué)研究的風(fēng)向標(biāo)。
本文將從下面幾個(gè)部分介紹這篇工作,分別是研究背景、研究動(dòng)機(jī)、核心想法、實(shí)驗(yàn)驗(yàn)證以及結(jié)論。
研究背景
???????為了保證在多變的網(wǎng)絡(luò)環(huán)境下終端用戶依然可以有較好的視頻觀看體驗(yàn),大型的視頻提供商比如YouTube 等往往都采用了一種基于HTTP的動(dòng)態(tài)碼率調(diào)整算法(DASH)為用戶提供服務(wù)。簡(jiǎn)單的講,針對(duì)同一個(gè)視頻,視頻提供商會(huì)提供其不同碼率的版本,而每個(gè)視頻在傳輸?shù)倪^(guò)程中也會(huì)被切成不同大小的切片(chunk),而DASH要做的就是根據(jù)用戶當(dāng)前的網(wǎng)絡(luò)狀況,動(dòng)態(tài)決定選擇什么樣的碼率。
自然而然的,一個(gè)DASH算法就需要解決下面的問(wèn)題。首先,網(wǎng)絡(luò)狀況的抖動(dòng)是非常劇烈的,所以DASH算法需要保證在這種大幅度變化下依然有效。其次,算法表現(xiàn)的評(píng)價(jià)標(biāo)準(zhǔn)是基于用戶體驗(yàn)的(QoE),而不同用戶可能會(huì)有不同的偏好,比如有的用戶寧愿卡頓也不愿意降低畫(huà)質(zhì),而有的用戶則更加偏愛(ài)畫(huà)面的連續(xù),所以寧愿忍受畫(huà)質(zhì)的下降。好的DASH算法就應(yīng)該保證在不同的評(píng)價(jià)體系下都應(yīng)該有效。第三點(diǎn),碼率的選擇是相互影響的,即上一個(gè)時(shí)刻選擇了什么碼率,也會(huì)影響下一次碼率選擇下的用戶體驗(yàn)。最后,DASH算法要實(shí)時(shí)處理(online),即決策時(shí)間不能長(zhǎng)。這很直觀,比如一個(gè)視頻總長(zhǎng)100s,DASH算法的決策如果需要50s,那顯然是不合適的。
研究動(dòng)機(jī)
???????上一個(gè)部分介紹完了該領(lǐng)域的研究背景,這部分介紹本篇文章的研究動(dòng)機(jī)。為此,首先介紹下目前為止的DASH的研究工作。就目前來(lái)看,最近幾年提出的DASH策略主要分為三種,一種是基于帶寬預(yù)測(cè)的,即通過(guò)預(yù)測(cè)下一個(gè)時(shí)刻的網(wǎng)絡(luò)帶寬來(lái)決定下一個(gè)時(shí)刻應(yīng)該提供多大的碼率,比如CoNEXT’12年的FESTIVE以及SIGCOMM’16年的CS2P。另一類(lèi)方法則通過(guò)維持用戶的緩存區(qū)域的大小來(lái)選擇對(duì)應(yīng)的碼率,相關(guān)工作有SIGCOMM’14年的BBA,以及INFOCOM’16年的BOLA。還有一種DASH策略則結(jié)合了上面兩種策略,即同時(shí)利用帶寬的預(yù)測(cè)和緩存大小去選擇下個(gè)時(shí)刻的碼率。
????????上面所提到的研究雖然都有著不錯(cuò)的表現(xiàn),但是,他們都有相同的缺點(diǎn),即都需要對(duì)網(wǎng)絡(luò)進(jìn)行建模。這就導(dǎo)致了上面提到的方法都會(huì)存在很多不足之處,第一點(diǎn)是方法并不具有普適性。其次,建模本身就是一個(gè)簡(jiǎn)化的過(guò)程,這種簡(jiǎn)化下的解大多數(shù)情況下得到的都是次優(yōu)解。
???????鑒于上面的問(wèn)題,Pensieve的作者們就試圖去將過(guò)去DASH工作中對(duì)網(wǎng)絡(luò)建模這一人為的過(guò)程省略掉,而讓算法自動(dòng)、實(shí)時(shí)的去感知網(wǎng)絡(luò)狀態(tài)并且做出決策。這也是本篇論文最本質(zhì)的目的。
核心想法
????????為了避免提前對(duì)網(wǎng)絡(luò)建模,Pensieve提出了采用增強(qiáng)學(xué)習(xí)加人工神經(jīng)網(wǎng)絡(luò)的方法,整體架構(gòu)如圖所示。
???????利用增強(qiáng)學(xué)習(xí)來(lái)做決策,即選擇碼率,再用深度神經(jīng)網(wǎng)絡(luò)做訓(xùn)練和狀態(tài)表征。首先介紹增強(qiáng)學(xué)習(xí)。增強(qiáng)學(xué)習(xí)的整體框架如下圖所示
???????簡(jiǎn)單的講,就是讓主體通過(guò)觀察環(huán)境,選擇相應(yīng)的動(dòng)作,每一個(gè)動(dòng)作會(huì)對(duì)應(yīng)使得主體進(jìn)入一個(gè)狀態(tài),同時(shí)獲得相應(yīng)的獎(jiǎng)勵(lì),而期望解決的問(wèn)題就是讓主體在未來(lái)的一段時(shí)間內(nèi)獲得的收益最大化。
???????通過(guò)上面的簡(jiǎn)單敘述,我們可以看出,增強(qiáng)學(xué)習(xí)和DASH完美適應(yīng),因?yàn)樵贒ASH中,我們需要解決的就是如何讓用戶在接下來(lái)的一段時(shí)間(比如到視頻結(jié)束)所獲得的整體的QoE達(dá)到最高,這里的QoE就是增強(qiáng)學(xué)習(xí)中的reward。
有了增強(qiáng)學(xué)習(xí)的模型,還有關(guān)鍵問(wèn)題需要解決——如何表征龐大的狀態(tài)空間。因?yàn)樵趥鹘y(tǒng)的增強(qiáng)學(xué)習(xí)問(wèn)題中,狀態(tài)個(gè)數(shù)往往是有限的,所以使用類(lèi)似Tabular-Q learning算法就可以求解;而在DASH的場(chǎng)景下,狀態(tài)空間可以說(shuō)是無(wú)限的,比如用不同的網(wǎng)絡(luò)帶寬來(lái)表征不同的狀態(tài),那狀態(tài)空間的大小就是無(wú)窮大,因?yàn)閹挶旧硎莻€(gè)連續(xù)的數(shù)。為了解決這個(gè)問(wèn)題,這篇文章采用了深度學(xué)習(xí)的架構(gòu)。同過(guò)利用深度學(xué)習(xí)強(qiáng)大的表征能力,增強(qiáng)學(xué)習(xí)中的狀態(tài)直接可以作為網(wǎng)絡(luò)的輸入,網(wǎng)絡(luò)的輸出就是決策該狀態(tài)下的動(dòng)作。
???????所以整個(gè)系統(tǒng)的架構(gòu)如下圖所示,
???????其中用來(lái)表征狀態(tài)的變量包括,網(wǎng)絡(luò)帶寬,chunk下載時(shí)長(zhǎng),下一個(gè)chunk的大小,緩存區(qū)大小,剩余chunk的數(shù)量以及上一個(gè)chunk選擇比特率的大小。中間的深度神經(jīng)網(wǎng)絡(luò)采用三層的CNN網(wǎng)絡(luò)。動(dòng)作空間就是選擇不同的碼率。與此同時(shí),每個(gè)動(dòng)作的reward就是QoE。其實(shí)這里的QoE完全是“自定義”的,即完全可以針對(duì)不同的用戶偏好采用不同的QoE,這又大大提高了Penseve的可擴(kuò)展性。
實(shí)驗(yàn)驗(yàn)證和結(jié)論
???????為了方便對(duì)比,Pensieve采用了一種最常用的QoE評(píng)價(jià)方式,即
???????分別表示帶寬、rebuffer的時(shí)長(zhǎng)以及相鄰chunk之間的平滑程度。正負(fù)號(hào)分別表示喜好或厭惡,系數(shù)表示影響的程度。
???????文章分別在不同的數(shù)據(jù)集中做trace-driven的預(yù)測(cè),并且和前面的工作做對(duì)比,結(jié)果如圖所示:
???????兩個(gè)數(shù)據(jù)集分別為室外的3G網(wǎng)絡(luò)環(huán)境和室內(nèi)的寬帶網(wǎng)絡(luò)環(huán)境,通過(guò)結(jié)果可以發(fā)現(xiàn),Pensieve相較于前面的工作都有著更好的表現(xiàn),很接近最優(yōu)解(最優(yōu)解是指完全知道未來(lái)的網(wǎng)絡(luò)狀況,求解得到的,在實(shí)際中不可能拿到)。與此同時(shí)也對(duì)比了上面的QoE中的每一項(xiàng)的表現(xiàn),如圖所示:
???????可以看到,Pensieve在比特率和平滑程度的選擇上并不是最優(yōu),由此可以得到Pensieve尋找的是全局的最優(yōu)解。
???????除了通過(guò)trace-driven做驗(yàn)證,Pensieve也同時(shí)做了真實(shí)環(huán)境下的測(cè)試,測(cè)試結(jié)果表明Pensieve表現(xiàn)依然優(yōu)秀,測(cè)試結(jié)果如下圖所示:
寫(xiě)在最后
???????通過(guò)上面的介紹,我們可以看到文章中提出的利用深度增強(qiáng)學(xué)習(xí)做自適應(yīng)碼率有著非常優(yōu)秀的表現(xiàn),這無(wú)疑再一次印證了AI技術(shù)的有效性,也希望AI技術(shù)能在更多領(lǐng)域發(fā)揮作用。
參考文獻(xiàn)
Neural Adaptive Video Streaming with Pensieve.
Hongzi Mao, Ravi Netravali, and Mohammad Alizadeh. 2017.?
(SIGCOMM '17). ACM, New York, NY, USA, 197-210
附錄
論文鏈接:
http://people.csail.mit.edu/hongzi/content/publications/Pensieve-Sigcomm17.pdf
作者主頁(yè):
http://people.csail.mit.edu/hongzi/