'機器學習在ABR算法中的應用縱覽'

"
"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

機器學習在ABR算法中的應用縱覽

Pensieve看上去似乎無懈可擊,但仍存在一些問題。在ABR和流媒體優化中,QoE模型如何構建一直是一個懸而未決的問題,不同用戶和業務需求中質量、卡頓和切換比例關係可能會有變化。而Pensieve一旦訓練完成之後,比例關係就已經確定,不太能夠適應新的業務需求,因此預測在未來可能會出現多目標強化學習來解決多目標QoE的要求。

Pensieve在泛化方面有兩種場景,一個是In-distribution,假設Pensieve應用的網絡狀態場景是可採樣的,這樣我們就可以對目標場景有一定認識,但之前的一些實驗表明如果把流量分佈的數量增加並且將對應的數據集混合在一起訓練,分佈的數量越多會導致Pensieve性能下降的約大。這使得在某些具體的數據集上訓練Pensieve,混合訓練和單獨訓練的pensieve agent之間的QoE差距會達到50%,這是不太能接受的程度。第二個場景是Out-of-distribution,在沒有訓練過的場景上pensieve很大程度會fail。

在視頻源泛化方面,由於視頻內容不同,編碼得出的塊的大小抖動幅度也不一樣,如果在訓練時沒有考慮到多種視頻源特性的話會導致一定程度上的性能下降,所以在這裡可能會需要一些在線學習或者Meta-learning的方案去實現在線學習。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

機器學習在ABR算法中的應用縱覽

Pensieve看上去似乎無懈可擊,但仍存在一些問題。在ABR和流媒體優化中,QoE模型如何構建一直是一個懸而未決的問題,不同用戶和業務需求中質量、卡頓和切換比例關係可能會有變化。而Pensieve一旦訓練完成之後,比例關係就已經確定,不太能夠適應新的業務需求,因此預測在未來可能會出現多目標強化學習來解決多目標QoE的要求。

Pensieve在泛化方面有兩種場景,一個是In-distribution,假設Pensieve應用的網絡狀態場景是可採樣的,這樣我們就可以對目標場景有一定認識,但之前的一些實驗表明如果把流量分佈的數量增加並且將對應的數據集混合在一起訓練,分佈的數量越多會導致Pensieve性能下降的約大。這使得在某些具體的數據集上訓練Pensieve,混合訓練和單獨訓練的pensieve agent之間的QoE差距會達到50%,這是不太能接受的程度。第二個場景是Out-of-distribution,在沒有訓練過的場景上pensieve很大程度會fail。

在視頻源泛化方面,由於視頻內容不同,編碼得出的塊的大小抖動幅度也不一樣,如果在訓練時沒有考慮到多種視頻源特性的話會導致一定程度上的性能下降,所以在這裡可能會需要一些在線學習或者Meta-learning的方案去實現在線學習。

機器學習在ABR算法中的應用縱覽

第三個問題在於仿真器與真實網絡環境是否匹配的問題,這其中最大的問題在於仿真器是一個數值仿真,在網絡狀態部分採用的是直接讀取Throughput trace去看某一時間段平均Throughput 大概是多少,這時Throughput trace是沒有與傳輸層進行交互的,所以這裡沒法體現不同決策對傳輸層所帶來的影響,這種情況下仿真器所得到的結果就會潛在得與真實網絡環境存在偏差,同時也沒辦法模擬多用戶帶寬競爭的問題。還有個問題在於現在使用Throughput trace往往反應的都是當時的吞吐量而非帶寬容量,而實際上的帶寬大小很難採集,這之間的差異也會對這個問題產生影響。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

機器學習在ABR算法中的應用縱覽

Pensieve看上去似乎無懈可擊,但仍存在一些問題。在ABR和流媒體優化中,QoE模型如何構建一直是一個懸而未決的問題,不同用戶和業務需求中質量、卡頓和切換比例關係可能會有變化。而Pensieve一旦訓練完成之後,比例關係就已經確定,不太能夠適應新的業務需求,因此預測在未來可能會出現多目標強化學習來解決多目標QoE的要求。

Pensieve在泛化方面有兩種場景,一個是In-distribution,假設Pensieve應用的網絡狀態場景是可採樣的,這樣我們就可以對目標場景有一定認識,但之前的一些實驗表明如果把流量分佈的數量增加並且將對應的數據集混合在一起訓練,分佈的數量越多會導致Pensieve性能下降的約大。這使得在某些具體的數據集上訓練Pensieve,混合訓練和單獨訓練的pensieve agent之間的QoE差距會達到50%,這是不太能接受的程度。第二個場景是Out-of-distribution,在沒有訓練過的場景上pensieve很大程度會fail。

在視頻源泛化方面,由於視頻內容不同,編碼得出的塊的大小抖動幅度也不一樣,如果在訓練時沒有考慮到多種視頻源特性的話會導致一定程度上的性能下降,所以在這裡可能會需要一些在線學習或者Meta-learning的方案去實現在線學習。

機器學習在ABR算法中的應用縱覽

第三個問題在於仿真器與真實網絡環境是否匹配的問題,這其中最大的問題在於仿真器是一個數值仿真,在網絡狀態部分採用的是直接讀取Throughput trace去看某一時間段平均Throughput 大概是多少,這時Throughput trace是沒有與傳輸層進行交互的,所以這裡沒法體現不同決策對傳輸層所帶來的影響,這種情況下仿真器所得到的結果就會潛在得與真實網絡環境存在偏差,同時也沒辦法模擬多用戶帶寬競爭的問題。還有個問題在於現在使用Throughput trace往往反應的都是當時的吞吐量而非帶寬容量,而實際上的帶寬大小很難採集,這之間的差異也會對這個問題產生影響。

機器學習在ABR算法中的應用縱覽

在Pensieve paper中提到可以使用mahimahi仿真器作為傳輸層的仿真模擬,mahimahi很多時候也被用在TCP的擁塞控制場景裡,它能夠模擬中間瓶頸鍊路的Buffer變化情況,從而反映帶寬和RTT的變化。但其本身加速比非常低,如果聯合Throughput trace一起訓練會拉低整個訓練效率,因此這個方案存在一些效率問題。最近也有學者在考慮應用層ABR和傳輸層TCP擁塞控制的聯合優化,斯坦福大學的puffer就是這方面的工作,大家可以關注一下。雖然有了Pensieve 提供的數據集、QoE模型和仿真器,但在網絡或者流媒體領域去真的推進這件事情的話還需要一個公認的仿真系統或者開放的數據集。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

機器學習在ABR算法中的應用縱覽

Pensieve看上去似乎無懈可擊,但仍存在一些問題。在ABR和流媒體優化中,QoE模型如何構建一直是一個懸而未決的問題,不同用戶和業務需求中質量、卡頓和切換比例關係可能會有變化。而Pensieve一旦訓練完成之後,比例關係就已經確定,不太能夠適應新的業務需求,因此預測在未來可能會出現多目標強化學習來解決多目標QoE的要求。

Pensieve在泛化方面有兩種場景,一個是In-distribution,假設Pensieve應用的網絡狀態場景是可採樣的,這樣我們就可以對目標場景有一定認識,但之前的一些實驗表明如果把流量分佈的數量增加並且將對應的數據集混合在一起訓練,分佈的數量越多會導致Pensieve性能下降的約大。這使得在某些具體的數據集上訓練Pensieve,混合訓練和單獨訓練的pensieve agent之間的QoE差距會達到50%,這是不太能接受的程度。第二個場景是Out-of-distribution,在沒有訓練過的場景上pensieve很大程度會fail。

在視頻源泛化方面,由於視頻內容不同,編碼得出的塊的大小抖動幅度也不一樣,如果在訓練時沒有考慮到多種視頻源特性的話會導致一定程度上的性能下降,所以在這裡可能會需要一些在線學習或者Meta-learning的方案去實現在線學習。

機器學習在ABR算法中的應用縱覽

第三個問題在於仿真器與真實網絡環境是否匹配的問題,這其中最大的問題在於仿真器是一個數值仿真,在網絡狀態部分採用的是直接讀取Throughput trace去看某一時間段平均Throughput 大概是多少,這時Throughput trace是沒有與傳輸層進行交互的,所以這裡沒法體現不同決策對傳輸層所帶來的影響,這種情況下仿真器所得到的結果就會潛在得與真實網絡環境存在偏差,同時也沒辦法模擬多用戶帶寬競爭的問題。還有個問題在於現在使用Throughput trace往往反應的都是當時的吞吐量而非帶寬容量,而實際上的帶寬大小很難採集,這之間的差異也會對這個問題產生影響。

機器學習在ABR算法中的應用縱覽

在Pensieve paper中提到可以使用mahimahi仿真器作為傳輸層的仿真模擬,mahimahi很多時候也被用在TCP的擁塞控制場景裡,它能夠模擬中間瓶頸鍊路的Buffer變化情況,從而反映帶寬和RTT的變化。但其本身加速比非常低,如果聯合Throughput trace一起訓練會拉低整個訓練效率,因此這個方案存在一些效率問題。最近也有學者在考慮應用層ABR和傳輸層TCP擁塞控制的聯合優化,斯坦福大學的puffer就是這方面的工作,大家可以關注一下。雖然有了Pensieve 提供的數據集、QoE模型和仿真器,但在網絡或者流媒體領域去真的推進這件事情的話還需要一個公認的仿真系統或者開放的數據集。

機器學習在ABR算法中的應用縱覽

3. AITrans競賽與直播場景下的ABR算法

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

機器學習在ABR算法中的應用縱覽

Pensieve看上去似乎無懈可擊,但仍存在一些問題。在ABR和流媒體優化中,QoE模型如何構建一直是一個懸而未決的問題,不同用戶和業務需求中質量、卡頓和切換比例關係可能會有變化。而Pensieve一旦訓練完成之後,比例關係就已經確定,不太能夠適應新的業務需求,因此預測在未來可能會出現多目標強化學習來解決多目標QoE的要求。

Pensieve在泛化方面有兩種場景,一個是In-distribution,假設Pensieve應用的網絡狀態場景是可採樣的,這樣我們就可以對目標場景有一定認識,但之前的一些實驗表明如果把流量分佈的數量增加並且將對應的數據集混合在一起訓練,分佈的數量越多會導致Pensieve性能下降的約大。這使得在某些具體的數據集上訓練Pensieve,混合訓練和單獨訓練的pensieve agent之間的QoE差距會達到50%,這是不太能接受的程度。第二個場景是Out-of-distribution,在沒有訓練過的場景上pensieve很大程度會fail。

在視頻源泛化方面,由於視頻內容不同,編碼得出的塊的大小抖動幅度也不一樣,如果在訓練時沒有考慮到多種視頻源特性的話會導致一定程度上的性能下降,所以在這裡可能會需要一些在線學習或者Meta-learning的方案去實現在線學習。

機器學習在ABR算法中的應用縱覽

第三個問題在於仿真器與真實網絡環境是否匹配的問題,這其中最大的問題在於仿真器是一個數值仿真,在網絡狀態部分採用的是直接讀取Throughput trace去看某一時間段平均Throughput 大概是多少,這時Throughput trace是沒有與傳輸層進行交互的,所以這裡沒法體現不同決策對傳輸層所帶來的影響,這種情況下仿真器所得到的結果就會潛在得與真實網絡環境存在偏差,同時也沒辦法模擬多用戶帶寬競爭的問題。還有個問題在於現在使用Throughput trace往往反應的都是當時的吞吐量而非帶寬容量,而實際上的帶寬大小很難採集,這之間的差異也會對這個問題產生影響。

機器學習在ABR算法中的應用縱覽

在Pensieve paper中提到可以使用mahimahi仿真器作為傳輸層的仿真模擬,mahimahi很多時候也被用在TCP的擁塞控制場景裡,它能夠模擬中間瓶頸鍊路的Buffer變化情況,從而反映帶寬和RTT的變化。但其本身加速比非常低,如果聯合Throughput trace一起訓練會拉低整個訓練效率,因此這個方案存在一些效率問題。最近也有學者在考慮應用層ABR和傳輸層TCP擁塞控制的聯合優化,斯坦福大學的puffer就是這方面的工作,大家可以關注一下。雖然有了Pensieve 提供的數據集、QoE模型和仿真器,但在網絡或者流媒體領域去真的推進這件事情的話還需要一個公認的仿真系統或者開放的數據集。

機器學習在ABR算法中的應用縱覽

3. AITrans競賽與直播場景下的ABR算法

機器學習在ABR算法中的應用縱覽

團隊在去年9-12月份舉辦了一個直播流媒體的比賽AITrans,在其中構建了一套系統和平臺,包括仿真器和數據,希望能為大家提供一些這方面的幫助,這個比賽後來拓展為ACM MM Grand Challenge。其主要任務是希望大家幫助我們去優化直播場景下的ABR決策,其中DASH以視頻塊為傳輸單位,延遲大,所以改為與公司合作,做了一個幀級別基於Push的直播流媒體傳輸系統。同時直播內容實時產生,ABR算法可利用信息減少,因為是直播對低延遲、高清、低卡頓、少切換的多目標QoE有更多的要求,這都導致了這個場景和原先點播場景有一些區別。為了解決低延遲的問題我們在ABR的基礎上又添加了時延控制機制,也就是快慢播和跳幀,以此來對時延進行控制,最後在搭建的低時延直播傳輸仿真平臺L3VTP進行測試。

"
機器學習在ABR算法中的應用縱覽

本文整理自LiveVideoStack線上分享第三季,第五期,由清華大學計算機系網絡技術研究所博士生王莫為為大家介紹近些年ABR算法的發展,探討基於機器學習的ABR算法的優劣勢,並結合AiTrans比賽分析其在直播場景中的應用問題。

文/王莫為

整理/LiveVideoStack

機器學習在ABR算法中的應用縱覽

大家好,我是來自清華大學計算機系的博士生王莫為,導師是崔勇教授,本次分享的主題是機器學習在ABR算法中的應用,機器學習在網絡、系統和流媒體中都有各種各樣的應用。

機器學習在ABR算法中的應用縱覽

我們組自2016年就開始對機器學習如何與網絡相結合做一些調研和綜述,發現在2016年前後相關應用特別少,而且大多集中在擁塞控制和流量分類方面。AlphaGo之後就出現了許多深度學習包括深度強化學習方面的應用,應用包括路由、流媒體QoE優化和數據中心等。

機器學習在ABR算法中的應用縱覽

去年八月份網絡領域頂會SIGCOMM主會中五十篇論文中有三篇都是與機器學習相關的,Workshop和Posters and Demos加起來有二十多篇,其中NetAI workshop在SIGCOMM歷史上首次人數破百,AI在系統、網絡、流媒體傳輸各個方面都在不斷深入,本次分享也將從ABR的角度來介紹它的發展。

1. 自適應碼率(ABR)算法

機器學習在ABR算法中的應用縱覽

本次分享的內容主要分為三個方面,首先會介紹ABR算法的一些背景和過去的一些傳統算法,接下來會介紹機器學習驅動的ABR算法的發展和它潛在的一些問題,最後會簡單介紹一下AITrans競賽與直播場景下的ABR算法。

機器學習在ABR算法中的應用縱覽

生活中各種各樣的視頻應用越來越多,包括視頻點播、視頻直播、短視頻和在線教育,各大廠商也花費了很大力氣去提高用戶體驗。

機器學習在ABR算法中的應用縱覽

觀看視頻時,我們經常會遇到由於各種各樣原因導致的視頻卡頓或者碼率不高導致畫面不清晰的問題,這時大家一般都會在右下角通過選擇視頻清晰度來改善卡頓或者不清晰的問題,而目前很多廠商已經上線了自適應碼率技術來提高用戶的使用體驗。

機器學習在ABR算法中的應用縱覽

國內包括B站、愛奇藝都有相對應的技術上線,國外的YouTube、Twitch也有相關的技術應用。自適應碼率一般來講採用基於HTTP的DASH協議,基本運作流程是首先在CDN中存儲已經按照不同碼率編碼好的視頻塊,客戶端會不斷向服務器請求某個碼率下的視頻塊,每個視頻塊含有幾秒鐘的內容,服務器把視頻傳輸給客戶端,客戶端會把視頻塊存在本地的緩衝區Buffer裡。上圖中紫色的塊可以認為是視頻塊,持續時間是一秒,高度就是它的碼率。在視頻播放中,Buffer就會被實時消耗,如果此時你的下載速率與碼率不匹配就會出現排空Buffer或者累計Buffer,當帶寬遠低於碼率時會出現卡頓,於是各個播放器廠商都會考慮採用自適應碼率來根據當前網絡狀況和Buffer長度來選擇合適的碼率去優化用戶的體驗質量(Quality of Experience),也就是QoE。QoE包括的指標一般有視頻質量、卡頓和碼率抖動等。

機器學習在ABR算法中的應用縱覽

ABR的研究已經持續了很多年,但仍有一些挑戰需要解決。假設現在有一個播放器已經播放了一段時間,視頻的Throughput如上圖所示,這時需要選擇一個碼率使得用戶的QoE較高。有一種方式是對Throughput進行預測,然後根據Throughput的變化選擇一個與它接近或者比它低一點的碼率,但在移動設備或者無線場景下,網絡變化難以預測,這給ABR決策帶來了挑戰。另一方面QoE指標之間是相互衝突的,視頻質量越高視頻塊越大,所需的帶寬越大,因此造成卡頓的概率越高,如果比較保守的選擇低質量的視頻塊,雖然可以減少卡頓概率,但也會犧牲視頻質量從而無法提高QoE。另一方面,ABR算法跟隨Throughput變化的速度會影響視頻切換的頻率,如果想讓碼率變化儘可能的平滑就需要用提前準備好的Buffer去處理未來可能會遇見的Throughput的低谷。最後一點是碼率決策具有一定的級聯效應,先前的決策會對未來產生很大影響,換言之就是需要提前為某些Throughput的抖動變化預留一些Buffer,比如在某一時刻對Throughput的預測不是很好,選擇了比較高的碼率,如果網絡發生抖動,在未來全部選擇低碼率也無法阻止這一次卡頓,所以這就需要ABR算法具有一定的前瞻性和預測性。

2. 機器學習驅動的ABR算法

機器學習在ABR算法中的應用縱覽

關於ABR算法的研究工作一直都在進行。Rate-based的方法是一種經典的傳統ABR算法,它首先對Throughput進行估計,之後選擇與Throughput接近或略低的碼率,可能還要配上些啟發式算法來處理魯棒性或者帶寬探測的問題。2014年提出的BBA(buffer-based approach)算法基於buffer來進行碼率決策,之所以選擇buffer是因為Throughput抖動非常大,很難對其進行預測。BBA的基本策略是在Buffer比較小的時候認為卡頓概率比較高,選擇相對低的碼率,Buffer比較大的時候卡頓概率比較低,可以選擇相對高的碼率,處於二者之間時會以某種線性函數或者其他對應關係將buffer長度映射到中間的碼率,來實現一種不依賴Throughput的解決方案。這個方案會出現Buffer比較小時相對保守,切換比較頻繁的現象。還有一種同時基於throughput和buffer進行碼率決策的方法MPC,全稱是Model Predictive Control模型預測控制。其基本邏輯是先對客戶端的播放邏輯進行簡單建模,建模的目標是可以利用throughput和buffer來判斷選擇不同碼率下未來可以得到的QoE,從而可以利用這個模型對未來進行規劃。

到了2016年和2017年就開始出現了一些基於機器學習的ABR算法,其中CS2P主要解決MPC在Throughput預測不準的情況下會出現明顯性能下降的問題,尤其是在Throughput進行快速抖動的情況下。CS2P利用隱馬爾可夫模型進行帶寬預測,可以認為是利用機器學習算法進行間接ABR決策的工作。

Pensieve是基於深度強化學習進行端到端碼率決策的ABR算法。

2.1 CS2P

機器學習在ABR算法中的應用縱覽

CS2P的全稱是Cross-Session Stateful Prediction,基本邏輯是利用更好的Throughput預測來達到更好的碼率選擇,基本操作就是把Throughput預測拼到MPC方案上。作者觀察到吞吐量具有某種狀態轉移特性,關鍵特徵相似的會話吞吐量特性相似,例如上圖中兩條紅線之間Throughput會呈現某種狀態特性,然後它又對這些數據集中某一個時間段到另一個時間段的吞吐量轉移進行了分析,發現其中確實具有明顯的狀態轉移特性,這種特性可以考慮用隱馬爾可夫模型去建模Throughput的變化。另一方面,作者發現如果把所有session的Throughput信息都拿去訓練同一個模型,就會導致這個模型變得很差,表徵能力不強或者學到相對平均的結果以至於不能反映每一個子類的特性。為了解決這個問題,可以考慮利用關鍵特徵對會話進行聚類,之後再針對每個類別訓練單獨的隱馬爾可夫模型。這個工作整體上就是通過Throughput的預測方式間接對碼率進行決策。

2.2 Pensieve

機器學習在ABR算法中的應用縱覽

2017年的Pensieve(Pensieve:AI帶來的更流暢的高質量觀看體驗)是第一篇基於深度強化學習端到端進行碼率決策的論文,這篇文章中提到之所以這樣做是因為先前的工作總有一些固有的侷限,因此考慮用端到端的方式去學習,減少人為干涉。ABR本身具有長期規劃特性,這與深度強化學習本身十分適配,深度神經網絡也可以處理多維輸入狀態來輔助決策。

機器學習在ABR算法中的應用縱覽

強化學習的基本邏輯是靠Agent和Environment之間不斷交互進行學習。具體的操作方式是,Agent會從Environment中不斷地觀測到狀態state,基於state做出一些決策動作action傳遞給Environment,Environment會依據當前狀態和決策轉移到下一個狀態,並且給Agent一個Reward反饋,Agent由此進行學習去最大化未來的累計Reward和。

機器學習在ABR算法中的應用縱覽

ABR中的決策就是為未來每一個視頻塊選擇一個合適的碼率,輸入信息包括當前帶寬、歷史選擇碼率和當前Buffer長度,除此之外可能還需要塊大小、下載時間和剩餘塊數量等信息,由此Agent就可以每次決定一個動作後告訴環境。這裡首先需要解決ABR算法與環境的交互的問題,強化學習需要不斷地交互迭代才能實現很好的學習效果,這要求環境需要足夠的快才能在有限的時間內完成學習過程。這裡有兩個選擇,一個是ABR算法與真實環境進行交互,但真實環境交互次數遠不足以支持Agent的訓練,所以這裡採用了一個塊級別的仿真器來對客戶端行為進行近似模擬,實現高加速比(十分鐘模擬100小時播放)。有了仿真器和Agent交互之後就需要考慮Reward的設計,ABR算法的最終目標是要最大化的QoE和,每一步的Reward就應該是單步的QoE(質量、卡頓、切換的帶權線性和),這個QoE 模型也是MPC所使用的。Pensieve的訓練方案用的是A3C的快速異步算法,使用真實trace 或者人工合成的trace得到的效果都還不錯。

2.3 機遇與挑戰

機器學習在ABR算法中的應用縱覽

Pensieve看上去似乎無懈可擊,但仍存在一些問題。在ABR和流媒體優化中,QoE模型如何構建一直是一個懸而未決的問題,不同用戶和業務需求中質量、卡頓和切換比例關係可能會有變化。而Pensieve一旦訓練完成之後,比例關係就已經確定,不太能夠適應新的業務需求,因此預測在未來可能會出現多目標強化學習來解決多目標QoE的要求。

Pensieve在泛化方面有兩種場景,一個是In-distribution,假設Pensieve應用的網絡狀態場景是可採樣的,這樣我們就可以對目標場景有一定認識,但之前的一些實驗表明如果把流量分佈的數量增加並且將對應的數據集混合在一起訓練,分佈的數量越多會導致Pensieve性能下降的約大。這使得在某些具體的數據集上訓練Pensieve,混合訓練和單獨訓練的pensieve agent之間的QoE差距會達到50%,這是不太能接受的程度。第二個場景是Out-of-distribution,在沒有訓練過的場景上pensieve很大程度會fail。

在視頻源泛化方面,由於視頻內容不同,編碼得出的塊的大小抖動幅度也不一樣,如果在訓練時沒有考慮到多種視頻源特性的話會導致一定程度上的性能下降,所以在這裡可能會需要一些在線學習或者Meta-learning的方案去實現在線學習。

機器學習在ABR算法中的應用縱覽

第三個問題在於仿真器與真實網絡環境是否匹配的問題,這其中最大的問題在於仿真器是一個數值仿真,在網絡狀態部分採用的是直接讀取Throughput trace去看某一時間段平均Throughput 大概是多少,這時Throughput trace是沒有與傳輸層進行交互的,所以這裡沒法體現不同決策對傳輸層所帶來的影響,這種情況下仿真器所得到的結果就會潛在得與真實網絡環境存在偏差,同時也沒辦法模擬多用戶帶寬競爭的問題。還有個問題在於現在使用Throughput trace往往反應的都是當時的吞吐量而非帶寬容量,而實際上的帶寬大小很難採集,這之間的差異也會對這個問題產生影響。

機器學習在ABR算法中的應用縱覽

在Pensieve paper中提到可以使用mahimahi仿真器作為傳輸層的仿真模擬,mahimahi很多時候也被用在TCP的擁塞控制場景裡,它能夠模擬中間瓶頸鍊路的Buffer變化情況,從而反映帶寬和RTT的變化。但其本身加速比非常低,如果聯合Throughput trace一起訓練會拉低整個訓練效率,因此這個方案存在一些效率問題。最近也有學者在考慮應用層ABR和傳輸層TCP擁塞控制的聯合優化,斯坦福大學的puffer就是這方面的工作,大家可以關注一下。雖然有了Pensieve 提供的數據集、QoE模型和仿真器,但在網絡或者流媒體領域去真的推進這件事情的話還需要一個公認的仿真系統或者開放的數據集。

機器學習在ABR算法中的應用縱覽

3. AITrans競賽與直播場景下的ABR算法

機器學習在ABR算法中的應用縱覽

團隊在去年9-12月份舉辦了一個直播流媒體的比賽AITrans,在其中構建了一套系統和平臺,包括仿真器和數據,希望能為大家提供一些這方面的幫助,這個比賽後來拓展為ACM MM Grand Challenge。其主要任務是希望大家幫助我們去優化直播場景下的ABR決策,其中DASH以視頻塊為傳輸單位,延遲大,所以改為與公司合作,做了一個幀級別基於Push的直播流媒體傳輸系統。同時直播內容實時產生,ABR算法可利用信息減少,因為是直播對低延遲、高清、低卡頓、少切換的多目標QoE有更多的要求,這都導致了這個場景和原先點播場景有一些區別。為了解決低延遲的問題我們在ABR的基礎上又添加了時延控制機制,也就是快慢播和跳幀,以此來對時延進行控制,最後在搭建的低時延直播傳輸仿真平臺L3VTP進行測試。

機器學習在ABR算法中的應用縱覽

在比賽的過程中可以發現選手們在直播場景下更多的還是在使用BBA、MPC、Pensieve算法的變種,比如有多閾值BBA,MPC + Oboe [SIGCOMM’18]和在Pensieve基礎上加上直播信息作為輸入,並修改訓練算法和神經網絡結構的變種等。

而一些選手包括冠軍隊都採用了一些方案來提高ABR的性能,一是網絡狀態分類,二是在直播場景下對源端信息進行幀大小和間隔的預測(機器學習或傳統方法)。由於快慢播和跳幀機制的存在,採用強化學習的方案中還額外面對Reward對齊的問題。在點播中每個下載的塊都會去播放,從而可以在下載時直接對塊的QoE進行計算,而在直播中時延控制機制會導致下載的塊也可能不會被播放,或者是以不同的速率播放,這都會影響最終的QoE,所以在最後計算reward的時候要和當時的決策對應才能使算法能夠更好的運行。這其中得到的教訓是不要過度依賴仿真器,團隊在初賽時使用仿真器而決賽時使用真實系統,這兩個之間還是存在某些實現上的差異,以至於某些在仿真器環境下比較好的算法在真實環境下出現了一些問題。

"

相關推薦

推薦中...