傅 魁,梁少晴,李 冰
(武漢理工大學(xué)經(jīng)濟學(xué)院,武漢 430070)
云計算和大數(shù)據(jù)等網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展引發(fā)了網(wǎng)絡(luò)信息的爆炸式增長,海量數(shù)據(jù)帶來的“信息過載”問題使得人們對有價值信息的選擇變得尤為困難,個性化推薦系統(tǒng)應(yīng)運而生。以協(xié)同過濾推薦技術(shù)、基于內(nèi)容的推薦技術(shù)和混合推薦技術(shù)為代表的傳統(tǒng)推薦技術(shù)應(yīng)用于電子商務(wù)推薦中仍存在數(shù)據(jù)稀疏、新用戶冷啟動、大數(shù)據(jù)處理與算法可擴性和特征識別差等問題[1-3],因此,研究人員開始嘗試將深度學(xué)習(xí)引入推薦領(lǐng)域來解決上述問題,以提高模型的可用性和普適性。
Wang 等[4]提出了一種基于協(xié)同深度學(xué)習(xí)(Collaborative Deep Learning,CDL)的推薦方法,該方法利用貝葉斯棧式降噪自編碼器來學(xué)習(xí)商品內(nèi)容的特征表示,并結(jié)合矩陣分解模型來預(yù)測用戶的商品評分數(shù)據(jù)。該方法緩解了傳統(tǒng)推薦技術(shù)中的數(shù)據(jù)稀疏問題,但其只考慮了顯式反饋(對商品的評分數(shù)據(jù))表達的用戶對商品的喜好程度,而忽略了隱式反饋(對商品的點擊、購買和略過等數(shù)據(jù))表達的用戶對商品的“不確定”的喜好程度。針對上述問題,研究人員對CDL 模型進行了改進,Wei等[5]提出了融合TimeSVD++[6]和棧式降噪自編碼器(Stacked Denoising AutoEncoder,SDAE)的混合推薦模型,其中TimeSVD++是一種可以融合時間感知的隱因子模型。與CDL相比,該模型不僅利用了隱式反饋包含的用戶偏好信息,而且還可以捕獲商品信息和用戶偏好隨時間的變化特征,解決用戶偏好動態(tài)變化問題,提高推薦的精度與準確性。將深度學(xué)習(xí)應(yīng)用到推薦領(lǐng)域最終提高了模型的可用性和普適性[7-12],但是這些模型仍存在3 個問題:首先沒有對隱式反饋進行再次區(qū)分,將隱式反饋分為正反饋(對商品的點擊、購買等行為)和負反饋(對商品的略過行為),準確表明用戶對商品是喜愛還是無視的態(tài)度;其次都是利用用戶歷史數(shù)據(jù)中頻繁出現(xiàn)的特征進行學(xué)習(xí)并推薦,導(dǎo)致推薦商品相似性極高,容易使用戶感到疲倦;最后都只考慮了當下回報而忽略了未來可能存在的回報。
深度強化學(xué)習(xí)(Deep Reinforcement Learning,DRL)將深度學(xué)習(xí)的特征提取功能與強化學(xué)習(xí)的動態(tài)學(xué)習(xí)決策功能結(jié)合起來[13],為復(fù)雜場景中大規(guī)模數(shù)據(jù)特征的自動提取帶來了希望,因此一些研究人員開始將DRL 應(yīng)用到推薦領(lǐng)域[14-17],并取得了不錯的效果。但目前在筆者的知識范圍內(nèi),將DRL 應(yīng)用到商品推薦領(lǐng)域的研究極少,而且現(xiàn)有的模型沒有綜合性解決用戶偏好動態(tài)變化、正負反饋包含的用戶對商品喜好的表達、未來回報率和推薦商品多樣性等問題,忽略了各要素之間的聯(lián)動影響。針對上述問題,本文構(gòu)建了基于改進的深度Q網(wǎng)絡(luò)(Improved Deep Q Network,IDQN)網(wǎng)絡(luò)結(jié)構(gòu)的商品推薦模型,該模型主要改進如下:
1)考慮正負反饋所代表的用戶對商品喜好的表達和商品購買的時序性問題,結(jié)合競爭架構(gòu)和長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)對深度Q 網(wǎng)絡(luò)(Deep Q Network,DQN)進行改進,設(shè)計了IDQN 結(jié)構(gòu)幫助系統(tǒng)更好地理解用戶;
2)將DQN 算法應(yīng)用于商品推薦中,同時考慮模型的當下回報和未來回報,準確把握用戶偏好的動態(tài)變化;
3)使用DBGD(Dueling Bandit Gradient Descent)作為模型的探索方法,在不影響推薦系統(tǒng)短期性能的同時,增加推薦商品的多樣性;
4)充分利用隱式反饋(點擊查看、添加購物車、購買和略過等)中包含的用戶信息對模型進行優(yōu)化和更新。
本文設(shè)計的IDQN 在競爭架構(gòu)的DQN 基礎(chǔ)之上進行改進,能夠?qū)χ岛瘮?shù)進行更快、更準確的估計。將狀態(tài)和動作共同決定的值函數(shù)用LSTM 結(jié)構(gòu)代替卷積層結(jié)構(gòu),而由狀態(tài)單獨決定的值函數(shù)中卷積結(jié)構(gòu)保持不變,可以很好地處理商品購買的時序性問題。根據(jù)正負反饋特征將同時基于狀態(tài)和動作的值函數(shù)的輸出拆分成兩個部分,解決了正負反饋不均衡的問題,使正反饋數(shù)據(jù)不至于被負反饋數(shù)據(jù)淹沒,合理利用正負反饋數(shù)據(jù)來對模型進行訓(xùn)練和更新。在構(gòu)建回報函數(shù)時借鑒DDQN(Double Deep Q Network)算法中改進的目標Q 值,消除了過高估計Q 值的問題,考慮當下回報和未來回報仿真模擬用戶偏好動態(tài)變化的過程。采用DBGD 算法對模型的探索策略進行設(shè)計,避免了算法模型的過擬合,加快了模型的收斂和最優(yōu)解的尋找速度,保證了系統(tǒng)的穩(wěn)定性。
線下實驗結(jié)果證明,基于IDQN 結(jié)構(gòu)的商品推薦模型的準確率、召回率、平均準確率(Mean Average Precision,MAP)和歸一化折損累計增益(Normalized Discounted Cumulative Gain,NDCG)與經(jīng)典模型中的最好表現(xiàn)相比,分別提高了69.8%、89.81%、95.00%、67.57%;線上實驗結(jié)果還表明本文設(shè)計的DBGD 探索函數(shù)能與用戶進行最佳交互,使得推薦的商品相似性更低,更具有多樣性。
隨著DRL 的不斷發(fā)展,DQN 算法的研究中也出現(xiàn)了很多經(jīng)典的網(wǎng)絡(luò)結(jié)構(gòu),本章首先以2013 年Mnih 等[18]第一次提出的DQN 模型為例,對DQN 結(jié)構(gòu)進行分析,指出DQN 結(jié)構(gòu)用于商品推薦中的優(yōu)缺點。
如圖1 所示,DQN 結(jié)構(gòu)除了輸入層和輸出層外,是由3 個卷積層和2個全連接層構(gòu)成的5層深度神經(jīng)網(wǎng)絡(luò)。
圖1 DQN結(jié)構(gòu)Fig.1 DQN structure
DQN 在特征識別上取得了很好的效果,從DQN 結(jié)構(gòu)中可以發(fā)現(xiàn)傳統(tǒng)DQN的優(yōu)點如下:
1)采用局部感知和權(quán)值共享相結(jié)合的形式,大大減少了網(wǎng)絡(luò)中需要進行訓(xùn)練的參數(shù)數(shù)量,使原本復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)變得簡單,同時加快了訓(xùn)練速度;
2)保留了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)中的卷積層,而沒有采用池化層,這樣做的原因是為了使輸入特征在位置上保持不變。
除上述優(yōu)點外,將DQN 應(yīng)用于商品推薦中存在的問題如下:
1)DQN 將CNN 提取出的抽象特征經(jīng)過全連接層后直接輸出對應(yīng)動作的Q 值,默認狀態(tài)動作值函數(shù)大小是與所有狀態(tài)和動作都相關(guān)的,降低了智能體在策略評估過程中正確識別行為的響應(yīng)速度。
2)DQN 結(jié)構(gòu)除了輸入層和輸出層外,采用了3 個卷積層和2 個全連接層構(gòu)成的5 層深度神經(jīng)網(wǎng)絡(luò),然而CNN 無法對時序性數(shù)據(jù)建模,因此DQN 無法對時序性數(shù)據(jù)進行充分的信息挖掘。
3)DQN 結(jié)構(gòu)只能接受固定大小的數(shù)據(jù)輸入,無法對正負反饋進行有效的區(qū)別性訓(xùn)練。
本章中關(guān)于商品推薦問題可以定義為:假設(shè)用戶u 向推薦系統(tǒng)發(fā)出瀏覽商品的請求,推薦代理G收到請求后,將用戶u的相關(guān)信息和待推薦商品池P輸入模型中,根據(jù)模型算法選出一組top-k商品列表L 進行推薦,用戶u 將對推薦列表L 給予相關(guān)反饋B。表1 對上述問題描述里和下文中將出現(xiàn)的符號進行定義。
下面將詳細介紹基于IDQN 結(jié)構(gòu)的商品推薦模型與其他模型的不同之處,主要分為IDQN 深度神經(jīng)網(wǎng)絡(luò)、模型回報函數(shù)的構(gòu)建、探索策略的設(shè)計、模型整體框架與算法原理。
表1 推薦模型符號定義Tab.1 Definition of recommendation model symbols
在對用戶-商品交互數(shù)據(jù)的分析中有兩點重要的發(fā)現(xiàn):一是用戶負反饋能夠在一定程度上幫助過濾用戶不喜歡的商品;二是用戶購買商品具有時序性特征。因此,首先根據(jù)用戶-商品交互行為構(gòu)建具有時序特征的正負反饋數(shù)據(jù)集;然后針對DQN 自身存在的問題提出了使用收斂速度更快更準確的基于競爭架構(gòu)的DQN 結(jié)構(gòu),并針對用戶購買商品時序性問題對其網(wǎng)絡(luò)結(jié)構(gòu)進行了改進,得到了改進的基于競爭架構(gòu)的DQN 結(jié)構(gòu);最后將用戶正負反饋考慮到改進的基于競爭架構(gòu)的DQN 結(jié)構(gòu)中,最終得到了融合用戶正負反饋的改進的DQN結(jié)構(gòu)模型。
2.1.1 基于用戶正負反饋的用戶-商品交互特征設(shè)計
定義1用戶正負反饋中,將當前的用戶反饋表示為s。s+={i1,i2,…,iN}表示用戶最近點擊查看、添加購物車或購買過的N個商品特征集合,即用戶正反饋信息的集合。s-={j1,j2,…,jM}表示用戶最近略過的M個商品特征集合,即用戶負反饋信息的集合。s=(s+,s-),其中,s+和s-中添加商品的順序是按照時間順序排列的。
定義2用戶-商品交互情況中,當推薦系統(tǒng)將商品a在s=(s+,s-)的狀態(tài)下推薦給用戶時,如圖2所示:若用戶對推薦商品a的行為為略過,那么正反饋保持不變=s+,同時更新負反饋={j1,j2,…,jM,a};若用戶對商品的行為為點擊查看、添加購物車或購買,那么負反饋保持不變=s-,同時更新正反饋={i1,i2,…,iN,a};此時的用戶-商品交互特征表示為s′=(,)。
圖2 正負反饋數(shù)據(jù)分類Fig.2 Classification of positive and negative feedback data
2.1.2 面向商品購買時序性的DQN結(jié)構(gòu)
在商品推薦過程的某些狀態(tài)下,值函數(shù)的大小與動作無關(guān)。針對這一問題本文采用一種基于競爭架構(gòu)的DQN,競爭網(wǎng)絡(luò)(如圖3所示)是將CNN中卷積層提取的抽象特征進行分流:一條分流是只依賴于狀態(tài)的值函數(shù),即狀態(tài)價值函數(shù);另一條分流代表同時依賴于狀態(tài)和動作的值函數(shù),即動作優(yōu)勢函數(shù)。實驗表明,當智能體在一定策略下不斷采取不同行為,但對應(yīng)函數(shù)值卻相同的情況下,基于競爭架構(gòu)的DQN 模型能夠?qū)χ岛瘮?shù)進行更快、更準確的估計。
圖3 基于競爭架構(gòu)的DQN結(jié)構(gòu)Fig.3 Structure of DQN based on competitive architecture
定義3競爭網(wǎng)絡(luò)優(yōu)勢評估函數(shù)為:
其中:Qπ(s,a)為狀態(tài)動作值函數(shù),表示在狀態(tài)s下根據(jù)策略π選擇動作a所獲的期望回報值;Vπ(s)為狀態(tài)價值函數(shù),表示狀態(tài)s下根據(jù)策略π產(chǎn)生的所有動作的價值的期望值;Aπ(s,a)表示狀態(tài)s下選擇動作a的優(yōu)勢。
定義4競爭網(wǎng)絡(luò)輸出值函數(shù)為:
其中:V(s;θ,β)表示輸出狀態(tài)價值函數(shù);A(s,a;θ,α)表示輸出動作優(yōu)勢函數(shù);θ、α、β分別表示對輸入層進行特征處理的網(wǎng)絡(luò)神經(jīng)元參數(shù)以及狀態(tài)價值函數(shù)和狀態(tài)函數(shù)的參數(shù)。
由于用戶的商品購買行為具有一定的時序性,針對這一特征本文對基于競爭架構(gòu)的DQN結(jié)構(gòu)進行了以下改進:
1)在基于競爭架構(gòu)的DQN 結(jié)構(gòu)中由于CNN 并不能對時序數(shù)據(jù)進行處理,而LSTM 在時序數(shù)據(jù)的處理上表現(xiàn)出了較好的效果,因此將卷積層換成LSTM結(jié)構(gòu)。
2)商品推薦模型的輸入數(shù)據(jù)主要包括用戶特征、上下文特征、商品特征和用戶-商品交互特征,在狀態(tài)s下選擇動作a的回報總和與所有輸入特征相關(guān),但是用戶自身特征具有的價值由用戶特征和上下文特征單獨決定,因此改進的模型中將狀態(tài)和動作共同決定的值函數(shù)用LSTM 結(jié)構(gòu)代替CNN 中的卷積層結(jié)構(gòu),而由狀態(tài)單獨決定的值函數(shù)中卷積結(jié)構(gòu)保持不變,改進后的模型結(jié)構(gòu)如圖4所示。
圖4 面向商品購買時序性的DQN結(jié)構(gòu)Fig.4 DQN structure for commodity purchase time-series feature
2.1.3 IDQN深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
本節(jié)將用戶正負反饋考慮到改進的基于競爭架構(gòu)的DQN 結(jié)構(gòu)中,最終得到了如圖5 所示融合用戶正負反饋的改進的DQN結(jié)構(gòu)(即IDQN結(jié)構(gòu))。
圖5 IDQN結(jié)構(gòu)Fig.5 IDQN structure
如圖5 所示,該結(jié)構(gòu)根據(jù)正負反饋特征將同時基于狀態(tài)和動作的值函數(shù)的輸入拆分成兩部分,將除負反饋特征外的所有特征輸入LSTM1 層中,將除正反饋特征外的所有特征輸入LSTM1′層中,分別經(jīng)過LSTM2 和LSTM2′后,一起進入全連接層FC1 和FC2,最終輸出狀態(tài)動作值函數(shù)Q2。用戶特征和上下文特征更加體現(xiàn)用戶本身的價值,因此單獨放進基于狀態(tài)的動作優(yōu)勢值函數(shù)中,通過兩層卷積層和兩層全連接層后輸出動作優(yōu)勢值函數(shù)Q1。
定義5IDQN最終值函數(shù)為:
其中:V(s;θ,β)表示狀態(tài)動作值函數(shù);A(s,a;θ,α)表示動作優(yōu)勢值函數(shù);s表示當前狀態(tài),a表示在狀態(tài)s下的動作選擇,θ、α、β分別代表狀態(tài)動作值函數(shù)、動作優(yōu)勢值函數(shù)的參數(shù)。狀態(tài)動作值函數(shù)和動作優(yōu)勢值函數(shù)的結(jié)合是通過聚合操作進行的。
大量研究表明,用戶購買行為的偏好處于動態(tài)變化之中。為了提高模型的準確率,本文在回報函數(shù)構(gòu)建時不僅考慮當下回報,同時考慮未來回報。
定義6在狀態(tài)s下遵循策略π直到情況結(jié)束,推薦代理G累積獲得的回報函數(shù)為:
其中:狀態(tài)s主要由用戶特征和上下文特征來表示,動作a主要由商品特征、商品-用戶交互特征共同決定,rimmediate表示當下回報,rfuture表示未來回報,γ∈[0,1]用來衡量未來回報對累積獎賞的影響。
在DQN 模型中,使用了一個獨立的網(wǎng)絡(luò)來對目標Q 值進行計算,容易引起學(xué)習(xí)過程中過高估計Q值的問題。本文采取DDQN算法中改進的目標Q值,使用兩套參數(shù)對Q網(wǎng)絡(luò)值進行訓(xùn)練和學(xué)習(xí):W和W-,其中W用來對最大Q值對應(yīng)的動作進行選擇,W-用來計算最優(yōu)動作所對應(yīng)的Q值。W和W-兩套參數(shù)的引入,將策略評估和動作選擇分離開,使過高估計Q值的問題得到了緩解,DDQN算法的目標Q值推導(dǎo)過程如下:
其中:ra,t+1表示推薦代理G選擇動作a時的當下回報,Wt和表示不同的兩組參數(shù),在這個公式中,推薦代理G將根據(jù)給定的動作a推測下一狀態(tài)sa,t+1?;诖?,給定一組候選動作{a′},根據(jù)參數(shù)Wt選擇給出最大未來回報的動作a′。在此之后,基于W-計算給定狀態(tài)sa,t+1的預(yù)計未來回報。每隔一段時間,Wt和將進行參數(shù)交換,通過這一過程,該模型消除了過高估計Q值的問題,并能夠做出同時考慮當下和未來回報的決策。
網(wǎng)絡(luò)參數(shù)的更新主要是通過最小化當前網(wǎng)絡(luò)Q值和目標網(wǎng)絡(luò)Q值之間的均方誤差來進行的,誤差函數(shù)如下:
強化學(xué)習(xí)主要以動態(tài)試錯機制不斷與環(huán)境進行交互,學(xué)習(xí)如何獲得最優(yōu)行為策略。因此,在與環(huán)境的交互過程中,agent不僅需要考慮值函數(shù)最大的動作,即利用(Exploitation),還需要盡可能多地選擇不同的動作,以找到最優(yōu)的策略,即探索(Exploration)。目前主要有三種探索策略被應(yīng)用于強化學(xué)習(xí)中,分別是ε-greedy算法、Boltzmanm 算法和DBGD算法。其中DBGD算法將原參數(shù)保持不變,在原參數(shù)的基礎(chǔ)上進行微小的變動獲得新的參數(shù),通過新參數(shù)和原參數(shù)推薦效果的比較,對原參數(shù)進行更新,既提高了算法的收斂速度,又保證了系統(tǒng)的穩(wěn)定性。因此,本文主要采用DBGD算法對探索策略進行設(shè)計。
在基于DBGD算法的探索策略設(shè)計中,推薦代理G將使用Exploitation 網(wǎng)絡(luò)生成推薦列表L,同時使用Exploration 網(wǎng)絡(luò)生成推薦列表L',然后將L和L'中推薦概率最高的前50%的商品分別取出交錯排列為用戶進行推薦[19],同時獲得用戶反饋。若用戶反饋表示Exploration 網(wǎng)絡(luò)生成的推薦商品更符合用戶心意,則Exploitation 網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)向Exploration 網(wǎng)絡(luò)參數(shù)方向更新,若用戶反饋表示Exploitation 網(wǎng)絡(luò)生成的推薦商品更符合用戶心意,則Exploitation網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)保持不變。
定義7Exploration網(wǎng)絡(luò)的參數(shù)表示公式如下:
其中:ΔW=α·rand(-1,1)·W,|ΔW|越大,表示探索程度越大,α為探索系數(shù),rand(-1,1)表示從-1~1隨機取一個參數(shù),W表示當前網(wǎng)絡(luò)參數(shù)。
定義8Exploitation網(wǎng)絡(luò)更新公式如下:
其中:β表示更新系數(shù)。采用DBGD 算法對模型中的探索策略進行設(shè)計,避免了一般探索過程中短期時間內(nèi)推薦模型性能下降的問題,將探索過程向好的方向引導(dǎo),加快了模型的收斂和最優(yōu)解的尋找速度。
結(jié)合上述研究方法以及本文的研究思路,提出了圖6 所示的基于IDQN結(jié)構(gòu)的商品推薦模型的框架。
圖6 系統(tǒng)框架Fig.6 System framework
如圖6 所示,該框架包括兩個部分:線下訓(xùn)練模塊和線上更新模塊。線下訓(xùn)練模塊主要利用用戶和商品間的交互日志訓(xùn)練得到離線模型,交互日志內(nèi)容包括用戶對商品的點擊、購買等行為。線上更新模塊主要對前期訓(xùn)練的網(wǎng)絡(luò)進行更新。具體交互流程如下:
1)輸入:模型的輸入主要是用戶特征、商品特征、用戶-商品交互特征和上下文特征。
2)策略:模型的策略部分主要采用了DQN 算法,同時采用DBGD 方法作為算法模型的探索,模型的網(wǎng)絡(luò)結(jié)構(gòu)為IDQN結(jié)構(gòu)。
3)輸出:當用戶u 向系統(tǒng)發(fā)出瀏覽商品請求時,將用戶u的特征和待推薦商品池P 中待推薦商品的特征輸入到推薦代理G 中,推薦代理G 將根據(jù)輸入信息生成一個top-k商品推薦列表L。
4)用戶反饋:當用戶u 接收到推薦列表L 的時候,會對L中的商品做出反饋,得到反饋結(jié)果B。
5)模型的單步更新:在每一步后,用戶u 的特征集、生成的推薦列表L、用戶u 對推薦列表L 的反饋B,生成數(shù)據(jù)集{u,L,B}。推薦代理G將會根據(jù)主要推薦網(wǎng)絡(luò)Q和基于探索的推薦網(wǎng)絡(luò)Q~的表現(xiàn)情況進行模型的更新。
6)模型的多步更新:模型采用了經(jīng)驗回放技術(shù),每隔N步推薦代理G將會根據(jù)之前存儲在經(jīng)驗池中的數(shù)據(jù)來更新主要推薦網(wǎng)絡(luò)Q,多步更新主要是為了減少樣本間的相關(guān)性,提高模型訓(xùn)練的準確率。
7)重復(fù)進行1)~6)的過程。
在IDQN 結(jié)構(gòu)的基礎(chǔ)上,使用DQN 算法,結(jié)合其經(jīng)驗回放技術(shù),構(gòu)建如下基于IDQN結(jié)構(gòu)的商品推薦算法:
本文實驗數(shù)據(jù)分為線下實驗數(shù)據(jù)和線上實驗數(shù)據(jù)。線下實驗數(shù)據(jù)主要使用Retailrocket 推薦系統(tǒng)數(shù)據(jù)集(Kaggle 網(wǎng)站頂級數(shù)據(jù)集),該數(shù)據(jù)集采集了真實電子商務(wù)交易網(wǎng)站中的推薦數(shù)據(jù);線上實驗數(shù)據(jù)主要在“什么值得買”app 上進行采集(下文統(tǒng)一用“線上推薦數(shù)據(jù)集”表示)。
經(jīng)過數(shù)據(jù)預(yù)處理后,Retailrocket 推薦系統(tǒng)數(shù)據(jù)集中可用數(shù)據(jù)如表2 所示。為了模擬真實的商品推薦過程,在線下訓(xùn)練數(shù)據(jù)中,對于每個用戶,將其購買記錄按照購買時間排序,取前80%作為訓(xùn)練集,后20%作為測試集。
下面將分別對Retailrocket 推薦系統(tǒng)數(shù)據(jù)集和線上推薦數(shù)據(jù)集中的數(shù)據(jù)按照用戶請求訪問推薦商品的次數(shù)、商品被推薦的次數(shù)、用戶與商品交互時間進行統(tǒng)計和分析。
1)用戶請求訪問推薦商品的次數(shù)和商品被推薦的次數(shù)統(tǒng)計。
將上述數(shù)據(jù)進行統(tǒng)計后可以得到每個用戶請求訪問推薦商品的次數(shù)和每個商品被推薦的次數(shù),如圖7所示。
如圖7為用戶和商品的基本數(shù)據(jù)統(tǒng)計圖,通過對圖7觀察發(fā)現(xiàn),這兩組數(shù)據(jù)集均呈現(xiàn)傾斜狀態(tài),說明用戶訪問商品的次數(shù)具有長尾分布特征,即大部分用戶訪問次數(shù)少于500,而每個商品被推薦的次數(shù)也存在長尾分布特征,大部分商品被推薦的次數(shù)少于100。
2)用戶與商品交互時間統(tǒng)計。
如圖8所示,圖(a)和圖(b)分別為Retailrocket推薦系統(tǒng)數(shù)據(jù)集和線上推薦數(shù)據(jù)集中用戶和商品交互時間統(tǒng)計圖,其中,0:00 到6:00 點用戶行為發(fā)生次數(shù)呈下降趨勢,7:00 到16:00呈上升趨勢,17:00到24:00首先出現(xiàn)下降趨勢,然后經(jīng)過一個小的波動后趨于平穩(wěn),這一趨勢基本符合正常人的作息時間。
圖7 用戶和商品基本數(shù)據(jù)統(tǒng)計Fig.7 Basic data statistics of users and commodities
圖8 用戶和商品交互時間統(tǒng)計Fig.8 Interaction time statistics of users and commodities
3.2.1 對比基準模型
為了驗證本文所提出的基于IDQN 結(jié)構(gòu)的商品推薦模型在推薦精度和商品多樣性等方面優(yōu)于目前已有的優(yōu)秀的線上推薦模型,本文選取因子分解機(Factorization Machine,F(xiàn)M)模型[20]、W&D(Wide & Deep learning)模型[21]和協(xié)同過濾(Collaborative Filtering,CF)模型作為對照模型。
3.2.2 模型評價指標
為了對比各模型的推薦效果,本文分別選取了準確率(Precision)[22]、召回率(Recall)[22]、MAP[22]、NDCG[23]和商品多樣性(Intra-list Similarity,ILS)[24]這5 組指標作為模型的評估標準。其中模型是針對341 032個用戶分別進行推薦預(yù)測,得到的指標值是所有用戶預(yù)測結(jié)果的平均值。
3.2.3 實驗方案設(shè)計
本文主要設(shè)置了1 個實驗組和12 個對照組,具體內(nèi)容和區(qū)別如表3 所示。在網(wǎng)絡(luò)結(jié)構(gòu)中T-DQN 表示傳統(tǒng)DQN 結(jié)構(gòu),DN 表示基于競爭架構(gòu)的DQN 結(jié)構(gòu),NF 表示考慮用戶負反饋的DQN 結(jié)構(gòu),PT 表示考慮用戶購買時序性的DQN 結(jié)構(gòu),在探索函數(shù)中EG指ε-greedy算法,BM指Boltzmanm算法。
其中,實驗組完全按照本文基于IDQN結(jié)構(gòu)的商品推薦模型設(shè)計思路進行。對照實驗共設(shè)置了12組,第1組到第7組主要是為了測試本文在傳統(tǒng)DQN結(jié)構(gòu)的基礎(chǔ)上進行的3個方面的改進是否使推薦的準確率、召回率、MAP 和NDCG 得到提升,其中這3 個方面的改進分別為DN、NF 和PT;第8 組和第9組主要為了測試DBGD 探索策略性能的優(yōu)劣,分別采用EG 和BM這兩種常用的探索策略作為對照,模型的評價指標除了準確率、召回率、MAP、NDCG 之外,更重要的是商品推薦多樣性是否有所增強;第10組~第12組為對比基準模型,用于驗證本文提出的模型是否優(yōu)于這些推薦領(lǐng)域中的經(jīng)典模型。
表3 實驗方案設(shè)計Tab.3 Experimental scheme design
3.3.1 實驗設(shè)置
本文采用Grid Search 方法來確定模型的參數(shù),從而找到準確率最高的參數(shù)組合,表4 是通過網(wǎng)格搜索法確定的最優(yōu)參數(shù)組合。
3.3.2 模型評價指標
線下實驗主要是依據(jù)離線數(shù)據(jù)進行的,離線數(shù)據(jù)是靜態(tài)的,無法對探索策略的性能進行測試,因此在線下實驗中不考慮探索策略對推薦商品多樣性的影響,只考慮不同模型在Precision、Recall、MAP和NDCG上的區(qū)別。
本文對實驗設(shè)計方案中的1個實驗組和12個對照組分別進行了線下實驗,實驗數(shù)據(jù)結(jié)果如表5 所示,實驗的圖形展示如圖9所示。
表4 參數(shù)設(shè)置表Tab.4 Parameter setting
表5 線下推薦實驗的推薦效果Tab.5 Recommendation effects of offline recommendation experiments
實驗結(jié)果表明,實驗組的推薦效果在整體上明顯優(yōu)于其余12 個對照組,證明基于IDQN 結(jié)構(gòu)的商品推薦模型具有更好的推薦效果,其中,Precision@5推薦準確率最高,Recall@10召回率最高。在推薦準確率上,實驗組和對照組1~7 中表現(xiàn)最差的為Precision@5 中的對照組4,推薦準確率為0.098 6,在經(jīng)典推薦模型中表現(xiàn)最好的為Precision@10 中的W&D,推薦準確率為0.064 7,準確率提高了52.40%,本文提出的模型即實驗組,推薦準確率在Precision@20 中表現(xiàn)最差,推薦準確率為0.167 2,與W&D 相比,推薦準確率提高了158.42%;在推薦召回率上,實驗組和對照組1~7 中表現(xiàn)最差的為Recall@20中的對照組1,推薦召回率為0.110 9,在經(jīng)典推薦模型中表現(xiàn)最好的為Recall@10 中的FM,推薦召回率為0.102 1,召回率提高了8.62%,實驗組推薦召回率表現(xiàn)最差的Recall@5,推薦召回率為0.193 8,與W&D 相比,推薦召回率提高了89.81%;在推薦MAP 值上,實驗組和對照組1~7 中表現(xiàn)最差的為對照組2,MAP值為0.070 6,在經(jīng)典推薦模型中表現(xiàn)最好的為W&D,MAP 值為0.050 1,MAP 值提高了40.92%,本文提出的模型即實驗組,MAP 值為0.097 7,與W&D 相比,MAP 值提高了95.00%;在NDCG 值上,實驗組和對照組1~7 中表現(xiàn)最差的為對照組2,NDCG 值為0.170 2,在經(jīng)典推薦模型中表現(xiàn) 最 好 的 為W&D,NDCG 值 為0.151 7,NDCG 值 提 高 了12.20%,本文提出的模型即實驗組,NDCG 值為0.254 2,與W&D相比,NDCG值提高了67.57%。
綜上可以發(fā)現(xiàn),在推薦準確率、召回率、MAP和NDCG上,實驗組和對照組1~7中表現(xiàn)最差的與經(jīng)典模型中表現(xiàn)最好的相比,精度分別提高了52.40%、8.62%、40.92%、12.20%,證明了將DQN 模型應(yīng)用于商品推薦中的有效性和可行性,將本文提出的模型與經(jīng)典模型中表現(xiàn)最好的相比,精度分別提高了158.42%、89.81%、95.00%、67.57%,驗證了本文提出的模型在商品推薦中具有更好的推薦效果。
圖9 線下推薦實驗結(jié)果比較Fig.9 Comparison of offline recommendation experimental results
3.3.3 線上實驗及結(jié)果分析
線上實驗部分主要是將該模型放到電子商務(wù)推薦平臺上,進行一定時長的線上測試。在線上實驗中不僅要考慮推薦效果(準確率/召回率/MAP/NDCG),更重要的是要考慮商品推薦的多樣性。本文設(shè)計的基于DBGD 算法的探索策略,能夠通過這一策略為用戶推薦新穎且感興趣的商品,而推薦效果和商品多樣性這兩個評價指標能夠較好地反映這一問題。
1)推薦效果。
本文對實驗設(shè)計方案中的1個實驗組和12個對照組分別進行了線上實驗,實驗數(shù)據(jù)結(jié)果如表6 所示,實驗的圖形展示如圖10所示。
表6 線上推薦實驗推薦效果Tab.6 Recommendation effects of online recommendation experiments
實驗結(jié)果表明,實驗組的推薦效果在整體上明顯優(yōu)于其余12 個對照組,證明本文提出的基于IDQN 的網(wǎng)絡(luò)結(jié)構(gòu)的商品推薦模型具有更好的推薦效果。根據(jù)實驗設(shè)計方案得知,實驗組、對照組8和9分別使用DBGD、EG、BM作為探索函數(shù),在離線實驗環(huán)境下,由于候選商品的集合有限,無法充分利用探索算法與用戶進行最佳的交互,而在線上推薦中可以明顯看出實驗組相較于對照組8~9 具有更好的推薦效果,因此驗證了本文設(shè)計的DBGD探索函數(shù)的可行性和優(yōu)越性。
2)商品多樣性。
本文分別對1 個實驗組和12 個對照組進行了線上測試,得出了推薦商品多樣性的結(jié)果,商品多樣性由指標ILS 表示,而ILS 主要用來衡量推薦商品之間的相似性,因此ILS 值越小,表明推薦商品相似性越低,即推薦的商品更具多樣性。實驗數(shù)據(jù)結(jié)果如表7所示,實驗的圖形展示如圖11所示。
圖10 線上推薦實驗結(jié)果比較Fig.10 Comparison of online recommendation experimental results
表7 線上推薦實驗商品多樣性Tab.7 Commodity diversity of online recommendation experiments
圖11 推薦商品多樣性Fig.11 Diversity of recommended commodities
其中實驗組和對照組1~7 使用DBGD 作為探索函數(shù),對照組8 采用EG 作為探索函數(shù),對照組9 使用BM 作為探索函數(shù)。從推薦商品多樣性的結(jié)果中可以看出,實驗組和對照組1~7 的ILS 值明顯低于對照組8~9,同時遠遠低于對比基準模型,表明使用本文提出的DBGD 算法作為商品推薦模型的探索函數(shù)增加了商品推薦的多樣性。
本文在前人研究的基礎(chǔ)上,針對商品推薦中存在的用戶正負反饋問題和商品購買時序性問題,對傳統(tǒng)DQN 模型的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進行分析和改進,構(gòu)建了一個基于IDQN 結(jié)構(gòu)的商品推薦模型,該模型針對用戶興趣動態(tài)變化問題使用強化學(xué)習(xí)的試錯機制進行在線學(xué)習(xí),學(xué)習(xí)以最大化智能體從環(huán)境中獲得的累積回報為目標,同時采用“利用+探索”的策略對商品進行推薦,對比實驗結(jié)果表明,本文提出的模型無論是在推薦效果還是在推薦商品多樣性上都優(yōu)于現(xiàn)有的推薦模型。
本文首次嘗試將改進的DQN 應(yīng)用于商品推薦領(lǐng)域,同時對探索函數(shù)進行了針對性改進,增加了算法的穩(wěn)定性,使推薦效果有了較大提高。但是由于時間和精力有限,本文在研究中還存在以下四個方面的缺點和不足:1)實驗數(shù)據(jù)量不足,商品-用戶數(shù)據(jù)較少;2)線下實驗數(shù)據(jù)集單一,只有一個Retailrocket推薦系統(tǒng)數(shù)據(jù)集,需要擴充數(shù)據(jù)集;3)線上實驗時間不足,由于推薦平臺的限制,本文線上實驗時間僅為兩周;4)在用戶反饋中沒有將用戶行為進行區(qū)分,一般來說,略過、點擊查看、加入購物車和購買依次表現(xiàn)了用戶對商品喜好程度的增加,而本文在用戶反饋中沒有對用戶行為進行區(qū)分。