基于Jaccard均衡距離的協(xié)同過(guò)濾推薦方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于數(shù)據(jù)處理技術(shù)領(lǐng)域,具體是一種協(xié)同過(guò)濾推薦方法,可用于個(gè)性化推 薦系統(tǒng)。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)和信息技術(shù)的快速發(fā)展和普及,人們對(duì)信息的依賴程度與日倶增。信 息技術(shù)的大量使用提高了信息的產(chǎn)生、處理和傳播效率?;ヂ?lián)網(wǎng)作為信息時(shí)代的基礎(chǔ)平臺(tái), 承載了大量的信息資源。面對(duì)海量的信息資源,用戶無(wú)法有效篩選出對(duì)自己有用的信息,這 就造成了信息過(guò)載問(wèn)題。為了解決信息過(guò)載問(wèn)題,推薦系統(tǒng)應(yīng)運(yùn)而生。與傳統(tǒng)的信息過(guò)濾 技術(shù)搜索引擎相比,推薦系統(tǒng)不需要用戶提供搜索關(guān)鍵詞,而是通過(guò)分析用戶歷史行為記 錄發(fā)現(xiàn)用戶的潛在愛(ài)好,從而產(chǎn)生推薦。因此,推薦系統(tǒng)滿足了用戶個(gè)性化需要。
[0003] 協(xié)同過(guò)濾推薦算法是推薦系統(tǒng)的主流算法,這種算法的基本思想是:根據(jù)所有用 戶對(duì)物品或者信息的偏好,發(fā)現(xiàn)與當(dāng)前用戶口味和偏好相似的"鄰居"用戶群,再根據(jù)鄰居 的偏好對(duì)該用戶進(jìn)行預(yù)測(cè)。協(xié)同過(guò)濾算法主要分為:基于內(nèi)存的算法和基于模型的算法。 基于內(nèi)存的協(xié)同過(guò)濾算法可分為基于用戶的協(xié)同過(guò)濾算法和基于項(xiàng)目的協(xié)同過(guò)濾算法。
[0004] 基于用戶的協(xié)同過(guò)濾算法的基本思想是預(yù)先根據(jù)所有用戶的歷史偏好數(shù)據(jù)計(jì)算 用戶之間的相似性,然后把與目標(biāo)用戶相似的用戶喜歡的物品推薦給目標(biāo)用戶;基于項(xiàng)目 的協(xié)同過(guò)濾的基本思想是:預(yù)先根據(jù)所有用戶的歷史偏好數(shù)據(jù)計(jì)算物品之間的相似性,然 后把與目標(biāo)用戶喜歡的物品相類似的物品推薦給目標(biāo)用戶。這兩種算法的關(guān)鍵在相似度的 計(jì)算,不同的相似度計(jì)算方法會(huì)對(duì)目標(biāo)用戶產(chǎn)生不同的鄰居集,進(jìn)而影響推薦結(jié)果。
[0005] Breese J,Heckerman D 等人在文南犬 Empirical analysis of predictive algorithms for collaborative filtering中研究了用余弦相似度計(jì)算用戶相似度的方 法,該方法僅考慮了兩用戶公共評(píng)分項(xiàng)目構(gòu)成的向量之間的夾角大小,兩向量之間的夾角 越小,表明兩用戶相似度越高,但是該方法忽視以下三個(gè)問(wèn)題:不同用戶有不同的評(píng)分偏好 對(duì)相似度的影響,如有的用戶喜歡給出比較高的評(píng)分,而有的用戶則偏好給出比較低的評(píng) 分;公共評(píng)分項(xiàng)相對(duì)數(shù)量對(duì)相似度的影響,即兩用戶公共評(píng)分項(xiàng)目數(shù)量占兩用戶總評(píng)分項(xiàng) 目多少對(duì)相似度的影響;用戶評(píng)分向量長(zhǎng)度對(duì)相似度的影響。該方法存在推薦準(zhǔn)確度偏低、 鄰居集大小對(duì)推薦精度影響較大的問(wèn)題。
[0006] L Candillier,F(xiàn) Meyer 等人在文南犬 Designing specific weighted similarity measures to improve collaborative filtering systems 中石開(kāi)究了將 Jaccard 相關(guān)系數(shù) 與皮爾遜相關(guān)系數(shù)相結(jié)合來(lái)計(jì)算用戶間相似度的方法,該方法改進(jìn)了原先算法中忽略公共 項(xiàng)目占兩用戶評(píng)價(jià)項(xiàng)目比重的問(wèn)題和不同用戶有不同評(píng)分偏好的問(wèn)題,但仍然沒(méi)有考慮到 兩用戶公共評(píng)分項(xiàng)目構(gòu)成的向量長(zhǎng)度對(duì)相似度影響的問(wèn)題,因此該方法雖然提高了推薦準(zhǔn) 確度,但仍然沒(méi)有解決鄰居集大小對(duì)推薦準(zhǔn)確度影響大的問(wèn)題,即鄰居集大小選取的不合 適會(huì)降低推薦準(zhǔn)確度。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明的目的在于提出一種基于Jaccard均衡距離的協(xié)同過(guò)濾推薦方法,以解決 現(xiàn)有協(xié)同過(guò)濾推薦算法受鄰居集大小影響較大,導(dǎo)致推薦準(zhǔn)確度不高的問(wèn)題。
[0008] 為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案包括如下步驟:
[0009] (1)根據(jù)推薦系統(tǒng)提供的用戶-項(xiàng)目評(píng)分記錄構(gòu)造大小為mXn的用戶-項(xiàng)目評(píng)分 矩陣R,其中m為用戶數(shù)量,η為項(xiàng)目數(shù)量,將用戶項(xiàng)目評(píng)分矩陣R中的90%作為訓(xùn)練集合 Τ,10 %做為測(cè)試集C ;
[0010] ⑵依據(jù)訓(xùn)練集T中的評(píng)分?jǐn)?shù)據(jù),用Jaccard均衡距離方法計(jì)算用戶的相似度得到 一個(gè)mXm的相似度矩K
,該相似度矩陣第i行中的數(shù)據(jù)元素 表示用戶i和其他所有用戶的相似度,元素 X (i,j)表示用戶i與用戶j的相似度;
[0011] (3)確定最近鄰居查詢個(gè)數(shù)nu ;
[0012] (4)確定目標(biāo)用戶U,待評(píng)分項(xiàng)目Ic;
[0013] (5)用⑵中得出的相似度矩陣X和最近鄰居查詢個(gè)數(shù)nu,確定目標(biāo)用戶U的鄰 居集S(U);
[0014] (6)計(jì)算用戶U對(duì)項(xiàng)目I。的預(yù)測(cè)評(píng)分值r i, J
[0015] (7)循環(huán)步驟(4)-(6)對(duì)測(cè)試集中的所有用戶的評(píng)分都進(jìn)行預(yù)測(cè);
[0016] (8)對(duì)測(cè)試集中的每個(gè)用戶,將其預(yù)測(cè)評(píng)分值從大到小排列,選擇前N個(gè)項(xiàng)目作為 推薦項(xiàng)目,其中5彡N彡20。本發(fā)明與現(xiàn)有技術(shù)相比存在以下優(yōu)點(diǎn):
[0017] 第一,本發(fā)明采用Jaccard均衡距離相似度測(cè)量方法,考慮到用戶評(píng)分向量的長(zhǎng) 度對(duì)用戶相似度的影響,使用戶之間的相似度計(jì)算更為準(zhǔn)確,從而提高了推薦準(zhǔn)確度。
[0018] 第二,本發(fā)明相較于采用余弦相似度、皮爾遜相關(guān)系數(shù)等相似度度量準(zhǔn)側(cè)的協(xié)同 過(guò)濾算法,對(duì)鄰居查詢數(shù)目即鄰居集的大小的要求更低,較小的鄰居查詢數(shù)目同樣可以得 到較高的推薦準(zhǔn)確度,而且當(dāng)改變鄰居查詢數(shù)目時(shí),推薦準(zhǔn)確度變化不大。
【附圖說(shuō)明】
[0019] 圖1是本發(fā)明的實(shí)現(xiàn)流程圖;
[0020] 圖2是本發(fā)明用與現(xiàn)有兩種相似度測(cè)量協(xié)同過(guò)濾算法的推薦準(zhǔn)確度比較示意圖。
【具體實(shí)施方式】
[0021] 下面結(jié)合圖1對(duì)本發(fā)明的實(shí)施例和效果作進(jìn)一步詳細(xì)描述。
[0022] 步驟一,讀入用戶-評(píng)分記錄,整理得到用戶-項(xiàng)目評(píng)分矩陣R、訓(xùn)練集T和測(cè)試集 Co
[0023] 用戶-評(píng)分記錄格式記錄了不同用戶對(duì)不同項(xiàng)目的評(píng)分情況,如表1所示:
[0024] 表1本發(fā)明所用數(shù)據(jù)集的部分用戶-項(xiàng)目評(píng)分記錄
[0025]
[0026] 其整理過(guò)程如下:
[0027] (Ia)統(tǒng)計(jì)用戶-評(píng)分記錄中的用戶數(shù)目m和項(xiàng)目數(shù)目n,構(gòu)造一個(gè)mXn的用 戶-項(xiàng)目評(píng)分矩陣R,如表2所示,表2中每行表示一個(gè)用戶對(duì)所有項(xiàng)目的評(píng)分,其中"0"表 示該用戶未對(duì)該項(xiàng)目評(píng)過(guò)分:
[0028] 表2本發(fā)明中構(gòu)造的部分用戶-項(xiàng)目評(píng)分矩陣R
[0029]
[0030] (Ib)隨機(jī)選取用戶項(xiàng)目評(píng)分矩陣R中的90%作為訓(xùn)練集合T,余下的10%作為測(cè) 試集C,刪除訓(xùn)練集T中評(píng)分項(xiàng)目小于20的用戶和沒(méi)有被任何用戶評(píng)分的項(xiàng)目。
[0031] 步驟二,根據(jù)訓(xùn)練集T,用Jaccard均衡距離方法計(jì)算用戶之間的相似度矩陣X。 V
[0032] 用戶的相似度矩陣X為一個(gè)mXm的矩陣, ,該相似度 / 矩陣第i行中的數(shù)據(jù)元素表示用戶i和其他所有用戶的相似度,元素 X(i,j)表示用戶i與 用戶j的相似度,計(jì)算如下:
[0033] (2a)確定兩個(gè)不相同的用戶i和用戶j ;
Y ---- i:,i '
[0034] (2b)確定用戶i的評(píng)分項(xiàng)目集合I1,用戶j的評(píng)分項(xiàng)目集合I,,求兩用戶的公共 評(píng)分項(xiàng)目集合,即=I 1^=I1H I,;
[0035] (2c)根據(jù)公式尤(/" ,計(jì)算 Λ'- 用戶i和用戶j之間的相似度,其中:
[0036] X(i,j)為第i個(gè)用戶與第j個(gè)用戶之間的相似度,分別為第i個(gè)用戶和 第j個(gè)用戶對(duì)項(xiàng)目s的評(píng)分;
[0037] ¥_與V _分別為第i個(gè)用戶的項(xiàng)目評(píng)分與第j個(gè)用戶的項(xiàng)目評(píng)分所構(gòu)成的多維 向量空間中的最大空間向量和最小空間向量,最大空間向量表示為:
[0038] Vmax - {v max, 1,Vmax, 2,· · ·,Vmax,P,· · ·,Vmax,l},I € P € I,1 - I i, j
[0039] 其中,vmax,p= max{r u,v| I 彡 u 彡 m,I 彡 v 彡 η},
[0040] 最小空間向量表示為:
[0041] Vnin= {ν min, 1,Vmin,2,· · ·,Vmin,p,· · ·,Vmin,I},I ^ P ^ I,_ I I ^ i, j I
[0042] 其中v_,p= min{r u,v| I彡u彡m, I彡v彡η},式中的)2表示該的多 維空間的最大空間距離;
[0043] (2d)用戶i不變,改變用戶j,重復(fù)步驟(2b)_(2c),計(jì)算出用戶i和其他所有用戶 之間的相似度;
[0044] (2e)改變用戶i,重復(fù)步驟(2b)_(2d),計(jì)算出所有用戶之間的相似度。
[0045] 步驟三,根據(jù)用戶-評(píng)分記錄中的用戶數(shù)目,確定最近鄰居查詢個(gè)數(shù)nu,該nu不超 過(guò)用戶-評(píng)分記錄中用戶數(shù)目M的5%。
[0046] 步驟四,根據(jù)測(cè)試集中包含的用戶和項(xiàng)目,隨機(jī)選取