應用於推薦系統的GNNs技術及其實際應用
一、GNNs 推薦系統的底層算力演化
近 20 年來,計算形態在不斷的演化。 2010 年之前,雲端運算特別火,其他的運算形態比較微弱。隨著硬體算力突飛猛進的發展,以及端側晶片的引進,邊緣運算也變得特別重要。目前的兩大運算形態塑造了 AI 往兩個兩極化的方向發展,一方面在雲端運算的架構下,我們可以利用超大規模叢集能力訓練大規模的AI模型,例如 Foundation Model 或一些生成模型。另一方面,隨著邊緣運算的發展,我們也可以將 AI 模型部署到端側,做更輕量化的服務,例如在端側做各種各樣的辨識任務。同時,隨著元宇宙的發展,許多模型的計算都會放到端側。所以這兩種計算形態,其核心想調和的問題就是計算與傳輸的均衡,隨之而來的是人工智慧的兩極化發展。
二、端側GNNs 推薦系統的個人化
##這兩種計算形態為GNNs 推薦系統帶來了哪些機會?
端雲的視角可以類比為全域圖與本地化子圖的一個視角。在GNNs的推薦系統中,全域化子圖是由許多節點層級的子圖不斷匯聚而成的一個全域化子圖。它的優點在於資料完備,能夠提供比較全面的節點之間的關係。這種歸納偏置可能更加普適,總結了各種節點的規律並提取了歸納偏置,因此具有強大的泛化能力。而本地化子圖則不一定特別完備,但其優勢在於能夠精確地描述個人在該子圖上的行為演化,並提供個人化的節點關係建立。因此,端和雲端的關係就有點像是全域化子圖和在地化子圖。雲端運算可以提供強大的中心化算力來提供服務,而端則可以提供一些資料個人化的服務
我們可以結合全域圖和本地化子圖的優勢來更好地提升模型的效能,今年發表在WSDM2022 的一篇研究對此做了探索。它提出了一個 Ada-GNN(Adapting to Local Patterns for improving Graph Neural Networks)模型,對於全局圖有一個整圖的建模,同時也會以 subgraph 構建一些 local model 來做一些 adaptation。這樣的 adaptation 本質是讓全域模型和 local model 組合起來的模型更精細地去感知局部圖的規律,提升個人化學習表現。
現在我們透過一個具體的例子來闡述為什麼要關注子圖。在電商推薦系統中,有一個數位愛好者群體,能夠刻畫出這種數位產品,例如手機、Pad、相機和手機週邊產品的關聯關係。他一旦點擊了其中的一台相機,就會誘導出歸納偏置。群體貢獻圖誘導出來的一個歸納偏移圖可能促進我們去推薦這種手機,但是如果我們回歸到個體視角,如果他是一個攝影愛好者,特別關注聚焦於攝影類產品,這樣有時候就會產生下圖所示的悖論。群體貢獻圖誘導的歸納偏壓是不是對這樣的某些群體過強,尤其是這種尾部群體,這就是我們常說的馬太效應。
#
總的來說,現有的兩極化計算形態可以重新塑造我們對GNNs推薦系統的建模。傳統的推薦系統從候選池中召回商品或物品,並透過GNNs建模來感知它們之間的關係,然後對使用者進行排序推薦。然而,由於邊緣運算的支持,我們可以在端側部署個人化模型,透過對子圖進行學習,以感知更細粒度的個人化。當然,這種新的端雲協同的推薦系統架構有一個假設,即端設備的算力和功耗是可行的。但實際情況是,小型模型的算力開銷並不大,如果將其壓縮到一兩兆,並將計算開銷放在現有的智慧型手機上,實際上並不一定比一個遊戲APP消耗的算力和電能大。因此,隨著邊緣運算的進一步發展和端設備效能的提升,為在端側進行更多的GNNs建模提供了更大的可能性
##如果我們想把GNNs 模型放到端上,那麼必然要考慮端側算力和儲存能力。前面我們也提到了模型壓縮,要想 GNNs 模型在端側做得更有效,把一個相對比較大的 GNNs 模型放上去,一定要做模型壓縮。模型壓縮的傳統方法剪枝、量化都可以用到現有的 GNNs 模型上,但它們在推薦系統裡面都會導致效能損失。在這種場景下,我們不可能為了搭建一個端側模型而去犧牲效能,所以剪枝和量化雖然有用,但是作用有限。
另一個有用的模型壓縮方法是蒸餾。雖然可能只能降低數倍,但成本也差不多。最近在KDD上發表的一項研究是關於GNNs的蒸餾。在GNNs中,圖形化資料建模的蒸餾面臨一個挑戰,即在logit空間中很容易定義距離度量,但在潛在特徵空間中,尤其是teacher GNNs和student GNNs之間的逐層距離度量。對此,這項在KDD上的研究提供了一個解決方案,透過對抗生成的方式學習一個測量來實現可學習的設計
在GNNs推薦系統中,除了之前提到的模型壓縮技術,拆分部署是一項特定且非常有用的技術。它與GNNs推薦系統的模型架構密切相關,因為GNNs底層是商品的Item Embedding,並且經過幾層MLP的非線性變換後,才會使用GNNs的聚合策略
#一旦一個模型訓練好,就有一個天然的優勢。基礎層的部分都是共享的,只有GNNs層可以做一些個人化。這裡的個人化,我們可以將模型拆分為兩個部分,將模型的公共部分放到雲端,因為算力充足,個人化的部分則可以在終端機進行部署。這樣,我們在終端只需要儲存中間核心的GNN。在實際的推薦系統中,這種做法能夠大幅節省整個模型的儲存開銷。我們在阿里的場景下進行了實踐,拆分部署之後的模型可能達到KB級別,然後透過進一步簡單的位元量化模型,可以使模型變得特別小,放到終端幾乎沒有特別大的開銷。當然,這是基於經驗的拆分方法。華為最近在KDD上發表的一項工作是自動分割模型,它能夠感知終端設備的效能,並自動對這種模型進行拆分。當然,如果應用到GNNs上,可能還需要進行一些重塑
#在一些嚴重的分散轉移場景中部署模型時,我們的預訓練模型在部署到端側之前已經相對陳舊了。這是因為實際中的圖資料回流到雲端進行訓練的頻率相對較慢,有時可能需要一週的時間間隔
這裡的主要瓶頸是資源限制,雖然在研究上面不一定會遇到這種瓶頸,但在實際中會遇到端側模型老舊的問題。隨著領域的改變,資料的改變,模型不再適用,效能就會下降。這時候就需要 GNNs 模型的線上個人化,但在端上做個人化,會面對端側算力和儲存開銷的挑戰。
還有一個挑戰就是資料稀疏,因為端資料只有個體節點,所以其資料稀疏性也是一個很大的挑戰。最近的研究有一個比較有效率的做法,就是 Parameter-Efficient Transfer,在層之間打一些模型的補丁,可以類比殘差網絡,只是學習的時候學習一下補丁。透過一個 flag 機制,使用時開啟,不用即關掉,關掉就可以退化到原始的基礎模型,既安全又有效率。
這是一個比較實際且高效的做法,發表在 KDD2021 上面,能夠實現 GNNs 模型的線上個人化。最重要的是我們從這樣的一個實踐中去發現,透過感知這種本地模型的子圖訊息,確實能夠使整體性能有一個穩定的提升。同時也緩解了馬太效應。
在推薦系統中,尾部使用者在圖資料上仍面臨馬太效應的問題。然而,如果我們採用分而治之的建模方法,將子圖進行個人化處理,就能夠改善稀疏行為使用者的推薦體驗。尤其是對於尾部人群來說,效能的提升將更加顯著
#三、端雲協同GNNs 推薦系統的實作
在GNNs 推薦系統裡,一種是雲端服務的GNNs 模型,還有一種端側的GNNs 的小模型。 GNNs 推薦系統服務的實現形式有三種,第一種是 session recommendation,它是推薦系統中常見的為了節省開銷的批量會話推薦,即一次進行批量的推薦,要求用戶瀏覽很多商品才會重新觸發推薦。第二種是極端的情況下一次只推薦一個。第三種是我們提到這種端側的個人化模型。這三種推薦系統方法各有優勢,當使用者興趣變化很緩慢的時候,我們只需要雲側感知得很準,所以雲側模型做 session recommendation 就足夠了。當使用者興趣變化更加多元時,做端側的子圖的個人化推薦可以相對提升推薦效能。
在使用者行為突然變得非常稀疏的情況下,推薦更加依賴常識推理。為了協調這三種推薦行為,可以建立元協調器- Meta Controller,來協調GNNs推薦系統
建構三路共存的端雲協同的推薦系統一個挑戰就是資料集的構建,因為我們也不知道怎麼管理這幾個模型,怎麼做決策。所以這裡只是透過一種反事實推理的機制,雖然我們沒有這種資料集,但是我們有單路的資料集,透過評估建構一些代理模型去評估它們的因果效應。如果因果效應比較大,那麼做這樣的一個決策的收益就比較大,可以建構偽標籤,也就是反事實資料集。具體步驟如下:
單路有三個模型D0、D1、D2,透過學習一個代理人的因果模型,估計它們的因果效應去建立一個決策標籤,建構一個反事實資料集去訓練元協調器。最終我們可以證明這個元協調器相對於單路的各個模型都有一個性能的穩定提升。相對於隨機試探的方式具有顯著的優勢。我們可以透過這種方式來建構端雲協同的推薦系統。
四、端側 GNNs 推薦系統安全性問題
最後,我們來討論一下端側GNNs推薦系統的安全性問題。一旦端雲協同的GNNs推薦系統開放使用,就必然面臨開放環境下的問題。因為要對模型進行個人化學習,就會存在一些攻擊的風險,例如逃逸攻擊、投毒攻擊、後門攻擊等,最終可能導致推薦系統面臨巨大的安全風險
底層算力驅動了當前端雲協同GNNs 推薦系統的方向,但還處於發展的初期,並存在一些潛在的問題,例如安全問題,同時在個性化的模型構建模領域也依然存在很大的提升空間。
五、問答環節
Q1:在端上做圖模型,子圖的下發流量會不會太大?
A1:子圖不是下發的,它其實是匯聚式的。第一點,子圖下發是伴隨式的。例如我們要做推薦商品的時候,它天然會攜帶商品的屬性資訊。這裡伴隨式的下發是跟屬性同等級的開銷,其實開銷不是很大。因為它不是把整個大圖都下發下來,只是一些鄰居子圖,至多二階的鄰居子圖還是非常小的。第二點,端上一部分子圖還是依賴於用戶行為的回饋做一些 co-occurrence 共點擊自動構建的,所以它是一個雙端匯聚的形式,總體開銷不是特別大。
以上是應用於推薦系統的GNNs技術及其實際應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用Go語言和Redis實現推薦系統推薦系統是現代網路平台中重要的一環,它幫助使用者發現和獲取感興趣的資訊。而Go語言和Redis是兩個非常流行的工具,它們在實現推薦系統的過程中能夠發揮重要作用。本文將介紹如何使用Go語言和Redis來實作一個簡單的推薦系統,並提供具體的程式碼範例。 Redis是一個開源的記憶體資料庫,它提供了鍵值對的儲存接口,並支援多種數據

隨著網路應用的普及,微服務架構成為目前較受歡迎的架構方式。其中,微服務架構的關鍵在於將應用程式拆分為不同的服務,透過RPC方式進行通信,實現鬆散耦合的服務架構。在本文中,我們將結合實際案例,介紹如何使用go-micro建構一個微服務推薦系統。一、什麼是微服務推薦系統微服務推薦系統是一種基於微服務架構的推薦系統,它將推薦系統中的不同模組(如特徵工程、分類

隨著網路技術的不斷發展和普及,推薦系統作為一種重要的資訊過濾技術,越來越受到廣泛的應用和關注。在實作推薦系統演算法方面,Java作為一種快速、可靠的程式語言,已被廣泛應用。本文將介紹利用Java實現的推薦系統演算法和應用,並著重介紹三種常見的推薦系統演算法:基於使用者的協同過濾演算法、基於物品的協同過濾演算法和基於內容的推薦演算法。基於用戶的協同過濾演算法是基於用戶的協同過

一、場景介紹首先來介紹本文涉及的場景—「有好貨」場景。它的位置是在淘寶首頁的四宮格,分為一跳精選頁和二跳承接頁。承接頁主要有兩種形式,一種是圖文的承接頁,另一種是短視頻的承接頁。這個場景的目標主要是為使用者提供滿意的好貨,帶動GMV的成長,從而進一步撬動達人的供給。二、流行度偏差是什麼,為什麼接下來進入本文的重點,流行度偏差。流行度偏差是什麼?為什麼會產生流行度偏差? 1.流行度偏差是什麼流行度偏差有很多別名,例如馬太效應、資訊繭房,直觀來講它是高爆品的狂歡,越熱門的商品,越容易曝光。這會導致

隨著雲端運算技術的不斷發展和普及,雲端搜尋和推薦系統也越來越得到了人們的青睞。而針對這項需求,Go語言也提供了很好的解決方案。在Go語言中,我們可以利用其高速的並發處理能力和豐富的標準庫來實現一個高效的雲端搜尋和推薦系統。以下將介紹Go語言如何實現這樣的系統。一、雲上搜尋首先,我們需要對搜尋的姿勢和原理進行了解。搜尋姿勢指的是搜尋引擎根據使用者輸入的關鍵字來配對頁面

一、问题背景:冷启动建模的必要性和重要性作为一个内容平台,云音乐每天都会有大量的新内容上线。虽然相较于短视频等其他平台,云音乐平台的新内容数量相对较少,但实际数量可能远远超出大家的想象。同时,音乐内容与短视频、新闻、商品推荐又有着显著的不同。音乐的生命周期跨度极长,通常会以年为单位。有些歌曲可能在沉寂几个月、几年之后爆发,经典歌曲甚至可能经过十几年仍然有着极强的生命力。因此,对于音乐平台的推荐系统来说,发掘冷门、长尾的优质内容,并把它们推荐给合适的用户,相比其他类目的推荐显得更加重要冷门、长尾的

一、因果糾偏的背景1、偏差的產生在推薦系統中,透過收集資料來訓練推薦模型,以向使用者推薦合適的物品。當使用者與推薦的物品互動時,收集的資料又會用於進一步訓練模型,形成一個閉環循環。然而,這個閉環中可能存在各種影響因素,導致誤差的產生。主要的誤差原因在於訓練模式所使用的數據大多是觀測數據,而非理想的訓練數據,受到曝光策略和使用者選擇等因素的影響。這種偏差的本質在於經驗風險估計的期望和真實理想風險估計的期望之間的差異。 2.常見的偏差推薦行銷系統裡面比較常見的偏差主要有以下三種:選擇性偏差:是由於使用者根

隨著網路的快速發展,推薦系統變得越來越重要。推薦系統是一種用於預測使用者感興趣的物品的演算法。在網路應用程式中,推薦系統可以提供個人化建議和推薦,從而提高用戶滿意度和轉換率。 PHP是一種被廣泛應用於Web開發的程式語言。本文將探討PHP中的建議系統與協同過濾技術。推薦系統的原理推薦系統依賴機器學習演算法和資料分析,它透過對使用者歷史行為進行分析,預測
