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