華為在聯邦廣告演算法上的探索及應用

語言: CN / TW / HK

分享嘉賓 劉璐 華為 聯邦學習專家 

編輯整理: 吳葉國 微言科技

出品平臺:DataFunTalk

導讀: 華為聯邦學習專家劉璐老師(牛油果)為大家分享聯邦學習在廣告行業的應用。

分享將會圍繞下面六點展開:

  • 廣告業務背景介紹

  • 不同視角下的轉化流程

  • 廣告鏈路中的演算法技術

  • 縱向聯邦學習如何服務廣告場景

  • 橫向聯邦學習如何服務廣告場景

  • 聯邦學習中的攻防技術

01

廣告業務背景介紹

在廣告業務當中主要有三大主體,首先是廣告主,然後是廣告平臺,最後是使用者。

廣告主在廣告平臺上投放廣告任務,廣告平臺通過背後的大資料以及深度模型深度網路去進行演算法推薦,將合適的廣告推送給合適的使用者,使用者看了廣告之後會發生轉化,最終為廣告主帶來商業價值。一句話來說就是給某個人在某個時間某個地方去看某個素材,用以宣傳某個東西,最終達到某種效果。

1. 廣告形式

華為Ads支援多種廣告形式,比如Banner廣告、原生廣告,激勵視訊廣告、插屏廣告以及開屏廣告。同一個廣告形式可以在不同的媒體上面進行展示,同一個媒體也支援各種廣告形式的播放。

2. 媒體資源

華為Ads有優質的流量資源,包括自有媒體和三方媒體。自有媒體包括華為視訊、瀏覽器、雲空間、華為閱讀等。第三方媒體有豐富的遊戲類媒體,視訊類媒體,以及資訊類媒體。之前曾有資料表明,華為的優質使用者已經高達7.4億,現在應該又有增長。

3. 轉化跟蹤

轉化跟蹤是將廣告主所關心的轉化行為,通過API、SDK等方式上報給廣告平臺。

目前國內的廣告行業慣用方式是API。平臺已經支援 APP、H5、快應用等場景。SDK主要是在海外廣告行業使用的跟蹤方式,還有一種跟蹤方式來自於HMS Core。HMS Core是華為的獨特能力,目前華為平臺已經支援統計啟用和次留場景。通過轉化跟蹤,將廣告主的轉化資料上報給廣告平臺。

4. 為什麼要轉化跟蹤

我們為什麼要用轉化跟蹤技術?因為平臺和廣告主的資料存在天然的割裂。舉例來說,平臺只知道有幾個任務產生了100個安裝,但是究竟有多少真正付費了,平臺是不知道的;而廣告主恰恰知道今天收集到了50個付費,但分別是哪個任務帶來的,廣告主也是不知道的。

藉助轉化跟蹤,可以將廣告主的轉化事件,比如說啟用、付費以及其他轉化行為,跟廣告平臺側的投放任務關聯,為投放效果分析和oCPC模型做資料支撐。

5. 轉化跟蹤潛在問題

  • 轉化跟蹤也存在一些潛在的問題,比如:

  • 如果使用者的OAID無法收集,怎麼預估轉化概率?

  • 廣告主願不願意回傳後端的轉化事件。

  • 廣告隱私政策日益趨嚴情況下,現在的跟蹤方式合不合法。

  • 資料回傳的正確性能否得到保證。

02

不同視角下的轉化流程

在瞭解了廣告形式、媒體資源以及轉化跟蹤技術之後,我們來看一下不同視角的轉化流程是怎樣的。

1. 使用者視角:以APP廣告為例

在使用者視角下,以APP廣告為例。在使用者看來是以下4個簡單的頁面,首先使用者會看到廣告,當用戶對該廣告感興趣時,會點選廣告跳轉到下載頁,進行APP的下載,然後首次開啟,統計安裝和啟用量。

2. 客戶端視角

客戶端視角就不是4個頁面這麼簡單了。首先客戶端會收到使用者請求,收到這個請求之後,客戶端將請求傳送到伺服器,伺服器收到請求之後會發生廣告競價,在競價任務事件發生之後,最終競價成功的廣告展示給使用者。使用者看到廣告之後,客戶端會記錄廣告是否展示,展示之後客戶端會記錄廣告是否點選。如果廣告被點選,客戶端需要判斷是否開始下載,以及下載是否完成。下載完成之後,這個APP有沒有安裝,安裝是否完成,最終是否發生了啟用,每一個動作在客戶端來看,都需要進行一個埋點、採集、記錄。

3. 伺服器視角

在伺服器視角下,伺服器需要與客戶端進行配合。 伺服器收到響應之後,將進行一系列的請求的監控,包括收到曝光事件、點選事件、下載開始事件、下載完成事件、安裝開始事件、安裝完成事件以及啟用事件等,都需要伺服器進行採集記錄。 啟用完成之後,整個轉化流程就結束了。

03

廣告鏈路中的演算法技術

下面我們介紹一個完整廣告鏈路中的演算法技術。

首先,使用者會點選網站、APP、視訊等媒體,產生一個網路請求;媒體收到網路請求後,會將請求轉發給負責整合流量的SSP供應方;SSP將請求資訊交給ADX,ADX就是廣告交易中心;ADX通知所有負責廣告主的DSP進行出價;因為廣告主會在DSP當中投放廣告,並且投放任務當中會設定廣告出價,各個DSP在收到請求之後,會選擇一個出價最高的廣告主,並且以出價第二高的價格加0.1元進行計算,然後出價最高的廣告會原路返回給使用者,並展示給使用者。到此為止,一個廣告的交易流程就基本結束了。

整個過程經歷了很多個伺服器,比如說SSP、ADX、DSP,然後是媒體,再到使用者,這個過程是非常複雜的,但是整個流程一般會控制在100毫秒左右。其中涉及的所有資料都會儲存在DMP當中,DMP是把分散的各方資料整合到一個統一的技術平臺中,對使用者進行標準化和細分後,進行營銷環境的使用。

對廣告而言,大致經歷了檢索、召回、特徵抽取,模型預估,最後展示給使用者。其中有兩個最重要的模型,一個是 點選率預估模型 ,一個是 轉化率預估模型

DSP進行競價時最重要的公式就是ECPM公式,其等於廣告主的出價price乘以pctr乘以pcvr再乘以1000,最終ECPM高者競價成功,最後展示給使用者。

其中,pctr是點選率預估模型預估出來的概率,pcvr是轉化率預估模型預估出來的概率。

在點選率預估模型中主要用到的資料是廣告的曝光資料和點選資料,這兩種資料在廣告平臺側都是具備的。

有了這個資料之後,經過資料預處理、特徵工程、模型訓練以及評價指標AUC,最終釋出上線。

所使用的特徵大概有以下幾類:使用者特徵、廣告特徵、上下文特徵、High Level特徵(泛化能力比較強)和Low Level特徵(自解釋能力比較強) 。使用以上的特徵再加上標籤資料(是否點選),實現模型的訓練和推理。

轉化率預估模型是大家所說的金牌模型 ,用到的資料主要是更後端的資料,因為使用者發生的轉化行為是廣告鏈路中比較深的一個鏈路,用到的是點選資料和轉化資料,其中轉化資料包括下載、啟用、註冊、付費等行為。

在廣告行業背景介紹中,我們介紹了轉化資料是怎麼來的,是依據現有的轉化跟蹤技術,通過廣告主或者媒體嵌入廣告投放平臺的SDK或者API介面,實現將後端的資料給到平臺,以此實現任務和標籤的關聯。

如果轉化跟蹤技術出現了問題,或者轉化跟蹤突然不能用了,轉化率預估模型是沒辦法完成訓練的,因為後端的資料廣告主沒有給到平臺。在此場景下,我們就需要使用縱向聯邦學習來解決這個問題。

04

縱向聯邦學習如何服務廣告場景

接下來我們看一下,縱向聯邦學習是怎麼服務於廣告場景的。

上圖畫的是縱向聯邦學習在廣告中的架構圖。 縱向聯邦學習天然可以解決標籤缺失問題,除了這個問題之外,還可以解決是轉化率預估這種稀疏場景下的特徵不足,特徵維度有限的問題。如果廣告主系統和DSP系統進行聯邦學習,它不僅能夠解決標籤問題,同時能夠幫助模型增加特徵維度,更好地提高模型的準確度。

在廣告主和DSP進行離線聯邦訓練服務中,必然要用到 特徵和標籤 。廣告平臺側(DSP)可以利用使用者特徵、廣告特徵、上下文特徵以及High Level特徵和Low Level特徵;廣告主除了可以提供後端轉化資料之外,還可以提供端內行為資料、歷史興趣標籤以及短期行為標籤,來完成模型的訓練。

不同於已有的廣告鏈路, 整個請求響應都是在廣告平臺側發生 。如果使用了縱向聯邦學習,在離線訓練階段請求就必然要經歷廣告主系統,同樣在線推理也必然要經歷廣告主系統,所以它的請求鏈路發生了改變。

縱向聯盟學習我們主要是依託於TICS服務完成,TICS全稱是可信智慧計算服務,產品架構圖如上圖所示 TICS基於多方安全計算以及區塊鏈等技術,實現了資料在儲存、流通和計算過程中端到端的安全和可審計。 它主要提供如下一些功能,如聯盟管理、資料融合分析、計算節點、聯邦分析計算、資料使用監管和容器化部署。

使用這個服務的前提是,所有參與方要在一個聯盟鏈中,也就是說在同一個聯盟的使用者,需要進行相關節點的部署。計算節點是以兩種方式進行部署的,一種是以容器化的形式部署,支援雲容器CCE引擎,另一種是邊緣節點的部署,也就是智慧邊緣平臺服務部署。雲容器引擎的優點是提供了高可靠和高效能的企業級服務,支援Kubernetes社群原生應用以及相應工具的使用。

TICS服務內有一個計算節點,計算節點的主要功能是實現資料來源註冊,並且提供了一些隱私策略的釋出,比如某個資料來源可以選擇是敏感的、非敏感的以及脫敏的設定,然後是元資料的釋出。

使用TICS平臺構建聯邦學習服務非常簡單。首先我們要加入聯盟,進入計算節點,選擇作業型別。作業型別有兩種,一種是聯邦資料分析,一種是聯邦機器學習(模型訓練)。

在作業型別選擇完成之後,就會進行樣本初篩和樣本對齊。縱向聯邦學習第一個過程就是要進行PSI隱私交集,找出共同的使用者群體。不同的參與方其使用者量天然就不一樣,比如有的參與方使用者量達到了億,有的參與方則只有百萬或者幾萬等等。為了加速求交過程,我們首先要進行樣本粗篩,然後再進行PSI樣本對齊。

在樣本對齊之後,就可以進行特徵選擇,並且啟動訓練,配置模型引數,發起評估,包括準確率、AUC、KS、F1、召回率等各項指標的評估。

縱向聯邦學習主要是跟廣告主進行合作,主要產品形態有兩種:一種是廣告主只需要提供標籤Y;另外一種如果廣告主很open,並且希望其轉換效果能夠得到提升,他既可以提供標籤Y,也可以提供特徵X,然後廣告主和廣告平臺發起聯邦學習。

廣告鏈路中效能是一個重要的問題,整個廣告鏈路過程要控制在100毫秒。並不是所有的廣告主都可以滿足時延的效能要求,針對這種場景我們提供了兩種方案,一種是離線方案,不需要做實時計算。另一種是線上方案,廣告主和廣告平臺測試發現效能100毫秒可以滿足,就可以做模型的實時推理線上計算。如果廣告主側滿足不了時延要求,就用模型提前預測出廣告主的轉化率放在線上模型上面,不做實時計算。比如請求來了之後,通過查表獲得轉化率,然後再進行後邊的競價和播放鏈路。這就是縱向聯邦學習的兩種產品形態。

05

橫向聯邦學習如何服務廣告場景

橫向聯邦學習技術,最早是谷歌提出來的,概念就不在此贅述了。在廣告場景主要是利用手機端和廣告伺服器,依託於Mindspore的端雲訓練框架進行橫向聯邦學習的訓練。

比如海外是無法收集使用者資料的,甚至連OAID都不能採集的;如果隨著國內隱私保護條例逐漸收緊,使用者資料也無法上傳到雲側,就需要使用橫向聯邦學習技術進行廣告推薦了。

整個Mindspore的框架架構如上圖所示 ,主要分成FL Scheduler和FL Server兩個元件。它有如下 4個優點

  • 隱私安全 :既支援基於多方安全計算的精度無損的安全聚合,防止模型竊取,同時也支援基於本地差分隱私的效能無損的加密方案,防止模型洩露隱私資料。差分隱私因為噪聲新增必然帶來精度損失,而多方安全計算保護了資料安全必然帶來了通訊的開銷。

  • 分散式聯邦聚合 :支援千萬級數量的大規模異構終端部署場景,實現高效能高可用的分散式聯邦計算。

  • 聯邦效率提 :Mindspore框架提供了多種模型壓縮演算法,以及多種通訊壓縮演算法,從而提高聯邦學習效率,節省頻寬資源。

  • 靈活易用 :僅用一行程式碼就可以切換單機和聯邦學習模式。

在一個聯邦學習任務中有兩種角色的Mindspore程序: FL Scheduler和FL Server。

FL Scheduler的主要功能包括:

  • 協助叢集組網 :在叢集初始化的時候,由Scheduler負責收集Server的資訊,並保障叢集的一致性。

  • 開放管理面 :它向用戶提供RESTful介面,實現對叢集的管理。

整個聯邦學習推理訓練,執行任務的主體是FL Server, FL Server負責

  • 接收和解析端側裝置上傳的資料

  • 具有安全聚合、限時通訊以及模型儲存等能力

在一個聯邦學習的任務當中,使用者可以配置多個Server, Server和Server之間通過TCP進行通訊,Server和客戶端通過HTTP介面進行通訊。

橫向聯邦學習中,一個千萬級的聯邦,其通訊開銷是非常龐大的。 為了提高效率或者減少開銷,Mindspore提供了一些上傳壓縮方法,主要分為三個部分:權重差編解碼、稀疏編解碼以及量化編解碼。

整個上傳壓縮方法在FL Client的執行順序是 :首先客戶端發起了一個聯邦學習任務之後,會收集到雲側下發的權重並複製權重,然後開始端側的訓練,經歷了權重差編碼、稀疏編碼、量化編碼之後,把訓練好的模型update上傳伺服器。

在Server上的執行順序剛好與客戶端相反,要先量化解碼,再稀疏解碼,權重差解碼之後再進行聚合權重,進行後續過程。

權重差就是端側訓練前後的權重向量的矩陣差。對於原始權重而言,權重差的分佈更符合高斯分佈,也更適合被壓縮。

FL Client的整個壓縮過程 :首先把雲側下發的權重賦值w 複製為w0, w0和w 是相等的;然後他將w 佈置到端側的模型中,開始端側的訓練;訓練完後將所得權重加密後獲得w,然後將w與w0相減,相減後的差值進行稀疏編碼,量化編碼。

伺服器收到權重差之後,進行量化解碼,稀疏解碼之後對權重進行加權,因為上傳的權重是沒有data size的,沒有加權的,伺服器收到之後要乘一個data size,進行權重還原,再進行權重聚合。

稀疏編解碼技術已經比較成熟了,其原則是端雲需要使用同樣的稀疏編碼方式,就是隨機演算法以及隨機種子生成掩碼矩陣。掩碼矩陣和原本上傳的權重矩陣是相同的,每一個Client只需要上傳和掩碼矩陣非零位置相同的權重給Server就可以了。Serve收到壓縮權重後,首先會用與Client同樣的隨機演算法和隨機種子生成一個掩碼矩陣,在生成的掩碼矩陣當中,取出位置為1的 index,再生成和模型size相同的全零矩陣,依次將收到的壓縮向量中值為1的放入 weight vector的index中,原矩陣就恢復了。

以ALBERT模型為例,在稀疏編碼之前,需要上傳的引數有99,221個,而稀疏編碼之後,只需要上傳壓縮後的compressed vector 7937個就可以了。

量化編碼是將浮點型的通訊資料定點為近似的有限個離散值,因為浮點數的開銷是比較大的,所以就用了量化編碼的方式去壓縮頻寬。

在Mindspore中,端雲通訊壓縮功能是非常簡單的,只需要在開啟雲側服務時,在Server啟動腳本當中使用set_fl_context()設定upload_compress_type和download_compress_type這兩個引數就可以了。

我們以ALBERT的程式碼為例,提供瞭如何使用通訊加速功能的示例。在ALBERT的實驗結果比較好,最終在驗證集上的準確率,不壓縮的普通聯邦場景為72.3%,壓縮後的是72.5%。

06

聯邦學習的攻防技術

下面我們簡單看一下聯邦學習的攻防技術。聯邦學習涉及大量的通訊,不管是縱向還是橫向聯邦學習,都必然會存在攻擊。根據不同訓練階段,我們可以將攻擊劃分為訓練前、訓練中以及訓練後三個階段。

針對訓練階段的攻擊主要有兩種:一種是投毒攻擊,一種是後門攻擊。 投毒攻擊和後門攻擊的主要思想是將惡意資料注入到訓練資料集中,使模型無法有效的學習到決策邊界,或者學習到錯誤的決策邊界。

發生攻擊的根本原因是因為深度學習模型的脆弱性。 深度學習演算法的效能很大程度上取決於訓練資料,訓練資料質量越高,模型效果就越好。

高質量的訓練資料是全面的、無偏的和有代表性的。結合廣告轉換這個場景來說,收集到這樣高質量的訓練資料是非常困難的。因為這個特定場景下資料就非常稀疏了,正樣本又非常少,很難做到資料無偏或者有代表性的,資料稍有波動,模型的效果就會很差。

後門攻擊又可以分為兩種,針對訓練資料的以及針對模型的。針對資料的很好理解,本質是在訓練集上找一個全域性或者區域性的分佈擾動,使訓練資料的分佈發生畸變就可以了,只要訓練資料發生了畸變,模型必然會學偏,效果必然會變差。針對模型的攻擊之所以能夠發生,本質上是歸咎於演算法和模型的脆弱性,最終導致的結果是沒有具有代表性的特徵,整個模型的結果也就很差了。

下面介紹四種攻擊思想,前兩種針對的攻擊物件是訓練資料,後兩種是針對模型的。

針對資料的攻擊模型是黑盒的,攻擊者不知道模型是什麼樣子,不知道模型結構,也不知道引數有多少個,基於標籤翻轉或者植入觸發器,通過修改特定的標籤,或者針對觸發器進行樣本覆蓋,然後重新訓練,對模型造成攻擊。它主要的侷限性是其攻擊能力比較弱,有一些技術手段可以防止其攻擊。

針對模型的攻擊模型其攻擊思想一個是修改訓練過程,修改訓練過程要麼是修改訓練過程中的模型引數或損失函式。另一個攻擊更厲害,直接修改訓練後的模型。這兩種方式本質上是改了模型,要麼改了損失函式,要麼改了模型引數,對於攻擊者而言,攻擊模型是白盒的,如需發生攻擊,其必須要知道模型的網路結構,必須知道模型引數有哪些,才可以發生攻擊,也就是說攻擊者需要有一定的技術壁壘,他付出的代價也是非常大的,而最終這種攻擊的後果也是不可想象的。

上面所講的攻擊,攻擊者都是在橫向聯邦學習用的比較多,因為橫向聯邦學習主要的裝置參與方是擁有訓練資料的,既然端側參與的方式非常簡單,一個攻擊者只要收集到了足夠的裝置,比如說收集到了1000個裝置,想篡改資料或者直接攻克端側模型,都是比較容易的。

下面看一下縱向聯邦學習。應用比較多的是把兩個參與方以標籤持有方和資料持有方進行區分。本質上無論標籤持有方或者資料持有方,要想訓練完整的模型,就需要通訊,需要梯度的傳輸,而梯度的傳輸有很多論文,根據梯度是完全可以推匯出使用者資料的,其實是非常不安全的。

攻擊者只要控制了一個或者多個被動方就可以了,因為資料是在被動方的,攻擊者有標籤,但沒有資料,攻擊者要知道的就是資料是什麼,然後非法利用資料進行非法經營或是各種破壞。

基於中間梯度獲得樣本標籤,主要因為當損失函式是交叉熵的時候,注入攻擊是非常容易發生的,這篇論文詳細講述了攻擊發生的過程。

最後簡單介紹一下如何防禦, 防禦大致分為四種

  • 基於增強模型穩定性的防禦

增強模型有幾種方式,首先是在主動方新增可訓練層,一般主動方只有一個標籤,只是計算梯度,為了加強模型的穩定性,可以在標籤方做一些策略,加一些訓練層,讓它沒那麼容易進行攻擊。第二種方式是基於dropout的防禦,dropout本質上提高了模型的魯棒性,而模型魯棒性越強,要攻擊它就越困難。第三種是基於自動編碼器的防禦。

  • 基於梯度擾動策略的防禦

針對的攻擊思想是隻要有了梯度,就可以知道資料了。可以直接在梯度中加入差分,或者進行梯度的過裁剪更新,以及新增一些高速噪聲等,去保護梯度,對梯度造成擾動,讓攻擊者無法知道原來的梯度;也可以進行梯度稀疏化的防禦。

  • 基於硬體TEE路線的防禦

將所有的運算過程都放在硬體當中,攻擊者攻擊的代價就非常大了。

  • 基於同態+TEE路線的防禦

總結

  • 基於同態的研究已經非常多了,但目前在訓練階段還是不可行的,因為會涉及到密態資料下運算,其時延和效能往往在工業界是不達標的。

  • 淺層網路的單程序版本對比明文訓練普遍會有2~3個數量級的降低。

  • 有多種路線可以提高計算效能,包括並行、硬體加速、針對神經網路的特殊優化。

07

QA環節

Q1:目前有沒有可用於實驗的縱向聯邦學習的廣告推薦資料集?

A1:目前我們與很多廣告主做縱向聯邦學習方面的嘗試,但是資料集不能夠提供。因為使用的都是比較真實的個人資料,不僅因為有個人資料保護法的限制,而且它是具有商業價值的資料,因此目前還沒有公開的資料集提供。

Q2:TICS平臺目前在系統裡實現了什麼樣的聯邦學習演算法,線上預測的時候是否會影響使用者體驗?

A2:TICS目前最基本的邏輯迴歸是有的,最基本的XGBoost樹模型也是有的,因為這兩種模型是針對一些銀行或者金融是比較常見的,因為它要求模型可解釋。對於廣告而言,因為廣告涉及到的資料還有一些特徵是非常多的,而且資料也非常稀疏,所以對於廣告產品而言往往需要一些深度模型。TICS上一些深度學習模型,多工模型等後續都會發布上線。

Q3:聯邦學習能夠完全替代RTA的廣告主明細資料的回傳嗎?RTA的廣告主是不是不需要回傳資料了?

A3:聯邦學習場景主要用於廣告主不願意提供資料,或者例如金融信貸行業這類無法提供資料的場景。並不是說有了聯邦學習,那RTA或者說轉化跟蹤就不需要了。多一種技術也是多一個場景的考慮,另外就是整個廣告架構當中,當轉化跟蹤技術突然有一天無法使用或者出現問題後,你的技術需要有一個backup,並不是一個衝突的關係。

Q4:華為現在端雲聯邦場景裡面有哪些落地案例?

A4:端雲聯邦學習場景落地案例還是蠻多的。端雲主要用Mindspore,比如說我們有一些簡訊標籤是用端雲Mindspore實現的,以及在海外場景廣告沒有OAID使用者的廣告推薦,其實也是用端雲聯邦學習實現的。

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

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

01 / 分享嘉賓

劉璐

華為 聯邦學習專家

北京大學碩士 ,華為廣告演算法聯邦學習專家。

02 / 免費下載資料

03 / DataFun202207期月刊免費下載

04 / 關於我們

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

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