国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

改進(jìn)型協(xié)同過(guò)濾的圖書推薦算法

2020-06-30 10:15王維高伊騰周國(guó)棟李云云唐寧孫媛媛
微型電腦應(yīng)用 2020年4期
關(guān)鍵詞:協(xié)同過(guò)濾

王維 高伊騰 周國(guó)棟 李云云 唐寧 孫媛媛

摘 要:?針對(duì)用戶從海量圖書中選擇喜歡圖書較難的問(wèn)題,提出一種基于圖書屬性分組的改進(jìn)協(xié)同過(guò)濾算法。該算法首先根據(jù)用戶喜歡的圖書類型去選擇相似用戶,縮小數(shù)據(jù)集,再根據(jù)基于用戶的協(xié)同過(guò)濾算法尋找最近鄰居集合,然后根據(jù)項(xiàng)目推薦值的方法向用戶推薦感興趣的圖書序列。實(shí)驗(yàn)結(jié)果表明:在同一數(shù)據(jù)量下,該算法在推薦數(shù)據(jù)量以及覆蓋率方面均優(yōu)于同類算法。

關(guān)鍵詞:?協(xié)同過(guò)濾; 用戶分組; 用戶相似度

中圖分類號(hào): TG 4? ? ? 文獻(xiàn)標(biāo)志碼: A

A Book Recommendation Algorithm Based on Improved Collaborative Filtering

WANG Wei, GAO Yiteng, ZHOU Guodong, LI Yunyun, TANG Ning, SUN Yuanyuan

(Department of Computer Science, Xianyang Normal University, Xianyang, Shanxi? 712000, China)

Abstract:

In order to solve the problem that users are difficult to select their favorite books from a large number of books, a collaborative filtering algorithm based on book attribute grouping is proposed. The method first selects similar users according to the type of books users like, then reduces the data set, and then finds the nearest neighbor set according to the collaborative filtering algorithm based on users. Then according to the project recommended value method to recommend the user interested in the sequence of books. The experimental results show that the proposed algorithm is superior to the same algorithm in the recommended data volume and the accuracy under the same data volume. The algorithm improves the user satisfaction.

Key words:

collaborative filtering; user packet; user similarity

0 引言

互聯(lián)網(wǎng)規(guī)模的迅速發(fā)展帶來(lái)了信息超載問(wèn)題,由于信息量過(guò)大,使得人們?cè)诰W(wǎng)上搜索信息時(shí)降低了信息的使用率,圖書信息也是如此。網(wǎng)絡(luò)上的圖書資源越來(lái)越豐富,為了充分利用信息資源,解決用戶復(fù)雜的需求和龐大圖書信息之間的矛盾,協(xié)同過(guò)濾算法因此產(chǎn)生。

目前,協(xié)同過(guò)濾算法包括基于物品的協(xié)同過(guò)濾算法和基于用戶的協(xié)同過(guò)濾算法[1]?;谖锲返膮f(xié)同過(guò)濾算法是根據(jù)商品屬性進(jìn)行推薦的,不過(guò)它需要透徹的內(nèi)容分析,只能推薦內(nèi)容相似的物品,并且存在用戶冷啟動(dòng)問(wèn)題[2],不能給用戶帶來(lái)驚喜。基于用戶的協(xié)同過(guò)濾算法在所有用戶中找出與目標(biāo)用戶相似的用戶,然后根據(jù)這些用戶對(duì)項(xiàng)目的不同評(píng)分,產(chǎn)生相似用戶,繼而通過(guò)相似用戶集合給目標(biāo)用戶推薦書籍,雖然協(xié)同過(guò)濾推薦算法在信息過(guò)濾方面體現(xiàn)出了極大的優(yōu)勢(shì),但由于用戶對(duì)項(xiàng)目的評(píng)分較少,數(shù)據(jù)冷啟動(dòng)問(wèn)題嚴(yán)重,并且隨著信息量的不斷增加,這種方法耗時(shí)耗力??傮w來(lái)講,算法在不同領(lǐng)域中的應(yīng)用存在以下3種問(wèn)題:① 冷啟動(dòng)問(wèn)題;② 最初評(píng)價(jià)問(wèn)題;③ 稀疏性問(wèn)題。

為解決這些問(wèn)題,文獻(xiàn)[3]中通過(guò)利用用戶注冊(cè)信息或者選擇適當(dāng)物品以啟動(dòng)用戶興趣來(lái)解決。針對(duì)物品冷啟動(dòng)問(wèn)題,可以通過(guò)利用物品的內(nèi)容信息來(lái)計(jì)算物品間的相似度,進(jìn)而對(duì)新物品產(chǎn)生關(guān)聯(lián)。對(duì)于新系統(tǒng),則可以通過(guò)對(duì)物品進(jìn)行多維度的特征標(biāo)記來(lái)計(jì)算更為準(zhǔn)確的物品相似度以減少系統(tǒng)冷啟動(dòng)的影響。文獻(xiàn)[4]中提出了一種遞歸預(yù)測(cè)算法,該算法讓那些最近鄰的用戶加入到預(yù)測(cè)處理中。即使他們沒(méi)有對(duì)給定的項(xiàng)目進(jìn)行評(píng)分,但對(duì)項(xiàng)目評(píng)分值不明確的用戶,可以預(yù)測(cè)它的遞歸,整合到預(yù)測(cè)過(guò)程中。此方法用另一種方式緩解了矩陣稀疏對(duì)推薦質(zhì)量的影響,提供了推薦精度。文獻(xiàn)[5]中分析了基于項(xiàng)目評(píng)分預(yù)測(cè)的協(xié)同過(guò)濾推薦算法存在的問(wèn)題,繼而采用了修正的條件概率方法計(jì)算項(xiàng)目之間的相似性,使得數(shù)據(jù)稀疏性對(duì)計(jì)算結(jié)果的負(fù)面影響變小。

本文算法通過(guò)分析項(xiàng)目屬性從而對(duì)數(shù)據(jù)集縮小,得到粒度較粗但相似度較高的用戶集合,以及使用皮爾遜相關(guān)系數(shù)計(jì)算用戶相似度,之后采用本文提出的圖書推薦值計(jì)算方法對(duì)用戶進(jìn)行推薦,最終的實(shí)驗(yàn)測(cè)試結(jié)果符合預(yù)期效果。

1 改進(jìn)型協(xié)同過(guò)濾的圖書推薦算法

1.1 簡(jiǎn)述

基于用戶的協(xié)同過(guò)濾算法的主要步驟是尋找各用戶的鄰居用戶,并根據(jù)鄰居用戶對(duì)目標(biāo)用戶未評(píng)分項(xiàng)目的評(píng)分進(jìn)行預(yù)測(cè),鄰居是和目標(biāo)用戶相似度最高的k個(gè)用戶,k的具體數(shù)目由系統(tǒng)的特性決定,實(shí)際中往往會(huì)通過(guò)實(shí)驗(yàn)來(lái)確定。在確定鄰居用戶后,需要根據(jù)鄰居已評(píng)分且目標(biāo)用戶未評(píng)分的項(xiàng)目的評(píng)分值進(jìn)行評(píng)分預(yù)測(cè)。

本文改進(jìn)型協(xié)同過(guò)濾推薦算法通過(guò)獲取目標(biāo)用戶所喜歡圖書的所屬類別,然后在所有用戶數(shù)據(jù)集中大致尋找出和目標(biāo)用戶喜歡同種類書籍的用戶群體,這樣極大的增加了用戶群體中包含較多與目標(biāo)用戶相似度高的概率,可以方便快速解決數(shù)據(jù)稀疏性問(wèn)題。將這些用戶構(gòu)造成一個(gè)用戶集合,采用皮爾遜相關(guān)系數(shù)計(jì)算方法,依次計(jì)算目標(biāo)用戶與該集合中每一個(gè)用戶的相似度,使用圖書推薦值公式計(jì)算用戶集合內(nèi)每一本圖書的圖書推薦值,最后通過(guò)實(shí)驗(yàn)分析確定一個(gè)合適的參量rc,將加權(quán)推薦值大于等于rc的圖書推薦給目標(biāo)用戶。

1.2 用戶集合的獲取

由于圖書推薦中圖書的數(shù)量和用戶很多,但用戶選擇的圖書數(shù)量卻很少,如果直接使用協(xié)同過(guò)濾算法將面臨嚴(yán)重的數(shù)據(jù)稀疏性問(wèn)題。因此本文首先根據(jù)目標(biāo)用戶所選擇圖書的類別,確定對(duì)目標(biāo)用戶進(jìn)行推薦的用戶集合,縮小了使用協(xié)同過(guò)濾的數(shù)據(jù)集,并在一定程度上緩解了數(shù)據(jù)稀疏性問(wèn)題,具體執(zhí)行過(guò)程如下:

(1) 統(tǒng)計(jì)目標(biāo)用戶所加入的圖書種類;

(2) 在所有用戶集合尋找與目標(biāo)用戶加入相同圖書種類的用戶。

1.3 計(jì)算用戶相似度

用戶相似度的度量方法是算法的核心,常使用的方法包括皮爾遜相關(guān)系數(shù)、夾角余弦相似度和Jaccard系數(shù)等[6]。本文采用皮爾遜相關(guān)系數(shù)作為用戶相似度的測(cè)量,如式(1)所示。

其中,sim(i,j)表示用戶i與用戶j的相似度,Ri與Rj分別表示用戶i和j收藏的每一個(gè)項(xiàng)目的評(píng)分,Ri與Rj分別表示用戶i,j的收藏項(xiàng)目評(píng)分的平均值。

1.4 計(jì)算圖書推薦值

通過(guò)皮爾遜相關(guān)系數(shù)計(jì)算出的用戶相似度,能夠找出與目標(biāo)用戶相似的用戶,為了向目標(biāo)用戶推薦系統(tǒng)預(yù)測(cè)的項(xiàng)目,采用圖書推薦值的計(jì)算方法,如式(2)所示。

r為圖書推薦值,scoreu∈jk為用戶j收藏的每本圖書的評(píng)分,n為與目標(biāo)用戶相似的用戶集合的數(shù)量。

1.5 獲取推薦結(jié)果

為了篩選出準(zhǔn)確度較高的圖書,設(shè)置一個(gè)參數(shù)——項(xiàng)目推薦臨界值rc,將圖書推薦值大于rc的圖書推薦給用戶,其中參數(shù)rc的取值通過(guò)實(shí)驗(yàn)測(cè)試得來(lái),最終得到向目標(biāo)用戶推薦的項(xiàng)目集合。

1.6 算法整體執(zhí)行步驟

Step1.獲取目標(biāo)用戶的用戶集合資源:查找與目標(biāo)用戶所收藏圖書種類相同的用戶,構(gòu)成用戶集合資源。

Step2.分別計(jì)算目標(biāo)用戶與用戶集合中每一個(gè)用戶的相關(guān)系數(shù)。在用戶集合資源中,使用皮爾遜相關(guān)系數(shù)計(jì)算用戶的相似性,得到的結(jié)果保存在二維數(shù)組中。

Step3.計(jì)算每一本圖書的圖書推薦值。使用用戶相似度數(shù)據(jù)及每本圖書對(duì)應(yīng)的評(píng)分,帶入圖書推薦值計(jì)算公式中,將每一本圖書的圖書推薦值再次保存在二維數(shù)組中。

Step4.獲取推薦結(jié)果。使用步驟3中的數(shù)據(jù),將圖書推薦值大于rc的圖書推薦給用戶。

2 數(shù)據(jù)測(cè)試及結(jié)果分析

2.1 數(shù)據(jù)源的獲取

由于目前在電商網(wǎng)站上獲取用戶個(gè)人信息比較困難,為了收集數(shù)據(jù)順利進(jìn)行數(shù)據(jù)分析,我們采用了目前大多數(shù)數(shù)據(jù)分析人員普遍采用的方法——數(shù)據(jù)仿真模擬,創(chuàng)建nUsers表,包含用戶的姓名、性別、年級(jí)、學(xué)院、專業(yè)、書名、評(píng)分、書類等七個(gè)字段列。數(shù)據(jù)模擬采用以下3種方式:

(1) 從校圖書館獲取2015級(jí)、2016級(jí)、2017級(jí)學(xué)生的姓名、性別、年級(jí)、學(xué)院、專業(yè),仿真模擬的各年級(jí)的學(xué)生人數(shù)、學(xué)院、專業(yè),數(shù)據(jù)量依據(jù)實(shí)際各學(xué)院對(duì)應(yīng)的學(xué)生人數(shù)、性別所占比例、專業(yè)人數(shù)等同比例縮小。

其中學(xué)院及其包含的專業(yè)有:計(jì)算機(jī)學(xué)院(所屬專業(yè)有:計(jì)科、軟件、物聯(lián)),資歷學(xué)院(所屬專業(yè)有:地理科學(xué)、歷史學(xué)),建筑學(xué)院(所屬專業(yè)有:建筑學(xué)、城鄉(xiāng)規(guī)劃、城市規(guī)劃),經(jīng)管學(xué)院(所屬專業(yè)有:經(jīng)濟(jì)學(xué)、財(cái)務(wù)管理、經(jīng)管學(xué))。

(2) 書籍名稱以及書籍類別通過(guò)當(dāng)當(dāng)圖書網(wǎng)站來(lái)爬取。

(3) 利用隨機(jī)方法生成書籍的評(píng)分。

采用以上3種數(shù)據(jù)獲取方式,能夠最大限度的模擬和描述真實(shí)電商網(wǎng)絡(luò)的應(yīng)用情景,盡管實(shí)際電商網(wǎng)絡(luò)應(yīng)用場(chǎng)景比實(shí)驗(yàn)描述的要復(fù)雜,但以上實(shí)驗(yàn)數(shù)據(jù)的獲取基本接近實(shí)際電商網(wǎng)絡(luò)的基本情況,因此使用仿真模擬的數(shù)據(jù)同樣能夠反映出算法的特點(diǎn)。通過(guò)算法之間的比較可以體現(xiàn)算法的各種數(shù)據(jù)特征,進(jìn)而通過(guò)分析結(jié)果來(lái)證明算法的可用性,本文選取基于用戶的協(xié)同過(guò)濾圖書推薦算法與本文的改進(jìn)型協(xié)同過(guò)濾圖書推薦算法進(jìn)行比較。

2.2 推薦系統(tǒng)中的評(píng)價(jià)指標(biāo)

(1) 精確度如式(3)。

C,+表示積極、成功的互動(dòng),C表示所有互動(dòng),生成的候選集中積極、成功的互動(dòng)數(shù)量占總互動(dòng)的比重稱作推薦的準(zhǔn)確度[7]。P值范圍是[0,1],當(dāng)P值越大時(shí),精確度越高,推薦的結(jié)果效果越好。

(2) 覆蓋率如式(4)。

其中,集合N是指為目標(biāo)用戶分組后所得到的用戶集合,n(N)是用戶數(shù)量;集合M是用戶集合N中相關(guān)系數(shù)大于等于0.8的用戶集合,n(M)是用戶集合M的數(shù)量,相關(guān)系數(shù)大于等于0.8的用戶數(shù)量占總用戶集合的比重稱作覆蓋率[7]。K值范圍是[0,1],當(dāng)K值越大,分組用戶集合中的高度相關(guān)的用戶所占的比重越大,尋找的用戶集合稀疏性越低。

(3) 成功率如式(5)。

成功率是候選集中成功互動(dòng)的數(shù)量占總互動(dòng)數(shù)量的比重[7]。SR值范圍是[0,1],當(dāng)SR值越大,推薦的圖書質(zhì)量越高。

2.3 實(shí)驗(yàn)內(nèi)容與實(shí)驗(yàn)結(jié)果

2.3.1 rc參數(shù)選取

一般來(lái)講rc越高,被推薦的圖書越精確,但與此同時(shí),圖書數(shù)量會(huì)變少,為了解決推薦準(zhǔn)確度與推薦數(shù)量的不平衡問(wèn)題,我們提出rc*n計(jì)算公式,其中n為向目標(biāo)用戶推薦的圖書數(shù)量,n是向所有目標(biāo)用戶推薦的圖書數(shù)量的平均值。

實(shí)驗(yàn)一:下列折線圖中橫坐標(biāo)代表用戶數(shù)量,縱坐標(biāo)為rc*n。實(shí)驗(yàn)開始之前,有目的的尋找6個(gè)目標(biāo)用戶,目標(biāo)用戶需要滿足得到的用戶集合數(shù)量分別是10,20,30,40,50,60。采用二分法來(lái)獲取本次實(shí)驗(yàn)數(shù)據(jù)集的rc值:實(shí)驗(yàn)開始時(shí),我們找出較準(zhǔn)確的rc值介于5和11之間。

采用二分法比較rc=5,rc=8,rc=11,觀察圖1,可知rc*n依次大小為rc=8>rc=5>rc=11;

再次查找rc=5,rc=6.5,rc=8;觀察圖2,可知rc*n依次大小為rc=8>rc=6.5>rc=5;

再次查找rc=8,rc=7.25,rc=6.5;觀察圖3,可知rc*n依次大小為rc=6.5>rc=7.25>rc=8;

再次查找rc=8,rc=7.625,rc=7.25;觀察圖4,可知rc*n依次大小為rc=7.25>rc=7.625>rc=8;

當(dāng)繼續(xù)二分時(shí),繪制出來(lái)的折線圖變化趨勢(shì)以及折線間的緊密程度變化不大,因此取rc=7.625。

實(shí)驗(yàn)1圖示中隨著用戶集合數(shù)量的增加,rc*n折線圖呈現(xiàn)不規(guī)則的下降與升高,屬于實(shí)驗(yàn)測(cè)試時(shí)的正?,F(xiàn)象。實(shí)驗(yàn)表明當(dāng)rc=7.625時(shí),可以保持rc*n呈較高水平,即目標(biāo)用戶推薦的圖書準(zhǔn)確率高且圖書數(shù)量不會(huì)因?yàn)楦邷?zhǔn)確率而降低。

2.3.2 算法的覆蓋率比較

實(shí)驗(yàn)二:使用覆蓋率作為度量標(biāo)準(zhǔn),一反面可以反映出數(shù)據(jù)集中相似度較高的用戶所占總集合的比重,另一方面間接性體現(xiàn)出數(shù)據(jù)集中的數(shù)據(jù)稀疏性。我們選取6組目標(biāo)用戶,每一組有兩個(gè)目標(biāo)用戶,并且使得每組中兩個(gè)目標(biāo)用戶中用戶集合的數(shù)量相等,這兩個(gè)目標(biāo)用戶分別采用改進(jìn)型協(xié)同過(guò)濾圖書推薦算法與基于用戶的協(xié)同過(guò)濾算法。測(cè)試內(nèi)容為:目標(biāo)用戶覆蓋率隨用戶集合數(shù)量的變化。如圖5,其中橫軸代表用戶集合的數(shù)量,縱軸代表目標(biāo)用戶覆蓋率,如圖5所示。

實(shí)驗(yàn)2表明,隨著用戶數(shù)量的遞增,覆蓋率的值趨于平緩,總體上改進(jìn)型協(xié)同過(guò)濾圖書推薦算法優(yōu)于基于用戶的協(xié)同過(guò)濾算法。

4 總結(jié)

本文提出了改進(jìn)型協(xié)同過(guò)濾圖書推薦算法,首先在所有用戶中以較短的時(shí)間篩選出合適的用戶集合與目標(biāo)用戶進(jìn)行相似度計(jì)算,其次采用圖書推薦值的計(jì)算方法,其數(shù)值可以反映出目標(biāo)圖書借閱次數(shù)即受歡迎程度。在研究數(shù)據(jù)稀疏時(shí),算法采用了分組的思想,即將相似度高的用戶分為一組,從中找到合適的推薦項(xiàng)目。下一步將研究關(guān)聯(lián)規(guī)則算法下的紙質(zhì)圖書推薦、新圖書的推薦等問(wèn)題。

參考文獻(xiàn)

[1]?羅文.協(xié)同過(guò)濾算法綜述[J].科技傳播,2015,7(7):115.

[2] Francesco Ricci, Lior Rokach, Bracha Shapira, et al. Recommender systems handbook[M]. Berlin:Springer,2011:461-462.

[3] 王春才,邢暉,李英韜.個(gè)性化推薦系統(tǒng)冷啟動(dòng)問(wèn)題研究[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2015 (29):36-38.

[4] ZHANG J Y,PEARL P.A recursive prediction algorithm for collaborative filtering recommender systems[C]//Proceedings of the 2007 ACM Conference on Recommender Systems. ACM,2007:57-64.

[5] 周軍鋒,湯顯,郭景峰.一種優(yōu)化的協(xié)同過(guò)濾推薦算法[J].計(jì)算機(jī)研究與發(fā)展,2004,41(10):1842-1847.

[6] 覃玉冰,鄧春林,楊柳.基于皮爾遜相關(guān)系數(shù)的網(wǎng)絡(luò)輿情評(píng)估指標(biāo)體系構(gòu)建研究[J].情報(bào)探索,2018(10):15-19.

[7] 榮輝桂,火生旭,胡春華,等.基于用戶相似度的協(xié)同過(guò)濾推薦算法[J].通信學(xué)報(bào),2014(2):16-24.

(收稿日期: 2019.07.04)

猜你喜歡
協(xié)同過(guò)濾
基于用戶評(píng)分和項(xiàng)目類偏好的協(xié)同過(guò)濾推薦算法
基于用戶相似度加權(quán)的Slope One算法
圖書推薦算法綜述
改進(jìn)的協(xié)同過(guò)濾推薦算法
基于鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的協(xié)同過(guò)濾推薦算法設(shè)計(jì)與實(shí)現(xiàn)
基于相似傳播和情景聚類的網(wǎng)絡(luò)協(xié)同過(guò)濾推薦算法研究
基于協(xié)同過(guò)濾算法的個(gè)性化圖書推薦系統(tǒng)研究
混合推薦算法在電影推薦中的研究與評(píng)述
關(guān)于協(xié)同過(guò)濾推薦算法的研究文獻(xiàn)綜述
基于混合信任模型的協(xié)同過(guò)濾推薦算法
营山县| 彰武县| 许昌市| 呼图壁县| 玉屏| 宜兰县| 东兰县| 临沂市| 靖江市| 宁晋县| 嘉祥县| 萍乡市| 蒙山县| 濉溪县| 临城县| 汉寿县| 喀喇沁旗| 常德市| 康乐县| 中牟县| 雅安市| 南郑县| 察哈| 麟游县| 永善县| 怀化市| 宁安市| 铁岭市| 尉犁县| 陇川县| 梁平县| 游戏| 甘泉县| 海城市| 会理县| 古田县| 惠州市| 常州市| 始兴县| 浦北县| 竹北市|