11月27日,在2022全球人工智能技術大會上,由CAAI智能傳媒專委會、中國傳媒大學媒體融合與傳播國家重點實驗室、新浪AI媒體研究院聯合支持的“融合與發展”新智者·智能媒體專題論壇在線上舉行。微博機器學習總經理、微博技術委員會委員王健民分享了題為《人工智能的技術創新 賦能微博內容理解與分發》的演講,和與會嘉賓交流人工智能技術發展的趨勢,以及微博推薦系統面臨復雜多樣的業務場景中的創新理論和實踐成果,解讀智媒時代的發展現狀和未來方向。
圖注:微博王建民-“融合與發展”新智者·智能媒體專題論壇
以下是王建民分享實錄,內容經編輯略有刪減:
大家好,我是來自微博的王建民,非常高興和大家一起交流,我今天分享的主題是:《人工智能的技術創新,賦能微博內容理解與分發》。
首先,我來看一看人工智能的總體發展趨勢。縱觀歷史,可以看出人工智能的發展,有三個明顯特征:分別是訓練數據的海量化及多樣化;算法模型的復雜化及通用化以及算力的高效化及規?;?。
我們知道,數據、算法和算力是構成人工智能的三大要素。在數據方面,訓練數據,從早期的萬級別規模,到達了目前的百億級別規模,并且,多種數據形態被融入進來。而算法方面,模型的參數 從早期的萬級別參數量發展到目前的萬億級參數規模,而且,模型結構有大一統的趨勢。數據和算法的規模和效率,都是建立在單機算力越來越強、機器越來越多的分布式計算架構之上的。
我們在具體實際工作中看到的一些人工智能發展趨勢。首先,我們看到的一個明顯趨勢,就是模型的訓練過程,逐步從有監督為主,轉化為自監督和無監督為主。
我們原來訓練一個模型,往往是人工先標注一批數據,然后訓練模型。這種方法有很大的局限性,那就是人工標注成本很高,所以很難獲得大量數據,數據量不夠,模型沒有得到充分訓練。參數規模大的優勢根本就發揮不出來。
為了緩解缺乏數據的問題,“自監督”模式逐漸流行。“自監督”機器學習,往往通過一些規則,自動構建訓練數據,避免了人工標注成本高、數量少的問題,我們就可以低成本地獲得海量的訓練數據。
典型的自監督學習代表,就是Bert模型,它隨機扣掉一句話中的部分單詞,讓模型根據剩下的單詞來預測被扣掉的單詞,通過這種方式,可以自動獲得幾乎無限的訓練數據。在自然語言領域,Bert是一個里程碑式的進步。
在人工智能技術發展趨勢中,這些年圖像理解在各行各業應用越來越廣泛。主要得益于兩方面:一方面是5G等通信技術的快速發展,另一方面由于手機終端的處理能力越來越強大,使得圖片、視頻類型的內容生產成本越來越低,圖像內容也就越來越多。
經過這么多年的發展,人工智能在圖像理解領域取得的輝煌的成就,尤其是在一些細分領域,比如人臉檢測與人臉識別。而在自動駕駛領域,雖然已經取得很不錯的進展,要做到完全放心使用,我覺得還是有一定的路要走。
剛才提到過,除了文本內容,圖片、視頻類型內容在網絡內容中占比越來越高,單從一個模態去理解內容,總是有很大的局限性,應用也會受到限制。所以綜合多個模態去理解內容,是人工智能發展的一個必然趨勢。
人工智能的另外一個趨勢,是超大規模圖計算。這個主要得益于計算機算力越來越強悍。相對其他機器學習模型,超大規模圖計算有個特殊的優勢:信息不再是一個一個的孤立點,信息在超大網絡中的傳遞,促進信息的流動、匯聚與集成,
這種算法,對信息量比較少的節點尤為重要,比如,對系統里面的新用戶,也就是我們常說的冷啟動用戶,他本來的信息就非常少,不過可以通過網絡中臨近的用戶,來推導這個用戶的信息。這就是超大規模圖計算的魅力所在
人工智能還有一個明顯的技術趨勢,就是從專用模型走向通用模型。目前的AI模型絕大多數仍然是任務專用的,通常針對具體任務設計特定結構的模型,一個模型專門做一件事,比如,自然語言處理 常常會使用Bert模型、圖像處理 經常采用CNN模型。
從專用模型走向通用模型則是一個技術發展趨勢,谷歌在前些年提出這一構想,希望通過構造一個通用的大模型,達到“一個模型做多件事”的目標。
不同任務數據輸入后,通過路由算法,選擇神經網絡的部分路徑到達模型輸出層,不同任務既有參數共享,也有任務獨有的模型參數部分,通過這種方式來達成“一個模型做多件事”的目標。
另外,強化學習是人工智能技術發展趨勢里面一個很重要的領域。大家提到強化學習,可能第一時間想到的是AlphaGo,確實,AlphaGo和李世石的“世紀之戰“,是人工智能的里程碑事件。其實,強化學習在其他領域也有很多的結合點:如自動打游戲,自動駕駛,機器人等領域。
個人覺得,只要我們深刻理解復雜的業務場景,找到一個合適的,容易量化的reward函數,強化學習技術就會在業務發揮重要的價值。
前面跟大家簡單的介紹了人工智能的幾大發展趨勢。這些都是我們在具體實際工作中的一些感受,也是微博對人工智能工作理解的一個總結。
我們應該感恩這個時代,人工智能的飛速發展,讓我們能做的事情越來越多,也讓我們的事情越做越好。微博和大部分互聯網公司一樣,正在享受著人工智能 給我們帶來的紅利。我們正在把人工智能方方面面的技術,與我們的核心業務深度結合,賦能各個應用場景。
具體來說,我們的應用場景,包括:關系分發,興趣推薦,push,超話,視頻,新聞等業務場景。
微博推薦系統面臨復雜多樣的業務場景,微博環境下做推薦系統,既具有鮮明的微博特色,同時又面臨著復雜的業務場景。主要體現在三個方面:首先是無處不在的社交關系。我們知道,微博作為國內最大的社交媒體,目前月活用戶達到5個多億,而這些用戶通過關注關系、發博文、對博文的轉評贊等各種行為,建立起了一個龐大的社交網絡。其次,微博內容具有時效性強、多樣性高的特色,很多社會熱點事件都是第一時間在微博引爆的,而且作為綜合媒體,微博涵蓋了幾十個高質量的垂直領域。第三,是多元化場景的推薦需求。我們微博很多場景,比如關系流、熱點流、視頻流等,都有很強的推薦需求。
簡單的說,微博推薦系統整體由三個部分構成:第一部分是,微博內容理解、也就是我們對微博文本,圖像,視頻的理解。第二部分是,微博用戶理解,也是我們常說的用戶畫像。第三部分是,基于我們對微博內容的理解,對用戶的理解,把高質量的微博內容,分發給感興趣的用戶人群,這就是微博推薦系統要做的事情。
首先要分享的是微博內容理解,微博內容包含了文本、圖像、視頻三類不同類型的信息。其中,對文本的理解,是微博最重要也是最基礎的一項工作。對微博內容打標簽,是對文本理解的重要組成部分。
為此,我們構建了一個三級的內容標簽體系。第一級是比較寬泛的類別定義,比如“體育”、“娛樂”等類別,目前包含56個類別;第二級是在第一級基礎上的細化,比如“體育”一級類別下就有:“足球”、“籃球”等細化類目;第三級標簽是主要是實體識別,比如具體到的某一個球星,目前包含幾十萬個這樣的三級標簽。
有了標簽體系后,打標簽具體是怎么做的呢?簡單的說,我們采用 FastText+Bert 結合的方案。
大家都知道FastText和Bert各自有各自優勢,也有他們的缺點,FastText速度快但是效果不夠好,Bert效果好但是速度慢。
我們針對高質量的博文直接使用 Bert,其他的博文先經過 FastText,標簽得分足夠高,則認為結果已經比較好了,不再使用 Bert進行處理;若得分不夠高,則使用 Bert 再預測一次。這樣,可以利用FastText速度快和,又利用了Bert效果好的優點,兼顧速度和效果。
除此以外,我們還會對微博的吸引力,實效性,質量得分,是否是廣告,以及情感也會做進一步的分析和建模等等
另外一項很重要的文本理解的工作是話題模型。用戶在發微博的時候,很多人喜歡用雙#號括起一句話來作為這條微博的主題,我們內部把這個叫做“話題”。
盡管很多用戶在發微博的時候,會主動加上某個話題,但是更多微博內容其實是沒有“話題”信息的。所以我們希望通過技術手段,來自動給那些不帶“話題”的微博自動加上一個“話題“。這就是話題模型。
那怎么做的呢?我們在這里就用到了”對比學習“,“對比學習”是最近幾年興起的自監督學習方法,也就是說不需要人工標注樣本,算法模型通過自動構造訓練樣本來學習。
簡單的說,我們把帶話題的微博拆分為微博正文和微博話題,把這兩個放一起,作為正例,隨機選取其它不同話題的微博正文作為負例,然后使用Bert分別對正文和話題進行語義編碼,在編碼后的投影空間將正例距離拉近,負例距離推遠,這樣我們就訓練好一個模型。
當訓練好模型后,在推理的時候,對于不帶“話題”的微博內容,輸入文本信息到Bert,模型對微博內容進行編碼,然后去匹配最相似的話題內容,這樣就可以給這條新微博,加上了一個相對比較精準的話題。
除了文本理解,微博在圖片理解方面所做的比較重要一項的是明星識別。 “明星-粉絲”關系是微博生態的重要組成部分,所以識別圖片中出現的是哪位明星,在微博應用場景下就很有實用價值。
微博先人工標注一批明星的圖片數據,構建一個包含數百位微博流量明星的知識庫,輸入一張圖片后,首先進行人臉檢測,之后使用比較成熟的人臉識別技術對明星進行識別,人臉檢測和人臉識別技術相對比較成熟,所以相應的識別準確率比較高,性能也很不錯。
對圖像理解另外一個很重要的應用是智能裁剪?,F在大家都是用手機刷微博,很多微博都帶多張圖片的,因為手機的展示界面空間有限,往往會對圖片進行一些裁剪,然后再展示給用戶。
我們早期的圖片裁剪方法比較簡單,只是裁剪出圖片的中心區域,很多時候,這種簡單策略效果不太好,像左邊這幾張圖,如果只裁剪出圖片的中心區域,常常會將人臉等重要區域給剪掉,給用戶的觀感很不好。
針對這個問題,我們開發了智能裁剪技術,通過人工智能識別出圖片中的重要區域,例如人臉區域,這樣在裁剪圖片的時候,盡量保留這些比較重要的區域。這項功能上線后,一些運營的關鍵指標取得了很大提升。
微博的文本理解、圖像理解,這些都是內容理解中最基礎的工作,內容理解還有一項非常重要的工作就是-多模態預訓練模型,這能促進微博內容深度融合。
微博內容中包含了越來越多的圖像和視頻內容。要想搞明白一個微博到底在說什么,僅僅理解文本內容,或者僅僅理解圖片內容是不夠的,我們需要采用多模態理解技術,融合文本、圖像、視頻等多種媒體信息。這里微博采用的是“對比學習”技術。
對比學習在前面的話題模型中已經提到過,這里的對比學習和話題模型的對比學習非常類似。用bert對微博文本內容進行編碼,圖像和視頻內容通過vision transformer進行編碼,然后通過fusion子網絡進行融合,形成微博的embedding編碼。
經過預訓練,學好的微博編碼器 可以拿來對新的微博內容進行編碼,embedding結果可以廣泛的用到下游的各種業務中。由于訓練的數據來自微博,大家知道微博的內容非常有特色,所以最終的embedding結果也很有微博特色的。
同樣,微博在用戶理解方面工作中,采取超大規模圖計算。微博是國內最大的社交媒體。微博的社交媒體屬性天然匹配超大規模圖計算。
微博以用戶和博文作為圖中的節點,以用戶間的關注關系、用戶對博文轉、評、贊等互動行為作為圖中的邊,這樣就可以構建一個超大規模的圖,節點可以達到10億規模、邊可以達到100億規模。
通過對超大規模圖的傳播計算中,我們可以得到一個描述用戶興趣的embedding向量。這種做法尤其對系統的新用戶,也就是對冷啟動用戶有很好的應用價值。
當我們做好了對微博內容的理解,對微博用戶的理解,接下來要做的事就事怎么樣把高質量的內容分發給感興趣的用戶,這就是推薦系統要做的事情。
而當一個推薦系統基本成型之后,我們還會遇到哪些問題,怎么去解決。首先我們遇到的是一個多場景問題,前面提到過,微博在多很多場景都有推薦需求,比如微博主頁的關系流,推薦流,微博發現頁的熱點流。還有視頻流,視頻后推薦流等
這些場景到底是什么關系呢?我們分析認為,這些場景之間有共性,也有個性:不同場景有很大的用戶重疊度,同一個用戶雖然在不同從場景下,他的基本興趣是一致的;與此同時,場景之間也有很多差異,比如有的用戶偏向社交型,有的用戶偏向社會熱點型,有的用戶喜歡刷視頻。
所以,怎么面對這個問題,對我們來說是一個很有意思的挑戰。傳統方式是各業務場景獨立建模,各做各的,這樣帶來的問題是什么呢?
諸如:各模型無法很好抓住用戶的共性;有些小場景流量少,缺乏訓練數據,無法得到充分訓練;維護多場景多個模型系統資源開銷大
解決辦法就是一個模型服務多個場景,這樣做的好處是打通了各場景數據,更好的解決各場景冷啟動問題;多場景共享訓練,抓住微博用戶共性;抓住共性的同時,也學習不同場景的差異;以及降低系統資源開銷;
既然一個模型服務多個場景有著諸多的優勢,微博具體怎么做呢?解決的核心問題是怎么通過網絡結構表示場景間的共性和個性?
首先,在模型的底層輸入,無論是用戶特征,還是內容特征,大家都是共享的,一致的。中間的一部分“專家子網絡”,這些網絡參數是各個場景共享的;而邊上子網絡參數則是各個場景所獨有的。通過這種方式,就可以兼顧場景的共性與個性,能夠通過一個模型服務多個場景,這樣同時也節省了資源。
除了多場景模型外,我們還對推薦系統做了很多技術研究,這里介紹下我們利用知識蒸餾技術 來解決推薦鏈路一致性問題。
在推薦系統內部,一般會分為召回、粗排、精排等環節。召回環節要從海量微博中,篩選出幾千條用戶可能感興趣的內容,因為要處理的微博數量多,所以要求速度快,同時精準度要求就沒那么高了;在粗排的時候,需要利用少量特征和簡單模型 對召回內容初步排序;最后的精排,則是使用大量特征和復雜模型 對內容進行精準排序。
這三個環節形成漏斗,越往后的環節 需要參與排序的內容數量越少,精準度越高。過程中難免產生不一致問題。具體來說,前面召回的物料并不是后續粗排和精排真正需要的。
在這里,微博采用“知識蒸餾”來解決鏈路一致性問題。如圖所示,我們讓精排模型作為“老師”,召回或者粗排模型作為“學生”,讓精排指導召回模型的訓練,這樣召回模型就能學會精排模型的排序偏好,召回模型能和精排模型保持大體上一致,也就是說,召回模型召回的物料,基本上能滿足后續排序的期望。
知識蒸餾增強推薦鏈路一致性,我們做過相應的實驗,效果還不錯。
在微博推薦系統中,強化學習增加推薦多目標個性化融合很關鍵。
做人工智能,很重要的一個工作,就是找到一個可量化的優化目標,也就是loss函數。對于推薦系統來說,點擊率是大家很容易想到的優化目標。在具體的業務中,點擊率很重要,但僅僅是點擊率是不夠的。微博有個很有特色的指標是,互動率。也就是用戶轉、評、贊這條微博的概率。當然還有用戶時長目標。這一點也很重要。幾乎所有的互聯網產品都在競爭用戶時長
所以,一個成熟的推薦系統需要解決一個多目標問題
那么問題來了,這么多目標怎么融合?我們一般會采用加法融合、乘法融合,或者既有加法,也有乘法。當然我們肯定不是簡單的相加或者相乘。這些融合是有參數的。
接下來的問題就是怎么調參了。最簡單粗暴的方法是指定參數,比如都是1。還有一些做法就是,固定其他參數,一次只調一個參數,達到最優后,再用同樣的方法調整另外的參數
這樣的方法雖然簡單,但問題是效率低,需要做大量的實驗,全憑人工經驗,所以,有人調侃算法工程師為調參工程師。
微博的最新做法就是用強化學習來調參。具體來說的話,首先把推薦的流量用正交的方法分成很多小流量,然后每組實驗帶來的收益作為強化學習的reward,來訓練強化學習模型。這樣經過多輪多次小流量實驗,agent基本上能學到一個比較好的參數。
當然這種做法也有不足之處,最大的問題是,互聯網產品講究小步快跑,沒有那么多時間和資源給我們大量的實驗,因此強化學習的樣本不會太多。
所以,我們面對的很大的挑戰就是怎么用有限的資源,有限的時間來高效的學習一個更好的參數。這個問題希望有機會和大家進一步探討。
以上就是我分享的全部內容,感謝大家的觀看,謝謝大家!