騰訊圖神經網路與推薦預訓練模型

語言: CN / TW / HK

分享嘉賓 :宋重鋼 博士 騰訊 高階研究員

編輯整理:羅錦波 澳門科技大學

出品平臺:DataFunTalk

導讀: 今天分享的主題為圖神經網路與推薦預訓練模型。主要包括以下幾部分內容:

  • 預訓練模型目標與核心問題

  • 推薦系統場景中的預訓練模型

  • 預訓練模型的服務模式

  • 圖神經網路預訓練案例分享

01

預訓練模型⽬標與核⼼問題

1. 預訓練模型的發展歷程

隨著深度學習在各領域的快速發展,我們逐漸發現,基於監督資訊的深度學習⽅法對標註樣本有極強的依賴性,這⼀定程度地限制了模型從海量的⽆標註資料中提取資訊的能⼒。在學術界中,從⾃然語⾔處理(NLP)到計算機視覺(CV)的領域,為了充分地利⽤海量的語料和圖⽚中所蘊含的資訊,基於神經⽹絡的預訓練模型從2003年的NNLM提出的word embedding的概念開始,就迎來了能夠取得良好效果的預訓練框架,包括2019年的BERT,2021年的MAE等。這些都是在學術界極具影響⼒的模型。

⽽在圖神經⽹絡⽅⾯,最早期的⽅法主要是基於路徑重構的⽅法,包括Node2Vec,Methpath2Vec等⼀類⾃監督模型。⽽後誕⽣了⼀些基於AutoEncoder和對⽐學習(CL)的⽅法。這些都為圖⽹絡預訓練提供了更多的技術選擇。

在⼯業場景下,預訓練模型同樣有著許多的優勢和應⽤。

2. 預訓練⽬標

預訓練的⽬標主要有以下三點:

①打通資料孤島 ,充分利⽤全域資訊有效幫助下游任務。

整合不同任務資訊到同⼀通⽤表徵空間, 減少過擬合⻛險

為新⽤戶/新場景/⻓尾情景帶來豐富資訊, 解決稀疏標註樣本的問題

以上圖⽚展示了預訓練模型通⽤的模式:在獲取到海量的全域資料後,通過⾃監督學習的⽅式去提取user 和item等多種實體的表徵;同時,利⽤跨域的輔助樣本對模型引數進⾏預訓練;最後通過⽬標域樣本對模型進⾏Fine-tuning的操作得到⽬標模型,達到提升⽬標任務的⽬的。

3. 預訓練核⼼問題

在選擇預訓練模型的過程中,需要考慮以下的三個核⼼問題: 

①如何利⽤全域資料⾃監督學習?

諸如⽣成模型,對⽐模型,對抗模型都是⼗分出⾊的技術,如何選擇合適的模型進⾏學習是值得思考的問題。

②如何找到最契合⽬標任務的⽹絡結構?

從針對⾃然語⾔處理任務的BERT模型,到針對社交⽹絡、⾏為⽹絡的GNN及其變體,當擁有具體的業務需求之後,應當根據具體任務去選擇最契合的⽹絡結構。

③如何找到通⽤的遷移泛化結構?

考慮到⼯業中需求,將預訓練模型中的引數泛化到通⽤模型中,也有著如Meta learning,Contrative learning等⽅法。

02

推薦系統場景中的預訓練模型

1. 推薦場景中的預訓練模型分類

在推薦場景中的預訓練模型分類中,根據資料的組織形式及跨域資訊遷移⽅式可以分為很多⼦類別。

在基於資料的組織形式分類中,可以根據⾏為序列及⾏為⽹絡進⾏進⼀步的劃分。根據跨域資訊遷移⽅式進⾏分類,則可以根據元學習與多⽬標學習分為兩⼤類別。

2. 圖神經⽹絡在推薦場景的優勢

為什麼我們選擇在推薦場景中運⽤圖神經⽹絡的⽅式?源於圖神經⽹絡在其中有著⾮常明顯的優勢:

①契合資料:圖⽹絡結構是推薦系統資料的天然組織形式社交⽹絡

  • ⾏為⽹絡

  • 知識圖譜

②資訊豐富:結合圖論知識,提取⾼階關係資訊

  • PPR-based sampling

  • k-Clique/Centrality measures

③包羅永珍:相容傳統深度神經⽹絡結構,融合節點特徵表達

3. 團隊演算法演進⽅向:技術與業務相輔相成

從2016-2019年,團隊⼀直著⼒研究⼴告召回的業務,其中2016-2018注重於⾃監督模型的構建與落地;⾃2018 年起,團隊跟進了在學界與業界中⽐較成功的圖神經⽹絡技術模型。從2019年下半年開始,團隊深度參與到視訊         號,直播號的召回,及訂閱號召回與⼴告特徵提取的業務中,在直接加⼊到推薦系統場景的背景下,團隊在GNN     模型上有著出⾊的改進與落地。再往後的發展中,團隊更多關注⼤規模圖神經⽹絡預訓練的技術發展上,並且希望能夠為更多業務提供應⽤。  

03

預訓練模型的服務模式

預訓練模型主要的服務模式分為三種:

①特徵 :為下游模型補充特徵,通過預訓練模型提取多域資訊,豐富⽤戶特徵表達。

②召回 :直接將預訓練所產⽣的user和item的embeddings通過計算的⽅式來進⾏召回。召回過程中可以適配多種業務形態和⽬標,融合域外資訊啟用新⽤戶/場景。

③⼦模型 :將預訓練模型作為⼦模型的結構,直接加⼊下游模型,保留預訓練模型的模型引數和對特徵的抽象能⼒。

1. 預訓練結果作為下游模型特徵

⽅案⼀:離散/連續特徵分別建模,最終層concat。

⽅案⼆:把embedding特徵轉換為⼀個離散特徵,與其他離散特徵交叉。

⽅案三:根據embedding產出topK的ID list作為離散特徵。

2. 預訓練結果作為召回

①形式⼀:興趣召回

在獲取users與items的embeddings後,直接計算兩套embeddings的相似度進⾏興趣召回。

②形式⼆:跨域興趣召回

在特定場景中,⽬標⽤戶在⼴告域的⾏為⾮常少,但該⽤戶會實時地點進公眾號,從⽽產⽣與公眾號界⾯的互動 ⾏為,這體現了⽤戶對公眾號的實時興趣。因此我們可以通過公眾號的embeddings與⼴告的embeddings做⼀個 SimSvr近鄰查詢,將與其互動過⼴告召回給⽤戶。

③形式三:作者冷啟動召回

在⼀些成熟的推薦系統中,新加⼊的作者釋出的作品⽐較難以被⽤戶發現,⽐如在視訊號⾥⾯,已經存在⼀批頭部的視訊號作者,相⽐較之下,冷啟動的作者作品就⽐較難被⼈看到,這會⼀定程度損傷這些作者的創作積極  性。⽽在作者冷啟動召回的做法當中,基於作者的創作與消費的作品具有相似性的原則,當⽬標⽤戶進⼊系統中後,我們會根據⽤戶與冷啟動作者的消費興趣計算出作者的embeddings,從⽽查找出與該⽤戶具有相似消費興趣的同好作者,當這類作者有發表作品的⾏為後,則會將其作品召回給⽬標⽤戶。

04

圖神經⽹絡預訓練案例分享

1. 案例⼀:跨域興趣召回GNN

在微信直播業務起步階段,每天會有⼤量的新⽤戶通過微信發現⻚的紅點進⼊到直播推薦⻚⾯,但是這些⽤戶中,有觀看或點選主播⾏為的佔⽐⾮常少。然⽽我們觀察到,這些⽤戶在其他域⾥⾯是有⾮常豐富的興趣⾏為,⽐如他可能看過⾮常多的公眾號的⽂章或有看過⾮常多的短視訊。同時,在微信中,我們也注意到⽤戶好友和好友之間是具有社交同質性的,在社交關係中,蘊藏著⽤戶和⽤戶之間的相似興趣。基於以上的觀察,我們就提出了想要通過GNN去實現跨越興趣和社交資訊的建模,來為新⽤戶做補充召回。

抱著這樣的⽬的,我們起始的模型設計如下圖,紅⾊虛線框⾥是我們底圖,該底圖包括的節點有⽤戶直播間和⽤戶或items的屬性,其邊資訊包括⽤戶對直播間的觀看⾏為或好友關係等。

基於該底圖,我們對於每⼀個節點就可以進⾏圖卷積的操作來提取其特徵,這⾥設計了多個Metapath來做進⾏多路圖卷積。

此處設計的Metapath,我們為⽤戶和items分別設計了三路的Metapath。

⽤戶側有基於⽤戶⾃身對於直播間的觀看⾏為的Metapath,⽤戶看過的直播間特徵可以聚合到⽤戶上。另外,有基於社交關係的協同資訊提取,⽐如⽤戶的好友觀看的items,我們可以把這些items的資訊聚合到該⽤戶上。還有基於靜態屬性的協同,跟⽤戶具備相同屬性的其他⽤戶特徵,也可以聚合到⽤戶上,如年齡、性別等基礎屬性。  

在items側也是類似的,我們提出了三路的卷積路徑設計。⾸先第⼀路是直接把⽐較相似的items資訊直接進⾏傳播,聚合到⽬標的items上。或通過⽤戶⾏為來進⾏協同過濾,即看過當前⽬標item的⽤戶還看過哪些其他直播間,這些直播間的資訊也可以通過這⼀路卷積到當前⽬標item上。第三路同樣是通過靜態屬性的協同,即具備相同的屬性,⽐如直播間的類⽬相同,如皆為購物的直播間,直播間兩兩之間的資訊則能夠通過靜態屬性進 ⾏擴散。

具備多路圖卷積後,每⼀路會產⽣出來⼀個embedding,把embeddings進⾏pooling之後送⼊dense層,則會產 ⽣出對應的us er或item的embeddings。 此處的user和item的embedding則會計算相似度,與⽤戶在直播領域的 ⾏為作⽐對,最終計算 出⼀個U-I loss,也叫recommend loss。 在打分階段,我們會直接把產⽣的⽤戶和items的embeddings作為⼀個embedding的輸出,去提供給下游的業務使⽤。

但在這個模型設計⾥,其實並沒有使⽤到⽤戶的域外⾏為。基於這樣的考慮,我們會把side-item加⼊到底圖的構造中,直接通過 item到⽤戶的⾏為,將item的資訊卷積到當前的⽤戶身上,增加⼀路圖卷積的embeddings。

但在這個模型設計中,訓練的樣本⼤部分是在直播間已經是⽐較活躍的⽤戶,這會導致整個模型過度擬合⽬標域,對新⽤戶並不友好。

因此,我們提出了以下優化⽅向。

思路: 通過其他⾏為來對⽤戶和items的embeddings進⾏監督,如果兩個⽤戶在域外的⾏為是⾮常接近,那麼我們認為這兩個⽤戶的embeddings是⾮常接近的,同理對於items來說也如此。

⽅案: 我們把連線了⾜夠多共同Side-item或共同屬性的⽤戶節點,直接構造出鄰接矩陣,構造重構loss。這種⽅         式把⽤戶在其他域的⾏為作為監督資訊加⼊到整個模型的訓練當中,使得模型不再僅僅是擬合⽬標域的⾏為,從 ⽽可以解決過度擬合⽬標域⾏為的問題。

在重構的loss的權重分配中,借鑑了多⽬標模型的思想,為每⼀個重構loss都賦予了可以學習的權重進⾏⾃動調節。

優勢 :使得新⽤戶也可以通過其他域的⾏為收到監督資訊,使得其user embeddings提取的資訊更加⾃信。也在新⽤戶召回中取得了顯著收益。

2. 案例⼆:多⽬標GNN特徵提取

在訂閱號資訊流的⼴告推薦的模型中進⾏特徵補充,在⼴告的⽬標域⾥⾯,⼴告的樣本⾮常稀疏,⼤量的⽤戶缺少⼴告點選和⼴告轉化⾏為,但是這些⽤戶的閱讀⾏為⾮常豐富。

基於這⼀產品形態,我們希望⼴告卡⽚和訂閱號⽂章的內容是緊密關聯的。因此我們提出GNN提取⽤戶在訂閱號的⾏為作為特徵,來補充到⼴告的精排模型⾥,為⼴告的精排模型提供額外的資訊。

基礎的模型設計如下。

在底圖上,我們構造了⼴告和公眾號共同存在的異構⽹絡,節點就包括了⽤戶⼴告和公眾號的⽂章,⽽邊則是⽤戶的⼴告點選和⼴告轉化的⾏為,以及⽤戶之間的好友關係。

該模型的卷積路徑設計,在user側有三路不同的Metapath,分別是⽤戶在⼴告域的⾏為,其點選或者轉化過的⼴告的資訊聚合到⽤戶上,其好友的資訊亦然。公眾號跨域的資訊,也可以把⽤戶在公眾號域的消費的 ⽂章對應的資訊聚合到⽤戶上。

⽽在⼴告側的items,有著兩路的卷積設計,⼀個是⼴告可以通過其相似的⼴告來做聚合。⼆是通過⽤戶⾏為來做協同,可以把其他⼴告的資訊聚合到當前的⼴告上⾯。

當擁有圖卷積產⽣出來的embeddings之後,將embeddings concat起來進⼊⼀個dense層,再分別為user和item 建模了user embeddings和item embeddings,並通過相似度計算和⽤戶在⼴告域的⾏為進⾏⽐對,計算出ui loss,構成了最簡單的模型設計。

但在模型設計中,存在著以下問題:

①⼴告的⾏為⾮常稀疏 ,⼤部分⽤戶並沒有⼴告⾏為,則⽆法進⼊樣本參與訓練。

②⼴告投放具備季節性和週期性 。⽤戶在特定時間可能選擇到的⼴告,並不代表⽤戶他在其他時間段仍然會對 這類內容感興趣。

基於以上觀察,我們做了這樣的 優化:

將公眾號的跨域樣本給補充到模型當中,進⾏同步的訓練,使得公眾號域和⼴告域的特徵提取模組,在item側各 ⾃提取特徵⽽在user側 共享底層的embe ddings和卷積引數,從⽽使得⽤戶底層的embeddings和卷積的引數可以通過豐富的公眾號域的 樣本去進⾏提取和優化。

但同時也存在著新的問題:⽤戶特徵的分佈差異⾮常⼤,⽤戶在⼴告域⾏為⾮常稀疏,⽽⽤戶在公眾號域⾏為則是⾮常稠密,提取出的分佈差異⽐較⼤。在這樣的情況下,共享⼀個底層的卷積引數,可能會導致稀疏域的特徵的提取能⼒受限。

基於這樣的分析,我們提出了進⼀步優化, 這⾥的優化主要分為兩點:

在卷積層⾯,將⽤戶的特徵拆分出來,將提取出來的特徵送進兩個dense層,從⽽產⽣出⽤戶的兩個share embeddings。除此之外,把⽤戶在各個域的對應⾏為單獨拎出來做⼀路卷積,產⽣出⽤戶在當前域的private embedding。從⽽可以強化兩個域對於⽤戶的特徵的提取。

把兩邊User的share embedding通過MMD loss進⾏平滑,使得兩邊的embeddings的分佈⽐較⼀致。

這個模式的設計幫助⼴告推薦取得了離線和線上效果的提升。

今天的分享就到這裡,謝謝大家。

在文末分享、點贊、在看,給個3連擊唄~

01 / 分享嘉賓

宋重鋼 博士

騰訊  高階研究員

博士畢業於新加坡國立大學,2017年入職騰訊,主要負責社交網路分析與社交推薦方面的業務,重點支援的專案包括朋友圈廣告、微信視訊號與直播等等。目前主要的工作中心在於建立通用的圖資料預訓練平臺,為下游業務提供可信任的圖資料嵌入表達。

02 / 專題電子書 限時免費送

03 / 報名看直播 免費領PPT

04 / 關於我們

DataFun: 專注於大資料、人工智慧技術應用的分享與交流。發起於2017年,在北京、上海、深圳、杭州等城市舉辦超過100+線下和100+線上沙龍、論壇及峰會,已邀請超過2000位專家和學者參與分享。其公眾號 DataFunTalk 累計生產原創文章800+,百萬+閱讀,14萬+精準粉絲

  分享、點贊、在看 ,給個 3連擊 :point_down: