雷 妍 賈連印 李孟娟 左喻灝 游進國 李曉武
1(昆明理工大學(xué)信息工程與自動化學(xué)院 云南 昆明 650500)2(云南省計算機技術(shù)應(yīng)用重點實驗室 云南 昆明 650500)3(云南師范大學(xué)圖書館 云南 昆明 650500)
迅猛發(fā)展的互聯(lián)網(wǎng)資源讓用戶可以隨意獲取海量的媒體、文檔信息以及服務(wù)等,與此同時,資源的快速增長也必將導(dǎo)致資源過載的問題,使得人們面臨“信息豐富、但有用信息獲取困難”的窘境。為有效解決這一問題,協(xié)同過濾等多種信息推薦方法被提出并已被廣泛應(yīng)用在新聞、社交、音樂、電影以及電子商務(wù)等多個領(lǐng)域。
為使推薦系統(tǒng)更加智能化,快速并準確地找到推薦對象,目前眾多學(xué)者紛紛將神經(jīng)網(wǎng)絡(luò)引入到推薦領(lǐng)域中,神經(jīng)網(wǎng)絡(luò)具有快速性、自適應(yīng)性以及魯棒性等特點[1],如今已被廣泛應(yīng)用到推薦系統(tǒng)中。然而傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)為全連接網(wǎng)絡(luò),存在計算成本和存儲開銷高等不足,從而難以擴展為深層網(wǎng)絡(luò)。為解決這些問題,Lecun等提出的卷積神經(jīng)網(wǎng)絡(luò)(CNN)[2]引入局部連接(每個神經(jīng)元只和上一層的部分神經(jīng)元連接)、權(quán)值共享(一組連接共享一個權(quán)重)、下采樣等技術(shù),大幅提高網(wǎng)絡(luò)的訓(xùn)練效率,同時使得神經(jīng)網(wǎng)絡(luò)擴展為深層網(wǎng)絡(luò)成為可能。為進一步提高CNN網(wǎng)絡(luò)中最核心的卷積操作的效率,近年來提出二值化網(wǎng)絡(luò)[3]將權(quán)值二值化或權(quán)值和輸入均二值化,并通過二值化將卷積中的乘法操作轉(zhuǎn)化為加法或減法操作,從而進一步提高網(wǎng)絡(luò)的訓(xùn)練效率。對權(quán)值或輸入二值化雖會損失數(shù)據(jù)精度導(dǎo)致最終結(jié)果在準確率上有所降低,但研究表明,在特定數(shù)據(jù)集上,其在具有遠高于實值網(wǎng)絡(luò)訓(xùn)練效率的同時,依然具有和實值網(wǎng)絡(luò)可比的準確率[3]。
僅僅采用二值化時可能會造成推薦效果不佳,為在推薦系統(tǒng)提升速率的同時保證一定的準確率,可利用親屬網(wǎng)絡(luò)將用戶進行同類別的分類。RBF神經(jīng)網(wǎng)絡(luò)是一種常見的單隱層前向神經(jīng)網(wǎng)絡(luò)模型,具有快速的學(xué)習(xí)方法、簡單的網(wǎng)絡(luò)結(jié)構(gòu)和較好的推廣能力[4],通常被應(yīng)用在模式識別、故障診斷、數(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中實現(xiàn)推薦。在多個數(shù)據(jù)集上的擴展實驗結(jié)果表明,本文提出的方法相比傳統(tǒng)的推薦方法在準確度和效率上都得到了較為明顯的提升。
在目前針對推薦系統(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)系來進行推薦。首先對與目標用戶相似的用戶進行行為分析,以此來推斷目標用戶對特定產(chǎn)品的喜好程度,然后根據(jù)喜好程度排序并進行相應(yīng)的推薦。該算法的不足主要在于存在冷啟動問題,若矩陣相對稀疏,則模型很難為目標用戶找到相近用戶。Bayesian技術(shù)利用決策樹創(chuàng)建相應(yīng)的模型,節(jié)點和邊表示用戶以及相關(guān)信息,這樣訓(xùn)練出來的模型非常小,該技術(shù)只適用于用戶興趣愛好變化較慢的場合。聚類技術(shù)首先將具有相似興趣愛好的用戶分配到同一個聚類中,然后根據(jù)聚類中其他用戶對某一特定商品的評價信息,預(yù)測目標用戶對該商品的評價。這種方法依舊的不足在于:若目標用戶處于某個聚類的邊緣則會導(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ī)則模型的生成可以離線進行。
Hubel[9]在1959年受生物自然視覺認知機制啟發(fā)提出“深度學(xué)習(xí)模型”的概念。1980年Fukushima[10]提出了CNN的最初模型——neocognitron。2003年,Behnke[11]對CNN進行了總結(jié),CNN的主要特點是卷積運算操作,利用卷積層挖掘數(shù)據(jù)局部特征并提取全局訓(xùn)練特征和分類,人們利用這一特點將CNN運用到多個領(lǐng)域并取得了較好的成績,如圖像檢測[12]、自然語言處理[13]和信息分類推薦[14]等。
卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)如圖1所示,主要包括:輸入層、卷積層、降采樣層、全連接輸出層。

圖1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
卷積層:輸入原始信號經(jīng)過卷積運算操作后特征有所增強,噪聲也會相應(yīng)降低。
采樣層:即池化層,信號通過池化層優(yōu)化后復(fù)雜繁瑣的特征會有所減少,例如采用卷積核為2×2進行池化,每個元素都是1/4,將卷積運算后得到的有重疊的部分去掉了。
全鏈接輸出層:在整個卷積神經(jīng)網(wǎng)絡(luò)中起到“分類器”的作用。
卷積神經(jīng)網(wǎng)絡(luò)一經(jīng)提出后,成為炙手可熱的話題,成為諸多學(xué)者研究的對象。2015年11月,來自加拿大蒙特利爾大學(xué)實驗室團隊的Matthie Courbariaux[3]提出二值神經(jīng)網(wǎng)絡(luò)BinaryConnect。BinaryConnect在前向傳播和反向傳播中對數(shù)據(jù)進行二值化1或-1,不僅在模型的存儲空間上進行了壓縮以此節(jié)省大量的存儲容量,并且由于二值化操作在卷積運算中去掉了乘法運算,只需進行加減運算,降低接近三分之二的矩陣運算,因此大大加快了運算速度,訓(xùn)練時間和存儲空間開銷都得到了大幅度優(yōu)化。
本文提出的融合RBF的二值神經(jīng)網(wǎng)絡(luò)推薦模型的基本處理步驟如下:首先將初始數(shù)據(jù)進行二值化預(yù)處理;其次利用RBF網(wǎng)絡(luò)對處理過后的矩陣數(shù)據(jù)進行分析計算,構(gòu)建可信任的親屬網(wǎng)絡(luò),進而得到可信任的親屬用戶項目矩陣;最后將親屬用戶項目矩陣導(dǎo)入卷積神經(jīng)網(wǎng)絡(luò)中進行二次篩選分類,得到輸出的推薦結(jié)果。融合RBF的二值化神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示。

圖2 融合RBF的二值化神經(jīng)網(wǎng)絡(luò)模型
考慮到用戶行為矩陣中實值數(shù)據(jù)精度較大,導(dǎo)致訓(xùn)練速度較慢且需更多的存儲空間,從而降低模型的訓(xùn)練和預(yù)測性能。因此,本文基于二值化的方法對用戶行為矩陣中的數(shù)據(jù)進行預(yù)處理。通過二值化將矩陣中實值數(shù)據(jù)轉(zhuǎn)化成二進制的數(shù)據(jù),通常二值化方法主要有確定性二值化和隨機二值化兩種[3]。
確定性二值化:按照下式將實值轉(zhuǎn)化為二進制位。
(1)
式中:xb是二進制變量,x是實值變量,λ為評級特定閾值。
隨機二值化:根據(jù)一個計算的概率對實值進行二值化處理:
(2)
式中:P為界定x的一個概率閾值,且:
(3)
由于式(2)的方法需要使用到硬件產(chǎn)生隨機數(shù)[3],在計算上(軟件和硬件上)花費較多成本,而第一種方法是線性分段的,能對應(yīng)連續(xù)又有界的形式,因此本文采用式(1)進行二值化處理。
如圖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)的因素主要有三個:徑向基函數(shù)(RBF)的中心矢量、方差以及隱含層到輸出層神經(jīng)元之間的連接權(quán)值。確定映射關(guān)系即確定RBF的中心點。輸入層到隱含層的權(quán)值固定為1,隱含層到輸出層的映射是線性的,所以網(wǎng)絡(luò)的最終輸出是隱單元輸出的線性加權(quán)。
將二值化預(yù)處理后的用戶矩陣導(dǎo)入RBF網(wǎng)絡(luò)中,篩選出用戶鄰近特性進行分類,從而建立用戶可信任的親屬網(wǎng)絡(luò)。本文RBF網(wǎng)絡(luò)模型的徑向基函數(shù)選用最常用的高斯函數(shù),其激活函數(shù)表示為:
(4)

(5)
式中:h表示隱含層節(jié)點數(shù)量,wij(i=1,2,…,n)表示隱含層到輸出層的權(quán)值,yj為第j個輸出節(jié)點的實際輸出。若d為樣本矩陣的期望值,P為樣本總數(shù),則方差可表示為:
(6)
RBF網(wǎng)絡(luò)的具體訓(xùn)練步驟為:
1) 確定高斯函數(shù)中心ci。
(1) 隨機選取h個矩陣樣本作為中心,ci表示第i個中心ci(i=1,2,…,n)。
(2) 按照最近鄰規(guī)則分組將所輸入的數(shù)據(jù)樣本集合按xp與中心為ci的距離將xp分配到輸入樣本的對應(yīng)最近的聚類集合?p(p=1,2,…,n)中。
(3) 再次調(diào)整中心ci:計算聚類集合?p中的平均值即為新的中心ci,若新的中心ci與上一次的中心ci一樣,則此時的中心ci為最終結(jié)果,否則重復(fù)步驟(2)直至確定最終的RBF網(wǎng)絡(luò)的最終高斯函數(shù)中心。
2) 確定方差σi。
由于RBF網(wǎng)絡(luò)的基函數(shù)為高斯函數(shù),因此可得出下式:
(7)
式中:cmax為各個中心之間的最大距離。
3) 確定權(quán)值wij。
隱含層和輸出層之間的連接權(quán)值可用最小二乘法按如下公式進行計算:
(8)
卷積神經(jīng)網(wǎng)絡(luò)是一種前饋神經(jīng)網(wǎng)絡(luò),由輸入層、卷積層、采樣層和輸出層組成。其中每一層的輸出作為下一層的輸入。卷積層又稱為特征提取層,通過濾波器提取局部特征,經(jīng)過卷積核函數(shù)運算產(chǎn)生特征值,輸出結(jié)果作為采樣層的輸入。采樣層對卷積層產(chǎn)生的結(jié)果進行采樣,得到局部最優(yōu)特征,故也稱特征映射層,本文模型中的卷積神經(jīng)網(wǎng)絡(luò)具體步驟如圖4所示。

圖4 卷積神經(jīng)網(wǎng)絡(luò)步驟圖
首先將得到的基于用戶親屬關(guān)系篩選過后的用戶信息矩陣作為CNN卷積層的數(shù)據(jù)輸入進行特征提取,利用q×q的濾波器對輸入矩陣進行卷積操作,即:
ci=f(w·X+b)
(9)
式中:ci代表第i個特征值,函數(shù)f為卷積核函數(shù),w為濾波器,X為局部特征矩陣,b為偏置值。因此,特征向量C為:
C=[c1,c2,…,cn]
(10)

(11)
卷積層結(jié)合采樣層組成了不同類型的特征提取層,其中每種類型的特征提取層設(shè)為m個,因此全鏈接層的特征向量V為:
(12)

下采樣層輸出的特征向量作為全鏈接層的輸入,然后利用Softmax輸出分類結(jié)果,并根據(jù)訓(xùn)練的實際分類標簽,采用反向傳播算法對模型參數(shù)進行梯度更新。即:
P(y|V,Wsoftmax,bsoftmax=softmax(Wsoftmax·V+bsoftmax)
(13)
式中:Wsoftmax∈R|V|,bsoftmax為偏置項。
最后,利用訓(xùn)練好的融合親屬網(wǎng)絡(luò)的二值神經(jīng)網(wǎng)絡(luò)模型,將最終得到的特征矩陣轉(zhuǎn)化成向量,并用分類器進行模型訓(xùn)練和分類。
為了驗證本文方法的有效性,在Windows系統(tǒng)下使用Matlab工具進行實驗,實驗中參照文獻[3]將參數(shù)評級特定閾值設(shè)置為0.6,并采用了來自Kaggle平臺的四個數(shù)據(jù)集:COMP、TMDB、Movie以及AISBI,所有數(shù)據(jù)集里的數(shù)據(jù)都采用5分制計數(shù),評分越高則表示用戶對某部特定的電影越喜歡。為方便評估并確保實驗的可重復(fù)性,本文實驗將數(shù)據(jù)集隨機并多次分為訓(xùn)練集和測試集,抽取數(shù)據(jù)集中80%的數(shù)據(jù)作為訓(xùn)練集,余下20%的數(shù)據(jù)留作測試集,并取多次實驗結(jié)果的平均值作為最終結(jié)果。
該實驗采用準確率ACC作為推薦系統(tǒng)的評測指標,其計算用戶的預(yù)測推薦樣本與實際推薦樣本的偏差,ACC的計算公式為:
(14)
式中:{p1,p2,…,pn}為n個用戶預(yù)測推薦樣本集合,{q1,q2,…,qm}則為參考數(shù)據(jù)集中用戶的實際推薦樣本集合,m代表實際推薦樣本的總個數(shù),ACC的值越高,說明推薦質(zhì)量越好。
基于本文所提出的模型方法在上文提到的四個數(shù)據(jù)集上多次迭代進行實驗,其對應(yīng)結(jié)果如圖5所示。從實驗結(jié)果觀察可知,在不同數(shù)據(jù)集中前期隨著訓(xùn)練次數(shù)增加,ACC都表現(xiàn)出增長的趨勢,而在模型訓(xùn)練七次或更高次數(shù)之后,準確率趨于穩(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ù)集的準確率對比
為了驗證本文所提出的融合RBF的二值神經(jīng)網(wǎng)絡(luò)推薦模型(RB-CNN)的推薦效果,本文將與文獻[5]中基于支持向量機(SVM)的分類推薦算法、文獻[6]提出的基于深度置信網(wǎng)絡(luò)(DBN)的推薦方法以及文獻[7]提出的基于邏輯回歸(LR)的推薦模型訓(xùn)練后得出的實驗結(jié)果在推薦的準確度指標上進行對比,其最終結(jié)果如圖6所示。

圖6 不同算法在不同數(shù)據(jù)集上的準確率對比
從圖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)致特征值不足,用戶屬性與推薦目標的屬性所發(fā)生的相互聯(lián)系就會十分薄弱,因此難以達到更好的推薦效果。這也給了我們一個啟發(fā),為了達到更好的推薦效果,以后需要關(guān)注如下問題:如何更好地挖掘用戶和項目屬性的關(guān)聯(lián),以及如何選取合理的用戶鄰近點,這也是下一步工作研究的方向。
本文提出RB-CNN模型以實現(xiàn)高效的推薦,通過對推薦系統(tǒng)中的用戶屬性和項目屬性建立了RBF網(wǎng)絡(luò),使用徑向基函數(shù)計算用戶與用戶之間的相似度矩陣,再結(jié)合卷積神經(jīng)網(wǎng)絡(luò)進行推薦預(yù)測,擴展實驗表明了本文設(shè)計的推薦模型的有效性。下一步計劃針對數(shù)據(jù)矩陣稀疏的用戶群體推薦進一步開展研究。