鄭 丹,王名揚(yáng),陳廣勝
(東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)
?
基于weighted slope one用戶聚類的林產(chǎn)品推薦算法
鄭丹,王名揚(yáng)*,陳廣勝
(東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040)
隨著電商平臺(tái)用戶、林產(chǎn)品數(shù)量規(guī)模不斷擴(kuò)大,協(xié)同過濾推薦時(shí)構(gòu)建的用戶-林產(chǎn)品評(píng)分矩陣變得高維稀疏,導(dǎo)致推薦算法精度和可擴(kuò)展度下降?;诖吮疚奶岢鲆环Nweighted slope one用戶聚類推薦算法,將其應(yīng)用在林業(yè)產(chǎn)品個(gè)性化推薦服務(wù)中。首先,通過weighted slope one算法的思想填充高維稀疏的用戶-林產(chǎn)品評(píng)分矩陣;其次,使用K-means聚類算法對(duì)用戶進(jìn)行聚類,產(chǎn)生相似用戶集合,縮小推薦過程中鄰居用戶的搜索范圍;最后,在大數(shù)據(jù)Mahout平臺(tái)進(jìn)行實(shí)際推薦,為林產(chǎn)品貿(mào)易平臺(tái)個(gè)性化推薦服務(wù)的大規(guī)模實(shí)現(xiàn)奠定基礎(chǔ)。經(jīng)仿真實(shí)驗(yàn)表明,文中提出的算法能夠全面提升推薦的精度和可擴(kuò)展性。
林產(chǎn)品推薦;weighted slope one;K-means;協(xié)同過濾
近年來,科學(xué)技術(shù)的發(fā)展使林產(chǎn)品不斷被精深加工,加之其所具有綠色、環(huán)保、天然的優(yōu)勢,林產(chǎn)品不斷成為健康產(chǎn)品的主流選擇。電子商務(wù)平臺(tái)的不斷發(fā)展帶動(dòng)了林產(chǎn)品的推廣和銷售,但用戶和林產(chǎn)品的不斷增多出現(xiàn)了嚴(yán)重的信息負(fù)載,個(gè)性化推薦服務(wù)應(yīng)運(yùn)而生。通過個(gè)性化推薦服務(wù)省去了用戶搜索、篩選林產(chǎn)品的時(shí)間成本,直接為用戶推薦其可能感興趣的林產(chǎn)品,不但能提升用戶在電商平臺(tái)的購物體驗(yàn),同時(shí)還能夠?yàn)樯碳規(guī)礓N售收入。
國家林業(yè)局于2011年提出《林業(yè)發(fā)展“十二五”規(guī)劃》中指出,要加快推進(jìn)林業(yè)產(chǎn)品信息化,實(shí)現(xiàn)林業(yè)產(chǎn)品貿(mào)易化發(fā)展[1]。因此實(shí)現(xiàn)林產(chǎn)品智能推薦是推進(jìn)我國林業(yè)信息化、實(shí)現(xiàn)《林業(yè)發(fā)展“十二五”規(guī)劃》的重要環(huán)節(jié)。完善林業(yè)產(chǎn)品平臺(tái)的產(chǎn)品推薦個(gè)性化服務(wù)技術(shù)是建設(shè)人性化、智能化林產(chǎn)品商務(wù)網(wǎng)站的關(guān)鍵技術(shù)與必然趨勢[2]。
協(xié)同過濾算法是目前應(yīng)用最為廣泛的推薦算法,最早是由GlodBreg等人在90年代開發(fā)推薦系統(tǒng)Tapestry時(shí)提出來的,并在后來被廣泛的研究和應(yīng)用[3]。隨著電商平臺(tái)上用戶、林產(chǎn)品規(guī)模的不斷擴(kuò)大,構(gòu)建出的用戶-林產(chǎn)品評(píng)分矩陣將具有高維稀疏性,其中大部分元素都是0元素,這對(duì)于計(jì)算用戶、產(chǎn)品之間相似性生成最近鄰居,提升算法推薦精度、可擴(kuò)展性都是非常緊迫的挑戰(zhàn)。
為解決這一困境,近年來學(xué)者們提出了很多組合算法來提升推薦算法的推薦效果。通過降低用戶-產(chǎn)品評(píng)分矩陣的規(guī)模來實(shí)現(xiàn)提升推薦精度與可擴(kuò)展性。Zhan Li等提出了通過取用戶的hyper-plane相似性和傳統(tǒng)的余弦相似性的折衷來解決數(shù)據(jù)的稀疏性問題,仿真實(shí)驗(yàn)表明,該方法確實(shí)可以在一定程度上緩解數(shù)據(jù)的稀疏性問題[4]。Pirasteh P等人認(rèn)為即使是相似性相同的兩個(gè)人也不應(yīng)該推薦給他們完全相同的一個(gè)產(chǎn)品,他們將加權(quán)策略考慮進(jìn)了相似性的度量中,實(shí)驗(yàn)表明,的確能提升推薦算法的推薦精度,但是對(duì)于可擴(kuò)展性的提升并不大[5]。陳洪濤等提出了一種新的基于社交關(guān)系的相似度傳播式協(xié)同過濾推薦算法,通過量化用戶社交關(guān)系計(jì)算用戶之間的相似性,然后基于社交網(wǎng)絡(luò)的相似度傳播模型來給出推薦列表[6]。王茜等通過引入社交網(wǎng)絡(luò)中的信任機(jī)制,從個(gè)體的社交圈中的主觀信任和全局聲譽(yù)角度出發(fā)建模,將直接、間接信任度聚合在一起構(gòu)成用戶信任關(guān)系,解決冷啟動(dòng)問題和用戶-評(píng)分矩陣稀疏性問題[7]。
在對(duì)學(xué)者們的研究現(xiàn)狀進(jìn)行了充分調(diào)研的前提下,文中提出一種基于weighted slope one的用戶聚類推薦算法,以有效應(yīng)對(duì)用戶-產(chǎn)品評(píng)分矩陣的高維稀疏性帶來的推薦效率低的問題,并將其應(yīng)用在電子商務(wù)平臺(tái)上的林產(chǎn)品個(gè)性化推薦服務(wù)上。
以京東商城的產(chǎn)品分類中的食品、酒類、生鮮、特產(chǎn)為一級(jí)目錄,以地方特產(chǎn)、茗茶、生鮮食品作為二級(jí)目錄,收集二級(jí)目錄下的堅(jiān)干果、可食用菌類、茗茶等類目林產(chǎn)品為代表作為本文的林產(chǎn)品數(shù)據(jù)集,通過八爪魚采集器收集產(chǎn)品的評(píng)論頁面中的評(píng)價(jià)詳情、評(píng)價(jià)時(shí)間、評(píng)價(jià)星級(jí)、林產(chǎn)品名稱、用戶名稱、用戶等級(jí),用戶所在地點(diǎn),采集的部分?jǐn)?shù)據(jù)情況如圖1所示,共采集到72358條用戶-林產(chǎn)品評(píng)價(jià)信息。
圖1 爬取的林產(chǎn)品數(shù)據(jù)信息Fig.1 Forestry products data information
將重復(fù)的林產(chǎn)品進(jìn)行合并,并且認(rèn)為同一用戶對(duì)同一種商品的評(píng)價(jià)中時(shí)間最早的評(píng)價(jià)星級(jí)為有效評(píng)論。對(duì)數(shù)據(jù)經(jīng)過清洗后共有2555條有效評(píng)論,在這些評(píng)論中包含了1899個(gè)用戶和60種林產(chǎn)品。在此基礎(chǔ)上,構(gòu)建用戶-林產(chǎn)品評(píng)分矩陣,矩陣大小為1899×60,其中每列表示一種林產(chǎn)品,每行代表一個(gè)用戶,每個(gè)元素代表用戶對(duì)于林產(chǎn)品的評(píng)分情況。由于每個(gè)用戶能夠評(píng)論的林產(chǎn)品是有限的,所以呈現(xiàn)出的用戶-林產(chǎn)品評(píng)分矩陣具有高維稀疏性,直接在此矩陣上無論是進(jìn)行用戶聚類推薦還是協(xié)同過濾推薦都存在用戶之間關(guān)聯(lián)性太低的問題,因此不易尋找最近鄰居給出推薦結(jié)果[8-9]。
傳統(tǒng)的協(xié)同過濾推薦算法遇到了性能的瓶頸,算法的推薦精度和可擴(kuò)展性都在下降。在對(duì)學(xué)者們提出的算法進(jìn)行了深入的分析研究之后,提出了一種基于weighted slope one用戶聚類推薦算法,該算法首先構(gòu)建用戶-產(chǎn)品的評(píng)分矩陣,將weighted slope one方法實(shí)現(xiàn)產(chǎn)品推薦思想的應(yīng)用于稀疏矩陣的0元素填充,然后使用K-means算法實(shí)現(xiàn)相似用戶聚集,產(chǎn)生推薦列表,如圖2所示。
圖2 基于 weighted slope one算法填充后的用戶-林產(chǎn)品評(píng)分矩陣(部分)Fig.2 User-forestry products matrix based on weighted slope one(part)
2.1weighted slope one算法
slope one算法是Daniel Lemire教授于2005年提出的一個(gè)基于用戶打分的推薦算法,該算法通過以f(x)=x+b作為預(yù)測器,通過線性回歸來預(yù)測目標(biāo)用戶對(duì)于未評(píng)分項(xiàng)目的打分情況,其中b是用戶對(duì)兩個(gè)項(xiàng)目的評(píng)分的平均偏差[10-11]。weighted slope one是slope one算法的一個(gè)遞進(jìn)形式,它將用戶共同評(píng)分的差異度以及不同項(xiàng)目被用戶同時(shí)評(píng)論的次數(shù)也考慮進(jìn)了打分預(yù)測中。因此weighted slope one算法所預(yù)測的評(píng)分更接近于真實(shí)的用戶評(píng)分。但是,文獻(xiàn)[12]研究表明slope one在用戶-項(xiàng)目評(píng)分矩陣比較稀疏時(shí),其推薦的效果并不好。因此,文中并不直接利用weighted slope one算法進(jìn)行目標(biāo)用戶對(duì)項(xiàng)目的打分預(yù)測,而是通過使用該算法的思想將其應(yīng)用于初始的用戶-林產(chǎn)品稀疏矩陣填充上。先降低初始用戶-林產(chǎn)品評(píng)分矩陣的稀疏程度,確保后續(xù)進(jìn)行用戶聚類以及推薦的結(jié)果更優(yōu)。
將weighted slope one算法應(yīng)用于初始用戶-林產(chǎn)品評(píng)分矩陣填充(以目標(biāo)用戶u的0元素填充為例)的具體過程為:首先,尋找目標(biāo)用戶u與用戶v評(píng)分的林產(chǎn)品交集Iuv=Iu∩Iv,計(jì)算目標(biāo)用戶u的未評(píng)分項(xiàng)目j對(duì)于項(xiàng)目i的偏移量devji,見公式(1)。然后計(jì)算目標(biāo)用戶對(duì)于項(xiàng)目j的評(píng)分值,見公式(2)。這是經(jīng)典的slope one算法預(yù)測目標(biāo)用戶對(duì)項(xiàng)目打分的方式。但顯然的,用戶v與目標(biāo)用戶u之間評(píng)分林產(chǎn)品的交集越多說明用戶與目標(biāo)用戶更為相似,對(duì)其的預(yù)測評(píng)分的影響也就越深刻。因此,weighted slope one算法修正用戶u對(duì)項(xiàng)目最終的預(yù)測評(píng)分,見公式(3)。
(1)
(2)
(3)
式中:uj、ui表示用戶u對(duì)于項(xiàng)目i、j的評(píng)分值;card(i∩j)表示項(xiàng)目i、j同時(shí)被評(píng)分過的用戶數(shù)目;R(u)表示目標(biāo)用戶u已經(jīng)給出評(píng)分的項(xiàng)目集合;D(j)表示與目標(biāo)項(xiàng)目j計(jì)算得到的平均偏移量devji的集合。
通過weighted slope one算法對(duì)高維稀疏矩陣進(jìn)行填充后,用戶-林產(chǎn)品的評(píng)分矩陣如圖2所示,顯然有效降低了數(shù)據(jù)的稀疏程度。再通過K-means算法對(duì)用戶進(jìn)行聚類,縮小鄰居用戶的搜索范圍,在提升推薦算法可擴(kuò)展性的同時(shí),為快速給出推薦結(jié)果奠定基礎(chǔ)。
2.2K-means算法
K-means聚類算法思想簡單,又容易實(shí)現(xiàn)對(duì)數(shù)據(jù)的大規(guī)模聚類,因此是使用的最為廣泛的聚類算法之一。 其基本思想為:首先從N個(gè)數(shù)據(jù)對(duì)象中隨機(jī)選擇k個(gè)對(duì)象作為初始聚類中心;對(duì)于剩下的其他對(duì)象,則根據(jù)它們與這些聚類中心的相似度(距離),分別將其分配給與其最相似的聚類;然后再計(jì)算每個(gè)聚類新的聚類中心(該聚類中所有對(duì)象的均值);不斷重復(fù)這一過程直到準(zhǔn)則函數(shù)收斂為止[13-14]。K-均值算法采用誤差平方和函數(shù)作為準(zhǔn)則函數(shù),定義為:
(4)
式中:k表示聚類的數(shù)目;Cj(j=1,2,…,k)為j個(gè)簇;x為簇Cj中任意數(shù)據(jù)對(duì)象;mj為簇Cj中數(shù)據(jù)對(duì)象的均值;E是數(shù)據(jù)樣本與簇中心間距離的平方和,E值越小,聚類結(jié)果的質(zhì)量就越高。因此,該算法設(shè)法找到使聚類準(zhǔn)則函數(shù)E的值達(dá)到最小的聚類結(jié)果。
文中使用K-means算法對(duì)填充過的用戶-林產(chǎn)品評(píng)分矩陣進(jìn)行聚類,用戶之間距離的度量使用余弦相似性進(jìn)行度量,見公式(5)。產(chǎn)生相似用戶的候選集合,減少后續(xù)推薦的相似用戶搜索的時(shí)間、空間復(fù)雜度。
(5)
2.3協(xié)同過濾推薦
傳統(tǒng)的協(xié)同過濾算法可以分為基于用戶的協(xié)同過濾推薦和基于項(xiàng)目的協(xié)同過濾推薦,基于用戶的協(xié)同過濾算法實(shí)現(xiàn)推薦時(shí)基于如下事實(shí):如果用戶對(duì)一些項(xiàng)目的評(píng)分比較相似就認(rèn)為他們在其他項(xiàng)目的評(píng)分上具有相似關(guān)系[15]。算法首先遍歷用戶集合中的所有用戶,計(jì)算目標(biāo)用戶與所有用戶的相似性,找出前N個(gè)最相似的用戶作為目標(biāo)用戶的最近鄰居,見公式(5);其次,對(duì)于目標(biāo)用戶未評(píng)分的項(xiàng)目,搜索鄰居用戶集合對(duì)于目標(biāo)用戶未評(píng)分項(xiàng)目的評(píng)分,并結(jié)合其與目標(biāo)用戶的相似度計(jì)算目標(biāo)用戶對(duì)于未評(píng)分項(xiàng)目的預(yù)測評(píng)分,見公式(6)。最后,針對(duì)預(yù)測評(píng)分的值給出目標(biāo)用戶的推薦列表。
(6)
式中:sim(u,l)表示鄰居用戶l與目標(biāo)用戶u的相似性,Rl,j表示鄰居用戶l對(duì)項(xiàng)目j的評(píng)分,項(xiàng)目j是目標(biāo)用戶的未評(píng)分項(xiàng)目。Nu是目標(biāo)用戶的鄰居用戶集合。
2.4基于weighted slope one用戶聚類推薦算法
設(shè)U={u1,u2,…,um}為收集的用戶集合,U′={C1,C2,…,Ck}表示生成的用戶簇類,k表示具體的用戶簇類個(gè)數(shù),Ck表示第k個(gè)簇類,算法的具體描述如下:
輸入:用戶-評(píng)分矩陣D,聚類個(gè)數(shù)k,最近鄰居大小N,推薦列表的個(gè)數(shù)M。
輸出:目標(biāo)用戶的推薦列表以及對(duì)應(yīng)的評(píng)分。
step1:根據(jù)weighted slope one算法的思想對(duì)初始用戶-林產(chǎn)品評(píng)分矩陣D中的0元素進(jìn)行填充,生成填充矩陣Dζ。
Step2:利用K-means算法對(duì)Dζ進(jìn)行聚類分析,生成k個(gè)聚類輸出,各聚類的中心為ci,i=1,2,……,k。
Step3:通過公式(5)計(jì)算目標(biāo)用戶與聚類中心ci的相似度,將目標(biāo)用戶分配到距離最小的聚類Ci(i=1,2,……,k)中去。
Step4:在目標(biāo)用戶所屬的簇類中,根據(jù)公式(5)計(jì)算目標(biāo)用戶與其他用戶的相似性,搜索出相似性最大的前N個(gè)用戶作為目標(biāo)用戶的最近鄰居集合,記為Nu。
Step5:利用公式(6)計(jì)算各個(gè)項(xiàng)目的預(yù)測評(píng)分,列出M個(gè)預(yù)測評(píng)分最大的項(xiàng)目推薦給目標(biāo)用戶。
以收集到的京東商城的用戶、林產(chǎn)品評(píng)分?jǐn)?shù)據(jù)為實(shí)驗(yàn)數(shù)據(jù),評(píng)分值是按照用戶在評(píng)價(jià)產(chǎn)品時(shí)給的評(píng)分星級(jí),用戶標(biāo)亮5顆星就認(rèn)為用戶對(duì)該林產(chǎn)品的評(píng)分為5,未評(píng)分的用0來表示,評(píng)分越高,說明用戶對(duì)于該林產(chǎn)品的偏好性越強(qiáng)。
3.1實(shí)驗(yàn)環(huán)境
文中通過JAVA語言來進(jìn)行數(shù)據(jù)的清洗、去重復(fù)等工作,從而獲取初始的用戶、林產(chǎn)品評(píng)分信息。構(gòu)造用戶-林產(chǎn)品評(píng)分矩陣、基于weighted slope one算法對(duì)用戶-林產(chǎn)品評(píng)分矩陣中的0元素進(jìn)行填充、實(shí)現(xiàn)用戶聚類均是以Matlab語言完成,最后在Apache Mahout上構(gòu)建推薦平臺(tái)完成推薦過程,為后續(xù)的林產(chǎn)品大規(guī)模推薦實(shí)現(xiàn)奠定基礎(chǔ)。
3.2推薦框架(Apache Mahout)
Apache Mahout是Apache Softwear Foundation(ASF)開發(fā)的一個(gè)基于大數(shù)據(jù)的開源項(xiàng)目,該項(xiàng)目中開發(fā)了很多機(jī)器學(xué)習(xí)的算法的接口,可以供開發(fā)人員、學(xué)者直接進(jìn)行調(diào)用測試,算法涵蓋了聚類、分類、推薦等。
文中的推薦算法均在Apache Mahout上直接實(shí)現(xiàn)。在Taste組件中包含了可以進(jìn)行編程擴(kuò)展的接口,包括SO算法、基于內(nèi)容的協(xié)同過濾推薦算法、基于項(xiàng)目的協(xié)同過濾推薦算法等,同時(shí)還提供了擴(kuò)展接口,工程開發(fā)人員可以根據(jù)需要實(shí)現(xiàn)自己提出的推薦算法。Taste組件的工作原理如圖3所示:
圖3 Apache Mahout Taste推薦組件執(zhí)行過程Fig.3 Apache Mahout taste components for execution
底層是數(shù)據(jù)存儲(chǔ)層,用于存儲(chǔ)用戶的偏好信息,在推薦系統(tǒng)層,用戶的偏好信息被建模成Users’ Preferences(接口),一個(gè)preference就是一個(gè)三元組,其構(gòu)成為<用戶ID,物品ID,評(píng)價(jià)詳情>。推薦引擎將Users’ Preferences提交給Recommender模塊,推薦引擎通過DataModel對(duì)用戶評(píng)價(jià)信息進(jìn)行壓縮表示,DataModel是用戶評(píng)價(jià)信息的接口,它的具體實(shí)現(xiàn)支持從任意類型的數(shù)據(jù)源抽取用戶評(píng)價(jià)信息,它支持文件讀取和數(shù)據(jù)庫的讀取。Apache Mahout在進(jìn)行協(xié)同過濾時(shí),首先通過用戶的歷史行為構(gòu)建DataModel,在Recommmender模塊中根據(jù)用戶的偏好計(jì)算用戶之間的相似性,產(chǎn)生最近鄰居,然后產(chǎn)生推薦策略給上層的應(yīng)用層。
3.3評(píng)測指標(biāo)
協(xié)同過濾推薦算法最終的目標(biāo)要給出推薦產(chǎn)品列表以及產(chǎn)品的具體評(píng)分,因此涉及到兩個(gè)指標(biāo),即topM個(gè)項(xiàng)目的推薦性能以及評(píng)分預(yù)測的偏差。評(píng)分預(yù)測的度量多是通過MAE(平均絕對(duì)誤差)來進(jìn)行度量,見公式(7),而topM推薦的預(yù)測準(zhǔn)確率一般通過準(zhǔn)確率和召回率來進(jìn)行度量[16],見公式(8)和公式(9)。
(7)
(8)
(9)
式中:R(u)是給目標(biāo)用戶的推薦列表;而T(u)則是目標(biāo)用戶實(shí)際的行為列表。很明顯的,precision表示了推薦的準(zhǔn)確性程度,而recall則反映了推薦列表中所推薦的產(chǎn)品被用戶響應(yīng)的程度。從公式(8)和公式(9)來看,準(zhǔn)確率和召回率都應(yīng)該是越高越好。當(dāng)準(zhǔn)確率為NAN說明根據(jù)現(xiàn)有的用戶數(shù)據(jù)無法給出推薦產(chǎn)品列表,典型的就是常見的冷啟動(dòng)問題。召回率為NAN說明用戶對(duì)于推薦的響應(yīng)列表也為空,可以理解為不活躍用戶。
3.4實(shí)驗(yàn)結(jié)果分析
為了驗(yàn)證改進(jìn)算法的有效性,使其能夠大范圍的應(yīng)用在林業(yè)產(chǎn)品貿(mào)易平臺(tái)的使用上,以收集到的數(shù)據(jù)為測試數(shù)據(jù),分別將文中提出的算法與傳統(tǒng)的協(xié)同過濾算法、基于K-means用戶聚類的算法的MAE、precision、recall進(jìn)行對(duì)比,隨機(jī)地取用戶聚類個(gè)數(shù)為10,選取top 5個(gè)林產(chǎn)品作為產(chǎn)品列表推薦給用戶。 實(shí)驗(yàn)結(jié)果見表1。
根據(jù)表1可知,利用文中提出的算法對(duì)用戶-林產(chǎn)品評(píng)分矩陣首先進(jìn)行填充可以有效避免數(shù)據(jù)稀疏性的問題,在與基于K-means用戶聚類推薦算法的比較中可以看到,除去cluster4,cluster6之外,基于K-means用戶聚類推薦的算法都出現(xiàn)了NAN的情況,說明文中提出算法的無論是在預(yù)測評(píng)分還是topM推薦上其整體效果都優(yōu)于基于K-means用戶聚類推薦,可見數(shù)據(jù)稀疏性對(duì)于推薦系統(tǒng)推薦結(jié)果的影響。同時(shí),觀察到cluster4、cluster9的文中提出的算法所得到的precision、recall相對(duì)比較低。通過分析聚類結(jié)果發(fā)現(xiàn),首先,cluster4、cluster9簇類內(nèi)用戶數(shù)量較少,小用戶集合中進(jìn)行推薦的能力有限;其次,簇類內(nèi)用戶的評(píng)分行為較集中,即用戶購買評(píng)分的項(xiàng)目基本相同。由于用戶數(shù)量和小差異的集中的購買評(píng)分現(xiàn)象,造成了cluster4、cluster9的precision和recall都比較低。去除cluster4、cluster9這兩個(gè)聚類的precision和recall值發(fā)現(xiàn),文中算法的平均precision、平均recall可以達(dá)到84.73%、87.28%。雖然與傳統(tǒng)的協(xié)同過濾算法相比較在precision上文中的算法還略低一點(diǎn),但是其在recall、MAE上面的表現(xiàn)卻是完全優(yōu)于傳統(tǒng)的協(xié)同過濾推薦算法。recall比傳統(tǒng)的算法提升了近60%多,MAE下降的幅度也比較大。
表1 各算法的precision、recall、MAE值比較
除此之外,由于文中提出的算法通過K-means聚類算法獲取了相似用戶的簇類,當(dāng)需要對(duì)某個(gè)目標(biāo)用戶進(jìn)行推薦時(shí),首先判斷該目標(biāo)用戶所屬的簇類,在目標(biāo)用戶所屬的簇類內(nèi)實(shí)現(xiàn)推薦而非以往在所有用戶集中實(shí)現(xiàn)推薦過程。由于相似用戶簇類的用戶數(shù)量遠(yuǎn)遠(yuǎn)小于所有用戶集合,因此將目標(biāo)用戶最近鄰居的搜索空間將大大降低,從而有效提升了算法的可擴(kuò)展性。
電子商務(wù)的不斷發(fā)展會(huì)帶動(dòng)林產(chǎn)品貿(mào)易平臺(tái)的完善和發(fā)展,完善林產(chǎn)品個(gè)性化推薦服務(wù)是推進(jìn)我國林業(yè)信息化的重要途徑。文中以林產(chǎn)品為主題,收集關(guān)于用戶、林產(chǎn)品、評(píng)論等重要信息,通過對(duì)數(shù)據(jù)進(jìn)行去重、整理生成用戶-林產(chǎn)品評(píng)分矩陣,引入weighted slope one算法進(jìn)行推薦的思想,填充稀疏矩陣矩陣進(jìn)行K-means聚類產(chǎn)生相似用戶集合,在低維的相似用戶空間中實(shí)現(xiàn)林產(chǎn)品的推薦。經(jīng)仿真實(shí)驗(yàn)表明,文中提出的方法能夠很好地提升林產(chǎn)品推薦的效率。
[1]國家林業(yè)局.《林業(yè)發(fā)展“十二五”規(guī)劃》[Z].2011.
[2]王梓.林產(chǎn)品貿(mào)易信息用戶興趣模型及個(gè)性化搜索[D].北京:北京林業(yè)大學(xué),2013.
[3]Goldberg D,Nichols D,Oki B M,et al.Using collaborative filtering to weave an information tapestry[J].Communications of the ACM,1992,35(12):61-70.
[4]Li Z,Peng J Y,Geng G H,et al.Video recommendation based on multi-modal information and multiple kernel[J].Multimedia Tools & Applications,2015,74(13):4599-4616.
[5]Pirasteh P,Hwang D,Jung J E.Weighted similarity schemes for high scalability in user-based collaborative filtering[J].Mobile Networks & Applications,2015,20(4):1-11.
[6]陳洪濤,肖如良,鄧新國.一種新的基于社交關(guān)系的相似度傳播式推薦算法[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(5):1073-1077.
[7]王茜,王錦華.結(jié)合信任機(jī)制和用戶偏好的協(xié)同過濾推薦算法[J].計(jì)算機(jī)工程與應(yīng)用,2015,51(10):261-265.
[8]李華,張宇,孫俊華.基于用戶模糊聚類的協(xié)同過濾推薦研究[J].計(jì)算機(jī)科學(xué),2012,39(12):83-86.
[9]賀桂和.基于用戶偏好挖掘的電子商務(wù)協(xié)同過濾推薦算法研究[J].情報(bào)科學(xué),2013,31(12):38-42.
[10]李朝陽.基于Slope One算法的協(xié)作過濾個(gè)性化推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2010.
[11]王毅.基于Hadoop的Slope One及其改進(jìn)算法實(shí)現(xiàn)[D].成都:西南交通大學(xué),2011.
[12]董麗,邢春曉,王克宏.基于不同數(shù)據(jù)集的協(xié)作過濾算法評(píng)測[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2009,49(4):590-594.
[13]熊忠陽,陳若田,張玉芳.一種有效的K-means聚類中心初始化方法[J].計(jì)算機(jī)應(yīng)用研究,2011,28(11):4188-4190.
[14]王千,王成,馮振元,葉金鳳.K-means聚類算法研究綜述[J].電子設(shè)計(jì)工程,2012,20(7):21-24.
[15]李濤,王建東,葉飛躍,等.一種基于用戶聚類的協(xié)同過濾推薦算法[J].系統(tǒng)工程與電子技術(shù),2007(7):1178-1182.
[16]項(xiàng)亮.推薦系統(tǒng)實(shí)戰(zhàn)[M].北京:人民郵電出版社,2014.
Research on Users’ Clustering of Forest Products RecommendationAlgorithm Based on Weighted Slope One
Zheng Dan,Wang Mingyang*,Chen Guangsheng
(College of Information and Computer Engineering,Northeast Forestry University,Harbin 150040)
With the rapid popularization of the Internet,number of users and products for E-commerce platform is getting huge.Traditional collaborative filtering algorithm encounters data sparseness problem,which cause the accuracy,scalability of recommendation algorithm a sharply drop.In this paper,a users’ clustering recommendation algorithm based on weighted slope one was proposed with aiming at the research of the recommendation for forest products.Firstly,the zero items in user-item matrix items were filled by weighted slope one algorithm.This operation can effectively reduce the data sparseness.Secondly,users could be clustered by K-means algorithm.Finally,the corresponding forestry products were recommended to the target users according to their nearest neighbors which were found by the users’ collaborative filtering recommendation algorithm on Mahout platform.Experiments showed that the improved algorithm can significantly reduce the data sparseness and improve the accuracy and scalability of recommendation.
forest products recommendation;weighted slope one;K-means;collaborative filtering
2016-02-29
中央高?;究蒲袠I(yè)務(wù)費(fèi)專項(xiàng)資金項(xiàng)目(2572014DB05);中國博士后科學(xué)基金面上基金(2012M520711);國家自然科學(xué)基金(No.71473034)
鄭丹,碩士研究生。研究方向:數(shù)據(jù)挖掘。
王名揚(yáng),博士,副教授。研究方向:數(shù)據(jù)挖掘、社交網(wǎng)絡(luò)挖掘。E-mail:wangmingyang@nefu.edu.cn
鄭丹,王名揚(yáng),陳廣勝.基于weighted slope one用戶聚類的林產(chǎn)品推薦算法[J].森林工程,2016,32(5):65-70.
S 759.1
A
1001-005X(2016)05-0065-06