日日碰狠狠躁久久躁96avv-97久久超碰国产精品最新-婷婷丁香五月天在线播放,狠狠色噜噜色狠狠狠综合久久 ,爱做久久久久久,高h喷水荡肉爽文np肉色学校

睿治

智能數據治理平臺

睿治作為國內功能最全的數據治理產品之一,入選IDC企業數據治理實施部署指南。同時,在IDC發布的《中國數據治理市場份額》報告中,連續四年蟬聯數據治理解決方案市場份額第一。

華為朱杰明:預訓練模型在信息流推薦中的應用與探索

時間:2022-05-22來源:逆衍葒瀏覽數:255

第一方面是如何高效地預訓練模型并且微調。現有的研究工作都是強調極簡計算或模型量化,目的是在手機端運行一個小模型。但是并不在意模型的更新效率。那么在推薦領域,我們需要做到快速更新模型,而實時數據推薦領域的數據量又非常大。

分享嘉賓:朱杰明 華為諾亞方舟實驗室編輯整理:張奧宇 AWS出品平臺:DataFunTalk導讀:經過多年的技術進步,推薦系統場景已經從最開始的協同過濾,發展到了現在的深度學習為核心的階段。隨著深度學習模型的體量逐漸變大后,其優化的難度也在增大,特別在推理性能上的限制下,最后模型的效果提升受到了很大的局限性,很少能產生質的飛躍。對于這類問題,今天會和大家討論怎么借助預訓練模型的方法來跨過深水區,輔助推薦系統進一步大幅提高性能。

今天的介紹會圍繞下面五點展開:

華為諾亞方舟實驗室

信息流推薦場景

推薦技術的發展

預訓練模型在信息流推薦的應用

展望

01

華為諾亞方舟實驗室

華為諾亞方舟實驗室包含計算視覺,語音語義,推薦搜索,決策推理,AI技術理論和AI系統工程六個子實驗室。實驗室的定位一方面是面向AI的技術研究,另一方面是面向產品的技術賦能,技術服務于產品。同時,實驗室在全球建立廣泛合作,目前已經涵蓋到10多個國家,并與25所大學建立了聯合實驗室以及合作項目。

具體到推薦團隊,我們有很多研究課題。在學術成果方面,我們團隊已經在KDD/SIGIR等頂級會議上發表超過50篇論文,其中比較有代表性的DeepFM,已經有超過1000的引用量。在此基礎上,我們持續對華為多個實際的應用業務進行技術支持,包括應用市場、游戲中心、信息流、廣告、音樂等場景。

02

信息流推薦場景

華為的多模態信息流推薦主要包含以下幾個場景:華為手機的負一屏圖文新聞推薦,華為瀏覽器的圖文和短視頻瀑布流,華為視頻APP里面的電影/電視劇推薦。大家可以看到,相對于傳統的推薦,現在的應用場景越來越向多模態、多元化的技術路線發展。如何構建一個面向多模態的推薦,是當下的一個難點,也是一個轉折點。

03

推薦技術的發展

首先回顧一下推薦技術的發展。在2000年左右,我們使用最多的技術是協同過濾。迄今為止,矩陣分解或者基于物品的協同過濾,依然是業界廣泛使用的算法之一,因為不僅簡單,而且效果往往很顯著。

從2010年開始,隨著廣義線性模型的提出,很多模型,比如采用了FTRL算法和線性更新的邏輯回歸,因子分解或者FM等被提出以及應用。這類方法比傳統的協同過濾模型,在性能和效果上有所提升。在排序領域,像BPR,RankSVM等算法也獲得了很好的效果。這里面效果的提升主要來源于大規模的訓練數據以及很高效的訓練迭代機制,比如實時更新。

從2015年開始,深度學習模型受到更多的關注。比如google提出的YoutubeDNN從發表開始就受到了業界各方面的關注,也得到了廣泛的應用。還有后來的Wide&Deep架構也受到了很大關注。我們在此基礎上提出了DeepFM。與此同時,這個階段也有阿里的DIN等代表性工作出來。

深度學習模型的成功主要取決于GPU算力的飛躍,進而為各個推薦系統的業務場景帶來了效果的提升。但是隨著模型體量的增大,我們發現優化的難度也在提升,比如為了保證線上推理性能的要求,上線的模型很難帶來質的提升。我們一直在思考什么是推薦技術的下一個突破性方向。從18年的BERT模型提出開始,在NLP領域已經建立了預訓練+微調的新范式。同時,在CV領域,也已經開始大規模的進行大規模預訓練模型的研究。我們希望借鑒相同的經驗,通過預訓練模型來輔助推薦系統進行進一步的性能提升。

04

預訓練模型在信息流推薦中的應用

在本次分享中,希望從信息流推薦場景出發,介紹兩部分技術,一部分是新聞場景下的預訓練和排序建模,另一部分就是用戶視角下的新聞界面表征建模。

從圖中可以看出,給定一條新聞內容,現有技術已經能夠從文本等相關內容里挖掘出包括類別標簽,關鍵詞和實體詞等。我們往往并不關心這些具體類別或者標簽的含義是什么,而是直接當成一種ID進行向量嵌入加到模型中。這并沒有幫助模型去進行語義理解,比如圖中標簽Tag里面的“養生”,我們并沒有建模文本語義。

另一方面,如果只是從文本模態去挖掘的話,很難捕捉到完整的用戶行為。當看到新聞界面的時候,用戶的第一感覺是什么?這就促使我們去思考如何從用戶視角下去捕捉新聞界面的多模態信息,包括圖片是否清晰,排版的類型,配大圖還是三張小圖這些都會對用戶的直觀感覺產生影響。

1. 新聞場景下的BERT預訓練和排序建模

我們首先理解一下基于文本內容的新聞推薦模型。就目前業界的研究來看,微軟亞洲研究院做的工作比較多,主要是分為以下幾個方面。

第一個是Topic Modeling。隨著LDA模型的提出,Topic Modeling在文本內容建模以及基于內容的推薦中得到了廣泛的應用。但是LDA是一個無監督學習方法,很多時候它的效果取決于語料的選擇,而且LDA得到的embedding與下游任務并不是百分之百匹配,就只能部分地去解決語義理解的問題。

隨著深度模型的提出,更多的模型開始采取像Word2Vec或者Glove的word embedding的方式來對詞的語義進行建模,但更多時候是以一種token初始化或者相似度來建模并融入到模型中。從2020年開始,很多團隊開始嘗試將BERT應用到新聞推薦的任務中,比如微軟、我們團隊。

圖中展示了四個微軟的前期工作,比如NPA,這是利用TextCNN來建立token之間的相關關系和文本語義表征,然后利用attention的方法來得到用戶的興趣表征。有了用戶的興趣表征和新聞的語義表征,就可以進行語義匹配任務。類似的方法包括NAML和NRMS,分表利用Multi-view和Multi-head技術進行建模。除了這些基于向量表征的方式,也有基于token級別的匹配關系建模的方法,比如FIM,該模型計算的就是文本token與token之間的相似度。但總的來說這些方法比較依賴下游任務的訓練,并沒有充分利用到NLP領域的語言知識。

如何充分利用pretrain + finetune的方式來提高新聞推薦的效果,這是我們的思考點。

基于此,我們提出了UNBERT,通過預訓練的新聞文本表征來優化推薦模型本身。

這個模型的輸入就是將用戶的閱讀的歷史新聞和曝光的新聞進行拼接,當成一個整體的句子進行輸入。句子與句子之間用不同的分隔符以及segment id進行表征,并借此來判斷是歷史閱讀的新聞還是曝光新聞。由于BERT是對token與token之間的關系進行建模,我們通過CLS token這種結構對新聞token level的匹配信息進行建模。比如不同新聞之間token級別的相似性可以在這一層表現出來。但是BERT本身不具備句子表征的優勢,我們的做法就是按照segment id對不同新聞進行pooling得到新聞向量,然后再經過相應的transformer來對新聞之間的相似性建模,這樣做的好處能夠判斷曝光新聞更歷史閱讀新聞之間句子級別的相似性度。最后進行兩層的融合輸出預測分數。

訓練任務就是通過使用點擊日志數據參考CTR任務來進行二分類訓練。這里我們遇到的難題就是如何優化BERT來保證效率。

首先我們看一下模型的效果。

這種簡單的借鑒NLP的pretrain + finetune的方式帶來了離線效果的顯著提升。相較于前面提到的基于transformer的NRMS和attention的NAML都有很大的性能提升。

我們認為這種效果提升并不是transformer結構本身,而是利用了BERT預訓練模型中包含的大量通用語言知識。這種知識是從領域外的大量訓練語料帶來的,并且是傳統新聞推薦無法做到的。除此之外,我們再對比不同的模型在時間維度(天)的一個表現,這個柱狀圖是按照每天產生的新新聞加入到評估中,可以看出來UNBERT的表現相對更加穩定,而其他基于ID類的方法都會下跌比較厲害,也就是說這種基于BERT的新聞推薦模型在冷啟動方面有更好的泛化能力。

我們在微軟的MIND新聞數據集上進行了比較長時間的嘗試。

最開始的UNBERT方案現在排名第六,并且經過改進的MINER方案現在排名第二。兩個方案都是采取比較一致的結構,基于BERT結構然后加上CTR數據進行finetune得到。并且可以看到,排名靠前的方案都是基于BERT結構做的。

更重要的改進是如何將基于BERT的方案優化到能夠進行線上服務的程度,這個工作量遠比離線實驗大。

首先,BERT的計算量非常龐大,很難適應線上的業務需求。為了達到該需求,我們進行了很多嘗試。第一個就是直接對模型的參數和層數進行裁剪,并進行了一定對比,另外也驗證了模型知識蒸餾方案的效果。可以看到,將BERT-Base的層數縮減為四層左右得到的BERT-mini,所降低的點數不是很多。但相對于原始的模型的話,還是能帶來一些增益。

另外采用知識蒸餾的結構的話,會將原始模型蒸餾到像MLP這種DNN結構,也能帶來一些增益。但是最后我們沒有采取這種方式,因為蒸餾方法雖然能夠帶來推理效率的大幅提升,可訓練時長卻是普通方案的兩倍。最后我們還是采取了小型BERT的方案。

為了落地,我們采取了如下的一些優化方式。

首先就是模型的兼容,我們本來設想取代現有的CTR模型。但是當前上線的模型已經過多年的優化,有很多不可替代的統計類特征,還有ID類特征。直接用基于文本的BERT模型的話,效果上還存在一定差距。所以我們思考如何利用模型的優勢來提升現有線上方案的效果,最后決定采用DCN結構的方式來兼容這種ID類模型。UNBERT是基于token與token level的匹配,以及news與news level的匹配,所以很難做到離線的緩存。為了做到這一點,我們在上線過程中把每個新聞的表征給解耦了。在進行了分離并訓練之后,我們能夠得到每個新聞的表征,并將這些向量緩存到cache里面。在實時推理的時候,我們只需要從cache中取得當前新聞的表征就能進行推理。

第二點,如果原始模型直接拿來用,是維度為768的embedding,這對于下游任務來說,這個維度太高了,而且我們的新聞量可能是百萬或上億級別,這樣不僅內存消耗高,運算也會很慢。我們嘗試過通過PCA的方式進行降維,但是線上效果并不理想。因為對于BERT來講,finetune是非常重要的,所以我們在模型上加上全連接層降維,然后進行finetune,得到50維的向量來表示一個新聞。

第三點,我們非常關注訓練和推理的效率,因為如果不使用業務數據進行finetune,上線效果表現有限,我們還是希望能夠做到每天更新一次。不同于NLP和CV領域,推薦系統不僅強調推理階段的輕量化,也要保證數據的實時性和模型的更新效率。

如何在訓練階段保證效率呢?我們首先采用諾亞提出的4層TinyBert作為預訓練模型。另外,在數據方面,MIND數據集只有幾千萬的數據,基本一天以內就能處理得非常好。但是在實際業務中,我們經常遇到上億甚至是十億級別的新聞交互數據。如果要完全過一遍數據的話,往往需要幾天時間,是不可能做到以天為單位進行更新的。為了達到天更的目的,我們對數據進行了一定的篩選,一些長尾用戶,比如點擊歷史太短或者缺失就被過濾掉,這樣就能降低數據量,保留更多擁有歷史點擊序列和曝光序列的序列對。通過這些序列對,我們能夠做到天更。我們最后在公開數據集和業務數據集上都驗證了這個方案。

之前的純BERT模型,能夠在榜單上取得很好的成績,能否讓傳統模型比如DeepFM/DCN也得到提升呢?我們最后經過驗證發現,只要是經過finetune之后,這種傳統的模型也能帶來AUC百分位的提升。在正式上線并經過一段時間測試后,CTR有2.3%的平均提升。但是目前我們的挖掘還不充分,當前版本只用了新聞的標題。后續我們還計劃把整個文章內容都進行進一步的優化。但是如果想對整個文本進行建模,我們可能需要對效率進行更多的考量,因為文章本身的token更多,難度會更大。

2. 用戶視角下的新聞界面表征建模

我們的第二個工作是在MM2021上發表的工作。現有新聞推薦模型都是從資料庫取出新聞,它可能包括文本、圖片,但是沒有展示在界面的信息。如果我們的模型能夠捕捉到用戶視角下的界面信息,比如把閱讀一張圖片的不同排版信息捕捉下來,可能是大圖,三張小圖或者是單小圖。當前視覺模型是做不到這一點的。

如何來捕捉這種信息呢?

我們設計了這樣的模型。用戶觀看的第一印象往往決定了是否產生點擊行為,我們稱這個為視覺印象。直觀理解就是圖片或是標題里的關鍵詞是不是吸引人?給用戶留下了怎樣的印象?我們把整個新聞界面劃分為多個卡片,每個卡片包含幾個子領域,包括圖片、類別、標題等。以圖中的展示界面為例,一張卡片包含圖片、類別和標題的局部印象,同時整體卡片也能獲取一個全局的表征,我們稱為全局印象。這樣包含了展示方式的建模其實就是我們希望獲取的在用戶視角下的展示界面的多模態信息。

整個方案的設計和實現是比較直觀的,在用戶在發起請求之后,我們希望不僅能夠獲得新聞相關行為信息,也能夠獲得新聞在界面上的展示形態,比如具體是呈現哪一種視覺表達形式。根據這個表征形式,我們能夠更好的建模整個新聞內容,進而返回更加精確的推薦結果給用戶。

相對于傳統新聞推薦,我們加入了一個界面表征模塊,這個模塊包含了局部印象和全局印象。

局部印象模塊會把整個卡片按照固定的大小切成很多patch,然后采用預訓練的ResNet或CLIP獲取向量表征。接著進行索引計算,并對標題文本進行雙映射,也就是文本的token和patch之間進行一個相關性的計算。我們通過第一層的attention計算來對圖片和文本的相關性進行計算。然后我們也會對token之間和patch之間的相關性進行計算,最終產生豐富的多模態表達。最后的輸出其實是卡片圖片的一個表征,不同之處在于,它的建模方式是條件式的,也就是說當給我們對應的文本,我們的整個卡片圖片表征應該是什么樣的?如果我們的patch分得足夠細,就能夠捕捉到大圖或者小圖,字體風格或者文字排版等關鍵信息,它的建模方式會更加豐富。

另外,我們也會把卡片當成一張整體的圖進行全局的建模,比如采取ResNet或者CLIP。最后,把全局表征和局部表征進行融合,作為新聞的一個向量特征輸入到CTR模型中。由于這個模型采用了大概三層的attention結構,這會帶來比較高復雜度。通常情況下,引入多模態信息的話,模型的復雜度會大于普通模型,所以與Bert模型的使用相同,我們采取離線計算卡片向量并緩存的方式。

我們來看一下結果,也是在MIND的數據集上,我們通過模擬的方式生成界面卡片信息,然后對應到不同的新聞上面,最后再對比現有的模型,我們發現多模態信息能夠帶來較大的提升,AUC的提升能夠到百分位點。同時,我們也對比了基于界面的新聞和不帶圖片的新聞,可以發現,當引入新聞界面信息是能夠帶來性能提升。比如NRMS的提升能夠達到兩個百分點,也就是說圖片本身對于用戶點擊的提升效果還是很明顯的。

從圖中可以看出,想較與基線模型NRMS和FIM,我們方案取得了較大的指標提升。這里面就包括界面卡片的表征、歷史閱讀新聞卡片的表征。那么問題的關鍵就是如何把模型真正應用到業務系統里面去。但是在實際落地中,我們遇到了很多挑戰。

第一點是是數據問題。由于圖片本身存儲是比較大的,現在只有大概近一個月的數據,這就造成我們在對用戶進行建模的時候,較長的歷史行為無法拿到對應的圖片,也就沒法生成界面,這造成我們的覆蓋率不夠高。

第二點是是工程上的問題。如果要實時訓練和推理的話,我們需要用戶界面的圖片進行建模和表征,這就需要定制化一些方法對界面展示進行模擬和回放。這些工程化內容還在進行當中。對于線上推理環節來說,由于我們已經上線了基于文本的向量表征模型,我們需要思考如何與先有的模型進行疊加,而不是分開建模。因為分開建模代價很高,需要緩存兩份embedding,而且線上推理的時候,由于embedding數量越來越多,也會影響推理的速度。所以我們考慮如何通過文本和圖片聯合給出多模態表征。目前,我們還沒有完全上線模型,但是我們也做了一些工程化的優化,并有了一定結果。總體來講,我們發現,對于新聞、短視頻等信息流推薦,多模態的表征能夠很好得提升推薦的效果。

05

展望

我們對于下一階段的工作還有很多展望。

第一方面是如何高效地預訓練模型并且微調。現有的研究工作都是強調極簡計算或模型量化,目的是在手機端運行一個小模型。但是并不在意模型的更新效率。那么在推薦領域,我們需要做到快速更新模型,而實時數據推薦領域的數據量又非常大。之前我們的方案都是按照序列數據進行finetune,因為每個用戶都有各自的序列,這就造成數據量很大。所以我們思考可不可以從數據pair的結構上進行數據縮減。不同的用戶,可能它閱讀過的的item pair是一致的,這樣我們可能進行合并和優化計算。另外,微軟也公布了一種SpeedyFeed的方法,我們目前在業務數據上進行了一定初步嘗試,效率提升在2-3倍左右。但如果要進行全量數據更新的話,SpeedyFeed也還是無法做到天更,還需要結合對數據進行一定篩選。

第二方面就是如何只對pretrained embeddings進行微調。如果我們同時考慮多種模態、文本、視覺、音頻等,那么我們的模型就會越來越多。很有可能我們做不到對多個大模型同時finetune,所以我們考慮能不能直接在embedding上進行finetune。但是現在這種在embedding上直接加多層MLP,效果并不好。這是未來的一個研究點。另外一點就是文本BERT表征和圖片視覺表征如何進一步融合并兼容到現有的推薦結構里面來得到提升。現在所做的嘗試包括pretrained embedding作為初始化,向量表征或者通過相似性計算來改進現有模型,比如DCN或者DIN結構。我們線上方案采用向量初始化方案,因為它對推理接口的改動很小。如果我們有不同模態的向量,就不能簡單使用初始化的方法,因為初始化只能用一種向量。如何在下游任務上利用多種embedding,也是可以探索的點。另外,對于融入了視覺卡片的應用,在推理階段,我們只是做到了單新聞的評估,并不可能知道用戶當前上下文展示的是什么新聞。在完成排序之前,我們是不知道這個信息的,而一旦排序之后,我們就可以獲取到這個信息,所以在訓練階段,這個信息是可以獲取的。如何在訓練階段利用這種上下文信息來更好捕捉用戶的視覺偏好,也是我們可以探索的點。


(部分內容來源網絡,如有侵權請聯系刪除)
立即申請數據分析/數據治理產品免費試用 我要試用
customer

在線咨詢

在線咨詢

點擊進入在線咨詢