丁勇
(云南師范大學(xué) 文理學(xué)院,云南 昆明 650228)
隨著各類網(wǎng)絡(luò)軟件的開發(fā),促進了信息數(shù)量的大幅增加。為了在大量網(wǎng)絡(luò)信息中獲取自己所需的內(nèi)容,需要對這些信息進行快速處理,從中提煉出滿足自身需求的信息數(shù)據(jù),這就要求開發(fā)更加高效的信息服務(wù)技術(shù)。如果因為信息量過大而導(dǎo)致信息收集困難時,便會出現(xiàn)“信息過載”的問題,反而降低了信息利用率[1-3]。為了滿足人們的信息收集需求,通常會在智能設(shè)備上安裝搜索引擎進行信息檢索,從而有效克服信息過載的情況,能夠?qū)崿F(xiàn)對互聯(lián)網(wǎng)信息的快速收集、分類,并將這些數(shù)據(jù)存入到網(wǎng)頁中,便于用戶進行查詢,之后根據(jù)用戶的實際搜索請求將結(jié)果傳輸至終端界面[4-5]。由于搜索引擎可以對大量的數(shù)據(jù)信息先做好分類,此時用戶只需將搜索信息的關(guān)鍵字輸入后便可以從系統(tǒng)中檢索出精確匹配詞條的內(nèi)容,并根據(jù)匹配度的高低顯示搜索結(jié)果,確保用戶可以更加高效地查詢到所需的信息內(nèi)容。而進行實際應(yīng)用的過程中,搜索引擎檢索信息量大,因此還需用戶花費較多時間進行信息篩選[6-7]。
隨機離散馬爾可夫決策過程(MDP)是一種動態(tài)規(guī)劃的方法,此方法類似于強化學(xué)習(xí)試錯迭代過程,雖然只通過強化學(xué)習(xí)的方式對馬爾可夫決策過程進行求解,仍然使其成為當(dāng)前強化學(xué)習(xí)理論的一個重要框架[8-11]。Yin設(shè)計了Q-learning,促進了強化學(xué)習(xí)方式的進一步推廣[12]。采用Q-learning可以實現(xiàn)在無回報函數(shù)與狀態(tài)轉(zhuǎn)換函數(shù)的條件下也能夠求解得到最佳的動作策略[13]。本文在前人研究的基礎(chǔ)上,設(shè)計了一種包含了時間影響因素的SVDPP算法,并把該關(guān)系映射至馬爾可夫決策過程,再把時間影響添加至推薦算法SVDPP模型內(nèi),由此獲得包含了時間戳參數(shù)的RL-TSVDPP優(yōu)化模型。
從原始數(shù)據(jù)集中提取的部分?jǐn)?shù)據(jù)如表1所示。
表1 原始數(shù)據(jù)集部分?jǐn)?shù)據(jù)
其中,最后一列屬于時間戳,對其格式進行適當(dāng)轉(zhuǎn)換可以獲得日期結(jié)果,例如可以將20101216182630轉(zhuǎn)變?yōu)?010-12-16,18:26:30的時間參數(shù),而以數(shù)字形式則更加便于對比。根據(jù)時間戳對用戶-電影-評分實施排序并對各用戶評價后的電影數(shù)量(count)進行統(tǒng)計得到ActionTemp表。
RL-TSVDPP算法包含了訓(xùn)練和預(yù)測2個部分。對于訓(xùn)練部分應(yīng)通過強化學(xué)習(xí)算法來訓(xùn)練經(jīng)過預(yù)處理的數(shù)據(jù)集,通過計算獎懲函數(shù)獲得相應(yīng)的獎懲表,實現(xiàn)對Q表內(nèi)容的更新得到Q-table。結(jié)合之前用戶對電影作出的評分從Q-table內(nèi)確定相應(yīng)的Q值,再利用Q值完成SVDPP模型的訓(xùn)練過程。
進行預(yù)測時,利用包含時間信息參數(shù)的RL-TSVDPP算法模型計算出預(yù)測評分,由此得到的算法預(yù)測模型為式(1)。
(1)
式中,bu(t)、qT、bi(t)、p(t)都是考慮時間影響條件下的訓(xùn)練參數(shù)。
先通過預(yù)處理得到的數(shù)據(jù)計算出獎懲值,并將其表示成獎懲表,之后對數(shù)據(jù)進行更新,由此得到Q-table。同時結(jié)合用戶前兩次給出的電影評分從Q-table內(nèi)獲取相應(yīng)的Q值,再利用此Q值訓(xùn)練SVDPP模型。
(2)
按照和梯度反向的方式進行移動,實現(xiàn)參數(shù)修正的過程為式(3)。
bu←bu+γ·(eui-λ·bu)
bi←bi+γ·(eui-λ·bi)
pu←pu+γ·(eui·qi-λ·pu)
qi←qi+γ·(eui·pu-λ·qi)
(3)
采用RL-TSVDPP算法進行處理時把Q-table的Q值代入式(4)。
(4)
其中,Q(s,a)表示用戶u觀察電影i前t-1和t-2時的電影評分,在t=1和t=2的條件下,以Q表平均值作為st-2,at-2取值。同時利用時間影響對SVDPP算法進行訓(xùn)練并優(yōu)化,由此獲得融合時間戳數(shù)據(jù)。
利用之前訓(xùn)練獲得的bu(t)、bi(t)、qT對模型進行預(yù)測,由此獲得融合時間戳預(yù)測評分。
實現(xiàn)RL-TSVDPP算法的偽代碼如下。
輸入:用戶數(shù)量N;用戶評過分的電影數(shù)量M;學(xué)習(xí)率α;折扣因子γ。
1.對Q-table進行初始化,對任意s∈S,a∈A;
2.從數(shù)據(jù)中獲取初始狀態(tài)s,動作a;
3.foreachepisodei=1:Ndo
4.fork=1:Mido
5.根據(jù)式(1)計算獎懲函數(shù);
6.將計算出的獎賞值更新Q-table;
7.endfor8.endfor
9.將Q-table用于式(3)訓(xùn)練參數(shù);
10.預(yù)測模型計算預(yù)測評分。
為驗證本文設(shè)計的優(yōu)化算法有效性,進行實驗時除預(yù)測SVDPP模型獲得RL-TSVDPP模型之外,還設(shè)置了對照組實驗,同時訓(xùn)練了SVD模型并構(gòu)建RL-TSVD預(yù)測模型??紤]這2種模型都是按照用戶-電影-評分-時間的方式獲得Q-table,無需采用推薦算法,因此進行計算時通過獎懲函數(shù)得到的獎懲表和更新得到的Q-table是相同的,獎懲表和Q-table結(jié)果分別如表2、表3所示。
表2 基于訓(xùn)練集得到的獎懲表
表3 基于訓(xùn)練集更新后的Q-table
為了便于用戶更直觀進行觀察,本文對表2中的數(shù)據(jù)進行作圖形成三維結(jié)構(gòu),可以明顯看到Q-table數(shù)據(jù)在整個空間中保持基本恒定的狀態(tài),只發(fā)生了小幅的起伏變化,表明時間戳參數(shù)確實會影響到預(yù)測結(jié)果,如圖1所示。
圖1 RL-TSVDPP算法Q-table三維圖
接著,把Q-table數(shù)據(jù)引入SVDPP訓(xùn)練模型中計算出bu(t)、qT(t)、bi(t)、p,由此實現(xiàn)在預(yù)測模型中通過融合時間戳參數(shù)進行用戶評分預(yù)測。對實驗結(jié)果計算出評價指標(biāo)的均方根誤差,同時對比前期計算得到的RL-TSVD模型,獲得結(jié)果如表4所示。
表4 RL-TSVDPP算法與已有SVDPP的RMSE對比
對表4進行分析可知,由于RL-TSVD與RL-TSVDPP 2個模型中包含了時間效應(yīng)參數(shù),與原模型相比,可以更加準(zhǔn)確預(yù)測出用戶的評分,依次提升0.017和0.022。采用SVDPP預(yù)測評分方法優(yōu)化馬爾科夫過程,相對于以Q-learning算法進行優(yōu)化的RL-SVDPP算法,RL-SVDPP算法利用先處理數(shù)據(jù)集分析時間因素的影響,之后通過推薦模型訓(xùn)練參數(shù)對用戶電影評分進行預(yù)測可以獲得更高的準(zhǔn)確率。
在MovieLens1M數(shù)據(jù)集中總共存在6 050個用戶針對3 960個影片給出的約1億條評分,訓(xùn)練集占比達(dá)到80%,采用分布式方法處理訓(xùn)練集時應(yīng)先通過用戶ID進行數(shù)據(jù)集排序,之后分割排序得到的數(shù)據(jù)集,各子節(jié)點按照用戶ID數(shù)據(jù)對分割得到的數(shù)據(jù)進行處理,在本研究中根據(jù)用戶ID類型分割數(shù)據(jù)集,先根據(jù)用戶ID對數(shù)據(jù)實施排序,再以分段方式傳輸至各主機,通過每個子節(jié)點對數(shù)據(jù)進行時間戳排序,同時計算得到各用戶已經(jīng)作出評分的電影數(shù)量,之后對此類電影重新設(shè)置編號,根據(jù)時間的先后順序構(gòu)建編號-評分索引,再匯總上述結(jié)果并進行后續(xù)計算,具體的處理過程如圖2所示。
圖2 數(shù)據(jù)預(yù)處理分布式框架
Data表示原Movielens的數(shù)據(jù)集,D1、D2、D3是根據(jù)ID段號進行分割得到的數(shù)據(jù)集,d1、d2、d3是根據(jù)時間戳進行排序獲得的數(shù)據(jù)集,data是合并d1、d2、d3獲得的數(shù)據(jù)集。
對分布式計算數(shù)據(jù)集先進行預(yù)處理,獲得按照時間戳順序?qū)τ脩簟㈦娪?、評分進行排序的結(jié)果,利用上述處理得到的數(shù)據(jù)作為后續(xù)計算過程的參數(shù),該過程需消耗18 h的時間,相對于未分布式處理前的情況,縮短了近2 h,可以節(jié)省近10%時間,由此表明可以通過分布式數(shù)據(jù)預(yù)處理的方法來顯著提高計算效率。對程序耗時進行分析發(fā)現(xiàn),存在以多重for循環(huán)情況,其中,以雙重for循環(huán)所需的耗時為n平方,以三重for循環(huán)進行處理時耗時為n三次方,隨著n的增大,形成了更長的n平方耗時。
本文設(shè)計了一種包含了時間影響因素的SVDPP算法,并把該關(guān)系映射至馬爾可夫決策過程,再把時間影響添加至推薦算法SVDPP模型內(nèi),由此獲得包含了時間戳參數(shù)的RL-TSVDPP優(yōu)化模型。通過測試發(fā)現(xiàn)。
1)RL-SVDPP算法利用先處理數(shù)據(jù)集分析時間因素的影響,通過推薦模型訓(xùn)練參數(shù)對用戶電影評分進行預(yù)測可以獲得更高的準(zhǔn)確率。
2)通過分布式數(shù)據(jù)預(yù)處理的方法來顯著提高計算效率,為SVDPP模型添加時間影響因素是完全可行的,將此類影響因素加入用戶預(yù)測評分可以有效提升推薦準(zhǔn)確性。