差分進(jìn)化神經(jīng)網(wǎng)絡(luò)集成的用戶偏好模型構(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)
摘要:用戶偏好模型的構(gòu)建是推薦成功與否的基礎(chǔ),。通過(guò)產(chǎn)品特征屬性與用戶特征屬性的映射,,建立用戶偏好模型,,引入神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)模擬偏好模型。為了提高用戶偏好模型的泛化能力,,提出用負(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ò)集成的用戶偏好模型具有較好的泛化能力,,能客觀反映用戶偏好,從而取得更好的推薦效果,。
關(guān)鍵詞:個(gè)性化推薦;用戶偏好,;負(fù)相關(guān);神經(jīng)網(wǎng)絡(luò)集成,; 差分進(jìn)化
0引言
隨著對(duì)個(gè)性化推薦模型理解的逐層深入,,人們開(kāi)始廣泛關(guān)注用戶的情感語(yǔ)義以及用戶對(duì)物品喜愛(ài)的不確定性和模糊性[1],。用戶偏好模型的構(gòu)建成為個(gè)性化推薦的關(guān)鍵部分,,其中用戶偏好的不確定性和描述上的模糊性成為用戶偏好度建模的難點(diǎn)。學(xué)者們采用BP神經(jīng)網(wǎng)絡(luò)構(gòu)建用戶偏好模型,,初步取得了一些成果[2],。然而由于BP神經(jīng)網(wǎng)絡(luò)存在參數(shù)多,、建模難,、泛化性差等問(wèn)題,,單個(gè)BP神經(jīng)網(wǎng)絡(luò)構(gòu)建的用戶偏好模型結(jié)果表現(xiàn)并不穩(wěn)定,,難以客觀反映用戶的偏好,。因此,,本文引入神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)構(gòu)建用戶偏好模型,,通過(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ò)集成的用戶偏好模型具有較好的泛化能力,,能客觀反映用戶偏好,,從而取得了更好的推薦效果,。
1用戶偏好模型
用戶偏好模型可以反映用戶對(duì)產(chǎn)品特征的偏好程度,,下面通過(guò)產(chǎn)品特征屬性與用戶特征屬性的映射來(lái)建立用戶偏好模型,。
1.1產(chǎn)品特征屬性矩陣
用戶對(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用戶特征屬性偏好模型
用戶u對(duì)產(chǎn)品特征屬性的偏好可以用矩陣Hu=[h1,h2,…,ht]表示,,hi的取值范圍為[0,1],,1表示最喜歡,,0表示最不喜歡,。用戶u對(duì)第i個(gè)特征屬性的偏好hui定義如下:
其中,,m為用戶評(píng)價(jià)過(guò)的所有產(chǎn)品數(shù),,n為具有第i個(gè)特征向量的用戶評(píng)價(jià)過(guò)的產(chǎn)品數(shù)(n≤m),,Ij表示用戶u對(duì)產(chǎn)品的評(píng)分。因此用戶u對(duì)所有產(chǎn)品的特征屬性偏好模型yu可定義為:
yu=P×HTu(3)
從式(3)可以看出用戶對(duì)產(chǎn)品的喜好程度可以由產(chǎn)品所具有的特征屬性決定,。然而,,由產(chǎn)品的特征屬性到用戶對(duì)該產(chǎn)品的喜好程度的映射是非線性,、復(fù)雜的,用傳統(tǒng)的統(tǒng)計(jì)模型難以準(zhǔn)確得到,。因此,,本文采用神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)模擬用戶偏好模型。
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。
?。?)通過(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ù),滿足約束條件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è)非線性優(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ù),。
?。?)對(duì)種群個(gè)體進(jìn)行歸一化處理,按照適應(yīng)值將種群分為比較好的子種群M1和比較差的子種群M2,。
?。?)對(duì)較好子種群M1的個(gè)體,,采用DE/wbest/1/bin的變異策略和交叉1策略進(jìn)行差分進(jìn)化。
?。?)對(duì)較差子種群的M2個(gè)體,,采用DE/best/1/bin的變異策略和交叉2策略進(jìn)行差分進(jìn)化。
?。?)對(duì)個(gè)體進(jìn)行歸一化,,重新產(chǎn)生比較好的子種群和比較差的子種群,并跳到步驟(3),,持續(xù)進(jìn)行5代,,重新開(kāi)始子種群的并行搜索。
?。?)合并2個(gè)子種群,,并重新產(chǎn)生較好子種群M3和較差子種群M4。
?。?)對(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ù)集,,分別如下:
?。?)數(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]上的均勻分布。
?。?)數(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的收斂曲線可以看出,,在求解權(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用戶偏好模型訓(xùn)練
由上節(jié)實(shí)驗(yàn)分析可知,,本文提出的DEE算法相對(duì)于單個(gè)BP神經(jīng)網(wǎng)絡(luò)具有更好的非線性映射能力和泛化能力,因此采用DEE算法進(jìn)行用戶偏好模型的構(gòu)建,。
首先,,構(gòu)建單個(gè)BP神經(jīng)網(wǎng)絡(luò)的用戶偏好模型,該模型采用3層網(wǎng)絡(luò)構(gòu)建,。第一層輸入層用來(lái)輸入產(chǎn)品的特征向量,,因此輸入層神經(jīng)元個(gè)數(shù)是產(chǎn)品特征向量的維數(shù);第二層隱層為用戶對(duì)這些產(chǎn)品特征的偏好程度數(shù)據(jù),,每個(gè)神經(jīng)元被用來(lái)表征對(duì)產(chǎn)品的某個(gè)特征值的喜愛(ài)程度,,因此其個(gè)數(shù)也與產(chǎn)品特征向量的維數(shù)相同,,即與輸入層神經(jīng)元個(gè)數(shù)相同;第三層輸出層輸出用戶對(duì)該產(chǎn)品的評(píng)分值,,因此輸出層神經(jīng)元個(gè)數(shù)為1,。
DEE用戶偏好模型的子神經(jīng)網(wǎng)絡(luò)采用上述BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),基于用戶偏好的模糊性和多樣性,,引入負(fù)相關(guān)學(xué)習(xí)方法并行訓(xùn)練M個(gè)成員網(wǎng)絡(luò),,得到該用戶的M個(gè)偏好模型,最后用差分進(jìn)化算法求解出最優(yōu)集成權(quán)重,,把用戶的M個(gè)偏好模型集成得到最后的用戶偏好模型,。用戶偏好的DEE模型流程圖如圖2所示。
3實(shí)例分析
本文采用Movielens數(shù)據(jù)集驗(yàn)證DEE用戶偏好模型的有效性,。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)用戶,該用戶有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ō)明集成模型在用戶偏好模型訓(xùn)練中具有更好的泛化能力,穩(wěn)定性高,,從一定程度上解決了單個(gè)BP神經(jīng)網(wǎng)絡(luò)在用戶偏好模型中表現(xiàn)的不穩(wěn)定性,。從均方差來(lái)看,數(shù)據(jù)集中表現(xiàn)最好的模型是本文提出的DEE模型,,其次是GAE模型,,而GASEN、KDE,、AGE模型表現(xiàn)相對(duì)不夠穩(wěn)定,,平均誤差相差不大,。綜上所述,本文提出的DEE模型在用戶偏好模型訓(xùn)練中能夠顯著減少均方差,,具有更好的泛化能力,,能夠客觀地反映用戶的偏好,從而提高了推薦的準(zhǔn)確率,。
4結(jié)論
基于用戶偏好的模糊性和復(fù)雜性,,本文首次引入神經(jīng)網(wǎng)絡(luò)集成的機(jī)器學(xué)習(xí)方法來(lái)構(gòu)建用戶偏好模型。首先通過(guò)產(chǎn)品特征和用戶偏好的映射建立了用戶偏好模型,,然后為了提高模型的泛化能力,,提出了一種基于差分進(jìn)化的負(fù)相關(guān)神經(jīng)網(wǎng)絡(luò)集成算法(DEE)構(gòu)建用戶偏好模型,最后通過(guò)Movielens數(shù)據(jù)集進(jìn)行仿真,。實(shí)驗(yàn)結(jié)果表明,DEE用戶偏好模型具有更好的泛化能力,,且結(jié)果表現(xiàn)穩(wěn)定,,從一定程度上解決了單個(gè)BP神經(jīng)網(wǎng)絡(luò)存在的模型精度差、結(jié)果表現(xiàn)不穩(wěn)定等問(wèn)題,,驗(yàn)證了DEE用戶偏好模型的有效性,。
參考文獻(xiàn)
[1] 牟向偉, 陳燕.基于模糊描述邏輯的個(gè)性化推薦系統(tǒng)建模[J].計(jì)算機(jī)應(yīng)用研究,2011,28(4):14291433.
?。?] 辛菊琴, 蔣艷, 舒少龍.綜合用戶偏好模型和BP神經(jīng)網(wǎng)絡(luò)的個(gè)性化推薦[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(2):5760,96.
?。?] 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.
?。?] 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.