差分進(jìn)化神經(jīng)網(wǎng)絡(luò)集成的用戶(hù)偏好模型構(gòu)建
2016-05-17
作者:楊鳳萍1,張大斌1,2
來(lái)源:2016年微型機(jī)與應(yīng)用第08期
楊鳳萍1,張大斌1,2
(1.華中師范大學(xué) 信息管理學(xué)院,湖北 武漢 430079;2.華南農(nóng)業(yè)大學(xué) 數(shù)學(xué)與信息學(xué)院,廣東 廣州 510642)
摘要:用戶(hù)偏好模型的構(gòu)建是推薦成功與否的基礎(chǔ)。通過(guò)產(chǎn)品特征屬性與用戶(hù)特征屬性的映射,建立用戶(hù)偏好模型,引入神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)模擬偏好模型。為了提高用戶(hù)偏好模型的泛化能力,提出用負(fù)相關(guān)學(xué)習(xí)算法并行訓(xùn)練成員神經(jīng)網(wǎng)絡(luò),采用差分進(jìn)化算法對(duì)成員網(wǎng)絡(luò)進(jìn)行優(yōu)化,從而有效降低網(wǎng)絡(luò)集成的泛化誤差,提高模型精度。通過(guò)Movielens數(shù)據(jù)仿真,并與單個(gè)BP神經(jīng)網(wǎng)絡(luò)、GASEN、核密度神經(jīng)網(wǎng)絡(luò)集成等模型實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比分析,其均方差明顯減少,驗(yàn)證了差分進(jìn)化神經(jīng)網(wǎng)絡(luò)集成的用戶(hù)偏好模型具有較好的泛化能力,能客觀反映用戶(hù)偏好,從而取得更好的推薦效果。
關(guān)鍵詞:個(gè)性化推薦;用戶(hù)偏好;負(fù)相關(guān);神經(jīng)網(wǎng)絡(luò)集成; 差分進(jìn)化
0引言
隨著對(duì)個(gè)性化推薦模型理解的逐層深入,人們開(kāi)始廣泛關(guān)注用戶(hù)的情感語(yǔ)義以及用戶(hù)對(duì)物品喜愛(ài)的不確定性和模糊性[1]。用戶(hù)偏好模型的構(gòu)建成為個(gè)性化推薦的關(guān)鍵部分,其中用戶(hù)偏好的不確定性和描述上的模糊性成為用戶(hù)偏好度建模的難點(diǎn)。學(xué)者們采用BP神經(jīng)網(wǎng)絡(luò)構(gòu)建用戶(hù)偏好模型,初步取得了一些成果[2]。然而由于BP神經(jīng)網(wǎng)絡(luò)存在參數(shù)多、建模難、泛化性差等問(wèn)題,單個(gè)BP神經(jīng)網(wǎng)絡(luò)構(gòu)建的用戶(hù)偏好模型結(jié)果表現(xiàn)并不穩(wěn)定,難以客觀反映用戶(hù)的偏好。因此,本文引入神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)構(gòu)建用戶(hù)偏好模型,通過(guò)Movielens數(shù)據(jù)仿真,并與單個(gè)BP神經(jīng)網(wǎng)絡(luò)、GASEN、核密度神經(jīng)網(wǎng)絡(luò)集成等模型實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比分析,其均方差明顯減少,驗(yàn)證了差分進(jìn)化神經(jīng)網(wǎng)絡(luò)集成的用戶(hù)偏好模型具有較好的泛化能力,能客觀反映用戶(hù)偏好,從而取得了更好的推薦效果。
1用戶(hù)偏好模型
用戶(hù)偏好模型可以反映用戶(hù)對(duì)產(chǎn)品特征的偏好程度,下面通過(guò)產(chǎn)品特征屬性與用戶(hù)特征屬性的映射來(lái)建立用戶(hù)偏好模型。
1.1產(chǎn)品特征屬性矩陣
用戶(hù)對(duì)產(chǎn)品的喜好可以通過(guò)產(chǎn)品特征屬性表現(xiàn)出來(lái),產(chǎn)品的特征屬性矩陣可表示如下:
其中,Pik表示產(chǎn)品i的特征屬性,Pik=0,產(chǎn)品i不具有特征hk
1,產(chǎn)品i具有特征hk;n表示產(chǎn)品特征的個(gè)數(shù);m表示產(chǎn)品的總數(shù)。當(dāng)新增產(chǎn)品時(shí),可以向Pm×n中添加一條記錄。
1.2用戶(hù)特征屬性偏好模型
用戶(hù)u對(duì)產(chǎn)品特征屬性的偏好可以用矩陣Hu=[h1,h2,…,ht]表示,hi的取值范圍為[0,1],1表示最喜歡,0表示最不喜歡。用戶(hù)u對(duì)第i個(gè)特征屬性的偏好hui定義如下:
其中,m為用戶(hù)評(píng)價(jià)過(guò)的所有產(chǎn)品數(shù),n為具有第i個(gè)特征向量的用戶(hù)評(píng)價(jià)過(guò)的產(chǎn)品數(shù)(n≤m),Ij表示用戶(hù)u對(duì)產(chǎn)品的評(píng)分。因此用戶(hù)u對(duì)所有產(chǎn)品的特征屬性偏好模型yu可定義為:
yu=P×HTu(3)
從式(3)可以看出用戶(hù)對(duì)產(chǎn)品的喜好程度可以由產(chǎn)品所具有的特征屬性決定。然而,由產(chǎn)品的特征屬性到用戶(hù)對(duì)該產(chǎn)品的喜好程度的映射是非線(xiàn)性、復(fù)雜的,用傳統(tǒng)的統(tǒng)計(jì)模型難以準(zhǔn)確得到。因此,本文采用神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)模擬用戶(hù)偏好模型。
2差分進(jìn)化神經(jīng)網(wǎng)絡(luò)集成模型
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)集成算法是對(duì)子神經(jīng)網(wǎng)絡(luò)進(jìn)行順序的和單獨(dú)的訓(xùn)練,子網(wǎng)絡(luò)之間沒(méi)有任何的交互,從而造成子神經(jīng)網(wǎng)絡(luò)之間具有較強(qiáng)的相關(guān)性且訓(xùn)練時(shí)間較長(zhǎng)。而研究表明,差異度較大的子神經(jīng)網(wǎng)絡(luò)可以提高集成的泛化能力,因此在訓(xùn)練子神經(jīng)網(wǎng)絡(luò)時(shí)要盡量增大子神經(jīng)網(wǎng)絡(luò)的差異度。
本文引入負(fù)相關(guān)學(xué)習(xí)算法并行訓(xùn)練子神經(jīng)網(wǎng)絡(luò),減弱子網(wǎng)絡(luò)之間的相關(guān)性以改善集成后網(wǎng)絡(luò)系統(tǒng)的性能。對(duì)成員神經(jīng)網(wǎng)絡(luò)的集成,采用差分進(jìn)化算法對(duì)成員網(wǎng)絡(luò)的權(quán)重進(jìn)行優(yōu)化選擇,能夠有效地降低網(wǎng)絡(luò)集成的泛化誤差。
2.1集成個(gè)體的生成
負(fù)相關(guān)學(xué)習(xí)法是通過(guò)在各子神經(jīng)網(wǎng)絡(luò)的誤差函數(shù)中加入一個(gè)相關(guān)性懲罰項(xiàng)來(lái)并行地訓(xùn)練這些子網(wǎng)絡(luò),每一個(gè)子網(wǎng)絡(luò)訓(xùn)練的目的都是促使整個(gè)神經(jīng)網(wǎng)絡(luò)集成能夠取得最好的訓(xùn)練結(jié)果。
負(fù)相關(guān)學(xué)習(xí)算法的主要步驟[3]如下:
假定有 N個(gè)樣本的訓(xùn)練集S:
S={(x(1),d(1));(x(2),d(2));…;(x(n),d(n))}(4)
其中,x是神經(jīng)網(wǎng)絡(luò)的輸入向量,d是對(duì)應(yīng)的期望輸出向量。
(1)計(jì)算集成中各子神經(jīng)網(wǎng)絡(luò)的輸出Fi(n),從而得到整個(gè)集成的輸出F(n):
其中,M表示集成網(wǎng)絡(luò)中子網(wǎng)絡(luò)的個(gè)數(shù),n表示訓(xùn)練樣本個(gè)數(shù) 。
(2)通過(guò)子神經(jīng)網(wǎng)絡(luò)的輸出和集成的輸出可以定義懲罰函數(shù)如下:
Pi(n)=(Fi(n)-F(n))∑Mj≠i(Fj(n)-F(n))(6)
(3)在集成中子網(wǎng)絡(luò)的誤差函數(shù)中添加上面構(gòu)建的懲罰函數(shù),新誤差函數(shù)表示如下:
Δw=-α[(Fi(n)-d(n)-λ(Fi(n)-F(n))]Fi(n)w(9)
其中,λ 是用來(lái)調(diào)整懲罰強(qiáng)度的,0≤λ≤1。
(4)通過(guò)BP算法和提出的新誤差函數(shù)來(lái)并行地訓(xùn)練神經(jīng)網(wǎng)絡(luò)并調(diào)整權(quán)值。
2.2集成結(jié)論的生成
設(shè)N個(gè)訓(xùn)練樣本的實(shí)際輸出為{yn,n=1,2,…,N},神經(jīng)網(wǎng)絡(luò)集成個(gè)體是M個(gè)由負(fù)相關(guān)學(xué)習(xí)算法并行訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò)組成的,第i個(gè)子網(wǎng)絡(luò)的預(yù)測(cè)值為{in,n=1,2,…,N,i=1,2,…,M},ein=yn-in為第i個(gè)子網(wǎng)絡(luò)的第n個(gè)預(yù)測(cè)誤差。wi為第i個(gè)子網(wǎng)絡(luò)的權(quán)重系數(shù),滿(mǎn)足約束條件wi≥0,且∑Mi=1wi=1。則神經(jīng)網(wǎng)絡(luò)的集成輸出為n=∑Mi = 1wiin,en=yn-n=∑Mi=1wiein為第n個(gè)集成預(yù)測(cè)的預(yù)測(cè)誤差。記w=(w1,w2,…,wM)T為權(quán)系數(shù)向量,Ei=(ei1,ei2,…,eiN)T為第i個(gè)子網(wǎng)絡(luò)的預(yù)測(cè)誤差向量,e=(E1,E2,…,EM)為預(yù)測(cè)誤差矩陣。則集成預(yù)測(cè)誤差平方和為Q=∑Ni = 1e2n =wTEw,其中E=eTe。當(dāng)預(yù)測(cè)誤差信息矩陣E給定后,可以通過(guò)式(10)所示的模型求解集成權(quán)重向量w。
minQ=wTEws.t.RTMw=1(10)
其中,RM是元素全為1的M維列向量。
由式(10)可知,這是一個(gè)非線(xiàn)性?xún)?yōu)化問(wèn)題,用常規(guī)方法處理較為困難。
受遺傳算法啟發(fā)而產(chǎn)生的差分進(jìn)化算法(Differential Evolution Algorithm,DE),作為進(jìn)化算法的一個(gè)分支,自提出以來(lái)就以其收斂性好、容易實(shí)現(xiàn)、模型簡(jiǎn)單、控制參數(shù)相對(duì)較少等優(yōu)點(diǎn)受到人們的關(guān)注,已被廣泛應(yīng)用于機(jī)器學(xué)習(xí)、運(yùn)籌管理以及多目標(biāo)優(yōu)化等領(lǐng)域。因此,本文采用基于兩階段變異交叉策略的差分進(jìn)化算法[4]求解上述問(wèn)題。
定義差分進(jìn)化算法的適應(yīng)度函數(shù)為:
f(w)=Q=wTEw
具體操作過(guò)程如下:
(1)種群初始化。采用反向混沌搜索方法來(lái)初始化種群,每個(gè)個(gè)體由{w1,w2,…,wM}組成,wi為[0,1]上均勻分布的隨機(jī)數(shù)。
(2)對(duì)種群個(gè)體進(jìn)行歸一化處理,按照適應(yīng)值將種群分為比較好的子種群M1和比較差的子種群M2。
(3)對(duì)較好子種群M1的個(gè)體,采用DE/wbest/1/bin的變異策略和交叉1策略進(jìn)行差分進(jìn)化。
(4)對(duì)較差子種群的M2個(gè)體,采用DE/best/1/bin的變異策略和交叉2策略進(jìn)行差分進(jìn)化。
(5)對(duì)個(gè)體進(jìn)行歸一化,重新產(chǎn)生比較好的子種群和比較差的子種群,并跳到步驟(3),持續(xù)進(jìn)行5代,重新開(kāi)始子種群的并行搜索。
(6)合并2個(gè)子種群,并重新產(chǎn)生較好子種群M3和較差子種群M4。
(7)對(duì)子種群M3和M4的操作同M1和M2。
(8)合并2個(gè)子種群,并且按照適應(yīng)度值排序。若當(dāng)前迭代次數(shù)小于設(shè)定的最大迭代次數(shù),則轉(zhuǎn)至步驟(2),否則轉(zhuǎn)至步驟(8)。
(9)結(jié)束尋優(yōu),把進(jìn)化到最后一代中的最優(yōu)個(gè)體歸一化后,便得到使訓(xùn)練誤差最小化的最優(yōu)集成權(quán)系數(shù)。
2.3算法性能分析
為了測(cè)試算法性能,本文選擇幾個(gè)比較流行的神經(jīng)網(wǎng)絡(luò)集成算法與差分進(jìn)化神經(jīng)網(wǎng)絡(luò)集成(Differential Evolution Ensemble,DEE)算法進(jìn)行比較,分別是遺傳神經(jīng)網(wǎng)絡(luò)集成算法(GAE)、周志華提出的選擇神經(jīng)網(wǎng)絡(luò)集成算法(GASEN)[5]、平均神經(jīng)網(wǎng)絡(luò)集成算法(AGE)和核密度神經(jīng)網(wǎng)絡(luò)集成算法(KDE)[6],并把所有成員網(wǎng)絡(luò)的平均誤差(MEAN)作為單個(gè)BP神經(jīng)網(wǎng)絡(luò)的誤差比較。所選的測(cè)試集是兩個(gè)常用于神經(jīng)網(wǎng)絡(luò)集成算法測(cè)試的回歸分析型數(shù)據(jù)集,分別如下:
(1)數(shù)據(jù)集1(Friedman#2)。每個(gè)輸入向量含有4個(gè)分量,根據(jù)式(11)產(chǎn)生。
y=x21+(x2x3-(1x2x4))2(11)
其中,x1服從[0,100]上的均勻分布,x2服從[40π,560π]上的均勻分布,x3服從[0,1]上的均勻分布,x4服從[1,11]上的均勻分布。
(2)數(shù)據(jù)集2(Multi)。每個(gè)輸入向量含有5個(gè)分量,根據(jù)式(12)產(chǎn)生。
y=0.79+1.27x1x2+1.56x1x4+3.42x2x5+2.06x3x4x5(12)
其中,xi(i=1,2,…,5)服從[0,1]上的均勻分布。
每個(gè)數(shù)據(jù)集包含1 000個(gè)示例,采用5倍交叉驗(yàn)證方法。成員神經(jīng)網(wǎng)絡(luò)全部采用3層前饋型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),隱層神經(jīng)元節(jié)點(diǎn)設(shè)為10,成員網(wǎng)絡(luò)的規(guī)模設(shè)為30,采用負(fù)相關(guān)學(xué)習(xí)算法并行訓(xùn)練,兩個(gè)數(shù)據(jù)集的絕對(duì)平均泛化誤差如表1所示,差分進(jìn)化算法和遺傳算法求解權(quán)重的迭代過(guò)程如圖1所示。
由圖1的收斂曲線(xiàn)可以看出,在求解權(quán)值集成系數(shù)的迭代過(guò)程中,差分進(jìn)化算法在種群初始化、收斂速度和尋優(yōu)能力都比遺傳算法好,能夠求解出使訓(xùn)練誤差更低的權(quán)值集成系數(shù),從而取得更好的泛化能力。
從表1可以看出,雖然表中的集成算法的絕對(duì)平均泛化誤差大小有所差異,但是所有的集成算法的誤差都遠(yuǎn)遠(yuǎn)小于單個(gè)BP神經(jīng)網(wǎng)絡(luò)(MEAN)的誤差,說(shuō)明了神經(jīng)網(wǎng)絡(luò)集成的有效性。此外,本文提出的DEE算法在數(shù)據(jù)集上取得的絕對(duì)平均泛化誤差是最小的,證明了DEE算法的有效性。
2.4用戶(hù)偏好模型訓(xùn)練
由上節(jié)實(shí)驗(yàn)分析可知,本文提出的DEE算法相對(duì)于單個(gè)BP神經(jīng)網(wǎng)絡(luò)具有更好的非線(xiàn)性映射能力和泛化能力,因此采用DEE算法進(jìn)行用戶(hù)偏好模型的構(gòu)建。
首先,構(gòu)建單個(gè)BP神經(jīng)網(wǎng)絡(luò)的用戶(hù)偏好模型,該模型采用3層網(wǎng)絡(luò)構(gòu)建。第一層輸入層用來(lái)輸入產(chǎn)品的特征向量,因此輸入層神經(jīng)元個(gè)數(shù)是產(chǎn)品特征向量的維數(shù);第二層隱層為用戶(hù)對(duì)這些產(chǎn)品特征的偏好程度數(shù)據(jù),每個(gè)神經(jīng)元被用來(lái)表征對(duì)產(chǎn)品的某個(gè)特征值的喜愛(ài)程度,因此其個(gè)數(shù)也與產(chǎn)品特征向量的維數(shù)相同,即與輸入層神經(jīng)元個(gè)數(shù)相同;第三層輸出層輸出用戶(hù)對(duì)該產(chǎn)品的評(píng)分值,因此輸出層神經(jīng)元個(gè)數(shù)為1。
DEE用戶(hù)偏好模型的子神經(jīng)網(wǎng)絡(luò)采用上述BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),基于用戶(hù)偏好的模糊性和多樣性,引入負(fù)相關(guān)學(xué)習(xí)方法并行訓(xùn)練M個(gè)成員網(wǎng)絡(luò),得到該用戶(hù)的M個(gè)偏好模型,最后用差分進(jìn)化算法求解出最優(yōu)集成權(quán)重,把用戶(hù)的M個(gè)偏好模型集成得到最后的用戶(hù)偏好模型。用戶(hù)偏好的DEE模型流程圖如圖2所示。
3實(shí)例分析
本文采用Movielens數(shù)據(jù)集驗(yàn)證DEE用戶(hù)偏好模型的有效性。Movielens數(shù)據(jù)集中電影的特征屬性為18個(gè),因此將成員神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元個(gè)數(shù)和隱層的神經(jīng)元個(gè)數(shù)均設(shè)為18個(gè),輸出層神經(jīng)元設(shè)為1個(gè)。為了更好地體現(xiàn)模型的有效性,本文選擇評(píng)分記錄數(shù)據(jù)相對(duì)多的4169號(hào)用戶(hù),該用戶(hù)有2 313條評(píng)分記錄。將前2 000個(gè)記錄作為訓(xùn)練樣本,后313個(gè)作為測(cè)試樣本。軟件方面使用MATLAB2008a編程,隨機(jī)初始化神經(jīng)網(wǎng)絡(luò)模型的權(quán)值和閾值,訓(xùn)練30個(gè)子神經(jīng)網(wǎng)絡(luò)進(jìn)行集成。此外,為了驗(yàn)證DEE模型的有效性和魯棒性,獨(dú)立訓(xùn)練模型10次,實(shí)驗(yàn)的均方差如圖3所示,具體誤差數(shù)值如表2所示。
由圖3和表2的實(shí)驗(yàn)結(jié)果可以看出,首先,幾種集成模型相對(duì)于單個(gè)BP神經(jīng)網(wǎng)絡(luò)的均方差較小,說(shuō)明集成模型在用戶(hù)偏好模型訓(xùn)練中具有更好的泛化能力,穩(wěn)定性高,從一定程度上解決了單個(gè)BP神經(jīng)網(wǎng)絡(luò)在用戶(hù)偏好模型中表現(xiàn)的不穩(wěn)定性。從均方差來(lái)看,數(shù)據(jù)集中表現(xiàn)最好的模型是本文提出的DEE模型,其次是GAE模型,而GASEN、KDE、AGE模型表現(xiàn)相對(duì)不夠穩(wěn)定,平均誤差相差不大。綜上所述,本文提出的DEE模型在用戶(hù)偏好模型訓(xùn)練中能夠顯著減少均方差,具有更好的泛化能力,能夠客觀地反映用戶(hù)的偏好,從而提高了推薦的準(zhǔn)確率。
4結(jié)論
基于用戶(hù)偏好的模糊性和復(fù)雜性,本文首次引入神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)構(gòu)建用戶(hù)偏好模型。首先通過(guò)產(chǎn)品特征和用戶(hù)偏好的映射建立了用戶(hù)偏好模型,然后為了提高模型的泛化能力,提出了一種基于差分進(jìn)化的負(fù)相關(guān)神經(jīng)網(wǎng)絡(luò)集成算法(DEE)構(gòu)建用戶(hù)偏好模型,最后通過(guò)Movielens數(shù)據(jù)集進(jìn)行仿真。實(shí)驗(yàn)結(jié)果表明,DEE用戶(hù)偏好模型具有更好的泛化能力,且結(jié)果表現(xiàn)穩(wěn)定,從一定程度上解決了單個(gè)BP神經(jīng)網(wǎng)絡(luò)存在的模型精度差、結(jié)果表現(xiàn)不穩(wěn)定等問(wèn)題,驗(yàn)證了DEE用戶(hù)偏好模型的有效性。
參考文獻(xiàn)
[1] 牟向偉, 陳燕.基于模糊描述邏輯的個(gè)性化推薦系統(tǒng)建模[J].計(jì)算機(jī)應(yīng)用研究,2011,28(4):14291433.
[2] 辛菊琴, 蔣艷, 舒少龍.綜合用戶(hù)偏好模型和BP神經(jīng)網(wǎng)絡(luò)的個(gè)性化推薦[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(2):5760,96.
[3] Liu Y, Yao X. Ensemble learning via negative correlation[J].Neural Networks, 1999, 12(10): 13991404.
[4] 張大斌, 江華, 徐柳怡,等.基于兩階段變異交叉策略的差分進(jìn)化算法[J].計(jì)算機(jī)工程,2014,40(8):183189.
[5] Zhou Zhihua, Wu Jianxin, Tang Wei. Ensembling neural networks: many could be better than all[J]. Artificial Intelligence,2002, 137(12): 239263.
[6] NIKOLAOS K, DEVON K, SVEN F. Neural network ensemble operators for time series forecasting[J]. Expert Systems with Applications,2014, 41(9):42354244.