孫華艷,李業(yè)麗,字云飛,韓 旭
(北京印刷學(xué)院 信息工程學(xué)院,北京 102600)
伴隨著互聯(lián)網(wǎng)的迅速發(fā)展,智能化、個性化的服務(wù)成為電商產(chǎn)業(yè)極大的需求,如何通過存儲有海量數(shù)據(jù)的自媒體為用戶提供個性化的推薦成為了智能網(wǎng)絡(luò)研究的熱點。研究人員提出了以協(xié)同過濾推薦算法為主流的多種推薦算法,相比其他算法,協(xié)同過濾推薦算法的易實現(xiàn)性和可擴展性使其在電商和自媒體等領(lǐng)域應(yīng)用廣泛。但隨著互聯(lián)網(wǎng)數(shù)據(jù)呈幾何級數(shù)增長、數(shù)據(jù)內(nèi)容復(fù)雜度不斷提高,協(xié)同過濾技術(shù)也面臨著兩個瓶頸問題[1-5]:數(shù)據(jù)的稀疏性和可擴展性。
數(shù)據(jù)稀疏性問題是推薦系統(tǒng)面臨的主要問題,也是導(dǎo)致系統(tǒng)推薦質(zhì)量下降的主要原因[6]。目前,對該問題的解決分為兩類,一類為矩陣填充技術(shù),另一類為矩陣降維技術(shù)[6-8]。矩陣填充技術(shù)比較理想的方法有BP神經(jīng)網(wǎng)絡(luò)、Naive Bayesian分類方法、基于內(nèi)容的預(yù)測[9-10]。矩陣降維技術(shù)比較典型的方法是奇異值分解(singular value decomposition,SVD)技術(shù)[11-12]。針對個性化推薦過程中最近鄰準確性的不足,文中提出了基于因果聚類分析的協(xié)同過濾推薦算法和基于模糊相似關(guān)系的協(xié)同過濾推薦算法。前者利用因果聚類對收集的信息進行分析研究,找出其內(nèi)在聯(lián)系,實現(xiàn)個性化的精準推薦。后者通過最大樹法及確定最佳閾值λ以更加合理、精準地計算最近鄰[13-14]。最后將算法應(yīng)用于美食推薦系統(tǒng)中進行驗證[15]。
協(xié)同過濾(collaborative filtering,CF)推薦算法[16-18]是通過對用戶—項目之間的評價、分享、轉(zhuǎn)存等數(shù)據(jù)的分析,找出基于用戶或項目的相似度,實現(xiàn)精準化推薦。協(xié)同過濾推薦算法分為:(1)基于用戶的協(xié)同過濾推薦算法(user-based collaborative filtering),通過用戶搜索,對喜歡產(chǎn)品的評價、收藏等數(shù)據(jù)信息度量有相同行為的用戶之間的關(guān)系來實現(xiàn)產(chǎn)品的推薦。(2)基于項目的協(xié)同過濾推薦算法(item-based collaborative filtering),通過不同用戶對于不同產(chǎn)品的評價及喜好程度來度量產(chǎn)品之間的緊密程度,從而實現(xiàn)產(chǎn)品的推薦。
(1)收集用戶—項目數(shù)據(jù);
(2)計算用戶—項目的相似度,找出最近鄰或相似度最高的N個用戶或項目;
(3)把N個相似度最高的用戶或項目推薦給對應(yīng)的項目或用戶。
計算相似度之后尋找最近鄰,令Zum為最近鄰,對項目的s預(yù)測評分的計算為:
(2)
(3)
其中,Ts為項目總和;muw為u對產(chǎn)品w的評價值。
(2)余弦相似度(cosine similarity):通過兩個或以上用戶對不低于兩個產(chǎn)品的評分來計算兩用戶之間的興趣相似度。設(shè)用戶x和y對產(chǎn)品的評價數(shù)組數(shù)據(jù)為x和y,相似度計算如下:
(4)
事物本身的因果關(guān)系就存在著相似性,也就是可以通過對以往的經(jīng)驗和數(shù)據(jù)尋找事物存在的規(guī)律。例如:用戶a因為喜歡《python數(shù)據(jù)挖掘》,所以他也可能喜歡《數(shù)據(jù)挖掘算法》,它們之間存在著這種因果關(guān)系。同理對于a和b兩個用戶,因為他們之間有共同喜愛的一門課程,那么他們之間也有可能存在共同喜愛的另外一門課程。本節(jié)基于因果聚類的協(xié)同過濾推薦算法,將以更加精細和準確的關(guān)聯(lián)計算來實現(xiàn)項目的精準可靠推薦。引入項目和用戶的因果關(guān)系計算相似性更進一步提高度量相似度。
因果模糊聚類[19-20]的核心是擇近原則。設(shè)對要分析處理的項目集α,每個項目存在的特征值為(x1,x2,…,xn),然后對特征值的因果模糊聚類和模式識別判定、預(yù)測它們的歸屬性,從而實現(xiàn)更好的推薦。
(1)特征模糊集的建立。
設(shè)所有項目集為α,對于α的聚類通過三元結(jié)構(gòu)(X,Y,φ)處理,所以X=(X1×X2×…×Xn)是n元Descartes累乘,Y為非空冪集,φ為X到Y(jié)的映射,如:φ:X1×X2×…×Xn→Y。
同時記zt=(xt,yt),通過模糊等價計算出對應(yīng)的最佳聚類(z1,z2,…,zm)=(T1,T2,…,Tm),特征模糊集Vi={xt1,xt2,…,xtki}(i=1,2,…,m),其中(xts,yts)為項目Ti的最佳聚類,Vi是Ti的特征軸投影。計算:
(5)
(6)
對于x=(x1,x2,…,xn)屬于項目的特征值,令
(7)
其中,i,j=1,2,…,m為特征取值的范圍;(ω1,ω2,…,ωn)為一組確定的權(quán)重。
令Wi={yt1,yt2,…,ytki},其中i=1,2,…,m,(xts,yts)=zts屬于項目最佳聚類Ti,Wi是Ti的預(yù)測相似軸投影,計算:
(8)
建立因果模糊聚類A∈X,對應(yīng)項目的分類(T1,T2,…,Tm)為:
(2)進行因果聚類的判定。
若s期特征的狀態(tài)為確定特征值xs∈X,則xs與{P1,P2,…,Pm}為最大隸屬度原則,Aj=max(A1(u0),A2(u0),…,An(u0))。
若s期特征的狀態(tài)為模糊集Bs∈X,則Bs與{P1,P2,…,Pm}通過擇近原則。
最后,選取Pi0,同時對應(yīng)的Ii0為項目集α與s期的因果聚類的模糊判定值(i0∈{1,2,…,m})。
該方法通過計算某項目影響推薦效果的n個因素,計算并構(gòu)造相應(yīng)的三角模糊數(shù),最后根據(jù)最大隸屬度原則或擇近原則進行模糊預(yù)測,從而找出影響最終推薦的可能性最大的因素及特征值,再根據(jù)這一影響因素實現(xiàn)精準、個性化的推薦。
步驟1:對于項目的原始特征及數(shù)據(jù),進行標注化處理,標定值的大小表示兩個特征之間的相似度;
步驟2:通過計算將項目原始特征數(shù)據(jù)轉(zhuǎn)化成模糊矩陣R;
步驟3:將模糊矩陣R進行模糊聚類分析,并且計算出最佳聚類;
步驟4:根據(jù)各聚類的特征函數(shù)及權(quán)值,構(gòu)建三角模糊數(shù),從而選取最佳特征值,實現(xiàn)精準、個性化推薦。
算法最后通過對項目的評價、分享、收藏等原始數(shù)據(jù)值最高的特征進行計算及分析處理,最佳特征為一個取值空間的中間值,所以以中間值為中心的不超過兩端取值范圍為最佳特征數(shù)。
用戶在網(wǎng)上有目標的搜索是一種顯性需求,然而顯性需求的信息數(shù)據(jù)背后隱藏著隱性需求,這就是個性化推薦的核心。起初,網(wǎng)站極少的用戶共同評價數(shù)據(jù),很難準確地獲得最近鄰。例如,兩個非常喜歡計算機科學(xué)的用戶由于不存在共同評價數(shù)據(jù),其相似度計算結(jié)果為零。而與他們不是同一類的書籍愛好者由于存在評價數(shù)據(jù),相似度反而高于零。這就是網(wǎng)站對于新用戶評價項目的第一評價以及數(shù)據(jù)稀疏性問題,僅以共同評價數(shù)據(jù)判斷相似級別顯然不精準。文中通過結(jié)合項目所屬分類來計算用戶的相似程度,這是由于用戶對于統(tǒng)一屬性的項目會有相似的喜好程度。
用戶喜歡的項目類可能擁有多個特征,而它們之間又可能存在著特征重疊或相通性,所以可以通過模糊相似關(guān)系的直接聚類法求其項目之間的緊密程度,也就是相似度?;谀:嗨脐P(guān)系的協(xié)同過濾推薦算法就是通過求其最大樹法尋找最近鄰,從而實現(xiàn)個性化精準推薦。
基于模糊相似關(guān)系的協(xié)同過濾推薦算法[21]是通過對項目的標定得到模糊矩陣R,然后根據(jù)相似矩陣R得到一棵權(quán)重樹,通過最佳閾值λ確定法對相似矩陣進行截集,應(yīng)用直接聚類求出相似性,獲得最佳聚類,最后對用戶進行精準的個性化產(chǎn)品推薦。
(1)項目特征值的標定。
從項目ui和uj中選取最具有特征性的m個特征值,分別為ui=(xi1,xi2,…,xim)、uj=(xj1,xj2,…,xjm),然后計算得到項目模糊相似矩陣。
(9)
(2)構(gòu)造最大樹。
首先,根據(jù)第1步對項目特征值的標定得到模糊相似矩陣R,畫出被分類因素為節(jié)點,以相似矩陣R的因素rij為權(quán)重的一棵最大樹;其次,選取最佳閾值λ;最后,砍斷權(quán)重低于λ的枝,得到一幅連通圖,相聯(lián)的分支就構(gòu)成了λ水平上的分類,這就是獲得相似度較高的最佳聚類。
(3)計算最佳閾值λ。
要實現(xiàn)精準、個性化推薦,閾值λ的選取是核心。通過模糊相似矩陣依次取λ的最大樹,再利用最大樹法得到的截集來實現(xiàn)精準、個性化推薦。
聚類圖可以給出各λ對應(yīng)的分類,形成一種動態(tài)聚類。對于閾值λ的選取,由于人為的分類總是帶有主觀性,所以可用F-統(tǒng)計量來選取。
(10)
通過最佳閾值λ確定法計算模糊相似矩陣的方法,可以更精準地把相似度高的特征屬性項目聚為同一種推薦項目,然后運用這一方法對用戶進行精準、個性化的產(chǎn)品推薦。
實驗數(shù)據(jù)是在合法范圍內(nèi),基于Python語言的數(shù)據(jù)挖掘技術(shù)在美團網(wǎng)上抓取的。美團網(wǎng)擁有中國最多的美食信息資源,也是國內(nèi)最活躍、最權(quán)威的外賣網(wǎng)之一。抓取數(shù)據(jù)中包含對美食的評分(值為1~5,值越大表明用戶喜好度越高)、特征和網(wǎng)絡(luò)社交關(guān)系等。在美團網(wǎng)上用戶可以對美食進行等級評分、收藏以及給朋友分享推薦,所以美團網(wǎng)的數(shù)據(jù)對于美食推薦具有很高的參考價值。其中抓取了10萬條評分數(shù)據(jù),含有947個用戶對1 678個美食的評判分數(shù),每個用戶不少于對27個美食進行評分。
利用用戶對美食的評分值來表達對美食的喜愛程度。
數(shù)據(jù)密度=100 000/(947×1 678)=0.062 9
(11)
表明數(shù)據(jù)的稀疏性非常高。
通過對抓取數(shù)據(jù)隨機抽取70 000條作為實驗訓(xùn)練集,抽取30 000條作為測試集,分別對傳統(tǒng)過濾推薦算法和基于因果聚類和模糊相似關(guān)系的協(xié)同過濾推薦算法進行實驗。
文中應(yīng)用的統(tǒng)計精度測量中的絕對誤差(MAE)是度量推薦結(jié)果好壞的最有效方法之一。MAE值越小表明推薦效果越佳。
(12)
其中,m為項目集中評分項的量;pi為對算法預(yù)估的評判分數(shù);qi為測試數(shù)據(jù)的實際分數(shù)。
實驗基于抓取的數(shù)據(jù)對傳統(tǒng)的協(xié)同過濾推薦算法與因果聚類及模糊相似關(guān)系的協(xié)同過濾推薦算法進行了平均絕對誤差值的比較分析,如圖1所示。最近鄰的數(shù)量也將影響推薦的效果,過少將會降低推薦的精準性,過多將極大增加算法的復(fù)雜度,實驗中選取最近鄰的數(shù)量為10~40。
圖1 3種算法的MAE比較
通過圖1可知,無論選取多大最近鄰數(shù),提出的基于因果聚類及模糊相似關(guān)系的協(xié)同過濾推薦算法的平均MAE都低于傳統(tǒng)推薦算法,表明該算法具有較高的精準度,對推薦系統(tǒng)精準度的提高有明顯幫助。其中基于因果聚類的協(xié)同過濾推薦算法在最近鄰數(shù)量低于23左右時,精準度略高于基于模糊相似關(guān)系的協(xié)同過濾推薦算法。這是因為因果聚類是基于模糊相似關(guān)系法中的模糊矩陣加各項目的權(quán)重來進行聚類分析推薦,所以它的平均絕對誤差略小。當(dāng)最近鄰高于23以后,因果聚類法的最終預(yù)測值在最大隸屬度或擇近范圍中會擴大,所以精準度趨于不變,而基于模糊相似關(guān)系的協(xié)同過濾推薦算法的精準度則繼續(xù)提高。
各推薦算法中相似度度量法的好壞直接影響了推薦項目或用戶的精準度和個性化。文中提出的基于因果聚類與模糊相似關(guān)系的協(xié)同過濾推薦算法主要通過增加項目權(quán)重的三角模糊數(shù)法和計算最大樹及最佳閾值λ確定法來提高相似度的度量。同時,該算法通過對項目或用戶特征值的內(nèi)外距離計算或加權(quán)計算特征模糊集,都能減小稀疏性帶來的負面影響。下一步將結(jié)合聚類技術(shù)解決協(xié)同過濾推薦技術(shù)的可擴展性問題。