沈華理
摘要:協(xié)同過濾算法有兩個主要問題:新用戶冷啟動問題和相似用戶的可靠性問題。為了解決上述問題,提出了基于內(nèi)容和協(xié)同過濾相融合的推薦算法,主要解決新用戶冷啟動、相似用戶可靠性問題。該算法的主要過程為,利用k-means聚類算法將數(shù)據(jù)集中的用戶進行聚類,然后確定用戶各個屬性特征的適當(dāng)權(quán)重,根據(jù)用戶人口統(tǒng)計學(xué)特征的聚類方法,將新用戶分配到恰當(dāng)?shù)念愔校詈筇崛〕鲂掠脩舻淖罱?,根?jù)最近鄰用戶的項目評分,計算新用戶對未評分項目的預(yù)評分,生成推薦列表。實驗結(jié)果表明,在平均絕對誤差(MAE)和均方根誤差(RMAE)上有較明顯的改善。
關(guān)鍵詞:協(xié)同過濾;冷啟動;人口統(tǒng)計學(xué)特征;k-means聚類;混合推薦
中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)02-0232-03
Recommendation Algorithm Based on the Combination of Content and Collaborative Filtering
SHEN Hua-li
(College of Computer Science and Engineering, Anhui University of Science and Technology, Huainan 232001, China)
Abstract: There are two main problems in collaborative filtering algorithm:the problem of new user cold start and the reliability of similar users. In order to solve the above problems, Recommendation Algorithm Based on the Combination of Content and Collaborative Filtering is proposed, which mainly solves the problem of cold start and similar user reliability. The main process of the algorithm is that the k-means clustering algorithm is used to cluster the users of the data set, then the appropriate weight of each attribute of the user is determined, and the new user is assigned to the appropriate class according to the clustering method of the user demographic characteristics, finally, the nearest neighbor of the new user is extracted. According to the project score of the nearest neighbor, Calculating the pre rating of a new user on a non rated project and generating a list of recommendations. The experimental results show that there is a significant improvement in the evaluation standard of MAE and RMSE.
Key words: collaborative filtering; cold start; demographic characteristics; k-means clustering; mixed recommended
推薦系統(tǒng)會在某些情況下被使用,像電影商店、圖書館、餐飲、旅游以及其他方面為用戶提供有趣的選擇和項目。特別在電子商務(wù)和網(wǎng)絡(luò)在線電影系統(tǒng)中得到了廣泛的應(yīng)用。從過去到現(xiàn)在一直廣受歡迎研究之一的推擠系統(tǒng)是電影推薦系統(tǒng)。在信息量巨大的情況下,在恰當(dāng)?shù)臅r間向用戶提供最有吸引力的項目是個性化推薦領(lǐng)域[1]的相關(guān)內(nèi)容之一。在電影推薦系統(tǒng)中,使得用戶可以根據(jù)電影標(biāo)題、導(dǎo)演、編劇和發(fā)布日期等特征尋找電影。總體來看,推薦系統(tǒng)被劃分為兩種主要的種類[2]:基于內(nèi)容的推薦和協(xié)同過濾推薦。在基于內(nèi)容的推薦算法[3]中,是根據(jù)用戶分配給內(nèi)容、新聞文本和鏈接的權(quán)重進行推薦,也就是把權(quán)重最高的項目向用戶推薦。在基于協(xié)同過濾的推薦算法(CF)[4]中,根據(jù)相似用戶的選擇給出推薦。
在未來,CF算法中最重要的挑戰(zhàn)之一是冷啟動問題,這一問題引起了很多研究人員的思考。冷啟動問題屬于沒有任何評價信息的新用戶,對于那些有冷啟動和沒有任何評價信息的用戶而言,可以采用基于內(nèi)容的推薦方法向新用戶進行項目的推薦。但是,當(dāng)系統(tǒng)中存在用戶評價的歷史記錄時,就可以采用CF算法進行推薦。通過將兩種算法的混合,這樣就可以有效的解決CF算法中存在的冷啟動問題。以下是之后各個章節(jié)所要講述內(nèi)容的簡潔概括。在第1節(jié)中,主要闡述跟推薦系統(tǒng)有關(guān)的相關(guān)內(nèi)容。在第2節(jié)中,描述本文算法的推薦模型和利用用戶人口統(tǒng)計學(xué)特征計算出新用戶的相似近鄰,并進行新用戶對未打分項目的預(yù)打分過程。在第3節(jié)中,給出實驗結(jié)果與分析。在第4節(jié)中,對全文進行總結(jié)和展望。
1 相關(guān)工作
在對電影進行推薦的研究中,為了解決冷起動問題,研究者們提出一些解決方法。陳丹兒等人[5],提出基于神經(jīng)網(wǎng)絡(luò)的CF算法,以此來消除新用戶的冷啟動問題,并在Movielens數(shù)據(jù)集上進行了驗證。Hung 等人[6],指出了項目和新用戶的冷啟動問題,他們引入了一種改進的CF算法。該算法中,有兩個相似矩陣,一個是用戶項目相似矩陣,另一個是用戶之間的相似矩陣。之后按照制定預(yù)測機制,向用戶做出推薦。這個方案因為需要構(gòu)建兩個相似矩陣,所以需要使用大量的內(nèi)存,也是這個方案的缺點之一。王巧等人[7],提出使用k-均值聚類算法向用戶推薦電影,他是根據(jù)用戶對電影的評價信息來實現(xiàn)的,并且在MovieLens數(shù)據(jù)集上進行了實驗驗證。B.Lika等人,引入了一種分類算法模型,如樸素貝葉斯、決策樹和隨機分類算法,使用相似矩陣向用戶進行項目的推薦,并在MovieLens數(shù)據(jù)集上進行了實驗驗證。endprint
2 基于內(nèi)容和協(xié)同過濾相融合的推薦算法
2.1 算法的體系結(jié)構(gòu)
本文算法的體系結(jié)構(gòu)如圖1所示。接下來將依據(jù)體系結(jié)構(gòu)圖對算法的實現(xiàn)過程進行詳細(xì)描述。
1) 首先需要對實驗數(shù)據(jù)集進行預(yù)處理,預(yù)處理過程中包含利用數(shù)據(jù)挖掘軟件(weka)中的k-means聚類算法對數(shù)據(jù)集中的用戶進行聚類操作。
2) 通過利用用戶人口統(tǒng)計學(xué)特征的相似度計算方法,確定新用戶所在的類,已解決新用戶的冷啟動問題。本文選取的用戶人口統(tǒng)計學(xué)特征為性別、年齡和職業(yè)。
3) 由新用戶的相似用戶,得到近鄰用戶-項目評分矩陣。
4) 利用近鄰用戶-項目評分矩陣計算出新用戶對未打分項目的預(yù)評分,為新用戶生成一個項目推薦列表。
2.2 人口統(tǒng)計學(xué)特征的聚類方法
由圖1可知,在使用基于人口統(tǒng)計學(xué)信息方法對用戶聚類之前,首先需要對數(shù)據(jù)進行預(yù)處理。為了得到合適的聚類中心個數(shù)k,本文使用數(shù)據(jù)挖掘軟件(weka),對不同地k值進行評估,并且計算k取不同值時地誤差平方和,從而選擇一個適當(dāng)?shù)豮值。實驗結(jié)果表明,當(dāng) k=100時誤差平方和最小。確定k地取值之后,此時再利用新用戶地人口統(tǒng)計學(xué)特征,就可以確定新用戶所在的類別。其次,通過k-means聚類算法可以將數(shù)據(jù)集中地用戶進行聚類,得到一個聚類模型,而聚類模型本文采用weka軟件產(chǎn)生。之后新用戶作為該系統(tǒng)的測試數(shù)據(jù),并且通過人口統(tǒng)計學(xué)特征地聚類方法被聚到某個類中。在新用戶被確定所屬的集群后,提取出該用戶地相似近鄰,進而得到相似近鄰項目評分矩陣,利用該矩陣計算出新用戶對項目的預(yù)打分,從而把預(yù)打分最高地項目推薦給該用戶。假設(shè)系統(tǒng)的用戶定義為集合U={u1,u2,u3,...,un},用戶的人口統(tǒng)計學(xué)特征定義為集合D={d1,d2,...,dm},系統(tǒng)中項目的集合定義為I={i1,i2,...,ik}。用戶地各個人口統(tǒng)計學(xué)特征對應(yīng)地權(quán)值集合定義為W={w1,w2,...,wm},且權(quán)重wi的取值范圍是[0,1],以及[imwi=1][imwi=1],利用公式(1)計算一個新用戶(u)和其他用戶(k)的相似度,計算公式如下:
[sim(u,k)=j=1mSFj*wjj=1mdj(u,k)] (1)
SFj是第j個特征地相似度值,wj是第j個用戶特征地權(quán)重,函數(shù)dj(u,k)是計算用戶u和用戶k地第j個特征的相似度,m是用戶特征的個數(shù)。
函數(shù)dj(u,k)有兩個部分組成:
1) 當(dāng)用戶第j個特征的取值為數(shù)值型時,計算方法如下:
[dj(u,k)=(1-|Diff(dj,u,dj,k)||Diffmax(dj,u,neigu(dj))|)β]
SFj= dj(u,k) (2)
2) 當(dāng)用戶第j個特征的取值為字符串和布爾型時,計算方法如下:
[dj(u,k)=1 dj,u=dj,k0 dj,u≠dj,k]
SFj= dj(u,k) (3)
dj,u是用戶u地第j個特征值,dj,k是用戶k地第j個特征值。Diff(dj,u, dj,k)是兩個特征值的差值,Diffmax(dj,u,neigu(dj))是新用戶u第j個特征值與近鄰用戶中第j個特征值的最大差值,β是決定兩個用戶特征差異效應(yīng)的一個參數(shù),本文選取β的值為0.5。在計算出新用戶u與用戶k各個特征之間地相似度后,之后計算出兩個用戶之間總地相似度,根據(jù)總地相似度得到新用戶地最近鄰。依據(jù)最近鄰用戶按照公式(4)計算出新用戶u未打分項目ib地預(yù)打分,將預(yù)打分最高地項目向新用戶u進行推薦。
[Ruib=j=1psim(u,kj)*rkj,ibj=1psim(u,kj)] (4)
P是最近鄰用戶個數(shù),sim(u,kj)是新用戶u與最近鄰用戶kj地相似度,[rkj,ib] 是最近鄰用戶kj對項目ib地打分。
3 實驗結(jié)果分析
3.1 實驗數(shù)據(jù)集
在本文中,為了檢查和評估結(jié)果,采用普遍使用的Movielens數(shù)據(jù)集。本文從該數(shù)據(jù)集中隨機選取部分?jǐn)?shù)據(jù)作為實驗驗證數(shù)據(jù)。本文的數(shù)據(jù)中包含有10000評分記錄,分為訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),用戶的屬性特征有性別,年齡和職業(yè),其中職業(yè)的類型共有21種、總共有1682部電影,電影的種類共有19種。用戶對電影的評分范圍為:[1-5]整數(shù),其中打分為1分地項目是用戶最不偏愛地項目,打分為5分地項目是用戶最偏愛地項目。為了確保實驗數(shù)據(jù)地合理性,所選取地每個用戶全部至少有20條項目打分記錄。
3.2 評價指標(biāo)
1) 平均實際誤差[9]計算公式如下所示:
[MAE=1wiwPu,i-ru,i] (5)
W是測試集中目標(biāo)用戶u評價地項目個數(shù),Pu,i是目標(biāo)用戶u對項目i地預(yù)評分,ru,i是目標(biāo)用戶u對項目i地實際評分。
2) 均方根誤差計算公式如下所示:
[RMSE=1wiw(Pu,i-ru,i)2] (6)
3.3 結(jié)果分析
本文選取基于用戶聚類的推薦算法(UCCF)作為實驗的對比算法。該算法主要是在傳統(tǒng)協(xié)同過濾算法的基礎(chǔ)上,將用戶興趣變化模型和評分預(yù)測時間模型加入到推薦的過程中,最后向目標(biāo)用戶進行項目推薦。該算法可以增強實時性的推薦。
本文根據(jù)用戶人口統(tǒng)計學(xué)特征中地年齡、性別和職業(yè)作為劃分相似用戶的依據(jù)。在這其中,不同特征所反映出用戶為某個項目的偏愛程度是不一樣的,所以需要為各個特征分配不同的權(quán)重。本文選取三組不同的分配方案進行實驗驗證,從而確定用戶人口統(tǒng)計學(xué)中各個特征所占的適當(dāng)權(quán)重。分配方案如表1所示:
從表1可以看出,當(dāng)年齡、性別和職業(yè)所占的權(quán)重分別為0.5,0.4,0.1時,算法的平均實際誤差值最底。在確定用戶各個特征所占的權(quán)重后,就可以將本文提出的算法與User Based CF和UCCF算法進行比較實驗了。本文分別進行2組對比實驗,即將10000條用戶打分記錄隨機分為2組。第1組為3000條評分記錄;第2組為7000條評分記錄。每組中都包含訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),其中訓(xùn)練數(shù)據(jù)占80%,測試數(shù)據(jù)占20%,并且測試數(shù)據(jù)中的用戶不在訓(xùn)練數(shù)據(jù)中。
以下為2組實驗的實驗結(jié)果圖:
由圖2的實驗結(jié)果可以看出,本文算法在最近鄰數(shù)取不同值時,MAE和RMSE的結(jié)果都比UCCF算法的值要低,并且相比較UCCF算法,本文算法在平均實際誤差上面平均降低了接近8%,在均方根誤差上平均降低了接近7.5%。
4 結(jié)束語
本文主要針對協(xié)同過濾算法中新用戶的冷啟動問題進行改進,并提出了基于內(nèi)容和協(xié)同過濾相融合的推薦系統(tǒng)。在系統(tǒng)實現(xiàn)地過程中,首先需要對實驗采用地數(shù)據(jù)集進行預(yù)處理,然后利用數(shù)據(jù)挖掘軟件中的k-means算法對數(shù)據(jù)集進行聚類操作,之后利用用戶人口統(tǒng)計學(xué)特征聚類方法對新用戶進行聚類操作,從而提取出新用戶的最近鄰用戶,再根據(jù)近鄰用戶對項目地打分,計算出新用戶對未評分項目地預(yù)打分,最后把預(yù)打分最高地項目為新用戶進行推薦。本文采用的數(shù)據(jù)集為MovieLens數(shù)據(jù)集,經(jīng)過將本文算法與UCCF算法在平均實際誤差和均方根誤差上對比的實驗結(jié)果表明,本文提出的改進算法在降低平均實際誤差和均方根誤差上更加有效。
參考文獻:
[1] 王國霞, 劉賀平. 個性化推薦系統(tǒng)綜述[J]. 計算機工程與應(yīng)用, 2012, 48(07):66-76.
[2] Shardanand U,Maes P, Social Information Filtering: Algorithms for Automating, Word of Mouth[C].CHI '95 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 1995: 210-217. (下轉(zhuǎn)第282頁)endprint