首度揭示!個(gè)性化視頻技術(shù)——短視頻體驗(yàn)的秘密!
短視頻在過(guò)去數(shù)年內(nèi)成為主流的內(nèi)容創(chuàng)作和信息分發(fā)渠道之一, 字節(jié)跳動(dòng)提供獨(dú)特的視頻播放體驗(yàn),吸引了全球數(shù)十億用戶, 一項(xiàng)重要的貢獻(xiàn)因素是其先進(jìn)的個(gè)性化視頻技術(shù)。過(guò)去五年間,團(tuán)隊(duì)完整開(kāi)創(chuàng)了這一嶄新的技術(shù)領(lǐng)域以優(yōu)化用戶體驗(yàn), 在此我們首次向業(yè)界披露個(gè)性化視頻技術(shù)區(qū)別于傳統(tǒng)音視頻技術(shù)的主要概念和部分方法, 希望對(duì)整個(gè)行業(yè)有所啟發(fā)。本文系“個(gè)性化播放技術(shù)”的中文精簡(jiǎn)版,欲了解更詳細(xì)內(nèi)容可參考原論文。論文鏈接:https://arxiv.org/abs/2410.17073
背景
過(guò)去的若干年間,音視頻服務(wù)重在提供基礎(chǔ)的視頻轉(zhuǎn)碼與分發(fā)能力,行業(yè)的注意力主要集中在四個(gè)方向。
? 編解碼器標(biāo)準(zhǔn)的演進(jìn)、前后處理算法的研究與開(kāi)發(fā)。例如MPEG-2、RMVB、264/AVC、 265/HEVC、266/VVC、VP9、AV1、AV2等視頻編解碼器,MP3、AAC、HEAACv1/v2、XHEAAC、OGG等音頻編解碼器,Jpeg、WebP、Heif等圖像編解碼器,以及前后處理方面的大量工作如超分、降噪、色彩增強(qiáng)、ROI區(qū)域分析等。
? 流媒體傳輸協(xié)議的演進(jìn)。一些取得廣泛影響與應(yīng)用的協(xié)議包括RTP/RTSP、MPEG2-TS、RTMP、HLS、DASH、SRT、RTC等。
? 多媒體框架。例如DirectShow(Microsoft)、Helix(Realnetworks)、MediaFramework(Google)、AVFoundation(Apple)、FFMpeg、VideoLAN、Gstreamer等。
? 云服務(wù)。許多公司往往以彈性計(jì)算平臺(tái)為基礎(chǔ),提供基于容器鏡像模式或者基于serveless模式的服務(wù),允許計(jì)算圖式的任務(wù)分配與調(diào)度,用以靈活地處理轉(zhuǎn)碼與前處理任務(wù),并以此為核心構(gòu)建包含元數(shù)據(jù)、上傳、轉(zhuǎn)碼與下發(fā)服務(wù)、CDN、播放SDK、埋點(diǎn)分析等在內(nèi)的端到端能力集,供業(yè)務(wù)使用,相似地,Brightcove、AWS、Azure和Google Cloud等供應(yīng)商也展開(kāi)了基于云的音視頻服務(wù),供各種規(guī)模的公司快速集成與應(yīng)用。
除此之外,還有一些與音視頻技術(shù)相關(guān)的重要工作,例如信號(hào)調(diào)制、DRM保護(hù)、芯片開(kāi)發(fā)等,與上述各方向之間均存在關(guān)聯(lián)、其發(fā)展軌跡亦相互影響,不贅述。
在控制與決策優(yōu)化方向上,工業(yè)界和學(xué)術(shù)界曾有許多嘗試,例如自適應(yīng)比特率(ABR)算法方案和改進(jìn)等,在編碼方面則有Netflix、Brightcove從2015年開(kāi)始發(fā)表的一系列工作,讓Content Aware Encoding和Context Aware Encoding成為業(yè)界編碼優(yōu)化工作的范式,但以上工作仍過(guò)于局部、零散,并不能充分解決短視頻遇到的問(wèn)題。
在短視頻服務(wù)的研發(fā)方面,我們面臨前所未有的挑戰(zhàn):
- 投稿數(shù)量及其差異性。短視頻應(yīng)用擁有每天億級(jí)別以上的UGC投稿,其內(nèi)容和質(zhì)量千差萬(wàn)別,真實(shí)地代表了整個(gè)世界的多樣性。許多問(wèn)題及其解法、總結(jié)出的規(guī)律是在小得多的規(guī)模上進(jìn)行的,但在我們的規(guī)模下卻距離理想狀態(tài)差之甚遠(yuǎn)。
- 用戶數(shù)量及其多樣性。世界上每天有數(shù)十億用戶使用短視頻,其使用方式與人為偏好存在巨大方差,并由于給予應(yīng)用的反饋信號(hào)雖然數(shù)量繁多,但蘊(yùn)含的信息稀疏且有限,相關(guān)干預(yù)的效果易被掩蓋。
- 復(fù)雜業(yè)務(wù)形態(tài)帶來(lái)的收益與成本約束。短視頻應(yīng)用承載了極為復(fù)雜的業(yè)務(wù),包括廣告、電商、直播打賞、生活服務(wù)、搜索等等,同時(shí)視頻的處理、存儲(chǔ)與分發(fā)所帶來(lái)的成本極高,視頻技術(shù)應(yīng)當(dāng)聚焦提升用戶體驗(yàn),進(jìn)而提升業(yè)務(wù)指標(biāo),同時(shí)平衡與成本之間的關(guān)系。
通過(guò)引入眾多在推薦、廣告、用戶增長(zhǎng)等領(lǐng)域飛速發(fā)展的個(gè)性化技術(shù),與“傳統(tǒng)”音視頻技術(shù)進(jìn)行結(jié)合,字節(jié)跳動(dòng)從2019年開(kāi)始第一次構(gòu)建完備的個(gè)性化視頻技術(shù)體系,帶來(lái)了根本性的范式轉(zhuǎn)變,在內(nèi)部評(píng)估和市場(chǎng)競(jìng)爭(zhēng)中均取得了優(yōu)異的結(jié)果。
總述
1. 方法論
個(gè)性化視頻技術(shù)的理念在于,對(duì)不同用戶,根據(jù)對(duì)其偏好和習(xí)慣的理解,綜合考慮觀看內(nèi)容、時(shí)間、場(chǎng)景、設(shè)備、網(wǎng)絡(luò)等所有影響維度,對(duì)音視頻領(lǐng)域所具有的不同技術(shù)進(jìn)行重新估計(jì)與選擇性運(yùn)用,提供整體最優(yōu)效果。即以控制和決策為核心,強(qiáng)調(diào)整體最優(yōu)、強(qiáng)調(diào)對(duì)不同用戶及其相關(guān)影響維度采用不同技術(shù)。與之對(duì)應(yīng),傳統(tǒng)音視頻領(lǐng)域的工程實(shí)踐未對(duì)不同用戶的差異化訴求予以足夠關(guān)注和滿足,往往以固化的框架和能力為核心,寄希望于發(fā)展通用、統(tǒng)一的技術(shù)提供給用戶,或陷于局部較優(yōu)的方案,這在高用戶規(guī)模、高偏好方差的視頻應(yīng)用體系中將喪失巨大的提升空間。
基于以上理解,我們重新設(shè)立了個(gè)性化視頻技術(shù)的工作流程,參考圖2-1,在此流程中將針對(duì)每次改進(jìn)評(píng)估其用戶影響,這不是一個(gè)很新的思路或者方法,但將這套方法置于核心地位,以此驅(qū)動(dòng)傳統(tǒng)的編解碼、協(xié)議、框架、服務(wù)等開(kāi)發(fā)工作,則屬于首創(chuàng),借助字節(jié)跳動(dòng)數(shù)據(jù)驅(qū)動(dòng)的文化和相應(yīng)工具(例如AB實(shí)驗(yàn)平臺(tái))得以實(shí)現(xiàn)。
圖2-1 個(gè)性化音視頻技術(shù)工作的通用流程
2. 目標(biāo)定義
從通用角度看,ToC的社交媒體類業(yè)務(wù)廣泛使用LT(Life Time)表示一段時(shí)間內(nèi)用戶的活躍情況,以及使用ARPU(Average Revenue Per User)表示每用戶平均收入,此處為后文討論方便,我們做一簡(jiǎn)化,即設(shè)定短視頻業(yè)務(wù)的整體目標(biāo)為L(zhǎng)TV(Life Time Value):
基于上述目標(biāo),我們?cè)O(shè)立二級(jí)指標(biāo),音視頻領(lǐng)域大家會(huì)觀測(cè)EBVS(Exist Before Video Start)、VPF(Video Playback Failures)、VST(Video Startup Time)、Rebuffering Ratio等不同QoS指標(biāo)。但我們認(rèn)為這并不足以刻畫(huà)用戶的信息,也并不能完整反映用戶播放過(guò)程中的狀態(tài)變化,因此會(huì)設(shè)立一個(gè)更為全面、開(kāi)放的指標(biāo)組QoS(Quality of Performance)表示多維度的完整性能體驗(yàn)。具體定義參見(jiàn)表2-1 ,同時(shí)也會(huì)估計(jì)不同性能指標(biāo)對(duì)業(yè)務(wù)指標(biāo)的影響。
表2-1 部分性能指標(biāo)定義
注意,以上表格內(nèi)并非全部QoP指標(biāo),其影響幅度將隨業(yè)務(wù)發(fā)展階段與環(huán)境而變化,QoP指標(biāo)組所涵蓋的指標(biāo)會(huì)發(fā)生增減,變更影響幅度也可能發(fā)生大幅改變。
在評(píng)估環(huán)節(jié),我們將對(duì)每個(gè)項(xiàng)目計(jì)算profit和ROI,并根據(jù)業(yè)務(wù)場(chǎng)景和目標(biāo)設(shè)定不同的調(diào)控不同的成本價(jià)值。并令其滿足以下上線條件:
3. 端到端工作框架
傳統(tǒng)上端到端的音視頻技術(shù)體系將鏈路劃分成多個(gè)環(huán)節(jié),包括投稿、轉(zhuǎn)碼、分發(fā)、調(diào)度、播放等環(huán)節(jié),一種典型的系統(tǒng)架構(gòu)如下圖所示:
圖2-2 AWS的VOD Streaming架構(gòu)
在我們的系統(tǒng)上會(huì)格外強(qiáng)調(diào)控制與決策,以及對(duì)用戶的影響,并且我們認(rèn)為每個(gè)子領(lǐng)域均與其他子領(lǐng)域存在面向個(gè)性化體驗(yàn)的統(tǒng)籌優(yōu)化空間,僅僅由于復(fù)雜的鏈路從而導(dǎo)致不能直接進(jìn)行整體建模,但每個(gè)子領(lǐng)域仍需對(duì)其他環(huán)節(jié)進(jìn)行深度理解和配合,逼近整體建模的效果,概念性的劃分圖如下:
圖2-3 個(gè)性化音視頻技術(shù)的概念性架構(gòu)圖
在上圖所示的架構(gòu)中,我們認(rèn)為下發(fā)、調(diào)度、傳輸、下載與播放相關(guān)的策略應(yīng)當(dāng)統(tǒng)籌看待,因此把這一子領(lǐng)域命名為Personalized Streaming & Playback,對(duì)轉(zhuǎn)碼相關(guān)的決策領(lǐng)域命名為User-Item Aware Encoding,同時(shí)把投稿相關(guān)的編碼和傳輸策略命名為Foresight Based Publishing。
個(gè)性化從技術(shù)角度則是策略化,策略優(yōu)化在個(gè)性化目標(biāo)下通常包含以下角度:
- User:對(duì)不同用戶提供的策略方法不同,此處還可細(xì)分為投稿者、消費(fèi)者、甚至投稿者 x 消費(fèi)者等維度。
- Item:對(duì)每個(gè)Item(在短視頻應(yīng)用中的視頻——其他消費(fèi)體裁如圖文等類同)做差異化的處理,進(jìn)而在User x Item維度上提供不同效果。
- Context:即用戶消費(fèi)的場(chǎng)景、個(gè)人狀態(tài)、外部環(huán)境等,在User x Context、Item x Context(較少)或者User x Item x Context維度上形成差異化。
對(duì)不同決策干預(yù)點(diǎn)而言(上圖中每個(gè)子領(lǐng)域內(nèi)都至少有數(shù)個(gè)乃至數(shù)十個(gè)不同的干預(yù)點(diǎn),后文章節(jié)中將擇要介紹部分干預(yù)位置),其優(yōu)化水平可以按粒度劃分為以下層次:
- Rule-based level:根據(jù)簡(jiǎn)單、明確、有限的規(guī)則,對(duì)部分User、部分Item或部分Context情形下采用不同策略。
- Portrait based level:對(duì)不同的User、Item,可能會(huì)篩選出同質(zhì)的群組,對(duì)不同群組采用不同的策略,畫(huà)像可以通過(guò)數(shù)據(jù)分析、挖掘,或者模型篩選的方式生成。
- Individual level:對(duì)單一的UserItem、Context下采用不同的策略,通常需要使用機(jī)器學(xué)習(xí)、深度模型等技術(shù)。
- 其中不同層次之間可能存在交錯(cuò),例如,畫(huà)像不僅可以單獨(dú)使用,仍然可以作為Individual處理的特征輸入。
- 以上體系可由基礎(chǔ)數(shù)據(jù)、規(guī)則、特征、畫(huà)像、模型(或特定算法模塊)等內(nèi)容組合構(gòu)建,并且在服務(wù)端、客戶端均具備相應(yīng)能力,用以支持各個(gè)策略模塊的統(tǒng)籌決策。
圖2-4 支持個(gè)性化音視頻技術(shù)的方式
在上述系統(tǒng)的設(shè)立與構(gòu)建的基礎(chǔ)上,可以按照優(yōu)化問(wèn)題的一般工作思路對(duì)整個(gè)視頻播放工作進(jìn)行拆解和拓展,我們根據(jù)工作便捷性可以定義了以下維度,后文將盡力從這些視角介紹:優(yōu)化目標(biāo)(Object);干預(yù)選項(xiàng)/動(dòng)作(Treatment/Action);信號(hào)/狀態(tài)(Feature/State);優(yōu)化方法(Method)
個(gè)性化流媒體&播放技術(shù)
在推薦算法或者用戶選擇決定了播放內(nèi)容(Item List)的前提下,整個(gè)流媒體播放服務(wù)可視為主要包含Delivery,Scheduling,Streaming & Playback三個(gè)環(huán)節(jié),根據(jù)視頻Item當(dāng)時(shí)所具有的檔位(Ladder)基礎(chǔ)上,對(duì)調(diào)度、傳輸和播放的相關(guān)邏輯進(jìn)行個(gè)性化、算法化優(yōu)化,能夠有效提升播放體驗(yàn)、降低成本,最終提升整體業(yè)務(wù)收益。
- 按需下發(fā)(On-Demand Delivery)
- CDN調(diào)度(Personality Quality Scheduling)
- 流媒體播放(Personalized Streaming & Playback)
圖3-1 個(gè)性化流媒體播放模塊示意圖
上述播放服務(wù)的優(yōu)化目標(biāo)可用下式所示:
1. 個(gè)性化流媒體 & 播放
問(wèn)題
根據(jù)短視頻應(yīng)用的特點(diǎn),信息流播放占據(jù)絕大多數(shù)的用戶時(shí)長(zhǎng)。在信息流播放過(guò)程中,一次信息流請(qǐng)求會(huì)獲取一個(gè)排序過(guò)的Item List,供用戶順序觀看(用<user,item>表示一次播放),播放器理應(yīng)依據(jù)對(duì)觀看行為的預(yù)判,提前下載每個(gè)視頻最可能被看到的片段,并提前準(zhǔn)備播放相關(guān)組件,以保障列表中的各個(gè)視頻的啟播速度、流暢度、畫(huà)質(zhì)等效果,即,優(yōu)化目標(biāo)不再是單次播放的效果,而是用戶在整個(gè)播放序列中的綜合體驗(yàn)。
方案
思路
動(dòng)作空間
狀態(tài)空間
狀態(tài)空間中的狀態(tài)即是策略所需的特征信號(hào),更大的狀態(tài)空間通常意味著更高的優(yōu)化上限。為了實(shí)現(xiàn)個(gè)性化的目標(biāo)建模與策略優(yōu)化,在狀態(tài)空間的構(gòu)建時(shí)應(yīng)當(dāng)系統(tǒng)化考慮Rule-based、Portrait based、Individual等不同層次的狀態(tài),從User、Item、Context等角度構(gòu)建。
基礎(chǔ)的特征建設(shè)只需滿足相關(guān)性即可,除卻原始數(shù)據(jù)外,也應(yīng)當(dāng)針對(duì)QoP各指標(biāo)的維度建設(shè)能夠充分識(shí)別性能狀態(tài)的實(shí)時(shí)特征,以及對(duì)未來(lái)表現(xiàn)建設(shè)預(yù)測(cè)類特征。
畫(huà)像建設(shè)可以通過(guò)目標(biāo)驅(qū)動(dòng),即根據(jù)期望優(yōu)化的QoP指標(biāo)構(gòu)建對(duì)應(yīng)畫(huà)像,例如流暢度敏感畫(huà)像、畫(huà)質(zhì)敏感畫(huà)像、流量敏感畫(huà)像、存儲(chǔ)敏感畫(huà)像等等,也可以利用業(yè)務(wù)先驗(yàn)信息,對(duì)用戶的投稿或消費(fèi)的類別、層次建設(shè)對(duì)應(yīng)畫(huà)像,更進(jìn)一步說(shuō),任何User、Item、Context維度能予以劃分,并與QoP具備指標(biāo)變動(dòng)相關(guān)性的數(shù)據(jù)屬性均可使用。
以畫(huà)質(zhì)敏感畫(huà)像為例給出一種做法,根據(jù)線上用戶的播放結(jié)果,收集用戶基礎(chǔ)信息、性能特征、分檔位的播放數(shù)據(jù)、歷史行為特征等,使用Uplift模型預(yù)測(cè)Treatment和播放時(shí)長(zhǎng)的分位數(shù)回歸,根據(jù)模型表現(xiàn)(uplift-value)將人群劃分成不同分組Ug。顯然,該畫(huà)像將對(duì)流暢性和畫(huà)質(zhì)平衡相關(guān)的決策提供關(guān)鍵信息。
Individual層次特征的構(gòu)建,通常需要通過(guò)數(shù)據(jù)計(jì)算或模型預(yù)測(cè)構(gòu)建所需的分類、回歸值或概率分布。以用戶對(duì)某一視頻的播放時(shí)長(zhǎng)這樣的特征來(lái)說(shuō),歷史上有一些工作對(duì)此進(jìn)行了預(yù)測(cè)和使用,其或者基于用戶過(guò)去幾次播放的結(jié)果進(jìn)行預(yù)判,或者使用某一視頻被所有用戶觀看的分布代替具體用戶的觀播時(shí)長(zhǎng)分布。但這些做法并不適用于短視頻平臺(tái),由于短視頻消費(fèi)呈現(xiàn)幾何分布,生命周期十分短促,同時(shí)此類做法過(guò)于粗糙,沒(méi)有充分地考慮個(gè)性化。
一種簡(jiǎn)化的可行做法可以是從片源時(shí)長(zhǎng)、用戶、視頻維度各自建立播放時(shí)長(zhǎng)的分布,并利用參數(shù)的加權(quán)擬合(參考下式),融合成一個(gè)綜合的時(shí)長(zhǎng)分布。
優(yōu)化示例
在特定時(shí)間點(diǎn)決策對(duì)某一視頻下載某個(gè)檔位,即選檔問(wèn)題,是在流媒體領(lǐng)域中的常見(jiàn)子問(wèn)題,在短視頻的信息流播放場(chǎng)景下的相關(guān)問(wèn)題是下載控制決策,對(duì)這兩項(xiàng)控制算法進(jìn)行優(yōu)化即可視為針對(duì)兩個(gè)(組)動(dòng)作的決策。由于我們所意圖優(yōu)化的動(dòng)作空間、狀態(tài)空間范圍遠(yuǎn)超以往,使用的工具也極為廣泛,此處僅以選檔和下載控制為示例進(jìn)行介紹。
在我們的工作中,對(duì)檔位選擇和下載控制的處理,遵循前面提及的思路,有以下不同:
1.優(yōu)化不僅考慮某一個(gè)視頻的播放,而是統(tǒng)籌整個(gè)列表的播放體驗(yàn)??紤]的性能維度拓展為完備的指標(biāo)組,直接通過(guò)QoP指向Profit,同時(shí)對(duì)與此任務(wù)最相關(guān)的QoP指標(biāo)建立下級(jí)指標(biāo),即拆解為多維度來(lái)表征,例如對(duì)Rebuffer亦拆解首幀卡頓、播放前中后期卡頓、緩沖區(qū)卡頓等。
2.控制的動(dòng)作更為精細(xì),例如選檔即需要區(qū)分不同選擇時(shí)機(jī)和目標(biāo)(比如發(fā)現(xiàn)),下載不僅需要選擇“下什么”、“下多少”,同時(shí)也需要選擇“從哪兒下”、“怎么下”、“下載后的處理方式”。在此基礎(chǔ)上,對(duì)不同干預(yù)點(diǎn)進(jìn)行聯(lián)合決策,除了選檔與下載動(dòng)作的聯(lián)合決策外,也包含二者與其他動(dòng)作如解碼、后處理增強(qiáng)等的聯(lián)合決策,以最大化QoP效果。若將根據(jù)輸入特征決定控制動(dòng)作的具體算法,例如模型或者決策樹(shù),稱之為決策函數(shù)Decider,這里所述的聯(lián)合決策存在幾種情況:
a.對(duì)某一控制動(dòng)作的決策,其他時(shí)間線上在前的干預(yù)點(diǎn),其決策結(jié)果可作為特征輸入至決策函數(shù)內(nèi),對(duì)時(shí)間線在后的干預(yù)點(diǎn),亦可進(jìn)行預(yù)測(cè)式?jīng)Q策。
b.對(duì)某一決策時(shí)機(jī),若同時(shí)存在多個(gè)動(dòng)作需要決策,可以建立聯(lián)合決策函數(shù),輸出最優(yōu)解。
c.不論決策時(shí)機(jī)是否相同,決策函數(shù)本身均可在聯(lián)合空間內(nèi),離線地搜索(訓(xùn)練),得到最優(yōu)(更優(yōu))方法。
3.依據(jù)一般的特征重要性判別方法進(jìn)行篩選,除了常見(jiàn)的網(wǎng)絡(luò)狀態(tài)、緩沖區(qū)狀態(tài)等,加入大量個(gè)性化特征,對(duì)選檔和下載有重要意義的特征包括(但不限于)以下內(nèi)容:
a.用戶對(duì)視頻的播放時(shí)長(zhǎng)預(yù)測(cè)、...
b.用戶、視頻各自的首幀敏感畫(huà)像、畫(huà)質(zhì)敏感畫(huà)像、畫(huà)質(zhì)切換敏感畫(huà)像、卡頓敏感畫(huà)像、功耗敏感畫(huà)像、流量敏感畫(huà)像、...
c.用戶當(dāng)前的近實(shí)時(shí)畫(huà)質(zhì)與卡頓情況、設(shè)備溫度、設(shè)備音量、屏幕亮度、CPU占用率、內(nèi)存占用情況、流量消耗情況、...
4.最后,依據(jù)上述特征同步更新
圖3-2 流媒體播放算法優(yōu)化過(guò)程
架構(gòu)
傳統(tǒng)上類似DirectShow、Gstreamer、FFMpeg等多媒體框架的設(shè)計(jì)理念在于模塊化各類組件,利用統(tǒng)一的接口,靈活構(gòu)建有向無(wú)環(huán)圖式的pipeline,提升復(fù)用性和一致性,以支持廣泛的不同需求。
但在前文所定義的Personalized Streaming & Playback相關(guān)問(wèn)題上,由于以極致提升用戶體驗(yàn)為最優(yōu)先目標(biāo),則與基于傳統(tǒng)多媒體框架的播放器相比出發(fā)點(diǎn)有所不同,我們由此設(shè)立了如下的播放器架構(gòu)。
圖3-3 播放器架構(gòu)示意圖
- 設(shè)立統(tǒng)籌決策的策略中心組件 策略中心組件負(fù)責(zé)提供對(duì)播放和下載的控制決策,包括實(shí)時(shí)的算法決策和后臺(tái)預(yù)計(jì)算等,主要目的在于策略算法化是長(zhǎng)期、頻繁發(fā)生的事情,將各組件自行決策的部分(即前文Action Space段落中的Atop)遷入策略中心并進(jìn)行統(tǒng)籌優(yōu)化。
- 設(shè)立全局可見(jiàn)的配置和數(shù)據(jù)中心 配置和數(shù)據(jù)中心負(fù)責(zé)提供全局可見(jiàn)的配置訪問(wèn)與數(shù)據(jù)訪問(wèn)能力,即簡(jiǎn)化了不同組件間的數(shù)據(jù)訪問(wèn)過(guò)程,此處所談及的數(shù)據(jù)應(yīng)包含各自模塊內(nèi)部的運(yùn)行狀態(tài)數(shù)據(jù)、中間計(jì)算結(jié)果等,此處可視為State空間的具象。
- 設(shè)立抽象的Framework 統(tǒng)一各組件的設(shè)計(jì),使用同一套線程池、鎖、消息機(jī)制、數(shù)據(jù)結(jié)構(gòu)、內(nèi)存Buffer池等基礎(chǔ)能力,這部分與傳統(tǒng)多媒體框架類似。
- 提供面向性能指標(biāo)的動(dòng)態(tài)配置能力 傳統(tǒng)多媒體框架中的組件同樣會(huì)提供若干選項(xiàng),以此帶來(lái)一定靈活度,例如Gstreamer的libde265dec組件僅提供最大線程數(shù)配置,我們認(rèn)為這還遠(yuǎn)為不足。由于不同用戶在不同場(chǎng)合下所需的“最優(yōu)”性能表現(xiàn)各自不同,即,假設(shè)存在低內(nèi)存高cpu占用的一種程序?qū)懛ǎ土硪环N高內(nèi)存占用低cpu消耗的程序?qū)懛?,可能?yīng)隨用戶設(shè)備的不同狀態(tài)進(jìn)行選擇相應(yīng)運(yùn)行分支。更進(jìn)一步,我們認(rèn)為對(duì)所有組件,均應(yīng)當(dāng)提供面向主要二級(jí)性能指標(biāo)的改進(jìn)(與兌換)版本,或其局部過(guò)程的更精細(xì)配置選項(xiàng),即對(duì)一個(gè)提供Demux能力的組件,應(yīng)當(dāng)存在高/中/低內(nèi)存占用,高/中/低CPU使用版等,對(duì)于其中關(guān)鍵元素,其配置參數(shù)應(yīng)當(dāng)支持開(kāi)放可調(diào)——意味著策略中心內(nèi)算法可以動(dòng)態(tài)對(duì)其調(diào)整。從優(yōu)化視角看,此處可認(rèn)為是在提升a(i,k),j與其所對(duì)應(yīng)的QoP(i,k),j,擴(kuò)大選擇空間。
Overall speaking,我們的設(shè)計(jì)以一定程度的程序復(fù)雜度增加,換取了更高的性能兌換的空間和策略統(tǒng)籌控制的空間,使用這種算法中心化的設(shè)計(jì),可以提供給用戶更為個(gè)性化、更極致的流媒體下載與播放體驗(yàn)。
2. 個(gè)性化質(zhì)量調(diào)度
通常一家視頻平臺(tái)為內(nèi)容分發(fā)和容災(zāi)考慮會(huì)使用數(shù)個(gè)CDN供應(yīng)商,作為短視頻平臺(tái)方,則需要考慮如何利用CDN廠商資源下發(fā)內(nèi)容以提高播放體驗(yàn)和節(jié)約帶寬成本。
傳統(tǒng)做法是基于流量的成本約束和負(fù)載均衡情況做隨機(jī)分配,更進(jìn)一步的是結(jié)合資源質(zhì)量進(jìn)行動(dòng)態(tài)調(diào)度。但該方式?jīng)]有考慮到實(shí)際用戶特性,例如不同用戶在觀看視頻過(guò)程中對(duì)當(dāng)前網(wǎng)絡(luò)質(zhì)量的需求差異,以及視頻特性(如熱度)。
我們的做法大致包括,基于用戶所處的播放狀態(tài)、對(duì)的偏好,對(duì)每個(gè)用戶每次網(wǎng)絡(luò)請(qǐng)求進(jìn)行優(yōu)先級(jí)定義,在成本約束下為其匹配最佳的網(wǎng)絡(luò)資源進(jìn)行個(gè)性化質(zhì)量調(diào)度,整體圖景如3-4所示。
圖3-4 個(gè)性化調(diào)度示意圖
優(yōu)化目標(biāo):
優(yōu)化思路和動(dòng)作:
CDN質(zhì)量調(diào)度需要解決的主要難題是在動(dòng)態(tài)網(wǎng)絡(luò)下,預(yù)測(cè)資源的服務(wù)質(zhì)量,同時(shí)在滿足成本約束下,結(jié)合用戶需求做最優(yōu)分配。成本約束主要限制了不同資源的服務(wù)帶寬比例,此外還有邊際質(zhì)量下降、單廠商容量天花板等問(wèn)題。另外,不同用戶在不同視頻消費(fèi)階段對(duì)網(wǎng)絡(luò)質(zhì)量的需求不同。
具體而言在CDN質(zhì)量調(diào)度問(wèn)題上,主要需解決兩個(gè)問(wèn)題:
- 1. 對(duì)于不同網(wǎng)絡(luò)下載請(qǐng)求,如何定義其對(duì)網(wǎng)絡(luò)質(zhì)量的需求度(例如速度、延遲、丟包)。
- 2. 對(duì)于一次網(wǎng)絡(luò)下載請(qǐng)求,如何評(píng)價(jià)、預(yù)測(cè)網(wǎng)絡(luò)資源的質(zhì)量(不同廠商、節(jié)點(diǎn)的預(yù)期服務(wù)質(zhì)量),決策分配結(jié)果。
p,b存在關(guān)聯(lián),與實(shí)際商務(wù)談判有關(guān),例如,提高某廠商的服務(wù)量級(jí)可能會(huì)得到價(jià)格優(yōu)惠。
除了直接為用戶提供下載產(chǎn)生的邊緣帶寬,CDN帶寬的另一部分成本來(lái)自于回源帶寬,短視頻應(yīng)用每天需處理億級(jí)別的新視頻發(fā)布,同時(shí)邊緣網(wǎng)絡(luò)節(jié)點(diǎn)存儲(chǔ)有限,因此邊緣網(wǎng)絡(luò)的視頻文件緩存命中率遠(yuǎn)不如長(zhǎng)視頻平臺(tái)。通常網(wǎng)絡(luò)供應(yīng)商的文件存儲(chǔ)是基于過(guò)去視頻文件的訪問(wèn)量完成的,但在短視頻平臺(tái)隨機(jī)/質(zhì)量調(diào)度策略下,同一個(gè)視頻文件會(huì)被分配給不同的廠商,這會(huì)導(dǎo)致單廠商視角下部署的文件無(wú)法得到充分利用,造成邊緣緩存命中率下降。
由于冷文件的邊緣命中率更差,簡(jiǎn)化起見(jiàn),會(huì)希望利用視頻文件的熱度變化信息做針對(duì)性的冷熱調(diào)度,即冷文件集中調(diào)度到有限的廠商、節(jié)點(diǎn),從而提高邊緣緩存命中率。需說(shuō)明的是,冷熱調(diào)度和質(zhì)量調(diào)度存在沖突,因此一種可能的劃分是,只對(duì)冷文件做定向調(diào)度,熱文件做個(gè)性質(zhì)量調(diào)度。
視頻請(qǐng)求的回源帶寬可以表示為
如上文提及的質(zhì)量調(diào)度或者業(yè)界的成本調(diào)度,都會(huì)將視頻文件請(qǐng)求隨機(jī)/均勻的請(qǐng)求到廠商/節(jié)點(diǎn)上,這會(huì)降低廠商視角下視頻文件的熱度,從而命中率進(jìn)一步下降,通過(guò)調(diào)度提高視頻文件的邊緣命中率,從而對(duì)回源帶寬優(yōu)化,思路是將視頻文件只定向分發(fā)給單一或有限個(gè)廠商、節(jié)點(diǎn)。但如果對(duì)所有視頻都做定向調(diào)度,那么很有可能造成廠商/節(jié)點(diǎn)的負(fù)載突然過(guò)大,因此應(yīng)主要針對(duì)冷文件做定向調(diào)度。合理的方案是將視頻文件熱度作為文件價(jià)值進(jìn)行預(yù)測(cè),基于預(yù)測(cè)結(jié)果劃分文件冷熱,例如選擇出top N%的冷文件做定向調(diào)度,或者使用一致性hash算法。
CDN廠商部署文件的通常做法是基于過(guò)去短時(shí)間的文件訪問(wèn)量進(jìn)行緩存(例如LRU策略),前人曾嘗試從流量分配角度將更多請(qǐng)求分配到有緩存的CDN節(jié)點(diǎn)上,或者通過(guò)歷史流行度分析視頻請(qǐng)求后的部署策略。為提高邊緣請(qǐng)求命中率,一種可行的思路是通過(guò)預(yù)測(cè)視頻流行度,決策是否需要在邊緣節(jié)點(diǎn)提前進(jìn)行文件緩存部署。
以月95峰計(jì)費(fèi)方式舉例,假如全天的帶寬波形變化存在峰谷,我們可以利用低谷閑置的帶寬資源來(lái)做視頻文件的提前部署,從而提高未來(lái)尤其是晚高峰的CDN邊緣命中率。
合理的方案包括:
- 實(shí)現(xiàn)視頻檔位價(jià)值計(jì)算,并進(jìn)一步拆分區(qū)域運(yùn)營(yíng)商進(jìn)行預(yù)測(cè)(節(jié)點(diǎn)服務(wù)通常不會(huì)跨運(yùn)營(yíng)商、跨區(qū)域,會(huì)帶來(lái)一定質(zhì)量損失和成本上升)。
- 為了避免熱文件的集中部署帶來(lái)節(jié)點(diǎn)負(fù)載過(guò)高,使用知識(shí)圖譜技術(shù)對(duì)文件進(jìn)行相似度刻畫(huà),將需要預(yù)熱的視頻文件按照整體文件相似度最大的原則進(jìn)行部署。
對(duì)于CDN供應(yīng)商,峰值計(jì)費(fèi)的方式通常比流量計(jì)費(fèi)方式更劃算。在多CDN峰值計(jì)費(fèi)的情況下,成本是各廠商的95峰之和。因此對(duì)于視頻平臺(tái),存在動(dòng)力通過(guò)分配用戶下載請(qǐng)求,控制各家CDN帶寬波形做進(jìn)一步的成本優(yōu)化。即在總帶寬T給定情況下,降低各家廠商的計(jì)費(fèi)值,定義帶寬調(diào)度復(fù)用率(Scheduling Reuse Rate)如下
對(duì)于時(shí)段的篩選,根據(jù)計(jì)費(fèi)方式,預(yù)測(cè)月粒度帶寬95峰內(nèi)的時(shí)間區(qū)間,詳見(jiàn)下文Context服務(wù)部分,作為每天堆高的時(shí)間段。堆高的方式可以有如下三種,考慮到實(shí)現(xiàn)復(fù)雜度同時(shí)盡量減少?gòu)S商節(jié)點(diǎn)的單天帶寬抖動(dòng),考慮使用隔天錯(cuò)峰的方式。
圖3-5 CDN錯(cuò)峰堆高方法示意圖
3. 按需下發(fā)
下發(fā)服務(wù)
將視頻的更多可用檔位下發(fā)到客戶端,有助于提升客戶端策略的決策空間,但同時(shí)下發(fā)/傳輸/數(shù)據(jù)解析本身具有開(kāi)銷,如果下發(fā)對(duì)客戶端無(wú)用的檔位文件給客戶端,對(duì)整個(gè)系統(tǒng)性能會(huì)有負(fù)向的影響。所以問(wèn)題在于,如何在下發(fā)側(cè)選擇最優(yōu)的“可能組合”給客戶端,平衡服務(wù)端、客戶端決策的差異,同時(shí)考慮下發(fā)動(dòng)作本身的代價(jià)。
方案 可以設(shè)立該問(wèn)題的形式化公式如下:
其中,
在實(shí)際優(yōu)化中,由于一般不會(huì)很大,例如<100,所以在適當(dāng)剪枝后遍歷是相對(duì)容易的。主要的工作在于在狀態(tài)下對(duì)、以及的估計(jì)。
Context服務(wù)
Context Service主要是針對(duì)某一性能相關(guān)的全局指標(biāo),給出未來(lái)趨勢(shì)的預(yù)測(cè),例如,預(yù)測(cè)未來(lái)5分鐘的帶寬,以及帶寬在全天帶寬中的分位值,其他指標(biāo)可以有全局視頻播放量、網(wǎng)速分布變化等,服務(wù)的輸出主要作為其他算法的輸入,即給出相應(yīng)的時(shí)序預(yù)測(cè)結(jié)果,可以:
- 用于影響前文調(diào)度和下發(fā)工作的結(jié)果,例如在下發(fā)前根據(jù)預(yù)測(cè)結(jié)果進(jìn)行下發(fā)內(nèi)容的重排或過(guò)濾。
- 將預(yù)測(cè)結(jié)果嵌入下發(fā)內(nèi)容,供客戶端進(jìn)行算法決策。
- 將預(yù)測(cè)結(jié)果傳輸至服務(wù)端模型使用(例如UIAE的各算法環(huán)節(jié))。
用戶-內(nèi)容感知編碼
1. 問(wèn)題背景與解決框架
圖4-1 基于用戶-內(nèi)容感知的編碼(UIAE)
即在某一時(shí)刻,用戶觀看視頻時(shí),轉(zhuǎn)碼策略應(yīng)當(dāng)感知當(dāng)前時(shí)刻每個(gè)用戶所處的Context,并結(jié)合用戶個(gè)性化特征,計(jì)算出來(lái)最適合每個(gè)用戶的檔位并實(shí)時(shí)轉(zhuǎn)出。但由于轉(zhuǎn)碼成本高、轉(zhuǎn)出延遲長(zhǎng)、搜索空間廣等原因,實(shí)踐中直接按此邏輯設(shè)計(jì)并不可行。
為了應(yīng)對(duì)上述挑戰(zhàn),可考慮做如下近似:
- 聚焦熱門(mén)視頻:分析發(fā)現(xiàn)短視頻應(yīng)用往往Top 1%的視頻占到70%+的播放量,同時(shí)尾部視頻生命周期短,轉(zhuǎn)碼ROI低,基于熱門(mén)視頻,可以將視頻處理量從數(shù)十億級(jí)別壓縮到千萬(wàn)級(jí)別。
- 提前轉(zhuǎn)碼:可以首先預(yù)估視頻未來(lái)一段時(shí)間的消費(fèi)用戶分布Ug。基于Ug,計(jì)算該視頻最合適的檔位組L。為應(yīng)對(duì)視頻消費(fèi)分布快速變化,需持續(xù)更新最優(yōu)檔位組L,以適應(yīng)用戶的最新播放需求。
- 基于轉(zhuǎn)碼資源Quota限制和吞吐限制,轉(zhuǎn)碼隊(duì)列采用Weighted-batch模式。
基于以上近似,更新優(yōu)化公式:
圖4-2 UIAE技術(shù)詳細(xì)框架
下文中我們將首先介紹Video Value Prediction,構(gòu)建視頻價(jià)值模型以預(yù)估視頻的未來(lái)價(jià)值,該模型不僅用在UIAE上,在其他場(chǎng)景也有貢獻(xiàn);其次將詳細(xì)介紹UIAE算法,即如何從個(gè)性化角度計(jì)算檔位組合;再次介紹如何統(tǒng)籌轉(zhuǎn)碼資源,從全局視角最大化Reward,最后介紹相關(guān)的實(shí)驗(yàn)?zāi)芰Α?/span>
2. 視頻價(jià)值預(yù)測(cè)
問(wèn)題
價(jià)值預(yù)測(cè)的建模方法主流可分為兩種,一種是基于時(shí)序預(yù)測(cè)其預(yù)測(cè)目標(biāo),更適合有一定周期性的領(lǐng)域場(chǎng)景, 另外一種是使用DNN等深度網(wǎng)絡(luò)直接回歸建模,通用性更強(qiáng)。
在短視頻轉(zhuǎn)碼場(chǎng)景,視頻價(jià)值判斷所面臨挑戰(zhàn)主要在于:
- 長(zhǎng)尾效應(yīng)嚴(yán)重。高熱視頻占比極低,但同時(shí)占據(jù)了絕大多數(shù)播放量,這就導(dǎo)致在回歸建模中,容易被高價(jià)值視頻帶偏,需要謹(jǐn)慎設(shè)計(jì)目標(biāo)函數(shù)。
- 短視頻生命周期短同時(shí)消費(fèi)趨勢(shì)呈現(xiàn)多樣性。絕大多數(shù)的視頻生命周期都很短,不同內(nèi)容的視頻消費(fèi)隨時(shí)間分布也呈現(xiàn)很大差異。這就需要我們要獲取更多特征。
方案
為了增加視頻價(jià)值模型的通用性,建模目標(biāo)包括但不限于未來(lái)多個(gè)時(shí)間段的播放量、播放時(shí)長(zhǎng)、點(diǎn)贊量、下載量等,我們統(tǒng)一用表示預(yù)測(cè)目標(biāo),y表示真值。
- 視頻價(jià)值建模使用到的特征:
作者側(cè)特征組:作者ID、活躍度、發(fā)文量、粉絲量、觀看量等。
視頻側(cè)特征組:音樂(lè)ID、內(nèi)容、時(shí)長(zhǎng),當(dāng)前播放量,點(diǎn)贊量,播放增速、原創(chuàng)度、投放設(shè)置等。
Context特征:時(shí)間、節(jié)假日等。
可選的Loss設(shè)計(jì)如MSE和Huber Loss以及Weighted log loss等常見(jiàn)的loss函數(shù)。模型結(jié)構(gòu):這里給出線上使用過(guò)的一種視頻價(jià)值模型結(jié)構(gòu),DNN + LHUC + BIAS,如圖4-3所示:
圖4-3 視頻價(jià)值預(yù)估價(jià)值模型
評(píng)估指標(biāo):如Regression-AUC和MAE等。
下文給出了此種設(shè)計(jì)與Rule-based的Topvv策略(依據(jù)當(dāng)前播放量)和大v策略(依據(jù)作者粉絲數(shù))的對(duì)比效果:
表 4-1 效果評(píng)估
3. 用戶-內(nèi)容感知編碼
若認(rèn)可用戶會(huì)因?yàn)榭陀^因素(如機(jī)型性能,網(wǎng)速)和主觀傾向不同而對(duì)播放的檔位存在差異化需求,如4-4所示。
圖4-4 用戶觀看視頻的不同檔位
那么對(duì)某一個(gè)具體的視頻,針對(duì)消費(fèi)群體,應(yīng)當(dāng)轉(zhuǎn)碼為哪些版本才是最優(yōu)?這個(gè)是User-Item Aware Encoding(UIAE)需要去解決的問(wèn)題。
不同于推薦可以得到較為精準(zhǔn)的反饋信號(hào),播放場(chǎng)景下很難精準(zhǔn)得到關(guān)于一個(gè)視頻的最優(yōu)檔位組的反饋。因此一種可行的做法是類似于梯度上升的迭代思路,在視頻的整個(gè)消費(fèi)周期內(nèi)設(shè)定消費(fèi)窗口,在每個(gè)窗口下都計(jì)算未來(lái)最合適的檔位組,以此不斷地迭代檔位組, 確保其不斷逼近理想值。
圖4-5 檔位組收益曲線示意圖
基于此思路,我們給出一種技術(shù)方案如下圖所示:
圖4-6 User-Item Aware Encoding整體方案
建模算法思路如下:在轉(zhuǎn)碼側(cè),通常重在關(guān)注流暢體驗(yàn)和畫(huà)質(zhì)體驗(yàn),即:
所控制的編碼選項(xiàng)包括但不限于以下維度,對(duì)不同視頻的相關(guān)性能(畫(huà)質(zhì)、碼率、編碼速度)表現(xiàn)可預(yù)計(jì)算(預(yù)測(cè))出(即CAE編碼的常用工作方式)并供UIAE和Resource Allocation Model決策使用:
表 4-2 編碼控制參數(shù)
4. 資源分配模型
當(dāng)一個(gè)視頻通過(guò)UIAE決策得到檔位組,即可進(jìn)行轉(zhuǎn)碼并消費(fèi),但從全局角度看,轉(zhuǎn)碼調(diào)度并非一個(gè)簡(jiǎn)單All-in操作。
- 轉(zhuǎn)碼資源的有限性:不可能同時(shí)滿足所有視頻的轉(zhuǎn)碼請(qǐng)求,且不同的短視頻的轉(zhuǎn)碼成本差異巨大。
- 轉(zhuǎn)碼資源的異構(gòu)性:不只有x86 CPU,還有Arm CPU、FPGA、GPU、定制編碼芯片等硬件,各自具備不同的轉(zhuǎn)碼效率和轉(zhuǎn)碼成本。
- 轉(zhuǎn)碼資源的延伸影響:對(duì)應(yīng)不同轉(zhuǎn)碼產(chǎn)物的CDN帶寬影響與存儲(chǔ)成本影響。
對(duì)于轉(zhuǎn)碼調(diào)度,全局優(yōu)化目標(biāo)可以設(shè)置為:
仔細(xì)觀察優(yōu)化目標(biāo),是帶有約束條件的最優(yōu)化問(wèn)題(背包問(wèn)題),但直接求解會(huì)遇到如下問(wèn)題:
仔細(xì)觀察優(yōu)化目標(biāo),是帶有約束條件的最優(yōu)化問(wèn)題(背包問(wèn)題),但直接求解會(huì)遇到如下問(wèn)題:
- 精準(zhǔn)量化可用轉(zhuǎn)碼資源非常困難,轉(zhuǎn)碼資源機(jī)房之間調(diào)度、負(fù)載均衡、buffer策略都會(huì)有影響可用資源計(jì)算。
- 熱門(mén)視頻也有千萬(wàn)級(jí)別,求解最優(yōu)化問(wèn)題復(fù)雜度過(guò)高。
因此可采用近似流式處理方式,每此處理一個(gè)小批次,并重新定義可用資源。
圖4-7 轉(zhuǎn)碼流程示意圖
5. 實(shí)驗(yàn)方法
與常見(jiàn)的AB實(shí)驗(yàn)不同,在視頻類實(shí)驗(yàn)中需要進(jìn)行諸多額外實(shí)驗(yàn)?zāi)芰Φ脑O(shè)計(jì)以支持前述算法的迭代工作。首先,由于資源約束,通常轉(zhuǎn)碼類實(shí)驗(yàn)需要針對(duì)部分視頻進(jìn)行,僅影響一小部分視頻,因此需要設(shè)計(jì)策略標(biāo)簽?zāi)芰?,?duì)用戶層AB實(shí)驗(yàn)與視頻策略間建立映射關(guān)系,示例如下圖:
圖4-8 視頻策略AB實(shí)驗(yàn)示意圖
一些基礎(chǔ)的需求如下:
- 1. 對(duì)不同轉(zhuǎn)碼產(chǎn)物標(biāo)記其策略。
- 2. 對(duì)不同轉(zhuǎn)碼產(chǎn)物能根據(jù)轉(zhuǎn)出時(shí)機(jī),對(duì)齊用戶組進(jìn)行過(guò)濾。
- 3. 支持區(qū)分轉(zhuǎn)碼時(shí)機(jī)的策略。
- 4. 對(duì)不同請(qǐng)求可以根據(jù)AB實(shí)驗(yàn)用戶分組返回不同轉(zhuǎn)碼標(biāo)簽的內(nèi)容。
- 5. 支持轉(zhuǎn)碼資源池的動(dòng)態(tài)劃分以保證實(shí)驗(yàn)公平性。
其次,應(yīng)當(dāng)支持摒除推薦內(nèi)容影響的實(shí)驗(yàn)方式,并在實(shí)驗(yàn)過(guò)程中盡量區(qū)分出對(duì)不同用戶的影響,借鑒搜索場(chǎng)景常見(jiàn)的interleaving實(shí)驗(yàn)方式在經(jīng)常會(huì)提到,把要對(duì)比的兩個(gè)排序結(jié)果混插到一起,發(fā)給同一個(gè)用戶,在某些場(chǎng)景下將能帶來(lái)較好的評(píng)估作用:
圖4-9 AB Testing與interleaving示意圖
上圖是Interleaving實(shí)驗(yàn)的大致流程,最終返回給用戶的是merge之后的結(jié)果,即同一個(gè)用戶在一次feed中既看到了實(shí)驗(yàn)組的結(jié)果,也看到了對(duì)照組的結(jié)果。對(duì)于一次feed請(qǐng)求,有兩種方式進(jìn)行點(diǎn)播策略interleaving:
- 1. balanced_assign:純均勻分配,思路就是先選一個(gè)策略交給第一個(gè)視頻,之后的視頻交替使用AB策略。
- 2. team_draft_assign:每個(gè)視頻選擇必從A或B中抽出一個(gè)策略,且每次選取都會(huì)隨機(jī)進(jìn)行A優(yōu)先或者B優(yōu)先。由于觀看視頻被隨機(jī)地播放,可近似認(rèn)為這是同一用戶對(duì)兩種不同轉(zhuǎn)碼策略的觀看效果比較。
最后,上述做法在評(píng)估某種轉(zhuǎn)碼策略的效果時(shí),會(huì)對(duì)某一個(gè)源文件的不同對(duì)比策略各自轉(zhuǎn)碼,隨后比較實(shí)驗(yàn)組和對(duì)照組的業(yè)務(wù)效果,所需資源較大、實(shí)驗(yàn)周期較長(zhǎng)。此處介紹一種新的實(shí)驗(yàn)方法,稱之為“Quasi Experimental”,能夠在節(jié)約轉(zhuǎn)碼資源的情況下,快速準(zhǔn)確的評(píng)估轉(zhuǎn)碼策略的價(jià)值。
該方案主要是基于現(xiàn)有觀測(cè)數(shù)據(jù)人為構(gòu)造實(shí)驗(yàn)組、對(duì)照組以及相應(yīng)的播放行為,業(yè)務(wù)指標(biāo)/性能指標(biāo)。以轉(zhuǎn)碼策略評(píng)估為例,具體方案如下:
- 用戶維度:實(shí)驗(yàn)組和對(duì)照組用戶盡可能隨機(jī)分布。
- 視頻維度:選取待轉(zhuǎn)碼視頻,隨機(jī)分為兩個(gè)子集A和B,對(duì)兩個(gè)video集合進(jìn)行調(diào)整,使其滿足關(guān)鍵維度分布一致,例如當(dāng)日播放時(shí)長(zhǎng)、觀看視頻品類、視頻消費(fèi)分辨率等。
- 調(diào)整觀看記錄:對(duì)當(dāng)日的播放記錄進(jìn)行調(diào)整,刪除實(shí)驗(yàn)組中用戶對(duì)集合A中視頻的觀看記錄,刪除對(duì)照組中用戶對(duì)集合B中視頻的觀看記錄,以保證了對(duì)照組用戶的觀看視頻都來(lái)源于轉(zhuǎn)碼策略A(線上策略),實(shí)驗(yàn)組用戶存在部分觀看視頻來(lái)源于轉(zhuǎn)碼策略B(待評(píng)估策略)。
圖4-10 準(zhǔn)實(shí)驗(yàn)方案
基于預(yù)見(jiàn)的投稿發(fā)布
1. 問(wèn)題背景與解決框架
由于一般的投稿的選取與剪輯過(guò)程過(guò)于私人化,此處假設(shè)用戶已經(jīng)完成視頻的編輯,重點(diǎn)介紹一些較為通用的決策問(wèn)題,依據(jù)合成編碼、上傳和優(yōu)先級(jí)設(shè)置劃分成三部分,參考圖5-1:
圖5-1 投稿體驗(yàn)優(yōu)化過(guò)程
由于投稿視頻的編碼質(zhì)量會(huì)影響轉(zhuǎn)碼后的產(chǎn)物,進(jìn)而影響播放消費(fèi),因此投稿優(yōu)化時(shí)應(yīng)當(dāng)對(duì)端到端進(jìn)行統(tǒng)籌考量,即除提升投稿場(chǎng)景的業(yè)務(wù)價(jià)值外,也考慮投稿體驗(yàn)帶來(lái)的消費(fèi)價(jià)值。整體的優(yōu)化目標(biāo)參考下式:
同時(shí),投稿場(chǎng)景也存在多種優(yōu)化影響路徑,試分析幾例如下:
同時(shí),投稿場(chǎng)景也存在多種優(yōu)化影響路徑,試分析幾例如下:
2. 基于預(yù)見(jiàn)的合成
當(dāng)用戶創(chuàng)作完畢后,需要對(duì)素材進(jìn)行合成編碼,傳統(tǒng)做法是根據(jù)預(yù)配置的合成編碼參數(shù)對(duì)素材、濾鏡、特效等進(jìn)行編碼等處理。但預(yù)配置的合成編碼參數(shù)是一種平權(quán)參數(shù),忽視了每個(gè)用戶對(duì)視頻編碼結(jié)果預(yù)期,同時(shí)用戶所處的環(huán)境會(huì)改變用戶預(yù)期,如使用不同機(jī)型、在不同網(wǎng)速條件下也有不同,基于此思考,我們充分挖掘用戶和視頻特征,采用個(gè)性化的技術(shù)方案對(duì)編碼方式以及編碼參數(shù)做智能預(yù)測(cè)。
在合成階段,主要基于路徑1和2以最大化收益,一種可行的思路是將過(guò)程拆解為我們稱之為Smart Encoding Model和Dynamic Encoding Parameter兩個(gè)模塊,逐次優(yōu)化,每個(gè)模塊可以互不干擾,Smart Encoding Model需要解決的問(wèn)題是選擇編碼模式,Dynamic Encoding Parameter需要解決的問(wèn)題是在已經(jīng)決定了編碼模式的情況下選擇具體的編碼參數(shù),此處由于兩個(gè)子問(wèn)題優(yōu)化目標(biāo)一致,也可以嘗試聯(lián)合決策。
智能編碼模型
圖5-2展示了該編碼模式選擇的思路:
5-2 智能編碼決策
動(dòng)態(tài)編碼參數(shù)選擇

5-3 動(dòng)態(tài)編碼參數(shù)決策
3. 精細(xì)化上傳發(fā)布
在對(duì)文件進(jìn)行上傳的過(guò)程中,同樣存在若干可以決策的環(huán)節(jié),例如從所有可用上傳節(jié)點(diǎn)中選擇較高質(zhì)量的節(jié)點(diǎn),開(kāi)啟分片上傳(Chunked Mode)或者流式上傳等,分片上傳是一種常見(jiàn)手段,即將文件切分成不同大小,分別進(jìn)行上傳,流式上傳把整個(gè)文件劃分較小的Range持續(xù)發(fā)送。常見(jiàn)的上傳過(guò)程如圖5-4所示:
圖5-4 發(fā)布上傳過(guò)程簡(jiǎn)要
分片上傳的主要影響因素在于,過(guò)小的分片會(huì)導(dǎo)致整體建連耗時(shí)增加,但分片失敗率降低,過(guò)大的分片則相反,同時(shí)分片大小往往不易及時(shí)調(diào)整,此外,由于分片上傳通常利用普通的文件上傳協(xié)議,對(duì)上傳節(jié)點(diǎn)友好,易于使用并行、多節(jié)點(diǎn)上傳等更復(fù)雜的技術(shù)。流式上傳通過(guò)斷點(diǎn)續(xù)傳機(jī)制減少重試,同時(shí)減少分片之間等待Ack和Response時(shí)間,從而降低文件的上傳時(shí)長(zhǎng),相當(dāng)于等于1的分片上傳,優(yōu)點(diǎn)是傳輸過(guò)程控制靈活,缺點(diǎn)是容錯(cuò)實(shí)現(xiàn)稍為復(fù)雜,且不易并行。不同的方法各有其優(yōu)缺點(diǎn),因此需要個(gè)性化決策(圖中的Upload Decider)的內(nèi)容包括:
- 選擇流式還是分片上傳模式
- 假設(shè)選取了分片上傳模式,則需要進(jìn)一步?jīng)Q策分片大小和并行數(shù)、上傳節(jié)點(diǎn)等 在本問(wèn)題上,包括CDN節(jié)點(diǎn)的網(wǎng)絡(luò)列表、各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的上傳失敗率在內(nèi)的先驗(yàn)知識(shí)能夠較大地影響決策效果。
圖5-5 基于個(gè)性化的動(dòng)態(tài)上傳參數(shù)決策流程
明顯可見(jiàn),如果用戶在發(fā)布前猶豫過(guò)久,甚至可以達(dá)成點(diǎn)擊即發(fā)布成功的效果,但這一方法也存在明顯代價(jià),用戶可能取消發(fā)布動(dòng)作或回退修改,導(dǎo)致浪費(fèi),因此還需要對(duì)同一用戶的多次投稿行為進(jìn)行估計(jì),以使相應(yīng)節(jié)約帶來(lái)的收益大于某次預(yù)判錯(cuò)誤帶來(lái)的損失。
4. 自適應(yīng)優(yōu)先級(jí)
當(dāng)端上用戶點(diǎn)擊發(fā)布視頻之后,往往會(huì)切到其他頁(yè)面繼續(xù)瀏覽視頻,甚至切換到其他app使用,這樣會(huì)導(dǎo)致系統(tǒng)上傳進(jìn)程優(yōu)先級(jí)降低甚至被殺死,進(jìn)而引發(fā)上傳失敗。簡(jiǎn)單的做法是強(qiáng)制提高上傳進(jìn)程優(yōu)先級(jí)(比如將進(jìn)程從后臺(tái)切換到前臺(tái)),但這種方法雖然能提升發(fā)布成功率,卻可能劣化其他體驗(yàn)(如消費(fèi)側(cè)卡頓,系統(tǒng)功耗上升等),引發(fā)用戶不滿,因此,如何更合理的分配進(jìn)程優(yōu)先級(jí)成為一個(gè)可以進(jìn)行個(gè)性化決策的問(wèn)題。如圖5-6所示:
圖5-6 上傳優(yōu)先級(jí)決策示例
例如,當(dāng)應(yīng)用執(zhí)行視頻上傳動(dòng)作時(shí),用戶將app切換到后臺(tái),則我們可能應(yīng)當(dāng)將后臺(tái)上傳進(jìn)程轉(zhuǎn)至前臺(tái)進(jìn)程(提高優(yōu)先級(jí)),確保上傳的成功率,提升用戶體驗(yàn)。但當(dāng)用戶正在其他頁(yè)面行動(dòng)時(shí),則不應(yīng)提升上傳優(yōu)先級(jí),甚至應(yīng)當(dāng)暫停合成或傳輸,為用戶其他出讓CPU、內(nèi)存或網(wǎng)絡(luò)帶寬資源,雖然投稿本身的失敗率可能增加,但用戶更即時(shí)的興趣得到較好滿足,整體體驗(yàn)是提升的。
效果與結(jié)論
1. 效果評(píng)估
在過(guò)去數(shù)年的工作中,以上體系的工作與傳統(tǒng)音視頻優(yōu)化工作相比較,額外收益幅度如下(即不計(jì)入如編碼器升級(jí)、傳輸協(xié)議優(yōu)化、工程改造等常規(guī)音視頻工作內(nèi)容),也即該體系帶來(lái)的增量?jī)?yōu)勢(shì):
表6-1 各個(gè)方向收益概覽
競(jìng)爭(zhēng)視角看,字節(jié)跳動(dòng)自2019年以來(lái),在不同市場(chǎng)均已逐步成為T(mén)ier 1的短視頻服務(wù)提供商,側(cè)面印證了上述技術(shù)的成功。
2. 結(jié)論
在本文中,我們介紹了字節(jié)跳動(dòng)自2019-2023年間短視頻服務(wù)的部分工作及其成果,系統(tǒng)性地闡釋、構(gòu)建了個(gè)性化播放這一前沿、交叉的技術(shù)域,明確地定義了該領(lǐng)域中的一系列子問(wèn)題,并給出了部分問(wèn)題的實(shí)際解法。在這一新技術(shù)領(lǐng)域中,我們認(rèn)為應(yīng)當(dāng):
- 建立完整的技術(shù)工作流程,重點(diǎn)在于使用AB實(shí)驗(yàn)等精確評(píng)估技術(shù),保證每個(gè)技術(shù)項(xiàng)目均帶來(lái)業(yè)務(wù)指標(biāo)提升。
- 運(yùn)用個(gè)性化技術(shù)范式進(jìn)行決策優(yōu)化,包括:
拓展常規(guī)的指標(biāo)為更全面的性能指標(biāo)組。
從建模上直接面向業(yè)務(wù)收益指標(biāo),并構(gòu)建個(gè)性化的中間指標(biāo)。
拓展使用全面而非簡(jiǎn)化的User、Item、Context特征。
使用與推薦、計(jì)算廣告等領(lǐng)域前沿對(duì)齊的深度神經(jīng)網(wǎng)絡(luò)、強(qiáng)化學(xué)習(xí)、因果推斷、運(yùn)籌學(xué)等技術(shù),用于決策方法本身或用于特征、畫(huà)像建設(shè)。
- 以個(gè)性化決策為核心,重新評(píng)估、規(guī)劃音視頻領(lǐng)域的各項(xiàng)工作:
重新設(shè)計(jì)多媒體框架、播放器方案和服務(wù)系統(tǒng),承載復(fù)雜的決策控制能力,并拓展決策點(diǎn)。
重新設(shè)計(jì)編解碼和前后處理組件、視頻質(zhì)量評(píng)估方法,拓展個(gè)性化調(diào)整能力。
重新設(shè)計(jì)網(wǎng)絡(luò)傳輸方法、CDN功能,乃至商務(wù)談判策略,拓展個(gè)性化調(diào)整能力。
本文雖以短視頻播放相關(guān)技術(shù)為例,但其思想也完全適用直播等其他音視頻領(lǐng)域的工作,例如,與點(diǎn)播相比較,直播在技術(shù)指標(biāo)上將關(guān)注額外的實(shí)時(shí)性要求,在技術(shù)重點(diǎn)上關(guān)注拓?fù)?,在此之上同樣?yīng)當(dāng)將系統(tǒng)整體抽象為面向業(yè)務(wù)目標(biāo)的優(yōu)化問(wèn)題,以個(gè)性化決策驅(qū)動(dòng)各環(huán)節(jié)工作的演進(jìn)。又例如,本文主要討論的優(yōu)化范圍集中在應(yīng)用內(nèi)部,但各種相關(guān)、衍生的問(wèn)題也完全適用同樣的方法進(jìn)行改造。
音視頻技術(shù)領(lǐng)域的廣泛開(kāi)展若自微軟的DirectShow技術(shù)發(fā)表計(jì),已接近30年,服務(wù)數(shù)十億用戶,基于編碼與視頻處理技術(shù)、傳輸協(xié)議、工程框架、云服務(wù)等環(huán)節(jié)展開(kāi)的工作雖然不斷演進(jìn),提升難度卻與日俱增,邊際價(jià)值逐年減少,但這并非說(shuō)明該領(lǐng)域已然日薄西山,由我們開(kāi)拓的個(gè)性化視頻技術(shù)體系,改變了該領(lǐng)域的邊界與工作重心,其可以更具想象力地容納多種傳統(tǒng)音視頻技術(shù)以外的技術(shù)發(fā)展與其交叉(包括流行的LLM/AIGC技術(shù)),可以拓展出新的、廣闊至近乎無(wú)限的提升上限,讓世界上數(shù)十億用戶都能更好地享受音視頻技術(shù)帶來(lái)的生活提升。