Netflix:如何通过机器学习提高流媒体质量?
如何通過機器學習來提升用戶觀看視頻的體驗?Netflix撰文,描述了通過網絡質量預測,自適應碼率選擇,預測緩存,設備異常檢測等方向進行的探索。LiveVideoStack對文章進行了摘譯。
文 / Chaitanya Ekanadham
譯 / Dumpling
審校 / Alex Chow
有一個我們通常會被問到的問題是:“為什么我們需要用機器學習來提高流媒體質量?”這的確是一個非常重要的問題,尤其是考慮到最近圍繞機器學習和人工智能的大肆宣傳,可能會導致很多“通過解決方案來尋找問題”的案例。在本博文中,我們描述了Netflix視頻流媒體技術面臨的一些技術挑戰,以及如何用統計模型和機器學習技術應對這些挑戰。
Netflix向全球超過1.17億的會員提供視頻流媒體服務。超過一半的會員居住在美國之外,這些地區對于Netflix的發展有很大的商機。為全球觀眾提供高質量的流媒體體驗是一項巨大的技術挑戰,其中很大一部分工程方面的工作是要在全球范圍內部署和維護服務器,以及提供高效的傳輸算法用于將視頻內容從這些服務器分發到用戶設備。隨著我們的服務迅速向具有多樣觀看行為的觀眾群擴展,運行在復雜多變的網絡和性能差異顯著的設備上時,針對流媒體視頻采用“一刀切”式的解決方案就變得越來越不理想了。例如:
移動設備上的觀看/瀏覽行為與智能電視不同
蜂窩網絡可能比固定寬帶網絡更具波動性和不穩定性
在某些市場區域,網絡可能會遇到更高程度的擁塞
不同的設備類別由于硬件差異而具有不同的互聯網連接能力和穩定性
我們需要針對這些不同的、經常波動的情況調整我們的方法,為會員提供高質量的體驗,同時也在新市場中拓展業務。在Netflix,我們可以觀測到每個會話的網絡和設備的狀態,以及用戶體驗(例如視頻畫面質量)等方面的信息,基于這些統計信息,我們可以將統計建模和機器學習用于這個領域。在之前的一篇博客中(https://medium.com/netflix-techblog/how-data-science-helps-power-worldwide-delivery-of-netflix-content-bac55800f9a7),我們描述了如何在全球服務器分發的內容上使用數據科學,在這篇文章中,我們描述了在終端面臨的一些技術挑戰。
網絡質量特征描述和預測
眾所周知,網絡質量是很難表征和預測的。盡管有一些常用的指標,例如平均帶寬(average bandwidth)和往返時間(RTT)等可以用于描述網絡質量。但是在流媒體領域,還有一些其他很重要且不一樣的特性,例如 網絡穩定性和可預測性等。收集更加豐富的網絡質量特征對于分析網絡狀況(用于確定優化目標/分析產品改進幅度)、確定播放的初始視頻質量、以及在播放期間動態調整視頻質量,被證明是十分有用的。
下面幾個例子是用戶真實觀看過程中測量到的網絡吞吐量(throughput)數據。可以看到它們很嘈雜,在一個比較大的范圍內波動。如果已知過去15分鐘的數據,我們能否預測接下來的15分鐘內的吞吐量?應該如何利用網絡狀態和設備性能的長期歷史信息?服務器應該提供什么類型的統計數據,才能使設備做最優自適應調整?即使無法準確預測網絡掉線的發生時間(這可能是各種各樣的原因,例如,微波爐開啟時或在經過隧道的車上播放時),給定歷史數據,我們能否至少可以描述出所期望看到的網絡吞吐分布?
我們正在大規模地觀察這些播放記錄,因此有機會生成更復雜的模型,將時域模式識別與各種環境指標相結合,從而能更準確地預測網絡質量。
實際觀看時測量的網絡吞吐示例
網絡預測的一個有效應用是在播放過程中根據網絡條件動態自適應視頻質量,我們將在下一節中對此進行介紹。
播放期間的視頻畫質自適應
為了支持不同的網絡條件和設備功能,Netflix的電影和綜藝節目通常被編碼壓縮為不同的視頻畫質(quality)。自適應流媒體傳輸算法負責在整個播放期間根據當前網絡狀態和設備狀況進行畫質自適應調整,從而選擇最佳的視頻流(請參見:http://yuba.stanford.edu/~huangty/sigc040-huang.pdf,我們同事在這方面的一個研究案例)。下圖描述了一個視頻質量自適應的示例。我們是否可以利用數據驅動的方式來確定最佳的視頻質量從而優化體驗質量(quality of experience)?
體驗質量可以通過幾種方式來綜合衡量:
播放的啟動延遲。
播放過程中的整體視頻畫面質量(清晰度)。
為了加載更多視頻到緩沖區而導致的播放暫停的次數(簡稱“rebuffer”)。
以及播放期間用戶感知的視頻畫質變化次數。
視頻質量自適應問題的說明。將視頻編碼成不同畫質級別(此處為3種畫質:綠代表高,黃代表中,紅代表低)。每個畫質級別的視頻被劃分為固定時間長度的分片(由灰色小方塊代表)。下載每個分片之前,都要對應該下載哪個畫質級別的分片做個決策。
對于這些質量體驗指標,我們需要仔細權衡取舍:可以激進的選擇非常高畫質級別的視頻,但會增加重新緩沖的風險,或者我們可以選擇預先加載更多視頻,并以增加等待時間為代價降低重新緩沖的風險。對于某個決策,其反饋信號一般有延遲而且比較稀疏。例如,向更高質量的激進切換可能不會立即產生不良影響,但可能會逐漸耗盡緩沖區,并最終在某些情況下導致重新緩沖。在學習最優控制算法時,這種“信用分配”問題是一個眾所周知的挑戰,而機器學習技術(如強化學習方面的最新進展)有很大的潛力能夠解決這些問題。
預測緩存(Predictive caching)
在另一個領域,統計模型也可以被用于改善流媒體傳輸的體驗:預測用戶即將播放的內容,從而在設備上提前緩存(或部分緩存),使視頻播放能以更快的速度或更高的質量啟動。例如我們可以利用這樣一個事實,即觀看特定連續劇(series)的用戶很可能會播放下一個未觀看的劇集。通過把他們的詳細觀看歷史與最近的用戶交互、上下文變量相結合,我們可以把這個過程抽象成一個有監督的學習問題,從而最大化緩存命中用戶最終實際播放內容的可能性,同時也會考慮到緩存大小和可用帶寬方面的資源約束。我們已經看到在使用預測緩存模型時,等待視頻啟動的時間大大減少了。
設備異常檢測
Netflix在千余種不同類型的設備上運行,從筆記本電腦到平板電腦、智能電視、手機到流媒體播放器。新設備不斷加入這個生態系統,而現有設備經常會更新固件并與Netflix應用程序的更新交疊。這些更新通常不會引起什么問題,但在規模非常大的條件下,用戶體驗出現問題的情況就很多了。例如,應用程序無法正常啟動,或者播放體驗會以某種方式受到限制或降級。另外,隨著時間的推移,設備質量的變化趨勢會逐漸累積。例如,用戶界面連續的鏈式變更可能會緩慢降低特定設備的性能,而對于其中任何單獨更改,問題并不會立即有顯著影響。?
檢測這些變化是一個很有挑戰,十分依賴人工的過程。報警系統是揭示潛在問題的有用工具,但通常很難確定將某些事情鑒定為有問題的正確標準。一個寬松的觸發器最終會帶來太多的誤報,致使我們的設備可靠性團隊進行大量不必要的人工調查,而一個非常嚴格的觸發器又可能會漏掉真正的問題。幸運的是,我們有觸發警報的歷史,以及對于每個問題由人工做出的實際上是否真實可處理的判斷結論,那么我們就可以用它來訓練一個模型,來預測給定的一組實測環境條件最終會演化為真正的問題的可能性。
即使我們確信我們正在觀察一個真正的問題,確定根本原因也常常是一個挑戰。由特定接入商(ISP)或特定區域網絡的質量波動導致的?或是與內部一個A / B測試或已上線的更改有關?設備制造商發布了固件更新?特定設備組或組中的某個特定機型有變更?統計建模也可以幫助我們通過控制各種協變量來確定根本原因。
通過采用預測建模來確定設備可靠性問題的優先級,我們已經看到整體警報量的大幅下降,同時保持了可接受的低漏報率,我們預計這將推動Netflix設備可靠性團隊大幅提高效率。?
上述問題是我們認為統計建模和機器學習方法可以解決相關技術挑戰的例子,并且可以推動現有技術水平的提升,原因如下:
我們擁有充足的數據(全球超過1.17億成員)
數據是高維的,并且很難為一個特定問題人工篩選出一個最小變量集合
由于基礎現象的復雜性(例如,聚集性的網絡使用,用戶偏好,設備硬件能力),數據具有豐富的內在結構?
解決這些問題是Netflix戰略的核心,因為我們需要在日益多樣化的網絡和設備條件下對視頻進行流式分發。
LiveVideoStack Meet | 上海
多媒體開發新趨勢
繼3月31日北京多媒體開發沙龍,LiveVideoStack走進上海,希望通過“多媒體開發新趨勢”系列沙龍,為大家展現新技術在音視頻領域的探索與實踐,以及新興應用場景和傳統行業的最新、最佳實踐。
伴隨Codec的百花爭艷,WebRTC1.0定版,AI、區塊鏈技術的快速發展,我們看到了多媒體與更多新技術的融合與實踐。4月21日,我們邀請到騰訊、優酷、觸寶科技、蘇寧PP視頻云、三體云、相芯科技的6位技術大咖一同分享多媒體開發的技術實踐與未來展望。
講師與話題:
?吳威麒 觸寶科技音頻技術專家 《實時語音通信的音頻后處理技術》?
?曾小偉 蘇寧文創技術副總監 《如何使用機器學習算法優化分發鏈路》?
?沈軻軼 騰訊天天P圖iOS開發組長 《iOS實時相機的GPU實踐》?
?崔文秀 三體云產品副總裁 《實時音視頻技術賦能傳統行業》
?蔡銳濤 相芯科技圖形引擎負責人 ?《Animoji動態表情的技術實現》?
WebRTCon 2018
經歷了起跑、 熱炒、失落的7年長跑后,伴隨1.0版定稿,獲得iOS端支持,WebRTC具備了打通主流生態系統和端的能力,2018年也將是WebRTC落地的最好時機。由LiveVideoStack音視頻技術社區出品,WebRTCon 2018將于5月在上海舉行,這是一次對過去幾年WebRTC技術實踐與應用落地的總結。掃描下圖二維碼了解詳情。
點擊?[閱讀原文]?了解更多相關活動信息。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Netflix:如何通过机器学习提高流媒体质量?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AOM联盟:AV1完成1.0版定稿
- 下一篇: 专访 | PP云技术副总监:如何使用机器