雷 妍 賈連印 李孟娟 左喻灝 游進(jìn)國 李曉武
1(昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院 云南 昆明 650500)2(云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室 云南 昆明 650500)3(云南師范大學(xué)圖書館 云南 昆明 650500)
迅猛發(fā)展的互聯(lián)網(wǎng)資源讓用戶可以隨意獲取海量的媒體、文檔信息以及服務(wù)等,與此同時(shí),資源的快速增長也必將導(dǎo)致資源過載的問題,使得人們面臨“信息豐富、但有用信息獲取困難”的窘境。為有效解決這一問題,協(xié)同過濾等多種信息推薦方法被提出并已被廣泛應(yīng)用在新聞、社交、音樂、電影以及電子商務(wù)等多個(gè)領(lǐng)域。
為使推薦系統(tǒng)更加智能化,快速并準(zhǔn)確地找到推薦對象,目前眾多學(xué)者紛紛將神經(jīng)網(wǎng)絡(luò)引入到推薦領(lǐng)域中,神經(jīng)網(wǎng)絡(luò)具有快速性、自適應(yīng)性以及魯棒性等特點(diǎn)[1],如今已被廣泛應(yīng)用到推薦系統(tǒng)中。然而傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)為全連接網(wǎng)絡(luò),存在計(jì)算成本和存儲(chǔ)開銷高等不足,從而難以擴(kuò)展為深層網(wǎng)絡(luò)。為解決這些問題,Lecun等提出的卷積神經(jīng)網(wǎng)絡(luò)(CNN)[2]引入局部連接(每個(gè)神經(jīng)元只和上一層的部分神經(jīng)元連接)、權(quán)值共享(一組連接共享一個(gè)權(quán)重)、下采樣等技術(shù),大幅提高網(wǎng)絡(luò)的訓(xùn)練效率,同時(shí)使得神經(jīng)網(wǎng)絡(luò)擴(kuò)展為深層網(wǎng)絡(luò)成為可能。為進(jìn)一步提高CNN網(wǎng)絡(luò)中最核心的卷積操作的效率,近年來提出二值化網(wǎng)絡(luò)[3]將權(quán)值二值化或權(quán)值和輸入均二值化,并通過二值化將卷積中的乘法操作轉(zhuǎn)化為加法或減法操作,從而進(jìn)一步提高網(wǎng)絡(luò)的訓(xùn)練效率。對權(quán)值或輸入二值化雖會(huì)損失數(shù)據(jù)精度導(dǎo)致最終結(jié)果在準(zhǔn)確率上有所降低,但研究表明,在特定數(shù)據(jù)集上,其在具有遠(yuǎn)高于實(shí)值網(wǎng)絡(luò)訓(xùn)練效率的同時(shí),依然具有和實(shí)值網(wǎng)絡(luò)可比的準(zhǔn)確率[3]。
僅僅采用二值化時(shí)可能會(huì)造成推薦效果不佳,為在推薦系統(tǒng)提升速率的同時(shí)保證一定的準(zhǔn)確率,可利用親屬網(wǎng)絡(luò)將用戶進(jìn)行同類別的分類。RBF神經(jīng)網(wǎng)絡(luò)是一種常見的單隱層前向神經(jīng)網(wǎng)絡(luò)模型,具有快速的學(xué)習(xí)方法、簡單的網(wǎng)絡(luò)結(jié)構(gòu)和較好的推廣能力[4],通常被應(yīng)用在模式識(shí)別、故障診斷、數(shù)據(jù)預(yù)測和預(yù)測控制等問題中。此外,RBF網(wǎng)絡(luò)可以以任意精度逼近任意連續(xù)函數(shù),因此也十分適用于解決推薦中的分類問題。
基于此,本文將二值化、RBF網(wǎng)絡(luò)、CNN網(wǎng)絡(luò)結(jié)合起來,通過二值化加快網(wǎng)絡(luò)訓(xùn)練速度,通過RBF網(wǎng)絡(luò)篩選出具有相似特性的用戶群,建立用戶可信任的親屬網(wǎng)絡(luò),最終將用戶所建立的親屬關(guān)系矩陣導(dǎo)入CNN中實(shí)現(xiàn)推薦。在多個(gè)數(shù)據(jù)集上的擴(kuò)展實(shí)驗(yàn)結(jié)果表明,本文提出的方法相比傳統(tǒng)的推薦方法在準(zhǔn)確度和效率上都得到了較為明顯的提升。
在目前針對推薦系統(tǒng)的研究當(dāng)中,常見的推薦算法有:基于協(xié)同過濾[5]、基于Bayesian技術(shù)[6]、基于聚類[7]和基于關(guān)聯(lián)規(guī)則技術(shù)[8]的推薦算法等。
目前應(yīng)用最廣泛的推薦算法是基于協(xié)同過濾的推薦算法,該算法根據(jù)用戶與用戶之間愛好的相似性建立相關(guān)聯(lián)系來進(jìn)行推薦。首先對與目標(biāo)用戶相似的用戶進(jìn)行行為分析,以此來推斷目標(biāo)用戶對特定產(chǎn)品的喜好程度,然后根據(jù)喜好程度排序并進(jìn)行相應(yīng)的推薦。該算法的不足主要在于存在冷啟動(dòng)問題,若矩陣相對稀疏,則模型很難為目標(biāo)用戶找到相近用戶。Bayesian技術(shù)利用決策樹創(chuàng)建相應(yīng)的模型,節(jié)點(diǎn)和邊表示用戶以及相關(guān)信息,這樣訓(xùn)練出來的模型非常小,該技術(shù)只適用于用戶興趣愛好變化較慢的場合。聚類技術(shù)首先將具有相似興趣愛好的用戶分配到同一個(gè)聚類中,然后根據(jù)聚類中其他用戶對某一特定商品的評價(jià)信息,預(yù)測目標(biāo)用戶對該商品的評價(jià)。這種方法依舊的不足在于:若目標(biāo)用戶處于某個(gè)聚類的邊緣則會(huì)導(dǎo)致該用戶的推薦精度比較低。基于關(guān)聯(lián)規(guī)則的推薦算法則根據(jù)用戶交易數(shù)據(jù)信息生成相應(yīng)的關(guān)聯(lián)規(guī)則模型,利用該模型結(jié)合用戶當(dāng)前的購買行為向用戶產(chǎn)生推薦,關(guān)聯(lián)規(guī)則模型的生成可以離線進(jìn)行。
Hubel[9]在1959年受生物自然視覺認(rèn)知機(jī)制啟發(fā)提出“深度學(xué)習(xí)模型”的概念。1980年Fukushima[10]提出了CNN的最初模型——neocognitron。2003年,Behnke[11]對CNN進(jìn)行了總結(jié),CNN的主要特點(diǎn)是卷積運(yùn)算操作,利用卷積層挖掘數(shù)據(jù)局部特征并提取全局訓(xùn)練特征和分類,人們利用這一特點(diǎn)將CNN運(yùn)用到多個(gè)領(lǐng)域并取得了較好的成績,如圖像檢測[12]、自然語言處理[13]和信息分類推薦[14]等。
卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)如圖1所示,主要包括:輸入層、卷積層、降采樣層、全連接輸出層。
圖1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
卷積層:輸入原始信號(hào)經(jīng)過卷積運(yùn)算操作后特征有所增強(qiáng),噪聲也會(huì)相應(yīng)降低。
采樣層:即池化層,信號(hào)通過池化層優(yōu)化后復(fù)雜繁瑣的特征會(huì)有所減少,例如采用卷積核為2×2進(jìn)行池化,每個(gè)元素都是1/4,將卷積運(yùn)算后得到的有重疊的部分去掉了。
全鏈接輸出層:在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中起到“分類器”的作用。
卷積神經(jīng)網(wǎng)絡(luò)一經(jīng)提出后,成為炙手可熱的話題,成為諸多學(xué)者研究的對象。2015年11月,來自加拿大蒙特利爾大學(xué)實(shí)驗(yàn)室團(tuán)隊(duì)的Matthie Courbariaux[3]提出二值神經(jīng)網(wǎng)絡(luò)BinaryConnect。BinaryConnect在前向傳播和反向傳播中對數(shù)據(jù)進(jìn)行二值化1或-1,不僅在模型的存儲(chǔ)空間上進(jìn)行了壓縮以此節(jié)省大量的存儲(chǔ)容量,并且由于二值化操作在卷積運(yùn)算中去掉了乘法運(yùn)算,只需進(jìn)行加減運(yùn)算,降低接近三分之二的矩陣運(yùn)算,因此大大加快了運(yùn)算速度,訓(xùn)練時(shí)間和存儲(chǔ)空間開銷都得到了大幅度優(yōu)化。
本文提出的融合RBF的二值神經(jīng)網(wǎng)絡(luò)推薦模型的基本處理步驟如下:首先將初始數(shù)據(jù)進(jìn)行二值化預(yù)處理;其次利用RBF網(wǎng)絡(luò)對處理過后的矩陣數(shù)據(jù)進(jìn)行分析計(jì)算,構(gòu)建可信任的親屬網(wǎng)絡(luò),進(jìn)而得到可信任的親屬用戶項(xiàng)目矩陣;最后將親屬用戶項(xiàng)目矩陣導(dǎo)入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行二次篩選分類,得到輸出的推薦結(jié)果。融合RBF的二值化神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示。
圖2 融合RBF的二值化神經(jīng)網(wǎng)絡(luò)模型
考慮到用戶行為矩陣中實(shí)值數(shù)據(jù)精度較大,導(dǎo)致訓(xùn)練速度較慢且需更多的存儲(chǔ)空間,從而降低模型的訓(xùn)練和預(yù)測性能。因此,本文基于二值化的方法對用戶行為矩陣中的數(shù)據(jù)進(jìn)行預(yù)處理。通過二值化將矩陣中實(shí)值數(shù)據(jù)轉(zhuǎn)化成二進(jìn)制的數(shù)據(jù),通常二值化方法主要有確定性二值化和隨機(jī)二值化兩種[3]。
確定性二值化:按照下式將實(shí)值轉(zhuǎn)化為二進(jìn)制位。
(1)
式中:xb是二進(jìn)制變量,x是實(shí)值變量,λ為評級(jí)特定閾值。
隨機(jī)二值化:根據(jù)一個(gè)計(jì)算的概率對實(shí)值進(jìn)行二值化處理:
(2)
式中:P為界定x的一個(gè)概率閾值,且:
(3)
由于式(2)的方法需要使用到硬件產(chǎn)生隨機(jī)數(shù)[3],在計(jì)算上(軟件和硬件上)花費(fèi)較多成本,而第一種方法是線性分段的,能對應(yīng)連續(xù)又有界的形式,因此本文采用式(1)進(jìn)行二值化處理。
如圖3所示,RBF網(wǎng)絡(luò)是一種三層前向神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層和輸出層。RBF網(wǎng)絡(luò)核心思想為:用RBF作為隱單元的“基”構(gòu)成隱含層空間,將輸入直接映射到隱含層,隱含層將低維向量按照一定規(guī)則映射到高維,從而使得在低維空間中線性不可分的樣本在高維空間中線性可分。
圖3 RBF網(wǎng)絡(luò)基本結(jié)構(gòu)
確定RBF網(wǎng)絡(luò)性能與結(jié)構(gòu)的因素主要有三個(gè):徑向基函數(shù)(RBF)的中心矢量、方差以及隱含層到輸出層神經(jīng)元之間的連接權(quán)值。確定映射關(guān)系即確定RBF的中心點(diǎn)。輸入層到隱含層的權(quán)值固定為1,隱含層到輸出層的映射是線性的,所以網(wǎng)絡(luò)的最終輸出是隱單元輸出的線性加權(quán)。
將二值化預(yù)處理后的用戶矩陣導(dǎo)入RBF網(wǎng)絡(luò)中,篩選出用戶鄰近特性進(jìn)行分類,從而建立用戶可信任的親屬網(wǎng)絡(luò)。本文RBF網(wǎng)絡(luò)模型的徑向基函數(shù)選用最常用的高斯函數(shù),其激活函數(shù)表示為:
(4)
(5)
式中:h表示隱含層節(jié)點(diǎn)數(shù)量,wij(i=1,2,…,n)表示隱含層到輸出層的權(quán)值,yj為第j個(gè)輸出節(jié)點(diǎn)的實(shí)際輸出。若d為樣本矩陣的期望值,P為樣本總數(shù),則方差可表示為:
(6)
RBF網(wǎng)絡(luò)的具體訓(xùn)練步驟為:
1) 確定高斯函數(shù)中心ci。
(1) 隨機(jī)選取h個(gè)矩陣樣本作為中心,ci表示第i個(gè)中心ci(i=1,2,…,n)。
(2) 按照最近鄰規(guī)則分組將所輸入的數(shù)據(jù)樣本集合按xp與中心為ci的距離將xp分配到輸入樣本的對應(yīng)最近的聚類集合?p(p=1,2,…,n)中。
(3) 再次調(diào)整中心ci:計(jì)算聚類集合?p中的平均值即為新的中心ci,若新的中心ci與上一次的中心ci一樣,則此時(shí)的中心ci為最終結(jié)果,否則重復(fù)步驟(2)直至確定最終的RBF網(wǎng)絡(luò)的最終高斯函數(shù)中心。
2) 確定方差σi。
由于RBF網(wǎng)絡(luò)的基函數(shù)為高斯函數(shù),因此可得出下式:
(7)
式中:cmax為各個(gè)中心之間的最大距離。
3) 確定權(quán)值wij。
隱含層和輸出層之間的連接權(quán)值可用最小二乘法按如下公式進(jìn)行計(jì)算:
(8)
卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),由輸入層、卷積層、采樣層和輸出層組成。其中每一層的輸出作為下一層的輸入。卷積層又稱為特征提取層,通過濾波器提取局部特征,經(jīng)過卷積核函數(shù)運(yùn)算產(chǎn)生特征值,輸出結(jié)果作為采樣層的輸入。采樣層對卷積層產(chǎn)生的結(jié)果進(jìn)行采樣,得到局部最優(yōu)特征,故也稱特征映射層,本文模型中的卷積神經(jīng)網(wǎng)絡(luò)具體步驟如圖4所示。
圖4 卷積神經(jīng)網(wǎng)絡(luò)步驟圖
首先將得到的基于用戶親屬關(guān)系篩選過后的用戶信息矩陣作為CNN卷積層的數(shù)據(jù)輸入進(jìn)行特征提取,利用q×q的濾波器對輸入矩陣進(jìn)行卷積操作,即:
ci=f(w·X+b)
(9)
式中:ci代表第i個(gè)特征值,函數(shù)f為卷積核函數(shù),w為濾波器,X為局部特征矩陣,b為偏置值。因此,特征向量C為:
C=[c1,c2,…,cn]
(10)
(11)
卷積層結(jié)合采樣層組成了不同類型的特征提取層,其中每種類型的特征提取層設(shè)為m個(gè),因此全鏈接層的特征向量V為:
(12)
下采樣層輸出的特征向量作為全鏈接層的輸入,然后利用Softmax輸出分類結(jié)果,并根據(jù)訓(xùn)練的實(shí)際分類標(biāo)簽,采用反向傳播算法對模型參數(shù)進(jìn)行梯度更新。即:
P(y|V,Wsoftmax,bsoftmax=softmax(Wsoftmax·V+bsoftmax)
(13)
式中:Wsoftmax∈R|V|,bsoftmax為偏置項(xiàng)。
最后,利用訓(xùn)練好的融合親屬網(wǎng)絡(luò)的二值神經(jīng)網(wǎng)絡(luò)模型,將最終得到的特征矩陣轉(zhuǎn)化成向量,并用分類器進(jìn)行模型訓(xùn)練和分類。
為了驗(yàn)證本文方法的有效性,在Windows系統(tǒng)下使用Matlab工具進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)中參照文獻(xiàn)[3]將參數(shù)評級(jí)特定閾值設(shè)置為0.6,并采用了來自Kaggle平臺(tái)的四個(gè)數(shù)據(jù)集:COMP、TMDB、Movie以及AISBI,所有數(shù)據(jù)集里的數(shù)據(jù)都采用5分制計(jì)數(shù),評分越高則表示用戶對某部特定的電影越喜歡。為方便評估并確保實(shí)驗(yàn)的可重復(fù)性,本文實(shí)驗(yàn)將數(shù)據(jù)集隨機(jī)并多次分為訓(xùn)練集和測試集,抽取數(shù)據(jù)集中80%的數(shù)據(jù)作為訓(xùn)練集,余下20%的數(shù)據(jù)留作測試集,并取多次實(shí)驗(yàn)結(jié)果的平均值作為最終結(jié)果。
該實(shí)驗(yàn)采用準(zhǔn)確率ACC作為推薦系統(tǒng)的評測指標(biāo),其計(jì)算用戶的預(yù)測推薦樣本與實(shí)際推薦樣本的偏差,ACC的計(jì)算公式為:
(14)
式中:{p1,p2,…,pn}為n個(gè)用戶預(yù)測推薦樣本集合,{q1,q2,…,qm}則為參考數(shù)據(jù)集中用戶的實(shí)際推薦樣本集合,m代表實(shí)際推薦樣本的總個(gè)數(shù),ACC的值越高,說明推薦質(zhì)量越好。
基于本文所提出的模型方法在上文提到的四個(gè)數(shù)據(jù)集上多次迭代進(jìn)行實(shí)驗(yàn),其對應(yīng)結(jié)果如圖5所示。從實(shí)驗(yàn)結(jié)果觀察可知,在不同數(shù)據(jù)集中前期隨著訓(xùn)練次數(shù)增加,ACC都表現(xiàn)出增長的趨勢,而在模型訓(xùn)練七次或更高次數(shù)之后,準(zhǔn)確率趨于穩(wěn)定。另外,該模型在不同數(shù)據(jù)集中表現(xiàn)出來的推薦效果也有所不同,但基本呈現(xiàn)出數(shù)據(jù)集越大,模型的預(yù)測結(jié)果越好的現(xiàn)象。其中在數(shù)據(jù)最密集的AISBI數(shù)據(jù)集中,ACC最大。而在Movie數(shù)據(jù)集中數(shù)據(jù)較為稀疏,特征不足因此預(yù)測效果不佳,所呈現(xiàn)出的ACC普遍較低。
圖5 不同數(shù)據(jù)集的準(zhǔn)確率對比
為了驗(yàn)證本文所提出的融合RBF的二值神經(jīng)網(wǎng)絡(luò)推薦模型(RB-CNN)的推薦效果,本文將與文獻(xiàn)[5]中基于支持向量機(jī)(SVM)的分類推薦算法、文獻(xiàn)[6]提出的基于深度置信網(wǎng)絡(luò)(DBN)的推薦方法以及文獻(xiàn)[7]提出的基于邏輯回歸(LR)的推薦模型訓(xùn)練后得出的實(shí)驗(yàn)結(jié)果在推薦的準(zhǔn)確度指標(biāo)上進(jìn)行對比,其最終結(jié)果如圖6所示。
圖6 不同算法在不同數(shù)據(jù)集上的準(zhǔn)確率對比
從圖6中我們可以發(fā)現(xiàn),在數(shù)據(jù)量較大的數(shù)據(jù)集COMP和AISBI中本文所提出的方法明顯優(yōu)于其他三種算法,在數(shù)據(jù)TMDB中本文方法明顯優(yōu)于DBN但與其他兩種方法基本持平,而在Movie數(shù)據(jù)集中由于本身數(shù)據(jù)量稀疏導(dǎo)致特征不足,四種算法表現(xiàn)出的推薦效果均不佳,但本文所提出的方法依然有一定優(yōu)勢。若數(shù)據(jù)矩陣的稀疏性導(dǎo)致特征值不足,用戶屬性與推薦目標(biāo)的屬性所發(fā)生的相互聯(lián)系就會(huì)十分薄弱,因此難以達(dá)到更好的推薦效果。這也給了我們一個(gè)啟發(fā),為了達(dá)到更好的推薦效果,以后需要關(guān)注如下問題:如何更好地挖掘用戶和項(xiàng)目屬性的關(guān)聯(lián),以及如何選取合理的用戶鄰近點(diǎn),這也是下一步工作研究的方向。
本文提出RB-CNN模型以實(shí)現(xiàn)高效的推薦,通過對推薦系統(tǒng)中的用戶屬性和項(xiàng)目屬性建立了RBF網(wǎng)絡(luò),使用徑向基函數(shù)計(jì)算用戶與用戶之間的相似度矩陣,再結(jié)合卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行推薦預(yù)測,擴(kuò)展實(shí)驗(yàn)表明了本文設(shè)計(jì)的推薦模型的有效性。下一步計(jì)劃針對數(shù)據(jù)矩陣稀疏的用戶群體推薦進(jìn)一步開展研究。