7月26日,由中國人工智慧學會主辦、新浪新聞聯合浙江大學承辦的2020全球人工智慧技術大會(2020GAITC)「AI時代下的新媒體與社交娛樂」專題論壇拉開帷幕,新浪集團首席信息官、新浪AI媒體研究院院長王巍,浙江大學特聘教授,雪梨科技大學教授、百度研究院訪問教授楊易共同擔任論壇主席。
浙江大學特聘教授,雪梨科技大學教授、百度訪問教授楊易在本次專題論壇上,與來自業界、學術界的嘉賓們分享了《媒體的智能理解、分析與合成》。
楊易認為,大規模網絡視頻智能分析面臨許多挑戰,如視頻數據複雜度高,標註數據量少且標註過程緩慢等。如何利用無標註的海量網絡視頻協助視頻特徵學習,並提升模型性能是視頻分析領域重要的研究問題。
他提到,以前訓練一個模型做一件事,現在更多的是讓機器自主學習,培養機器的自我學習能力。不僅讓機器學會做事,更要教會它怎麼去學習,這是元學習的基本想法。比如,讓機器學會怎麼去做事,新的任務就很容易做自適應。
圖註:浙江大學特聘教授、雪梨科技大學教授、百度研究院訪問教授楊易作主題演講。
以下為楊易演講實錄,內容經編輯略有刪減:
尊敬的李院士,新浪的王總,以及在場的各位嘉賓和網上觀看今天會議的朋友們大家好!今天我的報告比較偏技術一點,因為視頻在網絡媒體傳播裡面是最重要的載體,而且今天李院士也講了,跨媒體是人和設備,計算機交互最重要的一個載體,我覺得視頻它有聲音,也有文字的信息,可能還有視覺的信息,所以可能是最接近跨媒體信息的媒體類型。
我今天給大家分享一下我們怎麼樣能夠比較智能的去分析、理解和利用、推薦視頻的內容。今天是娛樂論壇,其實在娛樂這個領域,我們用得場景視頻還是比較多的,比如說體育運動類的視頻,比如說社交媒體的視頻,電影和電視裡的視頻。為什麼我們要做視頻的分析和理解?接下來我將用幾個比較典型的應用展開論述。
當我們在發布媒體內容的時候,我們希望對它做比較好的管理和分類。我們希望媒體對這個內容做推薦,我們也希望媒體對這個內容做審查。不管是在國外還是國內都有這種需求,在國外很多的時候有的人會通過媒體發一些極端主義的內容,所以我們無論是推薦,還是審查,還是組織、檢索,都需要對視頻的內容做比較智能的分析。
實際上為什麼視頻分析是比較難的,因為視頻的規模是非常大的,它和圖像比起來,時間和空間的信息複雜度會很高,而且現在我們學術界用的數據相較於我們真實的網絡視頻和我們要處理的視頻還是有一些差距的。比如說這個是我們在訓練神經網絡用得比較多的數據,但是這些數據可能是運動數據,可是我們真正遇到的數據是用戶拍攝的數據,這些數據和我們學術界訓練神經網絡的數據有一定的鴻溝。另外,我們現在和圖像比起來,我們可以訓練一個相對比較好的神經網絡來做圖像的表達。但是視頻數據我們可以訪問到、標註好的數據規模非常小,而且視頻數據又比圖像數據更複雜,所以一方面我們的訓練數據少,另一方面我們數據的內容又非常的複雜,所以在這種情況下,就使得訓練一個很好的可用的神經網絡變得非常有挑戰性。
我舉個例子,我們對視頻的理解其實是非常主觀的,因為圖像相對內容比較簡單,所以我標註的時候比較容易,但是對於視頻來說,主觀性會造成很大的區別,標註有的時候不一致。可能這個小朋友玩的是小朋友的獨輪車,這種也是自行車的一種,很多人就把它直接標註成了騎自行車,但是有的時候大人騎自行車,甚至騎一些電動車,也會被標註成騎自行車,所以這個時候,我們標註和現實是非常不統一的。
另外一個問題,我們在做視頻研究的時候遇到了一個很大的問題,現在大家標註的視頻很多都是與場景相關的視頻,大家標註的比較多,真正我們做動作識別,很多時候其實做的是場景識別,不是真正的時序建模。在我們做動作識別的時候,什麼動作識別得好呢,是遊泳,打籃球這類的運動,為什麼這類識別得好呢?因為遊泳我們只要識別遊泳池我就知道是遊泳了,打籃球我只要識別籃球場,就知道是在打籃球。
所以很多時候,我們視頻分析裡面做得好的這些動作還是和場景相關的,但是真正有動作的,比如說這是舉手還是把手放下來,我是站起來,還是坐下,中間的狀態,時序建模現在做的是不太好的。一方面是因為資料庫非常少,現在有一個專門講物體和人的交互的數據集,人的時序建模的數據現在有一些了,但是還是非常少。
現在的深度學習靜態的識別已經很好了,我們再進一步是給網絡規模的視頻做分析,我認為最大的一個挑戰是效率的問題。實際上圖像為什麼快,一方面是因為它是沒有時間特徵的,我們計算機做時序建模是非常耗費資源的。另外因為一分鐘視頻就有上百幀,所以視頻幀數本來就很大。
另外還有一個效率的問題,我們標註視頻的效率也很低,如果人,比如我看到這個的時候,這是一個會場,我一下子就標記出來了,但是如果給大家一個一小時的視頻,我讓你標出來什麼時候人在跑,什麼時候人在吃東西,什麼時候人在切割。那麼我標註視頻的標註量也是非常大的。而且我在大量的視頻中找相關的視頻,比如說在100段視頻中找人在切黃瓜的視頻就是非常困難的。
所以整個來說,我覺得一方面是計算機計算的效率要提高,另一方面我們標註的效率也要提高,我大概主要是圍繞效率問題在講。
第一個我在講怎麼樣提高視頻的標註效率,視頻有一個很重要的應用,我要把它定位出來,一個是空間定位,這有車,另外一個是時間定位,比如說我知道這一段視頻有一個小松鼠,我知道它什麼時候在進食,其實這個視頻可能總共有10分鐘或者20分鐘,但是只有幾幀是在進食。大家可以想像,如果我是一個動物學家,要看它的生活習性,看動物是怎麼吃東西的,可能我就是對這一部分感興趣,定位實際上是比較複雜的。我要在很長的視頻裡面,把這個定位出來,計算量是非常大的。
不僅計算量是很大的,人要標註的也很多。傳統方法下的視頻定位操作是比較多的。人工做視頻,每一段視頻,小松鼠什麼時候開始吃,什麼時候完成吃,把這一段都要標出來,這個標註工程的工作量是非常大的。
因此大家就提出了弱監督做定位,我有一段視頻可能有10分鐘,我知道這裡面至少有一段視頻是小動物在吃東西,那麼在這種情況下,這段視頻有小東西在吃東西的鏡頭,但是可能10分鐘長的視頻只有5秒在吃東西,這種效果雖然標註很快。
這是我們今年和Facebook合作的一個工作,我們能不能這樣做,這段視頻,我標註它有小動物在吃東西,但是我不用標註它的起始幀和結束幀,我在瀏覽這個視頻的時候,我發現這一幀它在吃東西,我只標一幀,我滑鼠點一下就好了,這個時候我在視頻中標註一幀,這樣計算機基於單幀標註可以逐漸的擴展信息。其實這個東西Facebook最早就想做這樣的概念,但是我們把這個東西做完之後,他們產品部門去研究,說這個技術是可行的,現在可能是在往產品裡面加入。
這是我們研究的一個過程,簡單來說其實就是這樣的,我標了一幀之後,我通過單幀監督的數據不斷的擴展,往兩邊擴展,在時間軸上不斷的擴展,通過內容分析,可能這些都是進食的幀,或者相關的幀,然後把這個例子自動的照出來再不斷的擴展,這是一個迭代的過程。
另外還有一個比較重要的問題,我要做背景的檢測,其實我要找最接近正例的背景,我們一般是通過置信度,也是找出正例和負例不斷的擴展。這個是在講我們在做視頻檢測的時候怎麼提高檢測的效率。
這是一個快閃的視頻,我們的任務是讓機器人去檢測,這是不是在快閃,大家想想我們人在檢測的時候是怎麼檢測的?現在計算機都是這樣做的,從頭到尾把視頻看完,然後說,這是快閃。
那麼,其實真的要讓人去看,人可能剛開始發現這些內容不相關,我就快進或者跳過去,中間看了幾幀我發現這個地方就是快閃,就不用看完了。我看了大概1/3,前面快進,後面看了1/3部分的視頻,我說這就是快閃,所以我就不看了。這個方法我們用強化學習去做,我們訓練一個機器,跟人看視頻一樣,不是從頭到尾每一幀都看,我有的時候發現剛開始這些信息不重要,都是字幕介紹,我就用16秒的速度快進。到後來我發現越來越有內容,內容越來越多,我就把快進的速度降低。然後我發現這真的是和快閃相關了,我就一秒一秒認真的看,我看了四幀之後發現這就是快閃,我就不用看完了。
所以,這個例子裡我可能看四幀就知道了,我不需要均勻採樣,然後把它檢測出來。這是我們的做法,大概我們看1/60的幀,我們得到的結果和全看差不多。我們的題目當時是說,你只看很小的一部分,就和全看是一樣了,我們是策略性的去挑,模仿人怎麼去識別視頻的內容。
這個是我們在檢測的過程中怎樣提高效率,這個方法實際上是說模型怎麼樣快。檢測的時候我只看幾幀就可以了,但是模型還是很複雜的。因為我們做視頻分析用,凡是涉及到時間序列的檢測,複雜度是呈指數級在增加的。但是視頻有一個特點,冗餘度非常高。比如說這是一個人在跳舞大家可以看到,這是從0到3秒,我都把它列出來,冗餘度非常高。我們怎麼去利用這個冗餘度來降低模型的複雜度呢?一般我們是說,模型越大,越複雜。如果模型越複雜,它的性能越好,但是如果是做簡單的模型,雖然複雜度下降很多,可能有N個小模型,因為它有冗餘度,所以我用複雜的大模型帶若干個小模型之後,這樣我用N個小模型取代原來要做的N個大模型。
在這種情況下,我們希望把模型的效率提高,這有一個問題,一個大模型帶N個小模型,怎麼樣累加起來,性能還很好?這是我們用的模型,實際上我們提出了一種快速的循環神經網絡的思想,對模型做融合。實際上大家可以看性能是非常好的,比大模型都好。
最重要的是,大家可以看到,我們的計算量大概是削減了10倍,但是我們的結果還是很好的。這個技術也是和Facebook合作的,我們在所有公開的數據集上做的試驗,基本上性能是最好的,同時我們的複雜度降低了10倍。一個大模型帶若干個小模型,如果我們有好的方法,不但會更快,而且會更好。
這是我們今年新做的一個工作,因為視頻標註太複雜了,所以我們想能不能用機器自主學習的方法去做,這個時候我們就說能不能使用視頻裡面自己蘊含的信息,我們能夠把好的神經網絡訓練出來。其中我們用到了教學視頻,有一個很好的特性,比如說我做飯,第一步切黃瓜,第二步黃瓜裡面放鹽,第三步我倒醬油,第四步放到鍋裡,第五步炒。所以一邊說一邊做這個動作,這個時候給我們提供了很好的監督信息,我們就不用在標數據,我們就是用教學視頻去訓練機器的。
這個就是Google提出的自主訓練的方法,基本上像填空,這些技術細節就不細說了,後來有人把它放到圖像這部分,我們的工作把它擴展到三個支路,一支是做的動作的特徵,另一部分我們做區域的檢測,另外因為它有一邊說一邊做,所以我們有自然語言的模型。這個有一點像跨媒體的思想在裡面,我們把圖像的特徵,時序的動作的特徵和自然語言的信息放到一起再訓練。這個結果是非常好的,我們在這上面訓練出來的模型,在所有的下遊任務上都提高了性能,而且這個是我們不需要標註的。整個過程不需要人工的標註。但是我們比如說在視頻的文本摘要,在做視頻動作切割以及做視頻的動作定位和跨媒體檢索和視頻問答,所有的下遊任務裡我們都取得了最好的性能。
最後我講一下,以前的時候我們訓練一個模型做一件事,我們現在就想能不能讓機器自主學習,培養機器的自我思考能力。我們不僅讓設備學會做這件事,更要教會它怎麼去學習,這是元學習的基本。所以說我現在訓練你,我讓你學會怎麼去做這件事,這樣一來新的任務就很容易做自適應。所以我們提出複合記憶網絡,是深度學習的一個機制。我們提出了複合記憶網絡,它有幾個好處,一是我們用摘要模型可以做快速的檢索,另外用分塊模型去做視頻的匹配,這個工作是一個小樣本,因為機器學東西就像我們小學、初中、高中上完之後,我再去大學裡面學專業的知識,可能很快就學會了。但是如果說,小學、初中,高中學的東西跟大學學的沒有關係,比如大學專業是學計算機、人工智慧,但是我不上小學、初中、高中直接去上大學我又學不好,所以我們還是讓計算機有自主學習的能力,另外我們基於這個工作加了無監督的數據,我們教會機器自主學習,機器有了學習的能力之後,小樣本數據就能學得很好了,在此基礎上,我們再加入大量的無監督的數據,沒有標註的數據,我們的性能就又能提高一部分。
機器學會自主學習後大概就是這樣,基本上檢測每一個視頻,大概檢測兩三個樣本就可以得到較好的結果,我的分享結束,謝謝大家。