常昊 楊盛泉
摘要: 大數(shù)據(jù)時代的到來,生活種每天都產(chǎn)生著大量的數(shù)據(jù),對這些數(shù)據(jù)進(jìn)行分析并推薦商品在電商領(lǐng)域就會顯得尤為的重要。協(xié)同過濾算法是目前發(fā)展比較成熟的,在各領(lǐng)域都取得了非常好的效果。但傳統(tǒng)的協(xié)同過濾算法在計算相似度和預(yù)測評分時太過粗糙,并且效率很低。我們將協(xié)同過濾算法與決策樹算法相結(jié)合,并對算法進(jìn)行改進(jìn),創(chuàng)建一種協(xié)同過濾決策樹算法來對商品進(jìn)行推薦,并將新的協(xié)同過濾決策樹算法運行在Hadoop平臺上。Hadoop是一種分布式的處理大規(guī)模數(shù)據(jù)的云計算平臺。實驗證明,改進(jìn)后算法使得推薦的準(zhǔn)確率有了顯著的提升。
Abstract: With the advent of the era of big data, daily life is generating a large amount of data. Analyzing and recommending these data will be particularly important in the field of e-commerce. Collaborative filtering algorithms are currently relatively mature and have achieved very good results in various fields. However, the traditional collaborative filtering algorithm is too rough and inefficient in calculating similarity and prediction score. We combine the collaborative filtering algorithm with the decision tree algorithm and improve the algorithm to create a collaborative filtering decision tree algorithm to recommend products and run the new collaborative filtering decision tree algorithm on the Hadoop platform. Hadoop is a distributed cloud computing platform for processing large-scale data. Experiments have shown that the improved algorithm has significantly improved the accuracy of recommendation.
關(guān)鍵詞:大數(shù)據(jù);推薦算法;協(xié)同過濾;Hadoop
Key words: big data;recommendation algorithm;collaborative filtering;Hadoop
中圖分類號:TP311.5? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2020)09-0127-03
0? 引言
隨著科技的發(fā)展,互聯(lián)網(wǎng)技術(shù)也隨之迅速發(fā)展和普及,這就使得網(wǎng)絡(luò)上的數(shù)據(jù)每天高速增長,豐富用戶生活消費的同時,大量信息資源膨脹迅速的問題也隨之出現(xiàn),“信息過載”也是目前互聯(lián)網(wǎng)正面對的難題?!靶畔⑦^載”指的是用戶難以從海量數(shù)據(jù)中準(zhǔn)確并且迅速地定位到自己所需要的信息。推薦系統(tǒng)的出現(xiàn)大大地緩解了“信息過載”這一難題。推薦系統(tǒng)根據(jù)用戶的歷史行為,預(yù)測并且推薦使用戶滿意的物品,實現(xiàn)個性化的服務(wù)。推薦系統(tǒng)是自動智能的為用戶推薦物品,而且還會根據(jù)用戶行為的變化,動態(tài)的調(diào)整推薦的物品類型,真正意義上避免了“信息過載”的困擾。
推薦算法是推薦系統(tǒng)的核心,本文主要研究了在Hadoop平臺下的推薦算法,該推薦算法將決策樹和協(xié)同過濾算法相結(jié)合,并對傳統(tǒng)的協(xié)同過濾算法進(jìn)行改進(jìn),來克服傳統(tǒng)算法可擴展性差、新用戶和新項目冷啟動等缺點,提高推薦的時效性[1]。
1? 傳統(tǒng)的協(xié)同過濾算法簡介
協(xié)同過濾算法算是目前的推薦系統(tǒng)中運用最為成功的信息過濾算法,主要做法是提取用戶所產(chǎn)生的歷史行為做出推薦[2]。傳統(tǒng)的協(xié)同過濾算法主要分為基于物品的協(xié)同過濾算法(ItemCF)和基于用戶的協(xié)同過濾算法(UserCF)[2]。本文將會選取基于物品的協(xié)同過濾算法做為主研究方向,其核心流程如下:收集用戶偏好、找到相似的用戶或物品、計算推薦,其中最為核心部分為相似度的計算。本文將采用Cosine相似度方法,也就是余弦相似度方法來計算物品或用戶的相似度。如公式(1)所示
(1)
2? 推薦算法設(shè)計
協(xié)同過濾有它自身所存在的難題,比如“冷啟動”和“稀疏性”。本文為解決此難題,設(shè)計了一種混合推薦算法。
2.1 人口統(tǒng)計學(xué)推薦的提出
“冷啟動”問題,指的是在新用戶剛注冊賬號的時,并沒有生成提供信息的行為數(shù)據(jù),從而導(dǎo)致協(xié)同過濾算法無法有效的實施。如何解決這個問題,各國學(xué)者專家提出了不同的方案,如隨機推薦法、平均值法等[3]。本文將采用人口統(tǒng)計學(xué)推薦的方法來解決“冷啟動”的問題。首先對用戶進(jìn)行判斷,如果是新用戶,算法走人口統(tǒng)計學(xué)推薦的分支,如果不是,則走協(xié)同過濾混合推薦的分支。目前的電商網(wǎng)站在用戶注冊的時候,都會對相關(guān)信息以及喜好進(jìn)行相應(yīng)的登記和調(diào)查,根據(jù)這些信息即可進(jìn)行人口統(tǒng)計學(xué)推薦,有效的解決了協(xié)同過濾算法“冷啟動”的問題。
2.2 協(xié)同過濾算法的改進(jìn)
相似度的計算是協(xié)同過濾算法最關(guān)鍵的一步,物品相似度的精準(zhǔn)程度將會直接影響著整個算法的可靠性,所以本文將對算法相似度的計算進(jìn)行改進(jìn)。
我們推薦系統(tǒng)中的用戶行為主要劃分為點擊、加入購物車、收藏和購買4種行為,在矩陣中購買的權(quán)重肯定是最高的(假定點擊為1,加入購物車為2,收藏為3,購買為10),根據(jù)公式3,我們計算如表1的矩陣。
其中縱坐標(biāo)代表商品的編號,橫坐標(biāo)代表每個用戶行為的權(quán)重值。將此代入?yún)f(xié)同過濾算法的余弦相似度公式中,可得物品x和物品y的相似度很接近于1,但如果用戶U5對x物品很滿意,對y物品卻給了差評,兩者對商品的喜愛程度與相似度完全不符,所以我們對公式進(jìn)行了如下改造,將購買用戶對商品的評分結(jié)合余弦相似度中,得出如公式(2):
(2)
算法中的a(x)和a(y)分別代表著用戶對物品x和y的評分,這個公式計算方式如圖1所示。
其中avgall指的是整個電商網(wǎng)站所有用戶的所有評分,avgu指的是用戶u的平均評分,ux指的是用戶u對商品x的評分。
在物品自身的特征中,關(guān)鍵的一個信息即物品面世的時間。如兩個物品面世的時間越近,其基于時間的相似性就越大,可知物品之間的相似度和物品面世的時間成反比,如果將其相似度放在[0,1]區(qū)間的話,其公式如公式(3)所示:
(3)
其中t1和t2表示物品x和y面世的時間,ρ為歸一化系數(shù)。
根據(jù)研究和分析可知,可以從兩個方面得到物品的相似度,然后對此取平均值得到物品最終的相似度(即公式2和公式3求平均),如公式(4)所示。
(4)
2.3 決策樹的加權(quán)
通過數(shù)據(jù)集,可以分析得出不同性別用戶的偏好,如果不把這些主觀因素考慮進(jìn)去,推薦的物品準(zhǔn)確率就會受到一定的影響。為此,我們將用戶注冊時的信息(年齡、興趣等)當(dāng)做決策樹的特征值,并計算每個特征值所對應(yīng)的熵值,建立兩個關(guān)于性別的決策樹模型,即男性決策樹和女性決策樹。并將協(xié)同過濾推薦的物品,帶入決策樹,得到其每個物品對應(yīng)的權(quán)值,進(jìn)行計算后,重新進(jìn)行排序,進(jìn)行推薦。則算法最終的流程圖如圖2所示。
3? 實驗結(jié)果
實驗運行環(huán)境是Hadoop集群。該集群擁有1個Master節(jié)點和3個Slave節(jié)點,集群中所有的機器的配置完全相同。集群安裝配置在CentOS-6.7操作系統(tǒng)下。實驗的測試主要從準(zhǔn)確率召回率兩個方面入手。
①準(zhǔn)確率。
算法的準(zhǔn)確率測試的是推薦列表中用戶所占物品,用戶實際喜歡物品的比例,其推薦率可描述為公式(5):
(5)
其中Lu為用戶U喜歡的物品,Bu是推薦算法為用戶推薦的商品列表。測試樣本從真實樣本中進(jìn)行抽取,分別選用排序top1、top5、top10進(jìn)行測試,測試結(jié)果如表2所示。
在準(zhǔn)確率的測試中,可直觀的看出本文提出的算法比傳統(tǒng)的基于物品的協(xié)同過濾算法的準(zhǔn)確率更高,效果更明顯。
②召回率。
召回率指在推薦列表中,有多少物品是用戶喜歡的,其召回率可描述為公式(6):
(6)
其中Lu為用戶U喜歡的物品,Bu是推薦算法為用戶推薦的商品列表。同樣選擇返回結(jié)果的top1、top5和top10來進(jìn)行對比測試。測試結(jié)果如表3所示。
由表可知,算法隨著測試集返回結(jié)果的增加而增加,也可知本文設(shè)計的算法在召回率方面也是領(lǐng)先于傳統(tǒng)的基于物品的協(xié)同過濾算法,在top10中體現(xiàn)最為明顯,超出傳統(tǒng)協(xié)同過濾12%。
4? 結(jié)論
本文設(shè)計的推薦算法模型在計算物品相似度之前采用了判斷語句,有效的解決了系統(tǒng)的冷啟動問題,提升了算法的可行性。在計算物品相似度時增加了物品面世時間的條件,并且在傳統(tǒng)的余弦相似度算法上做出了進(jìn)一步的改進(jìn),使得算法的準(zhǔn)確率得到了有效的提升。最后通過數(shù)據(jù)集驗證了改進(jìn)后算法的在整體上都優(yōu)于傳統(tǒng)的協(xié)同過濾算法,并在Hadoop分布式系統(tǒng)中運行,充分發(fā)揮了在大數(shù)據(jù)環(huán)境下,Hadoop分布式系統(tǒng)計算數(shù)據(jù)的優(yōu)勢。
參考文獻(xiàn):
[1]冀曉巖.基于Hadoop的電子商務(wù)個性化推薦研究與實現(xiàn)[D].蘭州交通大學(xué),2017.
[2]劉暢,吳清烈.基于協(xié)同過濾的大規(guī)模定制個性化推薦方法[J].工業(yè)工程,2014,17(04):24-28,34.
[3]張磊.基于遺忘曲線的協(xié)同過濾研究[J].電腦知識與技術(shù),2014,10(12):2757-2762.
作者簡介:常昊(1994-),男,陜西榆林人,碩士。