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