鄭 捷,楊興耀,于 炯,李 想
(新疆大學(xué)軟件學(xué)院,新疆 烏魯木齊 830046)
科學(xué)技術(shù)的發(fā)展使人們進(jìn)入到大數(shù)據(jù)時(shí)代,移動(dòng)終端大數(shù)據(jù)正以指數(shù)趨勢(shì)增長(zhǎng)。無論是生產(chǎn)者還是用戶均面對(duì)海量數(shù)據(jù),作為普通用戶,難以準(zhǔn)確獲取感興趣的信息,降低了有效信息利用的率,大量無效信息對(duì)生活也造成困擾。為解決該問題,推薦系統(tǒng)得到了充分發(fā)展和廣泛利用,該系統(tǒng)具有一定被動(dòng)性優(yōu)勢(shì),用戶無需花費(fèi)大量時(shí)間了解信息內(nèi)容,系統(tǒng)會(huì)結(jié)合用戶行為特征主動(dòng)推薦他們想要的信息?,F(xiàn)階段,推薦系統(tǒng)在人們生活中無處不在,為進(jìn)一步提高推薦系統(tǒng)性能,相關(guān)學(xué)者也已經(jīng)得到了一些較好的推薦算法。
文獻(xiàn)[1]利用協(xié)同過濾算法完成推薦。綜合分析項(xiàng)目評(píng)分情況與用戶喜好,建立相似度矩陣;使用協(xié)同過濾方法實(shí)現(xiàn)用戶打分,將打分結(jié)果當(dāng)作訓(xùn)練信息,引入Top-N算法形成推薦集合。文獻(xiàn)[2]將深度學(xué)習(xí)過程引入到推薦算法中,對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,獲取上下文信息特點(diǎn),利用變分自編碼器建立一個(gè)能夠感知上下文的推薦模型。
但以上方法對(duì)用戶相似度的考慮不夠深入,無法獲取數(shù)據(jù)項(xiàng)目類間與類內(nèi)分布信息熵,樣本標(biāo)記出現(xiàn)偏差,容易出現(xiàn)用戶相似度單一問題,導(dǎo)致推薦精度偏低。為此,本文提出一種半監(jiān)督推薦算法。將半監(jiān)督方法當(dāng)作機(jī)器學(xué)習(xí)中的重點(diǎn)內(nèi)容,融合完全監(jiān)督和無監(jiān)督兩種算法各自優(yōu)勢(shì)。人工蜂群算法是半監(jiān)督方法的典型代表,利用此種方法重構(gòu)目標(biāo)函數(shù),實(shí)現(xiàn)用戶聚類,通過計(jì)算用戶之間的相似度,獲得近鄰數(shù)量,再對(duì)項(xiàng)目作出合理評(píng)分,將評(píng)分較高的數(shù)據(jù)推薦給用戶。仿真結(jié)果證明半監(jiān)督方法能夠在數(shù)據(jù)推薦中得到很好地應(yīng)用效果,進(jìn)一步提高了推薦精度。
建立偏好模型[3]是用戶聚類的基礎(chǔ),利用項(xiàng)目評(píng)分與項(xiàng)目屬性矩陣,構(gòu)建用戶偏好權(quán)重矩陣。分析具有m個(gè)用戶與n個(gè)項(xiàng)目的推薦系統(tǒng),設(shè)定用戶集與項(xiàng)目集的表達(dá)式分別如下
U={U1,U2,…,Um}(i=1,2,…,m)
(1)
I={I1,I2,…,In}(j=1,2,…,n)
(2)
則建立的項(xiàng)目評(píng)分矩陣見表1,元素rij代表用戶i對(duì)項(xiàng)目j的評(píng)分情況。
表1 評(píng)分矩陣
項(xiàng)目屬性集通過F={f1,f2,…,fs}描述,其矩陣形式見表2,元素ajk代表項(xiàng)目Ij特征屬性。
表2 屬性矩陣
由此可知,屬性fi在Li中出現(xiàn)的頻率越高,表明該屬性的用戶偏好程度越高,與其相對(duì)的權(quán)值也較大,偏好權(quán)重計(jì)算公式如下
(3)
式中,NLi代表集合Li內(nèi)包括屬性fj的項(xiàng)目數(shù)量。
(4)
(5)
利用式(5)建立表3所示的矩陣。
表3 用戶偏好矩陣
分析該矩陣能夠得出用戶對(duì)不同項(xiàng)目的喜愛度,建立偏好模型,為用戶聚類提供依據(jù)。
用戶聚類的主要目的是減少計(jì)算用戶相似度所用時(shí)間,縮小近鄰查找區(qū)間[5],將通過偏好矩陣得出的具有相似性的用戶劃分在同一個(gè)聚類簇內(nèi),保證相同簇內(nèi)用戶存在較高相似度。
本文利用了人工蜂群半監(jiān)督算法,該方法能夠從多個(gè)角度分析用戶屬性,更加精準(zhǔn)的建立相似用戶集合,改善相似度單一現(xiàn)象[6],有利于推薦效果的提高。
1)聚類數(shù)學(xué)模型
對(duì)于聚類問題,構(gòu)建下述數(shù)學(xué)模型:
已知樣本集合為X={x1,x2,…,xn},將其分割成多種類別C={C1,C2,…,Cκ},且xi(i=1,2,…,n)是d維矢量,κ屬于類別數(shù)量,同時(shí)滿足以下公式要求
(6)
Cj(j=1,2,…,κ)≠?
(7)
Ci∩Cj(i,j,…,κ,i≠j)=?
(8)
通常情況下,聚類目標(biāo)函數(shù)[7]如式(9)所示,其中d(xi,Cj)代表樣本xi和對(duì)應(yīng)類別中心Cj之間存在的距離,f則是全部樣本和對(duì)應(yīng)類別距離之和的均值,該值越小說明類內(nèi)間距也隨之減小,聚類效果越佳。
(9)
2)目標(biāo)函數(shù)優(yōu)化
半監(jiān)督學(xué)習(xí)算法需同時(shí)使用有標(biāo)簽和無標(biāo)簽的數(shù)據(jù)[8],且聚類是半監(jiān)督眾多學(xué)習(xí)方式中的一種,它可以根據(jù)一少部分先驗(yàn)知識(shí)引導(dǎo)聚類過程,依次改善聚類效果。
在人工蜂群半監(jiān)督算法中,目標(biāo)函數(shù)取值會(huì)影響聚類效果,上述目標(biāo)函數(shù)通過計(jì)算樣本與聚類中心的距離來劃分所屬類別,只使用了無標(biāo)記樣本,導(dǎo)致存在一定局限性。因此,有必要充分使用標(biāo)記數(shù)據(jù)來改善聚類效果,本文將對(duì)目標(biāo)函數(shù)作出改進(jìn),引入標(biāo)記數(shù)據(jù)約束聚類過程[9]。
根據(jù)聚類數(shù)學(xué)模型可知,樣本集合表示為
S=LS∪ULS
(10)
(11)
式中,α代表參數(shù),作為帶標(biāo)記數(shù)據(jù)在聚類過程中的權(quán)重值,可體現(xiàn)出算法對(duì)標(biāo)記樣本的重要程度,參數(shù)(1-α)則是沒有標(biāo)記的樣本在聚類時(shí)占有的權(quán)重。若α=1,人工蜂群算法只對(duì)于有標(biāo)記的樣本運(yùn)算,找出所有類別質(zhì)心;若α=0,則該算法是在無標(biāo)記數(shù)據(jù)基礎(chǔ)上實(shí)現(xiàn)聚類的。
結(jié)合上述改進(jìn)的目標(biāo)函數(shù),聚類過程可描述為:設(shè)置最大迭代與最大搜索次數(shù)[11];結(jié)合有標(biāo)記的樣本設(shè)置聚類數(shù)量;利用式(11)所示的目標(biāo)函數(shù)生成多個(gè)聚類中心簇[12],獲取每個(gè)簇的適應(yīng)度值,此值能描述各簇質(zhì)量;通過計(jì)算得出每個(gè)聚類中心的選取幾率,使用概率值選擇需改善的中心簇;若某聚類中心簇質(zhì)量在經(jīng)過多次搜索后并沒有出現(xiàn)變化,則去除該簇,通過式(11)生成新簇;選擇最佳聚類中心簇,將其保存;反復(fù)進(jìn)行上述操作,直到到達(dá)設(shè)置的最大搜索次數(shù),輸出最佳聚類中心簇。
1)用戶相似度計(jì)算與近鄰數(shù)量獲取
完成上述聚類后,實(shí)現(xiàn)了具有相同偏好的用戶集結(jié),還需進(jìn)一步計(jì)算用戶之間存在的相似度,確定近鄰數(shù)量。對(duì)于用戶相似度的計(jì)算包括余弦法以及相關(guān)性等計(jì)算方法。本文利用余弦法獲取用戶之間存在的相似度,計(jì)算公式如下
(12)
式中,ωu與ωv代表用戶u與v的偏好矢量。根據(jù)該相似度計(jì)算結(jié)果,獲取近鄰數(shù)量,公式為
(13)
式中,Mij代表項(xiàng)目有用戶評(píng)分的集合。
2)評(píng)分預(yù)測(cè)
確定目標(biāo)用戶對(duì)項(xiàng)目的近鄰集合后,利用此集合中的用戶對(duì)項(xiàng)目Iij打分,采用加權(quán)平均值的表示最終打分結(jié)果:
(14)
3)推薦結(jié)果生成
重復(fù)打分操作,預(yù)測(cè)用戶對(duì)全部項(xiàng)目的打分結(jié)果,對(duì)打分結(jié)果按照由高到低順序排列,選取其中前N′個(gè)項(xiàng)目推薦給用戶。
為驗(yàn)證半監(jiān)督推薦算法在移動(dòng)終端大數(shù)據(jù)推薦中的可行性,需進(jìn)行仿真。首先對(duì)該方法的聚類效果進(jìn)行測(cè)試。設(shè)置聚類原始置信度為96%,測(cè)試樣本為四種具有不同偏好特征的用戶,樣本數(shù)據(jù)初始分布情況見圖圖1(a)。假設(shè)四種類型數(shù)據(jù)分別以(0.7,0.6)、(0.7,0.4)、(1.1,0.6)和(0.3,0.6)為聚類中心。利用基于協(xié)同過濾和深度學(xué)習(xí)的大數(shù)據(jù)推薦算法與本文算法進(jìn)行對(duì)比,聚類結(jié)果如圖1所示。
圖1 不同算法的數(shù)據(jù)聚類效果對(duì)比圖
如圖1所示,本文算法能夠按照聚類要求將相同類型的樣本數(shù)據(jù)集合在一起;協(xié)同過濾算法雖然也能夠?qū)崿F(xiàn)數(shù)據(jù)聚類,但同一類數(shù)據(jù)間較為分散,若數(shù)據(jù)量增多,會(huì)造成錯(cuò)誤聚類現(xiàn)象;深度學(xué)習(xí)算法則出現(xiàn)聚類錯(cuò)誤情況。這是因?yàn)?,本文使用的半監(jiān)督方法改進(jìn)了目標(biāo)函數(shù),能夠引導(dǎo)聚類結(jié)果向最優(yōu)結(jié)果收斂。
(15)
(16)
(17)
因此,能夠獲得每次迭代時(shí)產(chǎn)生的F-Score值,將該值變化趨勢(shì)與最佳目標(biāo)函數(shù)變化趨勢(shì)進(jìn)行對(duì)比,得到如圖所示的結(jié)果。
由圖2可知,隨迭代次數(shù)的不斷增加,目標(biāo)函數(shù)值逐漸降低,而F-Score值越來越大。這種現(xiàn)象表明聚類中心簇和最佳聚類結(jié)果越來越相近,且收斂過程平穩(wěn)。進(jìn)一步證明了半監(jiān)督聚類算法在處理連續(xù)優(yōu)化問題時(shí),可避免陷入局部最優(yōu)解。
圖2 目標(biāo)函數(shù)與F-Score值的變化趨勢(shì)圖
最后,利用平均絕對(duì)誤差(MAE)評(píng)價(jià)三種算法的推薦準(zhǔn)確度,該值越小表明推薦結(jié)果越好。若利用推薦算法計(jì)算得出的用戶對(duì)項(xiàng)目的評(píng)分集合表示為p={p1,p2,…,px′}而實(shí)際評(píng)分利用q={q1,q2,…,qx}描述,則平均絕對(duì)誤差表達(dá)式如下
(18)
假設(shè)推薦次數(shù)為20次,每一次都有新的數(shù)據(jù)增加,數(shù)據(jù)集合會(huì)不斷擴(kuò)大,記錄三種方法每一次測(cè)試情況,結(jié)果如圖3所示。
由圖3能夠看出,隨著數(shù)據(jù)量的不斷增加,所提算法的推薦誤差并沒有表現(xiàn)出明顯上升趨勢(shì);而其它兩種算法的推薦誤差均有不同程度提高,整體上本文算法的誤差最低。這主要依賴于本文算法建立了用戶偏好模型,無論數(shù)據(jù)量多還是少,總能準(zhǔn)確挖掘出用戶感興趣的內(nèi)容,并將其推薦給用戶,提高滿意度。
本文在大數(shù)據(jù)推薦過程中引入了基于人工蜂群的半監(jiān)督算法,通過構(gòu)建用戶偏好模型,為聚類過程奠定良好基礎(chǔ);使用半監(jiān)督聚類算法提取具有相似偏好的用戶,有利于推薦精度的提高,再通過相似度計(jì)算、近鄰數(shù)量確定、評(píng)分預(yù)測(cè)等過程輸出最優(yōu)推薦結(jié)果。但該算法還存在一定不足,在探究用戶偏好過程中,應(yīng)使用相關(guān)語言處理方法更加深入地獲取用戶偏好,可附加更多性別、職業(yè)等信息,使模型更加精確,改善推薦效果。