王世杰, 高鑫, 許舒翔
(1.國(guó)家電網(wǎng)公司西北分部, 陜西 西安 710048;2.國(guó)電南瑞科技股份有限公司, 江蘇 南京 211106)
在當(dāng)前信息數(shù)量規(guī)模呈現(xiàn)爆發(fā)式增長(zhǎng)的情況下,如果只采用由單一因素構(gòu)成的推薦系統(tǒng)進(jìn)行分析時(shí)將難以適應(yīng)人們對(duì)于實(shí)際需求的變化,因此無(wú)法通過(guò)此類推薦系統(tǒng)獲得合適的推薦結(jié)果,從而極大增加了選擇的難度[1-5]。為有效提升推薦效率,應(yīng)綜合考慮多個(gè)方面的各類影響因素,實(shí)現(xiàn)精度的大幅提升以及全面優(yōu)化各項(xiàng)評(píng)價(jià)指標(biāo)[6]。以上各項(xiàng)信息由多個(gè)異構(gòu)數(shù)據(jù)共同構(gòu)成,在這種情況下使用深度學(xué)習(xí)方法能夠高效提取各類異構(gòu)數(shù)據(jù)的低維特征,從中挖掘?qū)嶋H有用的信息,之后再把此類信息融合到傳統(tǒng)推薦系統(tǒng)內(nèi),之后再處理以傳統(tǒng)算法無(wú)法處理的內(nèi)容,顯著改善推薦效果[7-9]。綜合運(yùn)用深度學(xué)習(xí)方法和傳統(tǒng)算法能夠進(jìn)一步增強(qiáng)推薦系統(tǒng)運(yùn)算效能。其中,深度學(xué)習(xí)方法能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)深層次特征的精確分析與提取[10-12]。采用棧式降噪編碼器可以提取得到一些隱藏的信息數(shù)據(jù),不過(guò)該方法只是單一進(jìn)行特征參數(shù)提取,而沒有充分體現(xiàn)物品各項(xiàng)隱藏特征的相互效果,以上述機(jī)械相加的模式并不能獲得更優(yōu)的綜合效果,導(dǎo)致融合算法效能受到限制[12-13]。
采用交互方式可以使輔助信息達(dá)到更高的利用率,由此構(gòu)建更加完善的評(píng)分矩陣,同時(shí)設(shè)置了評(píng)分優(yōu)化權(quán)重,顯著提高物品推薦能力[14-16]。對(duì)此算法進(jìn)行測(cè)試發(fā)現(xiàn),可以顯著克服用戶與物品發(fā)生冷啟動(dòng)的情況,從而減小了擬合誤差,使推薦物品獲得更高好評(píng)度。
深度協(xié)同雙向約束算法(DCBCA)將評(píng)分優(yōu)化權(quán)重加入通過(guò)自編碼器構(gòu)建的交互式混合推薦算法,根據(jù)評(píng)分優(yōu)化權(quán)重對(duì)推薦物品實(shí)施好評(píng)度優(yōu)化,通過(guò)自編碼器構(gòu)建的交互式混合算法時(shí)能夠克服數(shù)據(jù)稀疏以及避免冷啟動(dòng)過(guò)程。此算法可以協(xié)調(diào)優(yōu)化物品與用戶的匹配性,使推薦系統(tǒng)發(fā)揮更高的效能。
DCBCA由多個(gè)部分組成,包括評(píng)分優(yōu)化、棧式自動(dòng)編碼器以及概率矩陣分解。整個(gè)系統(tǒng)的具體結(jié)構(gòu),如圖1所示。

圖1 DCBCA的結(jié)構(gòu)示意圖
其中,位于圖1左邊區(qū)域是通過(guò)自編碼器實(shí)現(xiàn)的交互混合算法,同時(shí)在右邊區(qū)域設(shè)置了評(píng)分優(yōu)化權(quán)重。
DCBCA的損失函數(shù)向量化表示,如式(1)。
DCBCA在運(yùn)行階段包含了以下各步驟。
(1) 首先輸入用戶和物品對(duì)應(yīng)的評(píng)分矩陣、評(píng)分?jǐn)?shù)據(jù)集,完成數(shù)據(jù)的初始化之后再將其輸入至各模塊。
(2) 以交互模式訓(xùn)練自動(dòng)編碼器與各矩陣的分解模塊。
(3) 在評(píng)分?jǐn)?shù)據(jù)集E上優(yōu)化各項(xiàng)模塊參數(shù)。
(4) 更新所有隱藏特征,同時(shí)建立評(píng)分重組矩陣。
(5) 通過(guò)評(píng)分優(yōu)化模塊對(duì)推薦列表實(shí)施優(yōu)化。
(6) 將得到的推薦列表結(jié)果進(jìn)行輸出。
以DCBCA進(jìn)行電影推薦的具體流程,如圖2所示。

圖2 算法計(jì)算流程
利用數(shù)據(jù)集逐層訓(xùn)練SDAE網(wǎng)絡(luò),同時(shí)比較輸出層與輸入層中包含的數(shù)據(jù),并對(duì)網(wǎng)絡(luò)的重構(gòu)誤差進(jìn)行分析。之后存儲(chǔ)經(jīng)過(guò)訓(xùn)練得到的權(quán)重以及偏置數(shù)據(jù),并重新建立訓(xùn)練得到的網(wǎng)絡(luò)編碼,再輸入訓(xùn)練數(shù)據(jù)并在最底層生成數(shù)據(jù)低維特征。
算法交互過(guò)程出現(xiàn)于SDAE底部隱藏層中以及利用矩陣分解方法形成的低維矩陣內(nèi)。
在優(yōu)化評(píng)分的過(guò)程中,應(yīng)結(jié)合用戶評(píng)分方差對(duì)算法實(shí)施調(diào)整后以達(dá)到評(píng)分函數(shù)優(yōu)化的效果,先歸一化處理擬合函數(shù)輸出結(jié)果,在此基礎(chǔ)上根據(jù)該數(shù)值的權(quán)重排序得到的推薦列表,再把結(jié)果推薦給用戶,最大程度發(fā)揮推薦系統(tǒng)效能。
本文為算法測(cè)試構(gòu)建了從GroupLens網(wǎng)站下載MovieLens數(shù)據(jù)集,此數(shù)據(jù)集是通過(guò)尼蘇達(dá)大學(xué)從MovieLens網(wǎng)站進(jìn)行收集得到,總共包含了1 927部電影以及1 418位用戶,各用戶都對(duì)20部以上的電影實(shí)施評(píng)分并對(duì)各項(xiàng)結(jié)果進(jìn)行了記錄。
從不同時(shí)間段中爬取得到豆瓣電影評(píng)分內(nèi)容,包含了所有熱門電影評(píng)分?jǐn)?shù)據(jù),依次爬取用戶名稱、觀看時(shí)間、電影名稱、評(píng)分?jǐn)?shù)值與時(shí)間。經(jīng)過(guò)重復(fù)操作獲得測(cè)試數(shù)據(jù)。
根據(jù)R對(duì)比測(cè)試結(jié)果,進(jìn)行十折交叉驗(yàn)證并計(jì)算平均結(jié)果,如圖3所示。

圖3 兩種算法的平均召回率
從圖3中可以看到以二種算法測(cè)試數(shù)據(jù)集得到的R值,其中,橫軸表示推薦數(shù)量,縱軸表示R。在上述二個(gè)算法中通過(guò)自編碼器實(shí)現(xiàn)的交互式混合推薦算法達(dá)到了最優(yōu)異表現(xiàn)性能。同時(shí)可以發(fā)現(xiàn),當(dāng)推薦數(shù)量K增大后,二個(gè)算法都提高了召回率R,對(duì)R進(jìn)行計(jì)算時(shí),保持固定的喜歡物品數(shù),因此當(dāng)用戶推薦數(shù)增加后,將以更大概率覆蓋用戶喜歡物品,顯著提高覆蓋數(shù)量,獲得更大的R值。根據(jù)以上分析可知,利用自編碼器構(gòu)建交互式混合推薦算法可以獲得更大的R。
對(duì)各算法進(jìn)行測(cè)試后發(fā)現(xiàn),當(dāng)以R指標(biāo)進(jìn)行評(píng)價(jià)時(shí),利用自編碼器構(gòu)建得到的交互式混合推薦算法與采用自編碼器實(shí)現(xiàn)的混合推薦算法可以顯著提高推薦效能。總共選擇二個(gè)具有不同稀疏性的數(shù)據(jù)集進(jìn)行測(cè)試。對(duì)于上述二個(gè)數(shù)據(jù)集測(cè)試后得到,在自編碼器上建立交互混合推薦算法一方面可以獲得優(yōu)異推薦性能,同時(shí)還具備明顯魯棒性。
在測(cè)試階段應(yīng)先對(duì)各項(xiàng)電影信息進(jìn)行輸入,通過(guò)k近鄰模式搜索出相似電影,之后通過(guò)棧式自編碼器完成低維特征的提取,接著通過(guò)概率矩陣分解的方式完成數(shù)據(jù)分析,二個(gè)模塊之間可以建立信息交互渠道,同時(shí)利用兩部分對(duì)應(yīng)的占比分析模塊應(yīng)實(shí)現(xiàn)的任務(wù)方向,從而防止發(fā)生冷啟動(dòng)問(wèn)題,當(dāng)遇到某一模塊出現(xiàn)缺失信息的情況時(shí)也可以通過(guò)另一模塊來(lái)達(dá)到彌補(bǔ)的效果。利用評(píng)分優(yōu)化算法評(píng)價(jià)二個(gè)模塊輸出,同時(shí)優(yōu)化推薦列表,最后利用重組矩陣提供推薦信息。
對(duì)算法進(jìn)行測(cè)試的具體流程,如圖4所示。

圖4 測(cè)試流程圖
通過(guò)DCBCA方法為用戶提供長(zhǎng)久推薦信息,測(cè)試得到的結(jié)果,如表1所示。

表1 DCBCA測(cè)試數(shù)據(jù)
DCBCA依次從物品與用戶二個(gè)不同層面優(yōu)化推薦效能。經(jīng)對(duì)比發(fā)現(xiàn),使用DCBCA方法后,為用戶提供長(zhǎng)期推薦的過(guò)程中能夠顯著提升物品好評(píng)度,此算法可以使平均評(píng)分升高0.3,并且獲得更加穩(wěn)定的用戶評(píng)分。對(duì)比各算法的標(biāo)準(zhǔn)差可以發(fā)現(xiàn),本文算法可以顯著降低標(biāo)準(zhǔn)差,使用戶評(píng)分保持更加穩(wěn)定的狀態(tài)。由此可以推斷,DCBCA可以優(yōu)化用戶對(duì)推薦物品作出的評(píng)分,使物品獲得更高好評(píng)度。
DCBCA依次選擇MovieLens與豆瓣電影評(píng)分二個(gè)數(shù)據(jù)集對(duì)精確度P與各評(píng)價(jià)指標(biāo)實(shí)施了測(cè)試,比較了該方法得到的測(cè)試結(jié)果和通過(guò)自編碼器實(shí)現(xiàn)的交互式混合推薦算法之間的差異性,由此得到推薦電影數(shù)量依然等于5、10、15、20。各K值下上述算法形成的F1值,如表2所示。

表2 兩種算法的F1值
從表2中可以看到二個(gè)算法對(duì)數(shù)據(jù)集進(jìn)行處理得到的F1值,之后評(píng)價(jià)深度協(xié)同雙向約束算法的性能。根據(jù)實(shí)際測(cè)試結(jié)果可知,對(duì)于各K值來(lái)說(shuō),以本算法進(jìn)行處理可以獲得更小的F1。可以發(fā)現(xiàn),評(píng)分優(yōu)化算法會(huì)對(duì)觀看較多的電影類型產(chǎn)生弱化的效果,會(huì)降低推薦精度,導(dǎo)致F1值發(fā)生改變。
通過(guò)測(cè)試可知,采用深度協(xié)同雙向約束算法可以改善推薦效果,除了可以提升用戶對(duì)推薦物品產(chǎn)生更高的好評(píng)度以外,還可以利用交互過(guò)程來(lái)避免出現(xiàn)冷啟動(dòng)的情況。經(jīng)測(cè)試可知深度協(xié)同雙向約束算法達(dá)到了優(yōu)異魯棒性,有效改善了評(píng)分效果。
(1) 利用自編碼器方式構(gòu)建交互式混合推薦算法使R達(dá)到了最大,從而獲得最佳性能。通過(guò)自編碼器構(gòu)建的交互式混合推薦算法除了能夠滿足推薦性能以外還表現(xiàn)出了優(yōu)異魯棒性。
(2) 使用DCBCA方法后,為用戶提供長(zhǎng)期推薦的過(guò)程中能夠顯著提升物品好評(píng)度。DCBCA可以優(yōu)化用戶對(duì)推薦物品作出的評(píng)分,使物品獲得更高好評(píng)度。采用深度協(xié)同雙向約束算法可以改善推薦效果,除了可以提升用戶對(duì)推薦物品產(chǎn)生更高的好評(píng)度以外,還可以利用交互過(guò)程來(lái)避免出現(xiàn)冷啟動(dòng)的情況。