• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種基于注意力聯(lián)邦蒸餾的推薦方法*

      2021-02-25 12:16:10馬天翼
      軟件學(xué)報(bào) 2021年12期
      關(guān)鍵詞:聯(lián)邦特征優(yōu)化

      諶 明,張 蕾,馬天翼

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

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

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

      (1) 用戶間行為數(shù)據(jù)差異較大,通常行為數(shù)據(jù)體現(xiàn)為長尾分布,使得設(shè)備間數(shù)據(jù)存在高度異質(zhì)性;

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

      在聯(lián)邦蒸餾的場景下,以上問題會造成不同設(shè)備數(shù)據(jù)之間的差異,進(jìn)而造成設(shè)備模型之間的差異.而知識蒸餾的引入,會進(jìn)一步地?cái)U(kuò)大教師模型與學(xué)生模型之間的分布差異,使全局模型收斂速度慢,準(zhǔn)確率低.針對以上問題,還沒有針對推薦場景的聯(lián)邦蒸餾算法及框架被提出.

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

      1 相關(guān)研究

      1.1 聯(lián)邦學(xué)習(xí)

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

      1.2 知識蒸餾

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

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

      針對前述文獻(xiàn)和方法的不足,尤其是因聯(lián)邦學(xué)習(xí)回傳梯度參數(shù)的方法參數(shù)多、計(jì)算量大、模型訓(xùn)練過程無法自適應(yīng)調(diào)節(jié)學(xué)習(xí)率、蒸餾算法訓(xùn)練速度慢等問題,本文在第2 節(jié)提出并詳細(xì)描述一種基于注意力機(jī)制的聯(lián)邦蒸餾推薦方法.

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

      2.1 符號定義

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

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

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

      2.2 方法整體流程

      本文提出的基于注意力和聯(lián)邦蒸餾的推薦方法(AFD)運(yùn)行在多個分布式設(shè)備中,包括在設(shè)備端運(yùn)行的學(xué)生網(wǎng)絡(luò)和運(yùn)行在服務(wù)器端負(fù)責(zé)收集、整合、分發(fā)教師模型參數(shù)的聯(lián)邦中心.協(xié)作流程如圖1 所示.

      Fig.1 Collaboration flow of attentive federated distillation圖1 注意力聯(lián)邦蒸餾協(xié)作流程

      具體描述如下:

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

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

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

      (4) 設(shè)備接收教師模型,通過結(jié)合自適應(yīng)學(xué)習(xí)率策略(見第2.5 節(jié))優(yōu)化聯(lián)合損失函數(shù)(見第2.3 節(jié)),并以此指導(dǎo)學(xué)生網(wǎng)絡(luò)的訓(xùn)練.聯(lián)合損失函數(shù)包含教師網(wǎng)絡(luò)、學(xué)生網(wǎng)絡(luò)的損失,同時還包含教師網(wǎng)絡(luò)與學(xué)生網(wǎng)絡(luò)之間的差異度.該步驟算法流程詳見表2.

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

      Table 2 Attentional federated distillation—Processes on devices表2 注意力聯(lián)邦蒸餾算法——設(shè)備流程

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

      2.3 聯(lián)邦蒸餾

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

      首先,設(shè)備k(k∈K)的本地學(xué)生模型及聯(lián)邦中心分發(fā)的教師模型在該設(shè)備上的損失函數(shù)可分別定義為

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

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

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

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

      2.4 特征Attention編碼

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

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

      (1) Attention 編碼映射

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

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

      (2) 增加Attention 的維度

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

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

      2.5 分段自適應(yīng)學(xué)習(xí)率策略

      目前,已有文獻(xiàn)實(shí)證發(fā)現(xiàn):在聯(lián)邦學(xué)習(xí)及分布式訓(xùn)練中,Adam 等基于動量的優(yōu)化方法會直接影響到聯(lián)邦學(xué)習(xí)的效果.尤其在非獨(dú)立同分布(non-IID)數(shù)據(jù)下,本地設(shè)備模型的更新方向可能與全局模型差別較大,從而造成全局模型效果下降[33,34].同時,推薦系統(tǒng)是一個復(fù)雜的非線性結(jié)構(gòu),屬于非凸問題,存在很多局部最優(yōu)點(diǎn)[35].

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

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

      本地設(shè)備學(xué)生模型的目標(biāo)函數(shù)為最小化聯(lián)合損失(見公式(3)),即minGL,ω為學(xué)生模型參數(shù)(如神經(jīng)網(wǎng)絡(luò)模型中的Weights,Bias 等),則在時刻z目標(biāo)函數(shù)關(guān)于模型參數(shù)的梯度Rz為

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

      為解決上面討論的正相關(guān)性計(jì)算帶來的收斂困難問題,本文提出了優(yōu)化后的二階動量計(jì)算方法:

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

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

      其中,μ3為梯度下降的權(quán)重系數(shù).最后,根據(jù)下降梯度更新z+1 時刻的學(xué)生模型參數(shù)ωz+1:

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

      (1) 算法切換條件.

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

      其中,ηz為每個迭代都計(jì)算的修正后的SGD 學(xué)習(xí)率,與原始的學(xué)習(xí)率之差的絕對值小于閾值,則認(rèn)為已經(jīng) 滿足切換條件,則切換為SGD 并以調(diào)整后的學(xué)習(xí)率繼續(xù)訓(xùn)練.接下來介紹如何確定SGD 切換后的學(xué)習(xí)率.

      (2) 切換算法后,SGD 的學(xué)習(xí)率.

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

      為了減少擾動,使用移動平均值來修正對學(xué)習(xí)率的估計(jì),修正后的學(xué)習(xí)率如下:

      其中,σ為SGD 權(quán)重系數(shù).

      3 實(shí)驗(yàn)及分析

      3.1 數(shù)據(jù)集及實(shí)驗(yàn)設(shè)置

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

      為了對比不同聯(lián)邦推薦算法的推薦準(zhǔn)確率,我們將本文提出的基于注意力聯(lián)邦蒸餾的推薦算法AFD 結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)與結(jié)合聯(lián)邦學(xué)習(xí)的其他3 種推薦算法進(jìn)行對比實(shí)驗(yàn),這3 種推薦算法包括:

      (1) FWD:聯(lián)邦學(xué)習(xí)(FedAvg)結(jié)合Wide&Deep 算法[44];

      (2) FDIN:聯(lián)邦學(xué)習(xí)(FedAvg)結(jié)合深度興趣網(wǎng)絡(luò)(DIN)算法[45];

      (3) FD+CNN:聯(lián)邦蒸餾算法[10]結(jié)合卷積神經(jīng)網(wǎng)絡(luò).AFD+CNN 方法在不使用本文提出的3 個策略的情況下等價于FD+CNN.

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

      Table 4 Comparisons between AFD and baselines表4 AFD 算法和基準(zhǔn)模型對比

      本文模型及實(shí)驗(yàn)使用Tensorflow 實(shí)現(xiàn),并且在Nvidia GeForce GTX 1080Ti GPU 上進(jìn)行實(shí)驗(yàn).AFD 及3 種方法的實(shí)驗(yàn)設(shè)置如下.

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

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

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

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

      3.2 評價指標(biāo)

      本文采用如下指標(biāo)作為實(shí)驗(yàn)結(jié)果的評價指標(biāo).

      ? Time:模型迭代指定輪數(shù)運(yùn)行的時間;

      ? Loss:模型損失函數(shù)(為與其他模型統(tǒng)一,AFD 評估學(xué)生模型原始損失,而非聯(lián)合損失);

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

      ? ACC:準(zhǔn)確率,表示分類正確的樣本數(shù)占樣本總數(shù)的比例;

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

      ? MAE(mean average error):評估算法推薦質(zhì)量的指標(biāo),通過計(jì)算實(shí)際分值與預(yù)測分值的差異,來衡量推薦是否準(zhǔn)確.

      3.3 實(shí)驗(yàn)結(jié)果及分析

      ? 實(shí)驗(yàn)1:不同聯(lián)邦推薦算法下的精度實(shí)驗(yàn).

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

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

      Fig.2 ACC on different datasets圖2 不同數(shù)據(jù)集下的ACC

      Table 5 MAE on Movielens and Level2 datasets表5 Movielens 和Level2 數(shù)據(jù)集下的MAE

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

      Fig.3 NDCG on different datasets圖3 不同數(shù)據(jù)集下的NDCG

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

      Fig.4 AUC on different datasets圖4 不同數(shù)據(jù)集下的AUC

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

      Fig.5 Loss on different datasets圖5 不同數(shù)據(jù)集下的Loss

      ? 實(shí)驗(yàn)2:自適應(yīng)學(xué)習(xí)率在聯(lián)邦蒸餾中的有效性驗(yàn)證.

      為了驗(yàn)證改進(jìn)后的自適應(yīng)學(xué)習(xí)率方法的有效性,將算法的運(yùn)行時間作為評價指標(biāo),對比AFD 與FWD,FDIN和FD 不同迭代輪數(shù)下的運(yùn)行時間.實(shí)驗(yàn)結(jié)果如圖6 所示.

      Fig.6 Running time of algorithmson different datasets圖6 不同數(shù)據(jù)集上算法運(yùn)行時間

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

      ? 實(shí)驗(yàn)3:Attention 機(jī)制的有效性驗(yàn)證.

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

      Table 6 Comparisons between baselines using attentional mechanism表6 各基準(zhǔn)模型使用Attention 機(jī)制后的效果對比

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

      ? 實(shí)驗(yàn)4:Attention 編碼后特征之間的關(guān)聯(lián)性分析.

      本實(shí)驗(yàn)對Attention 編碼后特征之間的關(guān)聯(lián)性進(jìn)行分析,結(jié)果見圖7.其中,圖7 的橫縱坐標(biāo)均為Level2 用戶和產(chǎn)品標(biāo)簽字段,顏色由淺到深表示兩個特征的關(guān)聯(lián)度逐級提高,關(guān)聯(lián)度較高的特征能夠獲得較高的權(quán)重得分.

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

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

      ? 實(shí)驗(yàn)5:3 個改進(jìn)策略對聯(lián)邦蒸餾的有效性驗(yàn)證.

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

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

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

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

      4 結(jié) 論

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

      猜你喜歡
      聯(lián)邦特征優(yōu)化
      超限高層建筑結(jié)構(gòu)設(shè)計(jì)與優(yōu)化思考
      民用建筑防煙排煙設(shè)計(jì)優(yōu)化探討
      關(guān)于優(yōu)化消防安全告知承諾的一些思考
      一道優(yōu)化題的幾何解法
      一“炮”而紅 音聯(lián)邦SVSound 2000 Pro品鑒會完滿舉行
      如何表達(dá)“特征”
      303A深圳市音聯(lián)邦電氣有限公司
      不忠誠的四個特征
      抓住特征巧觀察
      線性代數(shù)的應(yīng)用特征
      河南科技(2014年23期)2014-02-27 14:19:15
      嵩明县| 丹江口市| 宜良县| 花莲县| 鞍山市| 从化市| 神池县| 阿拉善左旗| 平潭县| 留坝县| 宾阳县| 三江| 正阳县| 遂川县| 隆回县| 丹阳市| 宁南县| 华坪县| 揭阳市| 西林县| 惠水县| 界首市| 广饶县| 忻城县| 平邑县| 营山县| 库伦旗| 额尔古纳市| 福州市| 北流市| 新绛县| 区。| 淳化县| 衡山县| 民和| 日照市| 怀集县| 集安市| 南平市| 南雄市| 新兴县|