吳哲夫,李澤農(nóng),呂躍華,龔樹鳳
1(浙江工業(yè)大學 信息工程學院,杭州 310023) 2(浙江省科技信息研究院 信息技術(shù)中心,杭州 310006)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)用戶的數(shù)量得到了快速增長,互聯(lián)網(wǎng)產(chǎn)品的需求也大大提高.電子商務、社交網(wǎng)站、在線閱讀等與生活有著密切關(guān)系的互聯(lián)網(wǎng)產(chǎn)品都在互聯(lián)網(wǎng)環(huán)境下蓬勃發(fā)展,人們的生活也因此變得越來越便利.但與此同時,在這些呈現(xiàn)出爆炸式增長的信息量中,人們不得不花費大量的時間與精力來獲取對自己有價值的信息.在這個“信息過載”的時代,傳統(tǒng)的搜索引擎技術(shù)已無法滿足針對不同的用戶來提供不同的個性化服務需求.因此,推薦系統(tǒng)[1]應運而生,它通過分析用戶的歷史活動行為,挖掘出用戶的潛在偏好,從而向用戶推薦其可能感興趣的物品,滿足用戶的個性化需求[2].個性化推薦技術(shù)得以廣泛應用,典型應用包括國外電子商務領(lǐng)域的Amazon,社交領(lǐng)域的Facebook、Twitter,新聞推薦領(lǐng)域的Google News等.這些應用和平臺通過推薦系統(tǒng),很好地解決了用戶個性化需求的問題,并且獲得了可觀的商業(yè)價值和經(jīng)濟效益[3].
近年來,有研究發(fā)現(xiàn)深度神經(jīng)網(wǎng)絡能夠?qū)φ_輸入的圖像進行分類.但是,對這些圖像添加微小擾動后,神經(jīng)網(wǎng)絡可能會導致完全錯誤的分類結(jié)果,即這些微小擾動使得預測誤差擴大化.為了解決這類問題,研究人員提出了一種對抗性學習方法,即在訓練過程中動態(tài)性地生成對抗性樣本.除了將微擾加載在神經(jīng)網(wǎng)絡輸入層,研究人員還嘗試了在嵌入層和dropout層進行添加.受此啟發(fā),對抗性學習方法同樣適用于推薦系統(tǒng)領(lǐng)域,通過使用對抗性學習方法能夠增加模型抵御來自外界惡意攻擊的能力,從而提升模型的魯棒性.
本文提出了一種基于對抗性學習提高推薦魯棒性的算法,通過使用對抗性學習訓練方法不僅提高了模型的推薦性能也增強了模型的魯棒性.首先研究了美學因子作為新的視覺特征對推薦模型魯棒性的影響;然后添加對抗性擾動提出了一個ADCFA(Adversarial Dynamic Collaborative Filtering Model with Aesthetic Feature)算法,并通過使用對抗性學習訓練來提高推薦模型的魯棒性;并且提出了一種改進的ADCFA-SGD學習算法進行模型參數(shù)求解;最后,將所提對抗性學習算法應用于Amazon數(shù)據(jù)集驗證了其有效性.
在過去幾十年,學者們提出了各種推薦算法并且已經(jīng)被廣泛地應用到各類推薦系統(tǒng)中.在當前的推薦系統(tǒng)算法研究中,絕大多數(shù)都是集中在提高推薦的準確率上,例如Du 等人將視頻中所包含的文本信息、音頻信息、圖片中的語義信息和美學特征等分別或同時納入推薦模型以改善對于視頻推薦的準確度[4-7];He 等人融合時間因子、社會關(guān)系和視覺特征于一體對藝術(shù)品做推薦[8].還有使用新的融合方法[9-10]或新的特征提取技術(shù)[11]來優(yōu)化算法,例如通過將多特征空間映射到一個統(tǒng)一空間實現(xiàn)融合的;或者使用不同特征的結(jié)果列表,利用其候選結(jié)果來進行融合實現(xiàn).
但這些研究都專注于推薦的準確率而忽略了其魯棒性的問題.Goodfellow在其關(guān)于對抗性實例[12]的研究中指出:當一張圖片受到外界的擾動干擾時,圖片分類器得到的結(jié)果會存在一定程度的偏差[13,14].對于推薦算法來說,類似的現(xiàn)象同樣存在.到目前為止,推薦系統(tǒng)領(lǐng)域?qū)τ隰敯粜匝芯縖15,16]還不多,僅包括了用戶、產(chǎn)品對于推薦算法魯棒性的影響和 CNN 視覺特征對于推薦算法魯棒性影響等方面的研究.
視覺特征是影響推薦模型的一個重要的影響因子.近期,有研究表明利用新的網(wǎng)絡結(jié)構(gòu) BDN(Brain-inspired Deep Network)提取的美學因子相較于從傳統(tǒng)卷積神經(jīng)網(wǎng)絡提取的CNN特征,對于推薦系統(tǒng)能起到更好的推薦效果.為了探究美學因子作為視覺特征對模型魯棒性的影響,本文選擇了DCFA模型[17]作為基礎(chǔ)模型來展開研究,并提出了一種基于對抗性學習提高推薦魯棒性的算法.
本節(jié)主要介紹了用于提高魯棒性的基礎(chǔ)模型DCFA以及研究了該模型的脆弱性,首先討論了在模型中添加擾動的位置,然后通過在DCFA模型中分別加入隨機擾動和對抗性擾動來比較模型性能的變化,以此來驗證改善此模型魯棒性的可行性.
DCFA模型結(jié)合了用戶歷史消費行為和產(chǎn)品的視覺特征,能夠捕捉不同用戶隨著時間變化而變化的審美偏好,因而能給用戶在不同的時間推薦適合的產(chǎn)品.
DCFA模型相較于僅僅利用從傳統(tǒng)的卷積神經(jīng)網(wǎng)絡提取的CNN特征作為視覺特征外,還加入了美學特征,它將從產(chǎn)品圖片中提取出的CNN特征和美學特征結(jié)合起來作為視覺特征融入到張量分解模型中,為避免CP(CANDECOMP/PARAFAC)[18]和Tucker[19]分解存在的諸如稀疏數(shù)據(jù)收斂性差、對于大規(guī)模數(shù)據(jù)集的擴展性差等不足之處,選擇CMTF(Coupled Matrix and Tensor Factorization)[20]框架來進行張量分解,其預測模型為:
(1)
DCFA模型使用典型的貝葉斯個性化排序[21]優(yōu)化標準對用戶的隱式反饋(購買記錄)進行優(yōu)化.構(gòu)成的目標函數(shù)為:
(2)
(3)
(4)
(5)
擾動通常被加入到模型輸入或模型參數(shù)中,本文研究的是美學特征在加入擾動后的影響.由于美學特征是從圖片中提取的,理論上將擾動加入到上述兩個位置都可行,但將擾動加入到模型輸入中卻會遇到一些實際問題:
首先如果選擇在模型輸入處加入擾動,由于系統(tǒng)從圖片輸入開始,在訓練算法模型的時候?qū)τ糜谔崛蓚€視覺特征網(wǎng)絡的參數(shù)會持續(xù)更新,并且模型輸入的原始用戶信息和產(chǎn)品的交互信息往往是稀疏的,而提取視覺特征的網(wǎng)絡有很多參數(shù),同步訓練容易引起過擬合問題.
其次在模型輸入處添加擾動會導致模型訓練的復雜度大大增加.假如本文給模型輸入一個實例,不僅需要更新算法模型所涉及的用戶、產(chǎn)品、時間等矩陣,同樣梯度變化的數(shù)據(jù)也需要回傳到提取視覺特征的網(wǎng)絡,以此對整個網(wǎng)絡進行更新,而神經(jīng)網(wǎng)絡的參數(shù)往往都比模型參數(shù)大很多倍,這就勢必使得訓練過程更加耗時,增加了復雜度.
為了避免產(chǎn)生這些問題,本文選擇在模型參數(shù)中加入擾動,一方面能避免提取圖片特征的網(wǎng)絡與模型訓練過程產(chǎn)生交叉影響,另一方面也能提升算法的效率.
DCFA模型將從圖片中提取的CNN特征和美學特征整合的嵌入式矩陣作為模型參數(shù)來預測用戶的偏好.根據(jù)上節(jié)的討論,本文選擇在該模型參數(shù)中分別加入隨機擾動和對抗性擾動,通過調(diào)整超參數(shù)ε的大小來控制擾動幅度的大小,以此來對比模型在這兩種情況下性能的變化.本文選用亞馬遜數(shù)據(jù)集計算,并使用F1@10和Recall@5兩個指標來衡量模型性能的好壞.實驗結(jié)果如圖1所示.
圖1 在不同噪聲類型下的性能對比
從圖1可以觀察到當該模型加入隨機擾動(DCFA-rand)時,模型性能的變化較??;而當加入對抗性擾動(DCFA-grad)后,模型性能整體呈下降趨勢,并且當擾動變大時,性能明顯下降.該結(jié)果表明DCFA模型易受到對抗性擾動的影響,因此可以通過對抗性學習來改善模型的魯棒性.
本節(jié)將詳細介紹在DCFA模型上添加對抗性學習來改善魯棒性的新模型ADCFA的組成和訓練方法.
根據(jù)上節(jié)知,DCFA模型易受到對抗性擾動的影響,在DCFA模型的基礎(chǔ)上添加對抗性擾動得到了一個ADCFA的預測模型,其定義為:
(6)
其中,Δ*∈RK表示加入到視覺特征矩陣的對抗性擾動.類似于DCFA,本文使用BPR來優(yōu)化訓練模型參數(shù).該預測模型示意圖如圖2所示.
圖2 ADCFA模型框架圖
DCFA是一種用BPR優(yōu)化的時間感知美學推薦模型.本文使用SGD(Stochastic Gradient Descent)訓練DCFA模型,直至模型達到收斂,目的是找出最壞情況的擾動,這將導致對模型的影響最大;另一方面,由于DCFA模型經(jīng)過訓練以最小化BPR損失,因此將BPR損失最大化作為相反的目標,以獲得對訓練數(shù)據(jù)的最佳擾動,即添加在模型參數(shù)處的對抗性擾動:
(7)
(8)
(9)
(10)
(11)
為了獲得對對抗性擾動不太敏感的模型,除了最小化原始BPR損失之外,還需最小化被擾動模型的目標函數(shù)并將模型的優(yōu)化目標定義為:
(12)
其中,Θ為模型參數(shù),包括用戶、產(chǎn)品以及時間的嵌入矩陣U、V、T,用戶偏好矩陣M,產(chǎn)品潛在特征矩陣W,時間r的偏好矩陣N,特征矩陣F;λ是控制被擾動模型的目標函數(shù)對模型優(yōu)化影響的一個超參數(shù),當λ設置為0時表示模型沒有加入任何擾動.
總的來說,ADCFA模型的訓練就像進行一場極大極小值的游戲:
(13)
本文把模型參數(shù)Θ和擾動Δ看成玩這場極大極小值游戲的兩個玩家,類似博弈論中的二人零和博弈[22],即二人的利益之和為零,一方所得正好是一方所失.從模型參數(shù)Θ的角度出發(fā),為了贏得這場游戲,它肯定希望最小化自己的損失而最大化對手的損失,反之亦然.
在BPR損失中由于存在大量成對訓練實例,使用批量梯度下降方法非常耗時并且收斂速度慢,為此本文考慮基于SGD算法[23]為ADCFA設計了參數(shù)學習算法.
算法:ADCFA-SGD學習算法.
輸入:訓練集D,學習率η,控制對抗性擾動幅度的超參數(shù),
對抗性正則化超參數(shù)λ,正則化系數(shù)λθ,迭代次數(shù)iter_max;
輸出:模型參數(shù)Θ.
1.訓練DCFA得到收斂參數(shù)初始化Θ;
2.初始化循環(huán)次數(shù)iter=0;
3.While參數(shù)未收斂&iter 4.iter+=1; 5.從訓練集中隨機選一實例(p,q,q′,r); 6.構(gòu)建對抗性擾動; 7.更新模型參數(shù); 8.end. 9.return Θ. 該算法的關(guān)鍵步驟是如何為一個實例(p,q,q′,r)構(gòu)建對抗性擾動(步驟6)以及模型參數(shù)的更新(步驟7). 構(gòu)建對抗性擾動的目標函數(shù)為: (14) 另外,如果最小化實例的目標函數(shù),就能獲得模型參數(shù),使模型能夠抵抗在該實例上被破壞的情況. 模型參數(shù)學習的目標函數(shù)為: (15) 實驗選擇亞馬遜鞋子類公開數(shù)據(jù)集驗證本文提出算法的性能.亞馬遜鞋子類數(shù)據(jù)集含有用戶的消費信息、產(chǎn)品信息等.實驗中所用數(shù)據(jù)集的統(tǒng)計特性如表1所示. 表1 數(shù)據(jù)集統(tǒng)計信息 模型的美學特征是使用美學網(wǎng)絡在美學視覺分析(AVA)數(shù)據(jù)集(1)https://www.dpchallenge.com(訓練得到的.它包含超過250,000張審美評級為1至10的圖像,66個描述圖像語義的文本標簽,以及14種攝影風格(互補色、雙色調(diào)、高動態(tài)范圍、圖像紋理、白色光、長曝光、微距、動態(tài)模糊、負重像、三分規(guī)則、淺景深、輪廓、軟焦點和消失點),且都進行了審美排序. 本文采用準確率P、召回率R和F1值F1來評價推薦算法的性能,其定義如下: (16) (17) (18) 為了驗證本文提出推薦算法的有效性,選取如下的推薦算法作為對比方法. 1)POP:是一種非個性化排名的方法,按照產(chǎn)品的受歡迎程度來進行排名,通過訓練數(shù)據(jù)中的交互次數(shù)來衡量. 2)MF-BPR:使用BPR優(yōu)化排序,把用戶和產(chǎn)品分別以嵌入矩陣的形式表現(xiàn)出來,并用其內(nèi)積來評價用戶對一個產(chǎn)品的偏好程度. 3)VBPR:在MF-BPR基礎(chǔ)上加入了視覺信息的模型,對于那些受視覺信息影響較大的推薦任務如:服裝推薦等VBPR有其優(yōu)越性. 4)AMR:在VBPR模型基礎(chǔ)上利用對抗性學習訓練得到的新模型.該模型相比較于VBPR有更好的魯棒性和推薦效果. 5)DCFA:將美學特征融入到一個基于張量分解的模型中,可以根據(jù)用戶的審美個性化推薦產(chǎn)品. 從數(shù)據(jù)集中隨機抽取其中的80%作為訓練,10%作為驗證,剩余10%作為測試,其中驗證集用于調(diào)整超參數(shù),測試集用于性能比較.為了公平起見,不同算法中的參數(shù)設置如下:在MF中λU=0.1,λV=0.001;在VBPR中λ1=0.1,λ2=0.001,λ3=0;在AMR中3個正則化系數(shù)同VBPR,λadv=5,ε=0.01;在DCFA中λ1=λ2=0.1,λU=λV=0.3,λT=0.5,λW=0.2,λM=λN=0.5;對于本文提出的方法,正則化系數(shù)同DCFA,λadv=5,ε=0.01.另外所有算法的學習率η=0.03,潛在特征向量維度d=64. 本文實驗的運行環(huán)境為:Intel(R)Core(TM)i7-8700 CPU,NVIDIA GeForce RTX 2080 GPU,16GB內(nèi)存,2018.3.2 x64 PyCharm. 實驗1.不同模型間性能對比 選擇K={5,10,20}的Top-K推薦結(jié)果作為實驗數(shù)據(jù),進行不同模型間的性能對比,使用F1和Recall兩個指標進行衡量.實驗結(jié)果如表2、表3所示. 表2 F1指標下Top-K推薦性能對比 從表2、表3中可以發(fā)現(xiàn):個性化推薦方法性能都遠遠優(yōu)于非個性化推薦的方法.MF-BPR是一種應用隱式反饋的個性化排序,其結(jié)果優(yōu)于非個性化的POP排序方法是因為個性化排序會對產(chǎn)品進行建模,而POP則是直接根據(jù)流行度來進行推薦排名. 表3 Recall指標下Top-K推薦性能對比 綜合兩個衡量指標,DCFA在亞馬遜鞋子這個數(shù)據(jù)集上的推薦效果略優(yōu)于VBPR,說明美學因素對鞋子這類產(chǎn)品的推薦中起到一定的積極作用. ADCFA優(yōu)于DCFA,AMR優(yōu)于VBPR,說明加入了對抗性學習不僅能改善模型的魯棒性也可以提高模型的推薦性能. 進一步進行橫向比較,隨著K的增加,模型的Recall呈上升趨勢,即Top-20的推薦效果最好,這與Recall的計算公式有關(guān),其公式的分母不變,分子隨K的增大可能性增大.而F1指標綜合了準確率和召回率,故過大和過小的K都會對其產(chǎn)生影響,綜合上述模型的F1值,當K=10時推薦效果較好. 本文提出的ADCFA模型推薦效果顯著優(yōu)于上述所有對比模型,以此驗證了本文算法的有效性.以F1指標而言,在K=5,10,20時ADCFA的Top-K推薦效果就DCFA分別提升了62.5%,76.9%,73.8%. 實驗2.模型的魯棒性對比 為了驗證使用對抗性學習的效果,本文選用模型的魯棒性來進行分析對比.首先,使用BPR優(yōu)化訓練DCFA直至其基本達到收斂,然后將收斂的DCFA參數(shù)用來初始化ADCFA并進行迭代訓練至其收斂.實驗結(jié)果如表4所示. 表4 不同ε情況下模型性能變化對比 該表不僅記錄了DCFA和ADCFA模型在加入相同大小擾動后性能變化的幅度,也記錄了它們在加入不同ε所帶來的不同大小擾動下性能的變化.從該表中可知,當DCFA和ADCFA加入相同大小的擾動時,例如當ε=0.05時,DCFA性能下降的幅度明顯大于ADCFA,相較于未加入擾動時的性能,DCFA性能下降了15.02%,而ADCFA性能只下降了1.34%.這表明了ADCFA模型想比較于基礎(chǔ)模型DCFA更能抵御來自外界的惡意攻擊,對于對抗性擾動的敏感性降低,魯棒性增強. 從另一個方面看,隨著ε的增大即擾動的增大,模型性能受影響程度也增大,但ADCFA性能受影響程度總是小于DCFA,這也表明了ADCFA的魯棒性優(yōu)于DCFA,對抗性學習確實能改善模型的魯棒性. 實驗3.超參數(shù)對模型的影響 為了分析超參數(shù)對ADCFA模型性能的影響,本文詳細地討論了各超參數(shù)下的實驗結(jié)果.本文設定超參數(shù)ε的取值為0.001,0.01,0.1,0.2,0.3,0.4,0.5,1,10,100,超參數(shù)λadv的取值為0.001,0.01,0.1,1,5,10,50,100,1000,10000,100000.選用Recall和F1作為評價指標.從圖 3和圖 4可得出結(jié)論: 1)超參數(shù)ε控制著在對抗性學習中加入擾動的大小,其實驗結(jié)果如圖 3所示.隨著ε的增加,模型性能指標總趨勢下降,當ε=0.01時,模型性能達到最優(yōu);當ε取值在0.1~0.5的范圍時,模型性能下降相對平緩;當ε>0.5時,模型性能下降明顯;當ε超過100時性能曲線幾乎降為0,這說明過大的擾動會嚴重破壞模型參數(shù)的學習過程. 圖3 ε的影響 超參數(shù)λadv控制著對抗性擾動所產(chǎn)生損失函數(shù)在總損失函數(shù)中的影響力,其實驗結(jié)果如圖4所示.隨著λadv的增加,模型性能的總趨勢先增加后下降,當λadv=5時,模型性能達到最優(yōu);當λadv<5時,模型性能隨著λadv的增大而增強;當λadv>5時,模型性能反而隨著λadv的增大而下降,當λadv增大到100時,性能下降至最低.當λadv=1000時,模型性能總趨勢又相對穩(wěn)定,這說明當λadv足夠大的時候,ADCFA 模型對于對抗性擾動的敏感性減弱. 圖4 λ的影響 實驗4.算法時間復雜度的分析比較 選取基線模型DCFA與本文的ADCFA進行算法時間復雜度的分析比較. 為更好地表示兩種算法在訓練時的時間復雜度,分別定義Of、Ob、Ou為前向傳播、反向傳播、更新模型參數(shù)所需的時間復雜度,另外還引入了Oadv表示擾動計算過程中的時間復雜度.根據(jù)DCFA和ADCFA的損失函數(shù),本文可以得到它們的時間復雜度分別為2×Of+2×Ob+Ou、4×Of+4×Ob+2×Oadv+Ou.其中Of、Ob、Ou相較于Oadv有著較大的影響,故ADCFA的復雜度約為DCFA的兩倍. 另外,還進行了將這兩種算法在同一數(shù)據(jù)集訓練同一周期的時間對比實驗.在本文實驗的運行環(huán)境下,DCFA約花費了6秒來運行一個周期,ADCFA則花費了約12秒.結(jié)果表明ADCFA訓練所需時間約為DCFA的兩倍,這也符合上述對這兩種算法時間復雜度的分析比較. 本文主要針對美學因子作為視覺特征的DCFA模型展開研究,通過在美學因子特征參數(shù)處加入隨機和對抗性兩種擾動,驗證了惡意攻擊動態(tài)美學因子會降低模型魯棒性的猜想.然后,通過在模型參數(shù)處添加對抗性擾動使其性能達到最差,并使用對抗性學習的方法來改善模型的魯棒性.本文詳細闡述了構(gòu)建對抗性擾動的方法以及利用SGD方法設計了優(yōu)化模型的算法,在亞馬遜數(shù)據(jù)集上進行實驗.與目前已知的其它推薦模型進行對比,結(jié)果表明改進模型有效提高了模型的推薦性能和魯棒性. 后繼研究工作將嘗試在ADCFA模型中加入一些上下文特征進行推薦,如頻譜特征、聽覺特征等;另外還可以在本文方法的基礎(chǔ)上研究其在顯式反饋推薦中的效果.5 實驗分析
5.1 實驗設置
5.2 實驗結(jié)果及分析
6 結(jié) 論