一種基于hadoop的改進的物品推薦方法
【專利摘要】本發(fā)明公開了一種基于hadoop的改進的物品推薦方法,包括如下步驟:將數(shù)據(jù)存儲到分布式數(shù)據(jù)存儲環(huán)境中;從用戶-物品矩陣中抽取物品集;通過mapreduce利用改進的聚類方法對物品集進行聚類;計算類別內(nèi)的物品相似度,存儲在哈希表中;利用所得到的物品相似度,進行物品推薦。本發(fā)明解決在處理海量數(shù)據(jù)時運行速度和推薦精度的問題。
【專利說明】一種基于hadoop的改進的物品推薦方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于hadoop的改進的物品推薦方法。
【背景技術(shù)】
[0002]協(xié)同過濾是一個非常成功的構(gòu)建推薦系統(tǒng)的方法。通過一系列具有相同的體驗或者偏好的用戶群體的經(jīng)歷來為特定用戶進行推薦。每一個個體對于推薦的結(jié)果給予一定的回應(yīng)和評判,這些反饋結(jié)果同樣也被拿來用到對于其他用戶的咨詢篩選過程中。通過對特定用戶進行系統(tǒng)的評估和推測,協(xié)同過濾系統(tǒng)可以對這些用戶進行適合的推薦。這一思路和方法廣泛的運用于電子商務(wù),數(shù)據(jù)分析,遠景預(yù)測等各個領(lǐng)域,并取得了很有成效的商業(yè)效果。無論是亞馬遜臉譜,還是淘寶豆瓣,在各個領(lǐng)域,我們都可以看到其廣泛的應(yīng)用場景。因此,如何更有效更直接快速的進行推薦和預(yù)測,成為了一個很熱門且很值得研究的問題。準確且快速的推薦,可以給予用戶更好的行為體驗,從而在各個方面提高一些商業(yè)網(wǎng)站的利潤及利益。但是隨著用戶的增多,數(shù)據(jù)量的增大,如何達到快速和準確的目標,目前的協(xié)同過濾算法仍需要在各方面進行自身的改進和優(yōu)化。
[0003]針對數(shù)據(jù)量增大的問題,傳統(tǒng)的協(xié)同過濾推薦方法可以對物品進行聚類,以此縮小推薦過程中的計算量。但是傳統(tǒng)的聚類方法可能會需要大量的迭代次數(shù),從而使得整體的運行時間非常的長,因此一般情況下只是適用于較小的數(shù)據(jù)集。如果其用來處理海量數(shù)據(jù),可能會導(dǎo)致內(nèi)存泄露等問題。
[0004]另一方面,協(xié)同過濾算法中利用用戶-物品矩陣中的頻度進行相似度計算,難以準確的反映出物品的相似程度。而基于物品屬性特征的相似度計算可以準確的反應(yīng)物品的行為,但是欠缺用戶行為對它進行的修正。所以對于基于協(xié)同過濾的推薦系統(tǒng),需要一種改進方法,更加準確的結(jié)合物品各方面的特征,從而得出更加準確的推薦結(jié)果。
【發(fā)明內(nèi)容】
[0005]發(fā)明目的:針對上述現(xiàn)有技術(shù)存在的問題和不足,本發(fā)明的目的是提供一種基于hadoop的改進的物品推薦方法,解決在處理海量數(shù)據(jù)時運行速度和推薦精度的問題。
[0006]技術(shù)方案:為實現(xiàn)上述發(fā)明目的,本發(fā)明米用的技術(shù)方案為一種基于hadoop的改進的物品推薦方法,包括如下步驟:
(1)將數(shù)據(jù)存儲到分布式數(shù)據(jù)存儲環(huán)境中;
(2)從用戶-物品矩陣中抽取物品集;
(3)通過mapreduce利用改進的聚類方法對物品集進行聚類;
(4)計算類別內(nèi)的物品相似度,存儲在哈希表中;
(5 )利用所得到的物品相似度,進行物品推薦。
[0007]所述數(shù)據(jù)跟“用戶-物品矩陣”可以視為相同概念,一個數(shù)據(jù)即為用戶-物品矩陣中的一個值。
[0008]進一步的,所述步驟(3)中,用map函數(shù)計算每個物品到所有聚類中心的距離,用reduce函數(shù)計算所有聚類中心的修正值,直到聚類中心保持不變,完成迭代。
[0009]進一步的,迭代過程具體為:
1)選擇k個類的初始中心;
2)在Hadoop平臺各個節(jié)點的Mapper端計算每個數(shù)據(jù)對象到所有初始中心的距離;
3)在所述Mapper端選擇距離最小的中心點,將局部數(shù)據(jù)發(fā)送到Hadoop平臺各個節(jié)點的 Combiner 端;
4)在所述Combiner端把屬于同一中心點的數(shù)據(jù)對象集合在一起,計算屬于同一中心點的數(shù)據(jù)對象的和,將所有同一聚類的局部數(shù)據(jù)發(fā)送到Hadoop平臺各個節(jié)點的Reducer端;
5)在所述Reducer端匯總所有聚類的局部數(shù)據(jù),計算所有聚類的新中心;
6)重復(fù)執(zhí)行步驟2)至5),直到對于所有的k個聚類中心保持不變,則迭代結(jié)束,得到聚類結(jié)果,否則繼續(xù)迭代。
[0010]進一步的,所述步驟(3)和(4)中,距離和物品相似度均采用一種基于內(nèi)容的配對相似度(COS: Coup led S imi I ar i ty ),其計算方法為在對物品的每個屬性計算屬性內(nèi)相似度和屬性間相似度兩個相似度后相乘,再累加所有屬性上的相似度。其中,屬性內(nèi)相似度,即對于不同物品的同一屬性計算相似度,表示了屬性不同值之間的共現(xiàn)程度;屬性間相似度,是對于某一屬性不同值之間的相似度,由與該屬性同時出現(xiàn)的其他屬性的不同值的相似度來度量,即對于多屬性的物品,表示了屬性之間的共現(xiàn)程度。為簡單起見作出如下說明:對于用N個屬性描述的物品,兩個物品越是相似,則會有越多的屬性取相同值,這就是屬性內(nèi)相似,相似度的取值趨向于1,即完全相同;而對于一個屬性兩個物品出現(xiàn)的不同取值,兩個物品越是相似,則說明在其他屬性上就有越多取相同屬性的取值,則可以認為這個有不同取值的屬性的兩個取值也具有一定的相似度,否則取值趨向于無關(guān),即趨向于O。
[0011]進一步的,所述步驟(5)中的物品推薦,可以選用傳統(tǒng)的item-based的(基于物品的)協(xié)同過濾算法,將物品相似度替換為前述的配對相似度(COS)。
[0012]有益效果:本發(fā)明通過mapreduce進行的并行化和聚類,減少同樣數(shù)據(jù)規(guī)模下系統(tǒng)運行的時間,提高運算效率;通過改進的相似度計算方法,更加準確的描述的物品之間的聯(lián)系,得到了更好的推薦效果。
【專利附圖】
【附圖說明】
[0013]圖1為本發(fā)明方法的流程圖。
【具體實施方式】
[0014]下面結(jié)合附圖和具體實施例,進一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
[0015]如圖1所示,下面詳細說明本發(fā)明方法的步驟:
步驟1,將數(shù)據(jù)存儲到分布式數(shù)據(jù)存儲環(huán)境中;
步驟2,從用戶-物品矩陣中抽取中物品集,將物品轉(zhuǎn)化成向量形式,向量內(nèi)容為該物品的所有屬性特征;步驟3,通過mapreduce利用改進的聚類方法(CK_modes)對物品集進行聚類,其具體步驟為:
迭代過程具體為:
(3.1)選擇k個類的初始中心;
(3.2)在Hadoop平臺各個節(jié)點的Mapper端計算每個數(shù)據(jù)對象到所有初始中心的距
離;
(3.3)在所述Mapper端選擇距離最小的中心點,將局部數(shù)據(jù)發(fā)送到Hadoop平臺各個節(jié)點的Combiner端;
(3.4)在所述Combiner端把屬于同一中心點的數(shù)據(jù)對象集合在一起,計算屬于同一中心點的數(shù)據(jù)對象的和,將所有同一聚類的局部數(shù)據(jù)發(fā)送到Hadoop平臺各個節(jié)點的Reducer端;
(3.5)在所述Reducer端匯總所有聚類的局部數(shù)據(jù),計算所有聚類的新中心;
(3.6)重復(fù)執(zhí)行步驟(3.2)至(3.5),直到對于所有的k個聚類中心保持不變,則迭代結(jié)束,得到聚類結(jié)果,否則繼續(xù)迭代。
[0016]其中距離由COS得出,計算公式如下:
【權(quán)利要求】
1.一種基于hadoop的改進的物品推薦方法,包括如下步驟: (1)將數(shù)據(jù)存儲到分布式數(shù)據(jù)存儲環(huán)境中; (2)從用戶-物品矩陣中抽取物品集; (3)通過mapreduce利用改進的聚類方法對物品集進行聚類; (4)計算類別內(nèi)的物品相似度,存儲在哈希表中; (5 )利用所得到的物品相似度,進行物品推薦。
2.根據(jù)權(quán)利要求1所述一種基于hadoop的改進的物品推薦方法,其特征在于:所述步驟(3)中的聚類過程,用map函數(shù)計算每個物品到所有聚類中心的距離,用reduce函數(shù)計算所有聚類中心的修正值,直到聚類中心保持不變,完成迭代。
3.根據(jù)權(quán)利要求2所述一種基于hadoop的改進的物品推薦方法,其特征在于:所述步驟(3)和(4)中,距離和物品相似度均采用一種基于內(nèi)容的配對相似度,其計算方法為在對物品的每個屬性計算屬性內(nèi)相似度和屬性間相似度兩個相似度后相乘,再累加所有屬性上的相似度。
4.根據(jù)權(quán)利要求2所述一種基于hadoop的改進的物品推薦方法,其特征在于:所述迭代包括如下步驟: 1)選擇k個類的初始中心; 2)在Hadoop平臺各個節(jié)點的Mapper端計算每個數(shù)據(jù)對象到所有初始中心的距離; 3)在所述Mapper端選擇距離最小的中心點,將局部數(shù)據(jù)發(fā)送到Hadoop平臺各個節(jié)點的 Combiner 端; 4)在所述Combiner端把屬于同一中心點的數(shù)據(jù)對象集合在一起,計算屬于同一中心點的數(shù)據(jù)對象的和,將所有同一聚類的局部數(shù)據(jù)發(fā)送到Hadoop平臺各個節(jié)點的Reducer端; 5)在所述Reducer端匯總所有聚類的局部數(shù)據(jù),計算所有聚類的新中心; 6)重復(fù)執(zhí)行步驟2)至5),直到對于所有的k個聚類中心保持不變,則迭代結(jié)束,得到聚類結(jié)果,否則繼續(xù)迭代。
【文檔編號】G06F17/30GK103605718SQ201310568662
【公開日】2014年2月26日 申請日期:2013年11月15日 優(yōu)先權(quán)日:2013年11月15日
【發(fā)明者】高陽, 王睿, 史穎歡 申請人:南京大學(xué), 江蘇萬維艾斯網(wǎng)絡(luò)智能產(chǎn)業(yè)創(chuàng)新中心有限公司