一種提升推薦系統(tǒng)準(zhǔn)確性的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)服務(wù)領(lǐng)域,更具體地,涉及一種提升推薦系統(tǒng)準(zhǔn)確性的方法。
【背景技術(shù)】
[0002] 互聯(lián)網(wǎng)已經(jīng)和人們的日常生活緊密結(jié)合在一起。近年來,推薦系統(tǒng)廣泛應(yīng)用于以 電子商務(wù)為代表的各種互聯(lián)網(wǎng)應(yīng)用,以此解決信息過載問題。大多推薦系統(tǒng)采用協(xié)同過濾 技術(shù),這種技術(shù)通過分析用戶過往的大量網(wǎng)上歷史記錄,學(xué)習(xí)用戶的網(wǎng)上行為模式并建立 模型,幫助用戶從海量信息中篩選其需要的信息,并推薦給用戶。亞馬遜、淘寶等國內(nèi)外知 名網(wǎng)站的推薦服務(wù)大都基于協(xié)同過濾。
[0003] 在推薦系統(tǒng)中,用戶的歷史行為數(shù)據(jù)被組織成評分矩陣RUXI的形式,其中的數(shù)據(jù) 項RU1代表用戶u對項目i(商品、新聞、影音作品等)的評分?,F(xiàn)實中,用戶只會給極少數(shù) 的項目評分,相應(yīng)信息系統(tǒng)的評分矩陣相當(dāng)稀疏。因此,推薦系統(tǒng)需要預(yù)測出缺失的評分, 按分值排序,將評分值最高的項目推薦給用戶。
[0004] 基于協(xié)同過濾的推薦系統(tǒng)通常采用矩陣分解算法實現(xiàn)。具體而言,矩陣分 解需要從評分矩陣RUXI推導(dǎo)出一個低階近似矩陣(= ),其中D〈〈u,I,
rr(?)表示誤差。WUXD(VIXD)的每一個行向量WuVi表示用 戶評分矩陣的一個特征向量,因此,缺失的評分?jǐn)?shù)據(jù)可以由計算得到。
[0005] 然而,現(xiàn)實數(shù)據(jù)集中通常存在一些不真實的數(shù)據(jù),評分矩陣中存在一定量的數(shù)據(jù) 噪聲。用戶會下意識地給出不當(dāng)評分,或者信息系統(tǒng)受到人為評分干擾攻擊,因此真實評分 數(shù)據(jù)中存在很多噪聲?,F(xiàn)在的矩陣分解算法大都使用Euclid范數(shù)|:| ? |||作為誤差函數(shù),因此 在評分噪聲環(huán)境下表現(xiàn)得不夠魯棒。之所以選擇Euclid范數(shù)作為誤差函數(shù),是因為人們假 設(shè)評分?jǐn)?shù)據(jù)服從高斯分布。高斯分布對離群點的敏感性致使少量的評分噪聲就會使推薦準(zhǔn) 確率顯著下降。
【發(fā)明內(nèi)容】
[0006]
[0007] 本發(fā)明要解決的技術(shù)問題是克服現(xiàn)有技術(shù)中互聯(lián)網(wǎng)推薦系統(tǒng)存在的缺陷和技術(shù) 不足,提供一種提升推薦系統(tǒng)準(zhǔn)確性的方法,通過該方法可以有效對抗評分噪聲,提升推薦 準(zhǔn)確率。
[0008] 本發(fā)明的上述目的通過如下技術(shù)方案予以實現(xiàn):
[0009] -種提升推薦系統(tǒng)準(zhǔn)確性的方法,包括如下步驟:
[0010] S1?構(gòu)建數(shù)據(jù)子集;
[0011] S2.在步驟S1.構(gòu)建的數(shù)據(jù)子集上分別應(yīng)用基于高斯混合分布的評分模型:
[0012]RU1= E[ff
[0013] 其中RU1表示模型預(yù)測的評分,E[.]表示期望,WJVJ表示用戶評分矩陣的特征向 量。
[0014] 標(biāo)記各個數(shù)據(jù)子集中的無標(biāo)簽數(shù)據(jù),獲得各個教練集;
[0015]S3.將步驟S2.獲得的教練集中被標(biāo)記的原始無標(biāo)簽數(shù)據(jù)加入到其他子集中的有 標(biāo)簽數(shù)據(jù),迭代更新其他子集中原始無標(biāo)簽數(shù)據(jù)的標(biāo)簽;
[0016]S4.輸出最終推薦結(jié)果。
[0017] 將數(shù)據(jù)集分為若干個數(shù)據(jù)子集,不同子集中包含差異化的數(shù)據(jù)樣本。差異化的子 集中包括有評分(有標(biāo)簽)的數(shù)據(jù)和無評分(無標(biāo)簽)的數(shù)據(jù)。在不同子集的有標(biāo)簽數(shù)據(jù) 上應(yīng)用本發(fā)明提出的基于高斯混合分布的評分模型,標(biāo)記各個子集中的無標(biāo)簽數(shù)據(jù)。這些 被標(biāo)記的原始無標(biāo)簽數(shù)據(jù)組成不同教練集,用于迭代更新其他子集中的原始無標(biāo)簽數(shù)據(jù)的 標(biāo)簽。
[0018] 作為一種優(yōu)選方案,S1.中所述構(gòu)建數(shù)據(jù)子集個數(shù)為三個。
[0019] 發(fā)明人發(fā)現(xiàn),構(gòu)建三個數(shù)據(jù)子集可以取得最好效果,子集個數(shù)少于三個并不能發(fā) 揮出本發(fā)明的全部效力;而當(dāng)子集個數(shù)多于三個的時候,因為混入更多數(shù)據(jù)噪聲和過擬合, 訓(xùn)練效果反而會略微變差;更重要的是,方法成本和算法開銷卻以指數(shù)級速率增長。
[0020]S1.所述構(gòu)建數(shù)據(jù)子集的方法為:
[0021] S11.輸入有評分的樣本訓(xùn)練集L和未評分樣本集合Un;
[0022] S12.初始化各個數(shù)據(jù)子集,設(shè)為空集;
[0023]S13.根據(jù)置信度,用輪盤賭算法選取有標(biāo)簽數(shù)據(jù)進入數(shù)據(jù)子集;
[0024]S14.用Bagging方法從無標(biāo)簽數(shù)據(jù)中隨機抽取樣本,完成子集分組。
[0025]S13.所述根據(jù)置信度,用輪盤賭算法選取有標(biāo)簽數(shù)據(jù)進入數(shù)據(jù)子集的過程為:
[0026]S51.計算數(shù)據(jù)子集M中樣本sul的置信度:
實中t是正則化 系數(shù),表示數(shù)據(jù)子集m中用戶u的活躍程度表示項目i的被評分頻率;
[0027]S61.通過基于置信度Zjsj的輪盤賭算法來選取各個數(shù)據(jù)子集中樣本sul的有標(biāo) 簽數(shù)據(jù),并進入數(shù)據(jù)子集M,取出的樣本sul進入數(shù)據(jù)子集M的概率為:
[0028]
[0029] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:
[0030] 本發(fā)明通過構(gòu)建一個基于高斯混合分布的評分推薦模型,更好地擬合評分?jǐn)?shù)據(jù), 同時,為了緩解數(shù)據(jù)稀疏性的影響,在不同的數(shù)據(jù)子集上分別應(yīng)用基于高斯混合分布的評 分模型,標(biāo)記各個數(shù)據(jù)子集中的無標(biāo)簽數(shù)據(jù),獲得各個教練集,再將教練集中被標(biāo)記的原始 無標(biāo)簽數(shù)據(jù)加入到其他子集中的有標(biāo)簽數(shù)據(jù),迭代更新其他子集中原始無標(biāo)簽數(shù)據(jù)的標(biāo) 簽,最后輸出推薦結(jié)果,使推薦系統(tǒng)獲得了良好魯棒性,可以有效對抗評分噪聲,提升推薦 準(zhǔn)確率。此外,本發(fā)明的方法還可以有效緩解冷啟動問題。
【附圖說明】
[0031] 圖1為本發(fā)明方法的流程圖;
[0032] 圖2為圖1中高斯混合模型的協(xié)同過濾標(biāo)記(CMCF標(biāo)記)方法示意圖;
[0033] 圖3為本發(fā)明提出的方法在M4數(shù)據(jù)集上的迭代效果;
[0034] 圖4為不同算法在加強數(shù)據(jù)噪聲的M4數(shù)據(jù)集上的迭代效果。
[0035] 具體的實施方式
[0036] 附圖僅用于示例性說明,不能理解為對本專利的限制;為了更好說明本實施例,附 圖某些部件會有省略、放大或縮小,并不代表實際產(chǎn)品的尺寸;對于本領(lǐng)域技術(shù)人員來說, 附圖中某些公知結(jié)構(gòu)及其說明可能省略是可以理解的。
[0037] 下面結(jié)合附圖和實施例對本發(fā)明的技術(shù)方案做進一步的說明,但附圖和實施例并 不對本發(fā)明做任何形式的限定。
[0038] 實施例1
[0039] 如圖1、圖2所示,本發(fā)明提供一種提升推薦系統(tǒng)準(zhǔn)確性的方法,包括如下步驟:
[0040]S1.構(gòu)建數(shù)據(jù)子集
[0041]S11.輸入有評分的樣本訓(xùn)練集L和未評分樣本集合Un;
[0042]S12.將三個數(shù)據(jù)子集初始化,設(shè)為空集;
[0043]S13.根據(jù)置信度,用輪盤賭算法選取有標(biāo)簽數(shù)據(jù)進入數(shù)據(jù)子集;
[0044]S14.用Bagging方法從無標(biāo)簽數(shù)據(jù)中隨機抽取樣本,完成三個數(shù)據(jù)子集的分組。 如圖1所示,將數(shù)據(jù)集分為三個數(shù)據(jù)子集后,不同子集中包含差異化的數(shù)據(jù)樣本。差異化的 子集中包括有評分(有標(biāo)簽)的數(shù)據(jù)和無評分(無標(biāo)簽)的數(shù)據(jù)。
[0045] 不同數(shù)據(jù)子集的構(gòu)建至關(guān)重要,數(shù)據(jù)子集間的差異性決定了半監(jiān)督學(xué)習(xí)方法的有 效性。其差異性主要取決于子集中的有標(biāo)簽數(shù)據(jù)。以數(shù)據(jù)置信度為標(biāo)準(zhǔn),從有標(biāo)簽數(shù)據(jù)集L 中篩選樣本分配給不同子集。對協(xié)同過濾推薦系統(tǒng)而言,用戶u越活躍,項目i被評價的 頻率越高,相關(guān)數(shù)據(jù)樣本的置信度越高,基于此類數(shù)據(jù)的推薦準(zhǔn)確率越高。本實施例的數(shù)據(jù) 子集M中樣本sul的置信度定義如下:
[0046]
[0047] 其中t是正則化系數(shù),表示數(shù)據(jù)子集m中用戶U的活躍程度;<(m)表示項目 i的被評分頻率;
[0048] 通過基于置信度Zm(SU1)的輪盤賭算法來選取各個數(shù)據(jù)子集中樣本SU1的有標(biāo)簽數(shù) 據(jù),并進入數(shù)據(jù)子集M,取出的樣本sul進入數(shù)據(jù)子集M的概率為:
[0049]
[0050]S2.在步驟S1.構(gòu)建的數(shù)據(jù)子集上分別應(yīng)用基于高斯混合分布的評分模型:
[0051]RU1=E[ff
[0052] 其中RU1表示模型預(yù)測的評分,E[.]表示期望,Wu(Vi)表示用戶評分矩陣的特征向 量。標(biāo)記各個數(shù)據(jù)子集中的無標(biāo)簽數(shù)據(jù),獲得各個教練集;
[0053] 為了消除評分噪聲的消極影響,提升推薦系統(tǒng)的準(zhǔn)確性,在本實施例中,發(fā)明人構(gòu) 建了一種基于高斯混合模型的協(xié)同過濾(CMCF)方法,用于標(biāo)記各個子集中的無標(biāo)簽數(shù)據(jù), 如圖2所示。設(shè)定評分?jǐn)?shù)據(jù)服從高斯混合分布,高斯混合模型包括了兩個均值相等、方差不 同的高斯分布。不同方差的高斯分布混合后可以平滑評分?jǐn)?shù)據(jù)的噪聲。
[0054] 圖2中相關(guān)變量的分布形式如下:
[0055]
[0056]
[0057]
[0058]p(B|a,0 ) =Beta(B|a,0 )
[0059] p(Cui|B) =Bernoulli(Cui |B)
[0060]