本發(fā)明涉及推薦系統(tǒng)領(lǐng)域,尤其是涉及一種基于凸優(yōu)化局部低秩矩陣近似的推薦系統(tǒng)數(shù)據(jù)補全方法。
背景技術(shù):
:當(dāng)前,個性化推薦服務(wù)在現(xiàn)實中應(yīng)用廣泛。個性化推薦服務(wù)的主要產(chǎn)物就是推薦系統(tǒng),推薦系統(tǒng)是根據(jù)用戶過往的記錄信息,包括購買記錄、瀏覽記錄、評分等,來分析預(yù)測用戶對于其他產(chǎn)品的喜好程度,挖掘潛在的消費需求。推薦系統(tǒng)不僅有很大的學(xué)術(shù)價值,在電子商務(wù)領(lǐng)域更是研究的熱點,許多電子商務(wù)系統(tǒng)通過推薦系統(tǒng)向用戶推薦個性化信息,例如電子商務(wù)網(wǎng)站Amazon每年銷售收入的20%—30%來自推薦系統(tǒng);電影租賃網(wǎng)站Netflix有近60%的用戶是通過推薦系統(tǒng)找到自己感興趣的電影。1992年,GoWberg等人首次提出了協(xié)同過濾算法,并且建立了首個個性化推薦系統(tǒng)。1995年3月,有學(xué)者提出了個性化導(dǎo)航的WebWatcher系統(tǒng),斯坦福大學(xué)的學(xué)者則提出了LIRA個性化推薦系統(tǒng)。1997年明尼蘇達(dá)大學(xué)的研究人員創(chuàng)建了在線電影推薦系統(tǒng)MovieLens,是協(xié)同過濾推薦技術(shù)發(fā)展中一個開創(chuàng)性的進(jìn)步,MovieLens通過利用用戶對電影感興趣的程度與協(xié)同過濾推薦技術(shù)向用戶推薦其可能感興趣且沒看過的電影。2001年,紐約大學(xué)的GediminasAdoavicius等人提出了基于用戶建模的電子商務(wù)推薦系統(tǒng)1Pro;IBM實現(xiàn)了基于關(guān)聯(lián)規(guī)則的個性化推薦系統(tǒng)Webspheret。2001年,Amazon將推薦系統(tǒng)應(yīng)用到電子商務(wù)系統(tǒng)中,個性化推薦開始從學(xué)術(shù)研究邁向?qū)嶋H應(yīng)用,此后,協(xié)同過濾推薦算法獲得了巨大的成功并被廣泛應(yīng)用到電子商務(wù)系統(tǒng)中。2006年,Netflix設(shè)立了NetflixPrize,要求參賽者利用其公司提供的數(shù)據(jù)集來實現(xiàn)一個推薦系統(tǒng),使得RMSE(RootMeanSquareError)均方差誤差比NetFlix系統(tǒng)中的RMSE提高10%,其獎金是100萬美元,該比賽引起了很大的轟動,并使得眾多的研究人員投身其中。2007年,Google根據(jù)用戶最近搜索去挖掘用戶的興趣愛好,從而依據(jù)關(guān)鍵字在在線廣告AdWorks中提供給用戶個性化推薦服務(wù)。1999年,清華大學(xué)路海明等人提出了基于多代理技術(shù)的混合智能個性化推薦服務(wù)。2000年,北京大學(xué)余錦鳳等人開始研究個性化定制服務(wù)。2001年,南京大學(xué)的潘金貴等人研發(fā)了個性化信息檢索智能系統(tǒng)DOLTRI-AgentPW;清華大學(xué)馮韓等人設(shè)計了混合推薦系統(tǒng)OpenBookmarkPU,該系統(tǒng)混合向量空間法與協(xié)同過濾法進(jìn)行推薦。2002年,上海理工大學(xué)陳世平等人設(shè)計了面向領(lǐng)域的智能檢索系統(tǒng)Myspy,使用多代理技術(shù)來巧理Web文檔索引數(shù)據(jù)庫。2003年鄧愛林等人的《基于物品評分預(yù)測的協(xié)同過濾推薦算法》;2004年余力等的《電子商務(wù)個性化推薦研究》;2007年彭玉等的《基于屬性相似性的Item-based協(xié)同過濾算法》;2009年彭德巍等的《一種基于用戶特征和時間的協(xié)同過濾推薦算法》這些優(yōu)秀的論文代表了中國學(xué)術(shù)界在個性化技術(shù)的發(fā)展。2008年,阿里巴巴旗下的淘寶網(wǎng)推出了個性化推薦系統(tǒng),旨在幫助用戶在大量的商品中查找自己感興趣的物品。2011年,百度推出了個性化推薦首頁,根據(jù)用戶的興趣和行為向其推薦符合其需求的信息。2014年,阿里巴巴舉辦"天貓推薦算法大賽",掀起了國內(nèi)的研究熱潮。但是,近年來隨著互聯(lián)網(wǎng)和電子商務(wù)的飛速發(fā)展,用戶數(shù)目和物品數(shù)目都變成了非常龐大的數(shù)字,而這兩組龐大的數(shù)字結(jié)合成為更加龐大的用戶-物品評分矩陣,但是,由于每個用戶所能接觸的物品有限,被用戶打過分的只能占到少數(shù),從而使得該用戶-物品評分矩陣中的絕大部分?jǐn)?shù)呈現(xiàn)空缺,進(jìn)而使得該用戶-物品評分矩陣具有較高的稀疏性,這樣當(dāng)數(shù)據(jù)推薦系統(tǒng)來預(yù)測用戶對某一物品的評分時,由于用戶間的評分重疊較少,通過相似用戶的評分?jǐn)?shù)據(jù)來為用戶的某一物品預(yù)測的評分顯然準(zhǔn)確度并不高。因此,如何建立數(shù)據(jù)全面的推薦系統(tǒng)是有必要解決的問題。技術(shù)實現(xiàn)要素:本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于凸優(yōu)化局部低秩矩陣近似的推薦系統(tǒng)數(shù)據(jù)補全方法,能夠在保證運算速度與準(zhǔn)確性的條件下,完成推薦系統(tǒng)矩陣數(shù)據(jù)補全。本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):一種基于凸優(yōu)化局部低秩矩陣近似的推薦系統(tǒng)數(shù)據(jù)補全方法,包括以下步驟:1)根據(jù)推薦系統(tǒng)中用戶對產(chǎn)品的評分構(gòu)建推薦系統(tǒng)數(shù)據(jù)矩陣M,用戶對產(chǎn)品未評分的數(shù)據(jù)在M中以0元素表示;2)選取錨點,采用核光滑方法將所述推薦系統(tǒng)數(shù)據(jù)矩陣劃分為若干個局部矩陣,局部矩陣的個數(shù)與所述錨點的個數(shù)相同;3)根據(jù)凸優(yōu)化局部低秩矩陣近似算法求解矩陣補全模型,根據(jù)所述矩陣補全模型補全矩陣M中的0元素,得到補全之后的推薦系統(tǒng)數(shù)據(jù)矩陣X。所述步驟1)具體為:將推薦系統(tǒng)中用戶對產(chǎn)品的評分分為五個等級,以1到5表示,等級超高表示用戶對產(chǎn)品的喜愛程度越高,用0表示用戶對產(chǎn)品未評分,從而形成推薦系統(tǒng)數(shù)據(jù)矩陣M,且M∈Rm×n,滿足條件:其中,m、n表示推薦系統(tǒng)數(shù)據(jù)中用戶個數(shù)和產(chǎn)品個數(shù),即矩陣M的行列值,ПA(M)來表示M中從下標(biāo)到對應(yīng)數(shù)值的映射,A表示M中已知的數(shù)據(jù),(ai,bi)表示M中的已知元素。所述步驟2)中的錨點為從訓(xùn)練集中均勻抽取的樣本點,其中訓(xùn)練集來自推薦系統(tǒng)數(shù)據(jù)矩陣M,大小是M的50%。所述步驟2)中,核光滑方法采用的核光滑函數(shù)Kh為:Kh(s1,s2)=(1-d(s1,s2)2)1[d(s1,s2)<h]其中,h為帶寬,s1、s2分別為矩陣M中的兩個元素,d(s1,s2)表示元素s1,s2之間的相似性。所述步驟2)中,獲得的各局部矩陣之間具有重疊。所述步驟3)中,根據(jù)凸優(yōu)化局部低秩矩陣近似算法求解得到的矩陣補全模型為:s.t.XΩ=MΩ其中,q為局部矩陣個數(shù),為求跡范數(shù),表示第i個錨點確定的局部矩陣補全后的矩陣數(shù)據(jù),Ω表示矩陣中已知的元素。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:(1)本發(fā)明基于局部低秩矩陣近似的方法降低了矩陣是全局低秩的假設(shè),,基于矩陣全局低秩假設(shè)往往受限于大型矩陣,而假設(shè)矩陣是局部近似的,更符合實際情況,且更加適用于大型矩陣數(shù)據(jù);(2)基于凸優(yōu)化局部低秩矩陣近似的推薦系統(tǒng)數(shù)據(jù)補全方法是完全的凸優(yōu)化問題,更易于求解獲取最優(yōu)解,提高補全矩陣的準(zhǔn)確性;(3)本發(fā)明方法可以方便的應(yīng)用在個性化推薦系統(tǒng)上,此外,還適用于圖像恢復(fù)。附圖說明圖1為本發(fā)明的流程示意圖;圖2為本發(fā)明全局矩陣劃分為多個局部矩陣的示意圖。具體實施方式下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。本實施例以本發(fā)明技術(shù)方案為前提進(jìn)行實施,給出了詳細(xì)的實施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實施例。如圖1所示,本實施例提供一種基于凸優(yōu)化局部低秩矩陣近似的推薦系統(tǒng)數(shù)據(jù)補全方法,包括以下步驟:(1)根據(jù)推薦系統(tǒng)中用戶對產(chǎn)品的評分構(gòu)建推薦系統(tǒng)數(shù)據(jù)矩陣M,具體地,將推薦系統(tǒng)中用戶對產(chǎn)品的評分分為五個等級,以1到5表示,等級超高表示用戶對產(chǎn)品的喜愛程度越高,用0表示用戶對產(chǎn)品未評分,從而形成推薦系統(tǒng)數(shù)據(jù)矩陣M,且M∈Rm×n,滿足條件:其中,m、n表示推薦系統(tǒng)數(shù)據(jù)中用戶個數(shù)和產(chǎn)品個數(shù),即矩陣M的行列值,∏A(M)來表示M中從下標(biāo)到對應(yīng)數(shù)值的映射,A表示M中已知的數(shù)據(jù),(ai,bi)表示M中的已知元素。矩陣M中的0元素表示未知數(shù)據(jù),是需要補全的數(shù)據(jù)。(2)選取錨點,采用核光滑方法將所述推薦系統(tǒng)數(shù)據(jù)矩陣劃分為若干個局部矩陣,局部矩陣的個數(shù)與所述錨點的個數(shù)相同,且獲得的各局部矩陣之間具有重疊。具體過程如下:201)首先選出錨點,這里有三種方法從樣本中均勻的抽取錨點,第一種方法是從樣本[m]×[n]中均勻的抽取錨點;第二種方法是從訓(xùn)練集中抽取錨點;第三種方法是從測試集上選取。本發(fā)明是采用第二種方法,并選取出q個錨點。202)確定采用的核光滑函數(shù),常用的核光滑函數(shù)有uniformkernel、triangularkernel和Epanechnikovkernel,本發(fā)明采用的是Epanechnikovkernel,公式是:Kh(s1,s2)=(1-d(s1,s2)2)1[d(s1,s2)<h]其中,h為帶寬,s1、s2分別為矩陣M中的兩個元素,d(s1,s2)表示元素s1,s2之間的相似性。針對錨點的行列,具體采用的核光滑公式是:其中,(a,b)和(c,d)是矩陣M中兩個元素的行列坐標(biāo),K和K′分別是行和列上的核光滑函數(shù),h1,h2表示帶寬,取h1=0.8,h2=0.8。Epanechnikovkernel公式中的d表示元素之間的相似性,例如求取用戶i和用戶j之間的相似性,公式是:對于q個錨點具體的坐標(biāo)為(at,bt)其中t=1,...,q,分別進(jìn)行如下求解:從矩陣M第1行到矩陣的第m行:計算從矩陣M第1列到矩陣的第n列:計算203)最后計算得到對應(yīng)錨點的q個矩陣,劃分結(jié)果如圖2所示。(3)根據(jù)凸優(yōu)化局部低秩矩陣近似算法求解矩陣補全模型,根據(jù)所述矩陣補全模型補全矩陣M中的0元素,得到補全之后的推薦系統(tǒng)數(shù)據(jù)矩陣X。根據(jù)凸優(yōu)化局部低秩矩陣近似算法求解得到的矩陣補全模型為:s.t.XΩ=MΩ其中,q為局部矩陣個數(shù),為求跡范數(shù),表示第i個錨點確定的局部矩陣補全后的矩陣數(shù)據(jù),Ω表示矩陣中已知的元素。上述矩陣補全模型的求解是一個凸優(yōu)化問題,可以采用ADMM方法求解,從而獲得補全之后的矩陣數(shù)據(jù)X。推薦系統(tǒng)中通常通過推薦算法的預(yù)測評分與用戶的實際評分是否接近來評價算法的準(zhǔn)確性?,F(xiàn)在普遍使用RMSE(均方根誤差)來判斷預(yù)測的準(zhǔn)確度:計算本發(fā)明實施例中通過補全后的矩陣X和原矩陣M計算RMSE的值。與當(dāng)前流行的SVD算法和LLORMA算法進(jìn)行比較,得到的結(jié)果如表1所示,RMSE越小代表算法的準(zhǔn)確度越好,通過結(jié)果發(fā)現(xiàn)本發(fā)明實施例效果好于SVD算法和LLORMA算法,說明本發(fā)明方法矩陣補全的準(zhǔn)確度明顯優(yōu)于現(xiàn)在比較優(yōu)秀的SVD算法和LLORMA算法。表1SVDLLORMA本發(fā)明r=50.88350.86040.8580r=100.87640.84440.8385r=150.87580.83650.8333以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3