陳南平
(湖北大學 計算機與信息工程學院,湖北 武漢 430062)
一種改進的個性化協同推薦算法研究
陳南平
(湖北大學 計算機與信息工程學院,湖北 武漢 430062)
在協同推薦算法實際應用基礎上,提出了一種改進措施,將多層次相似性度量應用到推薦系統kNN算法中,即借助層次關系矩陣,將內容之間的一些固有屬性信息融合到相似度計算中。該改進措施在實際推薦系統應用中取得了較好的效果。
協同推薦;相似度;多層次度量;冷啟動
推薦算法是目前個性化推薦系統的研究熱點,在電子商務領域有著廣泛應用,其核心思想是利用數據挖掘與人工智能技術來改進傳統的協同過濾算法[1-2]。系統算法通常是某類推薦模型的實現,它負責獲取數據,以及預測給定的用戶組會對哪些選項感興趣。推薦算法通常分為4大類:協同過濾推薦算法、基于內容的推薦算法、混合推薦算法和流行度推薦算法。
基于協同過濾推薦的系統從用戶角度進行相應推薦,由系統自動完成。它一般采用最近鄰技術(KNN),利用用戶的歷史喜好信息計算用戶間的距離,然后根據目標用戶的最近鄰居對商品評價的加權評價值來預測目標用戶對特定商品的喜好程度,從而根據這一喜好程度對目標用戶進行推薦。即用戶獲得的推薦是系統從購買模式或瀏覽行為等隱式獲得,不需要用戶尋找推薦信息。Zhang等[3]提出了推薦系統中應用的SVM分類器,其缺陷是在數據稀疏時分類精度受到很大影響。Grarm等[4]將KNN與SVM的性能進行了對比,結論表明其推薦精度與數據質量高度相關。針對這些問題,本文提出一種改進措施,將多層次相似性度量應用到推薦系統kNN算法中,在實際推薦系統中取得了較好的效果。
協同過濾是基于這樣的假設:為一用戶找到感興趣內容的方法是首先找到與此用戶有相似興趣的用戶,然后將感興趣的內容推薦給此用戶。日常生活中,人們往往會利用好友的推薦來進行選擇。協同過濾把這一思想運用到電子商務推薦系統中,基于其他用戶對某一內容的評價向目標用戶推薦。
1.1 推薦系統建模
記推薦系統中有m個用戶的集合T={t1,t2,…,tm}和n個內容的集合D={d1,d2,…,dn}。用戶評估數據集合可用m×n階矩陣Rm×n表示。某一用戶ti對內容dj(di∈D,tj∈T)的評測值為ri、j,這個評測值體現了用戶ti對內容dj的興趣和偏好。某個用戶感興趣的內容集用向量dj=(r1j,r2j,...,rnj)表示,其中r1j表示第1個用戶t1對內容d1感興趣的權重,值越大表示用戶對該內容越感興趣。如果用戶t1選取第j項內容,取r1j為1;如果用戶t1未選擇第j項內容,選取為0。所以,計算dj各分量的值為:

(1)
其中TF-IDF(tk,dj)是第k個用戶對第j個內容選擇次數,Nk是所有內容中包括第k個用戶的數量。最終第k個用戶對第j項內容感興趣的程度由下式獲得:
(2)
1.2 內容信息集合與內容屬性相似度
記內容di的r個屬性信息為Ci=(ci1,ci2,…,cir) ,Cij是指第i個內容的第j個屬性。同一內容可以擁有多個屬性。記內容類別信息S=(sj1,sj2,...sjr’),Sji是指第j個類別包含第i個內容。同一類別一般包含多個相關內容。C矩陣和S矩陣之間的關系由一個層次關系矩陣PK=(pK1,pK2,…,pKR)聯系起來。層次關系矩陣P定義為:如果Cir屬于sjr,那么就記pij=1,否則pij=0。根據以上定義,內容Da與Db的屬性相似度公式:
(3)
1.3 用戶評估相似度
度量用戶間的相似性主要有兩種方法[5]:余弦相似性和相關相似性。余弦相似性實現起來較簡單,也能較好地度量項目間的相似性,而且計算速度較快。本文采用余弦相似性度量內容間的評分相似性。但是在單獨使用單一層次的評估作為評判用戶相似度的基礎數據時,會遇到“相似不相同”的問題。使用用戶評估作相似度計算時,可能會因為這兩個用戶沒有共同的評估項目而認為他們不相似,但實際上這兩個用戶的評估內容屬于相同的類別。本文采用多層次相似性度量來解決這個問題,即借助層次關系矩陣PK,將內容之間的一些固有屬性信息融合到相似度的計算中。這種改進措施保證了計算的準確性,并得到各項目的最近鄰居集。
構造兩個層次:①用戶的所有屬性構成的類別;②所有屬性屬于的類別。這兩個層次之間的關系由S矩陣聯系。根據S矩陣定義的關系修正用戶對內容評價的相似度。對用戶未選擇的內容評估公式如下:
(4)
然后使用修正的余弦相似度公式計算用戶之間的相似度,并根據用戶相似度閾值進行篩選,得到目標用戶的最近鄰居集T。
1.4 預測推薦結果集
將相似度最高的若干內容作為目標內容di的鄰居集合M= { m1,m2,…,mn},且集合M 中的內容按照與di的相似度從高到低排列。
得到用戶的最近鄰居集后,可以根據鄰居對項目的喜好記錄計算推薦結果。對于目標用戶未評分的項目,重新預測其評分,計算公式如下:
(5)

將上述改進的算法用于實際推薦系統。實現協同過濾分為3個步驟:①抽象用戶喜好特征;②發現相似用戶;③計算目標推薦。算法流程需要設計3個基本數據結構:用戶信息矩陣T、內容信息矩陣D和用戶對內容評價矩陣R。用戶信息矩陣用于新用戶注冊時,增加其基本注冊信息; 內容信息矩陣D用于新增一個內容到推薦系統,補充其相關屬性信息; 當一個用戶對某個內容進行評價后,他對該內容的評價信息將增加到矩陣R中。
(1)抽象用戶喜好特征。抽象用戶喜好特征需要從用戶的特征性行為中發現其規律信息,并以此為依據進行推薦。系統可設計多種方式探測用戶的喜好信息,常用的有投票、評分、點擊流、轉發、保存書簽、購買及頁面停留時間等。實際推薦引擎設計中可以綜合考慮幾種方式,以獲得用戶喜好程度的準確信息。
要在一個推薦系統中得到用戶喜好信息需要綜合考慮多種不用的用戶行為,可采用以下兩種不同的方式組合各種不同的用戶行為:①將不同的用戶行為分組,然后根據不同的用戶行為按分組類別計算不同用戶對物品的感興趣程度;②對不同行為產生的用戶喜好按照預先設定的權值進行加權處理,然后求出用戶對物品的總體喜好特征。本算法采用第②種方式。
得到用戶的行為數據后,再對數據進行除噪和歸一化預處理,最終得到一張二維表,即用戶評價矩陣,如表1所示。其中一維是用戶列表,另一維是內容列表,值是用戶對商品的評價。

表1 用戶評價矩陣
(2)發現相似用戶。得到某個用戶的評價特征矩陣后,可根據用戶的喜好計算相似用戶,然后向相似用戶進行推薦。本算法應用多層次相似性度量的改進措施,采用公式(4)計算與其相似的鄰居用戶。
首先建立內容與用戶關聯映射表,用來保存對若干內容發生過行為的用戶。映射表系數矩陣N[i][j]=|N[i]∪N[j]|。如果用戶i和用戶j同時屬于表中Nk個物品對應的用戶列表,則N[i][j]=Nk。然后掃描映射表中每項內容對應的用戶列表,將用戶列表中有重疊內容的系數項加1,最后得到所有用戶之間的系數矩陣N,其值為0或1。
建立一個m*n的 用戶相似度矩陣R,R的初始取值計算方式為:對于內容a,將r[a][b]和r[b][a]加1,對于內容b,將r[a][c]和r[c][a]加1,直至掃描完所有內容。
內容的屬性信息由C矩陣表示,多個屬性屬于不同層次,本算法將所有內容設定為兩個層次,兩個層次之間的關系由內容類別信息S矩陣聯系。同一個類別包含多個相關內容。C矩陣和S矩陣之間的關系由層次關系矩陣PK=(pK1,pK2,…,pKR)聯系。如果Cir屬于sjr,那么就記pij=1,否則pij=0。矩陣之間關聯的計算公式為C·P∈S。掃描所有內容,按照公式(4)進行計算,可得到最終的R矩陣,即為最終的用戶相似度矩陣。
(3)計算目標推薦。得到用戶相似度矩陣后,再計算與該用戶相似的K個鄰居用戶感興趣的內容并進行推薦。 對于用戶di沒有發生行為的內容j,他對j的感興趣程度計算過程為:①利用用戶di的評估相似度矩陣找到與其最相似的K個鄰居用戶;②采用K個鄰居用戶和D(j)的交集得到K個用戶中對j感興趣的若干用戶集合v(D(j)為對物品j有興趣的用戶集合); ③將用戶di與集合v中的每個v[j]的相似度乘積進行累加求和即為用戶di對內容的感興趣程度。算法中用戶di對物品j的喜好程度用如下公式度量:
(6)
其中,D(di,K) 包含與用戶di喜好最接近的K個用戶,D(j)表示對物品j有過行為的用戶集合,rdi,v表示用戶di和用戶v的喜好相似度,rvj表示用戶v對物品j的喜好。
3.1 實驗環境
以MovieLens 站點( http://movielens.umn.edu) 的實驗數據集為例,數據集為500個用戶對1 200個影片的6萬條投票記錄。每個影片都有所屬的類別,將類別作為影片的屬性。實驗中取其中兩個類別進行模擬,以獲得影片兩個層次的屬性相似度。表2中α表示第1個層次相似度的權值,1-α表示第2個層次相似度權值。兩層相似度計算都采用余弦函數法。表2為k=10時的一組實驗結果。表3為k=20時的一組實驗結果。RMSE表示平均絕對偏差,實驗中用它度量對比結果。
(7)


表2 實驗結果 (k=10)

表3 實驗結果 (k=20)
3.2 結果分析
從上述表格可以看出,多層次相似度計算的結果優于傳統的單層相似度計算,但并不總優于傳統計算方法。當α接近于1時,結果比傳統的要差。α=1時即為傳統的單層相似度。α參數決定了系統對相似內容的評估轉化能力和認知能力。
本文在協同推薦算法實際應用中提出一種改進措施,將多層次相似性度量應用到推薦系統kNN算法中,實踐證明效果較好。系統實際應用中要考慮的因素會更多,關于層次的選擇和劃分以及系統實驗效果還有待繼續研究探討。例如在應用此方法時會算出用戶對類別的評估矩陣,這個矩陣可以拓展得到用戶的興趣模型,內容的冷啟動問題也可得到解決。
[1]UNGARLH,FOSTERDP.Clusteringmethodsforcollaborativefilter-ring[C].ProcofWorkshoponRecommendationSystems.California:AAAIPress,1998:11-15.
[2]BREESEJS,HECKERMAND,KADIEC.Empiricalanalysisofpre-dctivealgorithmsforcollaborativefiltering[C].Procof14thConfe-renceonUncertaintyinArtificialIntelligence.1998 :43-52.
[3]ZHANGTONG,IYENGARVS.Recommendersystemsusinglinearclassfliers[J].JournalofMachineLearningResearch,2002(2):313-334.
[4]GRARM,FORTUNAB,MLADENID,etal.KNNversusSVMinthecollaborativefilteringframework[C].ProcofDataScienceandClassification,2006:251-260.
[5]COGGINSJM,JAINAK.Aspatialfilteringapproachtotextureanalysis[J].EuropeanComputer-IndustryResearchCenter(ECRC)PatternRecognitionLetters,1985(3):195-203.
(責任編輯:杜能鋼)
陳南平(1975-),女,湖北武漢人,碩士,湖北大學計算機與信息工程學院講師,研究方向為人工智能、網絡應用。
10.11907/rjdk.161444
TP312
A
1672-7800(2017)003-0045-03