?

一種基于注意力聯邦蒸餾的推薦方法*

2021-02-25 12:16馬天翼
軟件學報 2021年12期
關鍵詞:聯邦特征優化

諶 明,張 蕾,馬天翼

(浙江省同花順人工智能研究院,浙江 杭州 310012)

近年來,隨著電商平臺和移動互聯網的迅猛發展,人們已經步入信息過載的時代.推薦系統作為連接用戶和信息的橋梁,正變得越來越重要.目前,主流的推薦系統主要基于大數據下的離線和在線推薦[1,2],但該類推薦系統往往需要收集大量用戶個人信息以及瀏覽、購買等用戶行為記錄,存在數據隱私泄露的風險.隨著《中華人民共和國網絡安全法》、歐盟《通用數據保護條例》等一系列嚴格的數據隱私保護法律法規出臺,對此類數據的收集提出更多限制措施.另外,出于政策法規、商業競爭等因素,不同機構間的數據很難互通[3].針對以上問題,聯邦學習范式被提出[4,5].該范式可使模型在不上傳用戶隱私數據的前提下進行聯合建模,同時與領域和算法無關,可實現在不同數據結構、不同機構間協同建模,有效保護用戶隱私和數據安全[6].

隨著5G(the 5th generation mobile communication technology)技術的普及,用戶設備端數據的上傳速度和下載速度將高達10Gbps 級別,同時,移動設備的響應時間將降至僅1 毫秒級別,相比4G(the 4th generation mobile communication technology)下載速度快6.5 萬倍[7];用戶數據的爆炸式增長對機器學習模型的訓練速度提出更高要求,與此同時,推薦系統隨著模型的復雜度越高,聯邦學習需要交換的權重系數也越多,給聯邦學習下的模型移動端通信開銷帶來了嚴峻的挑戰[8].知識蒸餾可用于將參數大的復雜網絡(教師模型)中的知識遷移到參數量小的簡單網絡(學生模型)中去,用更少的復雜度來獲得更高的預測效果[9].針對聯邦學習設備間模型參數多和通信開銷大,Jeong 等人[10]將知識蒸餾引入聯邦學習場景,用于壓縮每臺設備模型參數的體量并減少通信次數.但除上述挑戰和問題外,推薦系統在數據上仍存在著如下問題.

(1) 用戶間行為數據差異較大,通常行為數據體現為長尾分布,使得設備間數據存在高度異質性;

(2) 真實推薦場景下數據大都為非獨立同分布(non-IID),但大部分推薦算法往往仍基于獨立同分布(IID)假設[11],該假設忽略了非獨立同分布可能造成的數據、模型上的異質性.

在聯邦蒸餾的場景下,以上問題會造成不同設備數據之間的差異,進而造成設備模型之間的差異.而知識蒸餾的引入,會進一步地擴大教師模型與學生模型之間的分布差異,使全局模型收斂速度慢,準確率低.針對以上問題,還沒有針對推薦場景的聯邦蒸餾算法及框架被提出.

本文提出基于注意力聯邦蒸餾的推薦方法,該方法相比Jeong 等人[10]提出的聯邦蒸餾算法做了如下改進.在聯邦蒸餾的聯合目標函數中加入KL 散度(Kullback-Leibler divergence)和正則項,減少因教師網絡和學生網絡間的差異對全局模型造成的影響,提升模型穩定性和泛化性能;在聯邦蒸餾設備端流程中引入改進的多頭注意力(multi-head attention)機制,使特征編碼信息更加豐富,提升整體模型精度;提出一種自適應學習率的訓練策略,利用混合優化的方法優化聯邦蒸餾的聯合目標函數,提高模型收斂速度,抵消注意力編碼增加的計算量.該方法是目前第一個面向推薦系統場景的聯邦蒸餾方法.

1 相關研究

1.1 聯邦學習

數據的隱私保護一直是推薦系統的重要研究方向,聯邦學習可在不共享隱私數據的情況下進行協同訓練,能夠有效地解決數據隱私問題[12].國內外一些學者對其進行了研究.Google AI 團隊提出了聯邦學習方法,該方法在不收集用戶數據的情況下,在每臺設備上獨立完成模型訓練,再將梯度數據進行隱私保護加密傳輸到中心節點服務器(聯邦中心),最后,中心節點根據匯總結果將更新后的梯度(全局模型)再回傳到每臺設備上,從而完成每臺設備的梯度和模型更新,解決了用戶數據孤島問題[13-14].目前,機器學習的很多領域都已引入聯邦學習,如聯邦遷移學習[15]、聯邦強化學習[16]、聯邦安全樹[17]等.Yurochkin 等人[18]提出了貝葉斯無參聯邦框架,通過實驗證明了效率上的有效性,模型壓縮比更低.Liu 等人[19]提出一種遷移交叉驗證機制的聯邦學習,能夠為聯邦內的設備模型帶來性能提升;他們還提出靈活可拓展的方法,為神經網絡模型提供額外的同態加密功能.Zhuo 等人[20]提出一種新的聯邦強化學習方法,為每臺設備構建新的Q 網絡,解決了構建高質量的策略難度大的問題;更新本地模型時對信息使用高斯差分保護,提升了用戶的隱私保護能力.Kewei 等人[21]提出一個聯邦提升樹系統,可以讓多個機構共同參與學習,可以有效地提升分類準確率,同時讓用戶對自己的數據有更多的控制權.也有學者在聯邦學習中引入其他算法,并對聯邦學習效率問題進行研究.Sharma 等人[22]提出一種隱私保護樹的Boosting 系統,能夠在精度上與非隱私保護的算法保持一致.Ghosh 等人[23]提出了一種離群對抗方法,將所有節點和異常的設備一起考慮,解決了魯棒異質優化問題,并給出了分析誤差的下界.雖然聯邦學習能夠解決數據隱私問題,但隨著用戶數據量和模型復雜度的增加,存在著模型參數多和移動端通信開銷大等問題.學者們希望使得通信負載與模型大小無關,只與輸出大小有關.將教師模型中的知識遷移到學生模型中,降低復雜度的同時仍能保持較好的預測精度,知識蒸餾便是這樣一種知識遷移的方法.

1.2 知識蒸餾

Hinton 等人[24]提出了知識蒸餾,將教師網絡相關的軟目標作為損失函數的一部分,以誘導學生網絡的訓練,實現知識遷移.Yim 等人[25]使用矩陣來刻畫層與層之間的特征關系,然后用L2 損失函數去減少教師模型和學生模型之間的差異,并讓學生模型學到這種手段,而不僅僅是利用目標損失函數進行知識的遷移.Heo 等人[26]利用對抗攻擊策略將基準類樣本轉為目標類樣本,對抗生成的樣本誘導學生網絡的訓練,從而有效提升學生網絡對決策邊界的鑒別能力.但硬標簽會導致模型產生過擬合現象,對此,Yang 等人[27]提出了一個更合理的方法,并沒有去計算所有類的額外損失,而是挑選了幾個具有最高置信度分數的類來軟化標簽,提高模型的泛化性能.

近些年,有學者提出將聯邦學習和知識蒸餾結合起來.Jeong 等人[10]提出了一種分布式模型聯邦蒸餾訓練算法,能夠有效解決用戶通信開銷大的問題.采用生成對抗網絡生成數據,解決用戶生成的數據樣本非獨立同分布的問題.Han 等人[28]提出一種保護隱私的聯邦強化蒸餾框架,由事先設置的狀態和策略組成,通過交換每臺設備的策略值,從而共同訓練本地模型,解決了代理隱私泄露問題.然而這些方法在解決非獨立同分布問題上主要采用生成對抗網絡或強化學習的方法將非獨立同分布數據轉為獨立同分布數據,在實際應用中復雜性較大.

針對前述文獻和方法的不足,尤其是因聯邦學習回傳梯度參數的方法參數多、計算量大、模型訓練過程無法自適應調節學習率、蒸餾算法訓練速度慢等問題,本文在第2 節提出并詳細描述一種基于注意力機制的聯邦蒸餾推薦方法.

2 一種基于注意力聯邦蒸餾的推薦方法(AFD)

2.1 符號定義

推薦系統中通常包括召回和排序兩個階段:召回階段對歷史數據用協同過濾或其他召回算法召回一批候選Item 列表,排序階段對每個用戶的候選Item 列表進行CTR(click-through rate)預測,最后選取排序靠前Top-n的Item 作為推薦結果.

假設整個系統包含設備集K(共|K|臺設備),每臺設備包含Item 特征和用戶特征,則設備k(k∈K)中的用戶特征為Uk,Item 特征為Ik.r為第k臺設備上的特征總數.Xk為設備k的本地數據,yk為設備k的本地數據對應的標簽,pk為設備k上的本地數據對應的學生模型預測結果.E為全局訓練輪數,t為所有數據的標簽值(t∈T,T為標簽集).Sk為聯邦中心收集到的設備k的Logits 向量集合(本文的Logits 向量皆為經過softmax操作后的歸一化的 向量值),即為學生模型;S/k為除去設備k后其他設備的Logits,為教師模型,為除去設備k后其他設備的Logits 平均值.本文提出方法所使用的主要符號定義見表1.

Table 1 Definitions of main symbols表1 主要符號定義

2.2 方法整體流程

本文提出的基于注意力和聯邦蒸餾的推薦方法(AFD)運行在多個分布式設備中,包括在設備端運行的學生網絡和運行在服務器端負責收集、整合、分發教師模型參數的聯邦中心.協作流程如圖1 所示.

Fig.1 Collaboration flow of attentive federated distillation圖1 注意力聯邦蒸餾協作流程

具體描述如下:

(1) 每臺設備初始化一個基于深度神經網絡的推薦(或點擊率預測)模型(如卷積神經網絡、DeepFM[29]等)作為學生模型,使用設備本地數據進行模型訓練.其中,本地設備使用Attention 機制(見第2.4 節)對本地用戶特征和商品特征進行編碼,融合特征交叉信息得到特征Embedding 表達,并將這些表達作為本地模型的輸入進行訓練.使用Attention 機制可捕捉更多興趣特征,同時,編碼本身可減少本地用戶數據泄露的風險;

(2) 本地模型訓練收斂后,設備獲取模型參數,并將模型參數上傳至聯邦中心.這里,上傳的模型參數與常規聯邦學習中的不同:聯邦蒸餾方法上傳的參數為本地學生模型最后Softmax層計算出的Logits 向量(每個推薦目標標簽對應的Logits 向量,取多輪訓練的平均值),而聯邦學習方法上傳的則是模型權重矩陣.對推薦標簽數量較少或點擊率預測任務(二分類),使用聯邦蒸餾方法可大大減少上傳參數的體量,緩解大規模設備下可能造成的通信擁堵;

(3) 聯邦中心使用聯邦學習算法將接收到的每臺設備上傳的標簽平均Logits 向量整合為新的全局Logits向量.具體地,針對每臺設備,聯邦中心將其他設備發送的Logits 向量使用聯邦學習算法構建出該臺設備的教師模型,并將教師模型分發到每臺設備中(該步驟具體流程詳見表3);

(4) 設備接收教師模型,通過結合自適應學習率策略(見第2.5 節)優化聯合損失函數(見第2.3 節),并以此指導學生網絡的訓練.聯合損失函數包含教師網絡、學生網絡的損失,同時還包含教師網絡與學生網絡之間的差異度.該步驟算法流程詳見表2.

以上描述中,步驟(1)和步驟(3)中的推薦算法和聯邦學習算法不限,可根據實際需求自由組合.在下面的章節,我們將詳細描述圖1 流程及表2、表3 算法中使用的策略.

Table 2 Attentional federated distillation—Processes on devices表2 注意力聯邦蒸餾算法——設備流程

Table 3 Attentional federated distillation—Processes on the federated center表3 聯邦注意力蒸餾算法——聯邦中心流程

2.3 聯邦蒸餾

現有的聯邦學習算法是對模型權重進行平均,由于推薦系統中模型復雜,權重參數眾多,分配到每臺設備上,模型參數回傳到聯邦中心,會占用大量的資源,并且聯邦中心計算權重平均值也是一筆巨大的時間開銷.當采用現有聯邦蒸餾算法的損失函數進行優化時,僅僅分別計算了教師網絡和學生網絡與真實標簽的誤差值,卻忽略了教師網絡和學生網絡本身的差異性給模型帶來了影響,容易造成模型過擬合.通過實驗發現,教師網絡和學生網絡本身的差異性對模型的推薦效果具有較大的影響.為了減少學生網絡和教師網絡之間差異大造成的影響,本文提出了一種新的目標函數.相比于傳統目標函數只計算本地設備預測值與真實值之間的誤差,本文提出的目標函數除了利用其他設備作為教師模型來指導本地學生模型訓練,還將學生模型與教師模型之間的差別作為優化目標的一部分加入損失函數,降低設備間數據差異造成的影響.

首先,設備k(k∈K)的本地學生模型及聯邦中心分發的教師模型在該設備上的損失函數可分別定義為

其中,f(·)為損失函數,pk和yk分別為設備k中學生模型對本地測試數據的預測值及其真實值,為教師模型 對本設備測試數據的預測值.假設全局模型共需訓練E輪,則訓練e輪(e∈[1,E])后的聯合損失函數由學生模型損失、教師模型損失以及學生模型與教師模型差異組成(表2 第6 行),具體定義如下:

其中,α,β分別為學生模型和教師模型損失的權重參數,λ為正則項權重參數,ωk為設備k的模型參數(如神經網絡中的Weights 和Bias),||·||2為L2 范數.為節省參數通信量(傳統聯邦學習算法如FedAvg 需傳輸模型參數)并增強模型的泛化性能,本文方法在聯合損失函數中增加了L2 正則項(見公式(3)).由于高度偏斜的非獨立同分布(non- IID)數據會讓學生模型之間的分布差異增大,降低整個模型的收斂效率,本文通過使用KL 散度(Kullback- Leibler divergence)來衡量學生模型和教師模型之間的差異,并將該差異作為全局損失函數的一部分進行優化.差異計算方式如下:

公式(3)中,當e=1 時(即第1 輪全局模型訓練),此時聯邦中心尚未收集首輪本地設備的模型Logits,本地設備無需從聯邦中心接受教師模型的Logits,此時,聯合損失僅包含本地學生模型的損失;當e>1 時,聯邦中心已完成首輪模型收集并分發教師模型,則本地學生模型的優化可同時使用學生模型、教師模型及學生-教師模型差異進行聯合優化.同時,為加速模型收斂速度,本文提出一個可自動切換優化算法及選擇合適學習率的優化策略,用于優化聯合損失函數(見第2.5 節).優化后的本地學生模型對本地設備數據進行預測,得出新本地模型對應 每個數據標簽的Logits,并通過下式更新設備k對應標簽t的Logits(表2 第10 行):

聯邦蒸餾的過程減少了傳統聯邦學習過程中的模型權重回收和分發造成的時間和通信開銷,能夠有效提升整體效率.同時,通過加入KL 散度,將教師模型和學生模型之間的差異性加入到損失函數中進行優化,從而緩解了數據差異帶來的影響,提升模型的推薦性能.然而,聯邦蒸餾雖然可以緩解Non-IID 的影響,但若設備之間數據差異較大或數據量較少,仍然需要其他優化手段來提高模型的精度.在下面的章節中,本文方法利用特征注意力編碼得到特征間更多的交互信息來豐富本地特征.

2.4 特征Attention編碼

在推薦場景中,用戶興趣和產品的種類具有多樣性,一個用戶可能對多個種類產品感興趣,一個種類可能有多個產品,但最終影響模型結果可能只有其中一部分.以付費服務推薦場景為例:當一個用戶同時購買了兩個付費產品,很難區分他對哪個產品更感興趣;但如果其中一個產品連續購買多次,另一個產品只購買過一次,那么說明連續購買年數這一特征,對模型的分類具有更高的權重影響.同時,對于不同的用戶,可能是因為不同的特征而決定最后是否會購買.這類場景下,對用戶交互過的商品和候選商品做特征Attention 編碼尤為重要,可以有效地捕捉用戶對不同商品及不同特征之間的差異性.由于不同的用戶關注的興趣點不同,用戶興趣呈現多樣性變化,主流的深度神經網絡(DNN)模型對用戶的歷史行為是同等對待,且忽略了時間因素對推薦結果的影響[30],離當前越近的特征越能反映用戶的興趣.然而,現有的基于聯邦學習的推薦方法未考慮特征之間的交互關系.為了充分利用歷史特征及特征交互信息,本文通過加入一個改進的Attention 機制,在特征向量進入模型訓練之前通過Attention 機制計算用戶行為權重,得出每個用戶不同的興趣表征.目前,基于Attention 機制的方法[31,32]通常在輸出層前加入Attention 層,以捕捉用戶和Item 的二階交叉信息.與這些方法不同,我們并未在模型輸出層前加入Attention 層,而是在模型輸入前使用.這樣做有如下目的:1) 保證框架靈活性,避免侵入現有本地模型的結構; 2) 盡可能豐富輸入特征的信息,提高模型精度.

對于每一個用戶,有一個等長于特征總數r的Attention 編碼,其中,Attention 編碼的每一個維度表示該特征的權重(即重要程度).由于用戶線上的交互特征通常非常稀疏,當一個用戶的特征值只有一個非零特征時,這個特征會得到很高的Attention 得分;而當一個用戶有多個非零特征時,受限于Softmax計算的Logits 值,各個特征的Attention 得分反而不高,重點信息難以全部保留.本文使用的Attention 方法主要包含兩點改進:1) 由于不同設備中數據特征維度空間不同,提出一種映射方法將不同設備數據映射到相同維度,進而允許其進行Attention操作;2) 增加Attention 編碼的維度,增強特征交互的表征能力.

(1) Attention 編碼映射

由于每臺設備的數據特征空間不相同,首先需要將所有特征統一映射到一個dim維的Embedding 矩陣.具體地,通過創建特征embedding 向量[feature_count,dim],將單階或多階特征映射到[b,r,dim].其中,feature_count為所有特征的類別總數,b為一個 minibatch 的數據量(如 16,32),每批次訓練數據維度為[b,max_feature],max_feature為所有特征的維度總和,r為特征總數量.映射過程中,若特征為單階,如連續數值型特征,則特征Embedding 為該數字在Embedding 向量中對應的特征;若特征為多階,如One-Hot 特征,則使用多階特征所有特征值在Embedding 向量中對應特征的和作為該多階特征的Embedding.具體搜索矩陣對第i個特征的Attention權重計算方式如下:

其中,Q為搜索矩陣,Si為特征i的查詢鍵值,(·)T為矩陣轉置.映射后的Q維度為[b,1,dim],Si維度為[b,r,dim],Vi維度為映射到[b,r,dim].P(·)為查詢項與搜索矩陣的相似度,同時也為搜索矩陣Q對特征的權重系數,維度為[b,1,r].最后,再通過Softmax操作歸一化到[0,1].具體如下:

(2) 增加Attention 的維度

傳統的self-attention 是在序列內部做attention 操作,每次使用一個用戶的特征去查詢其和所有其他特征的匹配程度,共進行r輪相同操作得到attention 值.對于每個用戶,只有一個等長于r的Attention 矩陣,Attention 矩陣的大小為[b,r].但推薦場景的數據集通常很稀疏,當一個用戶只有一個非零特征時,這個特征會得到很高的分值;而當一個用戶有多個非零特征時,重點特征的權重值反而難以取得較高的得分.本文方法將得到的搜索矩陣Q做矩陣變換,首先將權重系數矩陣由[b,1,r]轉為[b×r,1],再利用矩陣乘法將結果與[1,m]相乘得到[b×r,m],再將權重系數矩陣轉為[b,m,r].其中,m為新增加的Attention 的維度.對于每個特征,有m個等長于r的Attention 值,變換后矩陣的大小由[b,1,r]變為[b,m,r],從而增加Attention 的維度m,促使不同的Attention 關注不同的部分,減少了因召回商品數量不同造成的影響.通過求均值,將[b,m,r]變為[b,1,r],得到Attention 值ai,再根據權重系數對Vi進行加權求和,得到搜索矩陣Q的Attention 值.具體如下:

雖然特征Attention 編碼能夠豐富編碼信息,提升模型精度,但由于增加了特征維度,可能會降低模型的訓練速度.最后,本文提出一種分段自適應學習率訓練策略,通過切換不同的優化器來加快模型收斂速度.

2.5 分段自適應學習率策略

目前,已有文獻實證發現:在聯邦學習及分布式訓練中,Adam 等基于動量的優化方法會直接影響到聯邦學習的效果.尤其在非獨立同分布(non-IID)數據下,本地設備模型的更新方向可能與全局模型差別較大,從而造成全局模型效果下降[33,34].同時,推薦系統是一個復雜的非線性結構,屬于非凸問題,存在很多局部最優點[35].

Bottou等人指出:SGD雖然可以加快訓練速度,但因為SGD更新比較頻繁,會造成嚴重的震蕩陷入局部最優解[36,37].聯邦學習需要在典型的異構數據的情況下,通過全局數據優化每臺設備上的模型,因此需要一種快速、能適應稀疏和異構分布數據的優化策略.Gao 等人提出了多種自適應方法來縮放梯度,解決了在數據稀疏的情況下存在性能差的問題,但僅僅通過平均梯度平方值的方法無法提升收斂速度[38,39].Shazeer 等人提出了一種分段調整學習率方法,采用分段訓練的方式,在不損失精度的情況下提升了訓練速度,但需要根據經驗來選擇切換的時機和切換后的學習率[40,41].

針對以上問題,本文基于Wang 等人的工作[38],提出了一種分段自適應學習率優化方法,該方法的主要創新點為:1) 優化梯度下降過程,改進動量的計算方法,解決正相關性帶來的收斂困難問題;2) 讓算法在訓練過程中自動由Adam 無縫轉換到SGD 的混合優化策略,從而保留兩種優化算法的各自優勢,大幅縮短聯合損失函數的收斂時間,并且保證了模型的準確性.

本地設備學生模型的目標函數為最小化聯合損失(見公式(3)),即minGL,ω為學生模型參數(如神經網絡模型中的Weights,Bias 等),則在時刻z目標函數關于模型參數的梯度Rz為

在基于動量的優化算法中,動量表示參數在參數空間移動的方向和速率.目標函數關于參數的梯度二階動 量等價于當前所有梯度值的平方和.目標函數關于模型參數的一階動量mz和二階動量Vz分別為Rz和的指數移動平均.二階動量Vz通過除以實現對Rz尺度的縮放控制,反映了梯度下降的速率.但在Adam 算法中,動量的計算本質上為動量Vz與梯度Rz的正相關性計算,會導致大梯度的影響減弱,小梯度的影響增強,最終會讓收斂變得困難.本文假設過去時刻的參數梯度相互獨立,因此可以利用過去q時刻的參數梯度Rz-q計算Vz,而無需引入相關性計算.具體地,該策略從最近的q時刻的參數梯度中選擇一個最優值,即:

為解決上面討論的正相關性計算帶來的收斂困難問題,本文提出了優化后的二階動量計算方法:

其中,μ1為權重參數.公式(12)使用最近q時刻的最優梯度代替當前梯度,避免了計算二階動量所需的相關性計算.同樣地,一階動量的計算也可去相關性,即:在計算一階動量時,也利用最近q時刻的參數梯度來更新mz.具體如下:

其中,μ2為權重系數.由公式(12)和公式(13)可得到時刻z的下降梯度:

其中,μ3為梯度下降的權重系數.最后,根據下降梯度更新z+1 時刻的學生模型參數ωz+1:

由于基于動量的Adam 算法會直接影響聯邦學習的收斂效果,本文在學生模型訓練過程前半段采用Adam優化,后半段采用SGD 優化,同時解決訓練過程中相關性導致的模型收斂困難和收斂速度慢的問題.其中,優化算法的切換條件及切換后SGD 的學習率為該分段策略的兩個關鍵點.

(1) 算法切換條件.

聯邦學習中,利用自適應學習率的方法(如Adam)存在切換時間選擇困難的問題:如切換過快,則無法提升收斂速度;切換過慢,則可能陷入局部最優解,影響收斂效果.受Wang 等人提出的從Adam 切換到SGD 的條件[38]的啟發,當滿足迭代輪數大于1 且修正后的學習率與原始的學習率的絕對值小于指定閾值ξ時進行切換,即:

其中,ηz為每個迭代都計算的修正后的SGD 學習率,與原始的學習率之差的絕對值小于閾值,則認為已經 滿足切換條件,則切換為SGD 并以調整后的學習率繼續訓練.接下來介紹如何確定SGD 切換后的學習率.

(2) 切換算法后,SGD 的學習率.

SGD 階段需確定的學習率包括初始學習率及修正后的學習率.Wang 等人提出將SGD 下降的方向分解為Adam 下降的方向和其正交方向上的兩個方向之和[38],本文方法與前者的區別在于對正交分解后的方向進行修正.由于Adam 計算學習率使用的是二階動量的累積,要想計算出SGD 階段學習率大小,需要對SGD 的下降方向進行分解.本文將SGD下降的方向分解為Adam下降的方向和其正交方向上的兩個方向分別乘以0.5(cos60°)再求和,其余部分與Wang 等人的方法一致[38].假設模型優化已由Adam 切換為SGD 階段,首先要沿著模型預測方向(pk)走一步,而后沿著其正交方向走完相應步數.在當前時刻z,正交分解后的SGD 在Adam 下降方向上的 正交投影為,等價于Adam 的下降方向,即:

為了減少擾動,使用移動平均值來修正對學習率的估計,修正后的學習率如下:

其中,σ為SGD 權重系數.

3 實驗及分析

3.1 數據集及實驗設置

我們在Movielens[42]數據集和同花順Level2 數據集上驗證AFD 及策略的有效性.Movielens 數據集包含 2 000 個用戶及用戶特征、3 300 部電影以及電影的標簽屬性信息.實驗中,選取電影評價數大于15 的電影和評價電影數量大于等于10 的用戶作為訓練樣本[43].本文還在同花順真實場景金融數據集中進行驗證,數據集主要包含用戶對Level2 產品的購買情況統計,特征包括了用戶ID、用戶歷史購買信息、設備信息、用戶對該產品的評價、用戶自身屬性特征、產品特征等.其中,離散特征18 項,連續特征22 項.實驗中對特征進行預處理,包括缺失特征補全、去掉用戶編碼和標簽字段缺失的用戶、去掉用戶非空特征數量小于3 的數據等.預處理完成后,訓練集共有32 萬用戶及40 項特征,共78 萬條樣本數據;測試集共有12 萬用戶,40 項特征共25 萬條樣本數據.實驗過程中,對原始數據進行去噪和脫敏處理,采用交叉驗證的方式,將訓練集和測試集分成4 份,并分發到4 臺模擬設備,模擬聯邦實際應用場景,每臺設備上的數據相互獨立.

為了對比不同聯邦推薦算法的推薦準確率,我們將本文提出的基于注意力聯邦蒸餾的推薦算法AFD 結合卷積神經網絡(CNN)與結合聯邦學習的其他3 種推薦算法進行對比實驗,這3 種推薦算法包括:

(1) FWD:聯邦學習(FedAvg)結合Wide&Deep 算法[44];

(2) FDIN:聯邦學習(FedAvg)結合深度興趣網絡(DIN)算法[45];

(3) FD+CNN:聯邦蒸餾算法[10]結合卷積神經網絡.AFD+CNN 方法在不使用本文提出的3 個策略的情況下等價于FD+CNN.

AFD 與以上3 個模型的對比見表4.

Table 4 Comparisons between AFD and baselines表4 AFD 算法和基準模型對比

本文模型及實驗使用Tensorflow 實現,并且在Nvidia GeForce GTX 1080Ti GPU 上進行實驗.AFD 及3 種方法的實驗設置如下.

(1) AFD+CNN:attention 的維度m設為32.網絡層參數設置,CNN 層數為5,隱藏層的大小hidden_units 設為128,兩個卷積核為[64,64],最大池化層為[64,1],3 個全連接層為120,60 和2;

(2) FWD:Deep 部分全連接層為128,64 和2;

(3) FDIN:隱藏層單元數為32,全連接層為80,40 和2;

(4) FD+CNN:CNN 層數為5,2 個卷積層,1 個最大池化層,2 個全連接層.

3.2 評價指標

本文采用如下指標作為實驗結果的評價指標.

? Time:模型迭代指定輪數運行的時間;

? Loss:模型損失函數(為與其他模型統一,AFD 評估學生模型原始損失,而非聯合損失);

? AUC:ROC 曲線下面積,用來反映分類器的分類能力;

? ACC:準確率,表示分類正確的樣本數占樣本總數的比例;

? NDCG(normalized discounted cumulative gain):歸一化折損累積增益;

? MAE(mean average error):評估算法推薦質量的指標,通過計算實際分值與預測分值的差異,來衡量推薦是否準確.

3.3 實驗結果及分析

? 實驗1:不同聯邦推薦算法下的精度實驗.

在兩個數據集上的準備率對比結果如圖2 所示,結果表明,本文提出的AFD 算法準確率高于其他3 種基準方法.在Movielens 數據集上,AFD 算法的平均準確率最高達到了0.84,FDIN 的準確率高于FD 和FWD 算法.在Level2 數據集上,AFD 算法的準確率達到0.92 左右,FD+CNN 的準確率為0.81 左右,FWD 準確率僅為0.67 左右,FDIN 約為0.83 左右,AFD 相比不使用本文提出的3 個策略的FD+CNN 算法在準確率上提升了13%.可以看出: FD+CNN在使用聯邦蒸餾機制后,模型精度與FDIN相當.FDIN由于使用了Attention機制,總體精度優于除AFD外的其他方法.

表5 為4 臺設備中的MAE 及全局模型的MAE.由表5 可以看出:由于數據分布情況不同,4 臺設備中模型精度有較大差別.同一設備,FWD 誤差值最大,FDIN 和FD 算法MAE 均小于FWD 算法.在Movielens 數據集上,FWD 算法的MAE 值最大,推薦效果最差,而AFD 算法MAE 值比FD 算法平均誤差減少了約20%.在Level2數據集上,FD 和FDIN 算法MAE 結果近似,而AFD 算法比以上兩種算法平均誤差減少了約17%.同時,AFD 在4 臺設備中均取得了最好的結果,表明AFD 相對于其他3 種基準算法推薦性能表現最佳.

Fig.2 ACC on different datasets圖2 不同數據集下的ACC

Table 5 MAE on Movielens and Level2 datasets表5 Movielens 和Level2 數據集下的MAE

由圖3 可以看出:使用NDCG@5 作為評價指標,AFD 算法在4 臺設備上的NDCG 值均高于其他3 種基準模型.其中,在Movielens 數據集上,AFD 的NDCG 平均值達到0.92,FWD 的NDCG 平均值為0.82,FD 和FDIN的NDCG 平均值接近(約為0.85).AFD 比以上兩種算法NDCG 值提升了約8%;在Level2 數據集上,AFD 的NDCG 平均值在0.96,FWD 的NDCG 平均值在0.85,FD 和FDIN 的NDCG 平均值在0.87.AFD 比以上兩種算法NDCG 值提升了10%.

Fig.3 NDCG on different datasets圖3 不同數據集下的NDCG

由圖4 可以看出,AFD 算法AUC 值均高于基準算法.其中,在Movielens 數據集上,AFD 算法的AUC 為0.78;在Level2 數據集上,AFD 算法的AUC 為0.86,FDIN 和FWD 算法的AUC 僅為0.66,FD+CNN 算法的AUC 為0.76.

Fig.4 AUC on different datasets圖4 不同數據集下的AUC

由圖5 可以看出:隨著迭代輪數的增加,AFD 可在迭代輪數小于200 輪時收斂,收斂速度略優于其他3 種算法.同時,AFD 在兩個數據集上均取得了更低的損失:在Movielens 數據集上,AFD 的Loss 約為0.2;在Level2 數據集上,AFD 的Loss 可達到0.1 左右,均低于其他3 種基準算法.以上實驗結果表明:本文提出的AFD 算法收斂速度更快,總體推薦性能更好.

Fig.5 Loss on different datasets圖5 不同數據集下的Loss

? 實驗2:自適應學習率在聯邦蒸餾中的有效性驗證.

為了驗證改進后的自適應學習率方法的有效性,將算法的運行時間作為評價指標,對比AFD 與FWD,FDIN和FD 不同迭代輪數下的運行時間.實驗結果如圖6 所示.

Fig.6 Running time of algorithmson different datasets圖6 不同數據集上算法運行時間

從結果中可看出:在Movielens 數據集上,AFD 算法的耗時明顯低于其他3 種基準算法,耗時曲線較平緩;在Level2 數據集上,FWD 和FDIN 算法的運行時間較長,隨著迭代輪數的增加,運行時長呈線性增長,FD 算法運行時長小于以上兩種算法.而采用自適應學習率策略的AFD 算法在相同輪數下耗時最短,同時,在200 輪以后,運行時長曲線增長更緩慢.在迭代400 輪左右,AFD 累計運行時長為9.8 分鐘,FD+CNN 運行時長為20.6 分鐘,AFD算法較FD+CNN 算法訓練時間縮短52%左右,說明自適應學習率的方法能夠有效的提升訓練速度.

? 實驗3:Attention 機制的有效性驗證.

本實驗將AFD 中的Attention 編碼策略結合在其他3 個基準模型中,分別為聯邦蒸餾算法結合CNN 及注意力機制(FD+CNN+ATN)、聯邦學習結合Wide&Deep 算法和注意力機制(FWD+ATN)和聯邦學習結合深度興趣網絡和注意力機制(FDIN+ATN).將NDCG、AUC、相同條件下訓練時長(迭代次數400,minibatch 大小128,學習率0.001)和設備端MAE 作為對比指標,在Movielens 數據集和Level2 數據集上對比實驗結果見表6.

Table 6 Comparisons between baselines using attentional mechanism表6 各基準模型使用Attention 機制后的效果對比

表6 中,括號內的數字為加入Attention 機制后的方法相比未加入之前方法的提升/減少幅度.NDCG 和AUC該數字越大越好,運行時間和MAE 則越小越好.在Movielens 數據集中,FD+CNN 加入注意力機制后,NDCG@5值提升約5%,AUC 值提升約13%,Global-MAE 誤差減少約8%,相同條件下訓練時長卻增加了約28%,說明加入注意力機制雖然對FD+CNN 算法精度有明顯提升,但增加了計算量.FDIN 加入注意力機制后,Global-MAE 有明顯降低,但NDCG 指標和AUC 幾乎不變,訓練時長增加了約18%,說明加入注意力機制對FDIN 算法精度提升有限.這是由于FDIN 已經在內部對集成了Attention 操作.對比實驗中除FDIN 外,其他模型精度均有明顯提升,但會增加算法的計算量,增加訓練時間.從同花順Level2 數據分析,可以進一步得出相同的結論.

? 實驗4:Attention 編碼后特征之間的關聯性分析.

本實驗對Attention 編碼后特征之間的關聯性進行分析,結果見圖7.其中,圖7 的橫縱坐標均為Level2 用戶和產品標簽字段,顏色由淺到深表示兩個特征的關聯度逐級提高,關聯度較高的特征能夠獲得較高的權重得分.

Fig.7 Visualization of feature interactions on Level2 dataset after attentional encoding圖7 Level2 數據集下進行注意力編碼后的特征交互可視化

可以看出,一些特征如level2_total_buy_time(Level2 產品歷史購買次數),total_eventclicknum(Level2 產品歷史點擊次數),last7onlinetime(過去7 天的在線時長)等之間存在較強的特征交互,表明用戶活躍度如點擊次數和在線時長等特征對產品購買影響較大,符合現實業務中的觀察結論.該結果表明:本文提出的Attention 策略可以提取出更豐富的特征表征信息(無需通過Attention 網絡進行訓練),增強設備數據,提升模型精度.

? 實驗5:3 個改進策略對聯邦蒸餾的有效性驗證.

在最后一個實驗中,驗證本文3 個策略對聯邦蒸餾方法框架的貢獻程度,分別為聯邦蒸餾加入KL 散度和正則項(FD+KLR)、聯邦蒸餾加入改進后的注意力機制(FD+ATN)和聯邦蒸餾中加入自適應學習率優化策略(FD+ ADA).為了驗證3 個改進策略對聯邦蒸餾的有效性,將NDCG、AUC、相同條件下訓練時長(迭代次數400,minibatch 大小128,學習率0.001)和MAE 作為對比指標.對比實驗結果見表7.

Table 7 Comparisons between three strategies表7 3 個策略的效果對比

從表7 結果可以看出:在Movielens 數據集中:比較加入改進算法前后的NDCG@5 指標,AFD 最高為0.92,FD+ATN 為0.87,分值最低的是FD+ADA 為0.81;加入注意力機制比原始聯邦蒸餾算法有約7%的提升,其次是FD+ KLR,相比原始聯邦蒸餾算法有約2%的提升;比較加入改進算法前后的AUC 值,加入FD+ATN 相比原始聯邦學習算法有約8%的提升;對比加入改進算法前后的MAE,FD+KLR 和FD+ATN 相比FD+ADAM 誤差減少了約4%和12%;從精度來看,提升最明顯的是加入注意力機制(ATN),其次是引入KL 和正則項的聯合損失優化策略(KLR),而自適應學習率策略(ADA)對精度的提升有限;但從訓練收斂速度角度,ADA 策略取得了最大的收益,較只加入KLR 訓練時間減少了約60%,說明該策略能大大提升學生模型的訓練速度;FD+ATN 耗時最多,說明ATN 策略大幅提高了計算量;KLR 策略因只對目標函數做優化,對性能影響較少.從同花順Level2 數據結果分析可以進一步得出相同的結論.

綜上所述,在聯邦蒸餾框架中加入注意力機制可以大幅提升模型的性能;加入KL 散度和正則項的聯合優化策略可以減少特征之間的差異性帶來的影響,從而提升模型的精度;最后,加入自適應學習率的訓練策略在不損失或較小損失模型精度的情況下,可以大幅縮短模型的訓練時間.加入3 個改進策略后,本文提出的AFD 在實驗數據集上獲得了最優的性能.

4 結 論

本文提出了一種改進的聯邦蒸餾推薦方法,包括一個標準的模型優化聯邦蒸餾算法.該算法引入了3 種策略:(1) 為增強設備中的數據特征,引入了一個改進的注意力編碼機制;(2) 針對設備間數據差異可能帶來的影響,引入了一個評估學生模型與教師模型差異指標及正則項的聯合優化方法;(3) 為抵消注意力編碼機制帶來的計算量提升,提出一個改進的自適應學習率方法來切換不同優化方法,選擇合適的學習率來加快模型收斂速度,使得訓練時間縮短了52%左右.最后,通過實驗在Movielens 數據集和同花順Level2 線上數據集驗證策略的有效性.實驗結果表明:相比于3 種基準算法,本文提出的算法相比于原始聯邦蒸餾算法訓練時間縮短52%,模型的準確率提升了13%,平均絕對誤差減少了約17%,NDCG 值提升了約10%,展示了良好的收斂效率和推薦精度.在未來的研究中可嘗試的方向是:將聯邦蒸餾與強化學習結合起來,為不同的設備制定不同的策略,無需回傳或僅少量回傳模型參數即可達到與回收模型相同的收斂效果,以大幅降低通信量.

猜你喜歡
聯邦特征優化
根據方程特征選解法
超限高層建筑結構設計與優化思考
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
一“炮”而紅 音聯邦SVSound 2000 Pro品鑒會完滿舉行
303A深圳市音聯邦電氣有限公司
不忠誠的四個特征
抓住特征巧觀察
20年后捷克與斯洛伐克各界對聯邦解體的反思
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合