一種分布式個性化推薦方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種分布式個性化推薦方法及系統(tǒng),其中,該方法包括:建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合;根據(jù)該集合計算所有用戶的所有項目對評分差的算術(shù)平均值及同一項目對出現(xiàn)的總次數(shù),并寫入預(yù)先構(gòu)建的項目對評分差表;其中,所述評分集合與項目對評分差表均采用Hbase表來存儲;利用MapReduce映射化簡模型將HDFS文件系統(tǒng)中存儲的用戶信息及其未評分項目的集合與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié);再將所述第一次聯(lián)結(jié)結(jié)果與所述評分集合進(jìn)行第二次聯(lián)結(jié),并結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值;根據(jù)所述預(yù)測評分值的大小向用戶進(jìn)行推薦。通過采用本發(fā)明公開的方法及系統(tǒng),節(jié)約了網(wǎng)絡(luò)傳輸資源和輸入輸出開銷,提高了聯(lián)結(jié)效率。
【專利說明】一種分布式個性化推薦方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式計算【技術(shù)領(lǐng)域】,尤其涉及一種分布式個性化推薦方法及系統(tǒng)?!颈尘凹夹g(shù)】
[0002]個性化推薦系統(tǒng)是一種根據(jù)用戶的個人信息、興趣特點、購買行為等,向用戶個性化推薦感興趣的信息或商品的系統(tǒng)。推薦系統(tǒng)有三個重要的模塊:用戶建模模塊、推薦對象建模模塊、推薦算法模塊。推薦系統(tǒng)把用戶模型中興趣需求信息和推薦對象模型中的特征信息匹配,同時使用相應(yīng)的推薦算法進(jìn)行計算篩選,找到用戶可能感興趣的推薦對象,然后推薦給用戶。
[0003]Hadoop是一個開源項目,是一種針對大數(shù)據(jù)處理和分析的開源分布式計算平臺,是一個完整的分布式軟件架構(gòu)。Hadoop由HDFS (分布式文件系統(tǒng))、HBase (分布式開源數(shù)據(jù)庫)、MapReduce (映射化簡模型)、ZooKeeper (可靠性協(xié)調(diào)系統(tǒng))等核心部分組成,分別負(fù)責(zé)分布式文件系統(tǒng)、分布式數(shù)據(jù)庫系統(tǒng)、分布式并行計算模型和并發(fā)訪問控制。
[0004]其中,Hadoop為一個分布式系統(tǒng)基礎(chǔ)架構(gòu)的名稱。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序,并且充分利用集群高速運算和存儲的能力。具有高擴(kuò)展性、高可靠性、高容錯性、低成本等特點。
[0005]HDFS為Hadoop實現(xiàn)的一個分布式適合運行在通用硬件上的文件系統(tǒng)(英文全稱,Hadoop Distributed File System,簡稱HDFS)。HDFS具有高容錯性,提供高吞吐量的數(shù)據(jù)訪問,適合那些有著超大規(guī)模數(shù)據(jù)集的應(yīng)用程序。
[0006]HBase為一個分布式的、面向列的開源數(shù)據(jù)庫。它不同于一般的關(guān)系數(shù)據(jù)庫,是一個適合于非結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。具有高可靠性、高性能、面向列、可伸縮等特點。
[0007]MapReduce是谷歌提出的一個軟件架構(gòu),是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。軟件實現(xiàn)是指定一個Map (映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce (化簡)函數(shù),用來保證所有映射的鍵值對中的每一個共孚相同的鍵組。
[0008]Zookeeper是Hadoop的子項目。是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式服務(wù)、組服務(wù)等。Zookeeper的目標(biāo)就是封裝好復(fù)雜易出錯的的關(guān)鍵服務(wù),將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。
[0009]當(dāng)前的推薦系統(tǒng)主要集中在單一節(jié)點上,通過顯式地收集用戶反饋或者或隱式地分析行為記錄,學(xué)習(xí)和跟蹤用戶的興趣偏好和行為模式,主動向用戶推薦那些可能感興趣的商品。推薦算法是推薦系統(tǒng)的核心。常見推薦算法包括協(xié)同過濾推薦、基于內(nèi)容推薦、基于關(guān)聯(lián)規(guī)則推薦、基于效用推薦、基于知識推薦等。
[0010]在眾多協(xié)同過濾算法中,Slope One以其極易實現(xiàn)、預(yù)測高效、準(zhǔn)確度高等特點受到業(yè)界的青睞。Slope One算法是一系列應(yīng)用于系統(tǒng)過濾的算法的統(tǒng)稱,是一種系統(tǒng)過濾推薦的思想,是基于項目評價的系統(tǒng)過濾算法的最簡潔形式。其本質(zhì)是用簡單的線性關(guān)系來擬合復(fù)雜的相似度計算。從直觀上來看,共同出現(xiàn)次數(shù)更多的項目對對彼此評分的影響更大。因此有更通用的WSO(Weighted slope-one輕量級Slope one算法)方法對評分差進(jìn)行加權(quán)計算。
[0011]隨著用戶數(shù)據(jù)量的劇增,傳統(tǒng)基于單一節(jié)點的集中式推薦系統(tǒng)顯現(xiàn)出存儲能力不足和計算能力不足的弊端,不能保證推薦的實時性,推薦效果也不明顯。用戶數(shù)據(jù)量劇增,Slope One算法缺點展現(xiàn)出來:(I)原Slope One算法時間、空間復(fù)雜度過高,單機(jī)無法存儲中間文件;(2)計算代價過高,通常只能使用在小規(guī)模數(shù)據(jù)上。另一方面,在Slope One算法實現(xiàn)上,使用MapReduce在HDFS大規(guī)模數(shù)據(jù)集合上進(jìn)行多次聯(lián)結(jié)操作,這種多臺服務(wù)器的聯(lián)結(jié)包括Map側(cè)(Map-side)和Reduce側(cè)(Reduce_side)。Reduce側(cè)的聯(lián)結(jié)適用性高,但是開銷大,Map側(cè)聯(lián)結(jié)速度快,適用性低。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的是提供一種分布式個性化推薦方法及系統(tǒng),節(jié)約了網(wǎng)絡(luò)傳輸資源和輸入輸出開銷,提高了聯(lián)結(jié)效率。
[0013]本發(fā)明的目的是通過以下技術(shù)方案實現(xiàn)的:
[0014]—種分布式個性化推薦方法,該方法包括:
[0015]建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合;
[0016]根據(jù)該集合計算所有用戶的所有項目對評分差的算術(shù)平均值及同一項目對出現(xiàn)的總次數(shù),并寫入預(yù)先構(gòu)建的項目對評分差表;其中,所述評分集合與項目對評分差表均采用Hbase表來存儲;
[0017]利用MapReduce映射化簡模型將HDFS文件系統(tǒng)中存儲的用戶信息及其未評分項目的集合與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié),并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;再將所述第一次聯(lián)結(jié)結(jié)果與所述評分集合進(jìn)行第二次聯(lián)結(jié),并結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值;
[0018]根據(jù)所述預(yù)測評分值的大小向用戶進(jìn)行推薦。
[0019]—種分布式個性化推薦系統(tǒng),該系統(tǒng)包括:
[0020]評分集合建立模塊,用于建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合;
[0021]項目評分差信息計算寫入模塊,用于根據(jù)該集合計算所有用戶的所有項目對評分差的算術(shù)平均值及同一項目對出現(xiàn)的總次數(shù),并寫入預(yù)先構(gòu)建的項目對評分差表;其中,所述評分集合與項目對評分差表均采用Hbase表來存儲;
[0022]未評分項目預(yù)測評分模塊,用于利用MapReduce映射化簡模型將HDFS文件系統(tǒng)中存儲的用戶信息及其未評分項目的集合與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié),并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;再將所述第一次聯(lián)結(jié)結(jié)果與所述評分集合進(jìn)行第二次聯(lián)結(jié),并結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值;
[0023]推薦模塊,用于根據(jù)所述預(yù)測評分值的大小向用戶進(jìn)行推薦。
[0024]由上述本發(fā)明提供的技術(shù)方案可以看出,通過整合HBase、HDFS和MapReduce,實現(xiàn)了輕量級算法DWSO的分布式實現(xiàn),由于把聯(lián)結(jié)操作的一方設(shè)為HBase表,省略了傳統(tǒng)聯(lián)結(jié)過程中的Reduce操作的洗牌、排序階段,節(jié)約了網(wǎng)絡(luò)傳輸資源和輸入輸出開銷,提高了聯(lián)結(jié)效率;同時,由于采用HBase存儲用戶數(shù)據(jù),本系統(tǒng)還提供實時交互和離線處理的功倉泛。
【專利附圖】
【附圖說明】
[0025]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。
[0026]圖1為本發(fā)明實施例一提供的一種分布式個性化推薦方法的流程圖;
[0027]圖2為本發(fā)明實施例一提供的一種聯(lián)結(jié)MapReduce、HDFS和HBase的示意圖;
[0028]圖3為本發(fā)明實施例一提供的一種應(yīng)用場景的示意圖;
[0029]圖4為本發(fā)明實施例二提供的一種分布式個性化推薦系統(tǒng)的示意圖。
【具體實施方式】
[0030]下面結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明的保護(hù)范圍。
[0031]實施例一
[0032]圖1為本發(fā)明實施例一提供的一種分布式個性化推薦方法的流程圖。如圖1所示,該方法主要包括如下步驟:
[0033]步驟11、建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合。
[0034]在此之前需獲取用戶信息、該用戶評分項目及對應(yīng)評分值,以及該用戶的未評分項目。
[0035]用戶通過瀏覽互聯(lián)網(wǎng)或使用客戶端產(chǎn)生各種信息,例如,用戶通過注冊,會留下個人信息,包括性別,年齡,地區(qū),職業(yè),興趣等;用戶通過網(wǎng)購會產(chǎn)生購買商品的信息和對這些商品的評分信息;用戶收聽音樂會產(chǎn)生收聽的音樂以及對音樂的評分等。對于用戶的不同網(wǎng)絡(luò)行為,用戶會產(chǎn)生的信息類型也不同。
[0036]對獲取到的上述信息進(jìn)行分析后,可以建立一評分集合,以便后續(xù)隨時調(diào)用。該評分集合可以使用輔助HBase表:t_taste表來進(jìn)行存儲。所述t_taste表可如表1所示:
【權(quán)利要求】
1.一種分布式個性化推薦方法,其特征在于,該方法包括: 建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合; 根據(jù)該集合計算所有用戶的所有項目對評分差的算術(shù)平均值及同一項目對出現(xiàn)的總次數(shù),并寫入預(yù)先構(gòu)建的項目對評分差表;其中,所述評分集合與項目對評分差表均采用Hbase表來存儲; 利用MapReduce映射化簡模型將HDFS文件系統(tǒng)中存儲的用戶信息及其未評分項目的集合與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié),并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;再將所述第一次聯(lián)結(jié)結(jié)果與所述評分集合進(jìn)行第二次聯(lián)結(jié),并結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值; 根據(jù)所述預(yù)測評分值的大小向用戶進(jìn)行推薦。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合之前包括: 獲取用戶信息、該用戶評分項目及對應(yīng)評分值,以及該用戶的未評分項目。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述計算所有用戶的所有項目對評分差的算術(shù)平均值及同一項目對出現(xiàn)的總次數(shù)包括: 將所述評分集合中任一用戶的任意兩個已評分項目作為一個項目對,并計算項目對的評分差; 聚合所有用戶所有項目對的評分差及同一項目對出現(xiàn)的總次數(shù),再計算項目對評分差的算術(shù)平均值。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述利用MapReduce映射化簡模型將HDFS文件系統(tǒng)中存儲的用戶信息及其未評分項目的集合與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié),并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;再將所述第一次聯(lián)結(jié)結(jié)果與所述評分集合進(jìn)行第二次聯(lián)結(jié)包括: 將每一用戶及其未評分項目作為一個子集,聚合所有用戶及其未評分項目; 將所有用戶及其未評分項目與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié)并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;具體的:聯(lián)結(jié)時以子集為單位進(jìn)行聯(lián)結(jié),每一子集的聯(lián)結(jié)結(jié)果中包含該用戶信息、該用戶未評分項目、該用戶未評分項目與已評分項目的項目對評分差的算術(shù)平均值及其出現(xiàn)的總次數(shù); 將第一次的聯(lián)結(jié)結(jié)果與評分集合進(jìn)行第二次聯(lián)結(jié);具體的:聯(lián)結(jié)時以子集為單位進(jìn)行聯(lián)結(jié),將第一次聯(lián)結(jié)結(jié)果中的該用戶未評分項目與已評分項目的項目對評分差的算術(shù)平均值和該用戶評分集合中該項目對對應(yīng)的已評分項目的評分值做減法運算,獲得第二次聯(lián)結(jié)結(jié)果的每一子集獲得包含該用戶信息、該用戶未評分項目、減法運算結(jié)果及對應(yīng)項目對出現(xiàn)總次數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值包括:
6.一種分布式個性化推薦系統(tǒng),其特征在于,該系統(tǒng)包括: 評分集合建立模塊,用于建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合; 項目評分差信息計算寫入模塊,用于根據(jù)該集合計算所有用戶的所有項目對評分差的算術(shù)平均值及同一項目對出現(xiàn)的總次數(shù),并寫入預(yù)先構(gòu)建的項目對評分差表;其中,所述評分集合與項目對評分差表均采用Hbase表來存儲; 未評分項目預(yù)測評分模塊,用于利用MapReduce映射化簡模型將HDFS文件系統(tǒng)中存儲的用戶信息及其未評分項目的集合與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié),并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;再將所述第一次聯(lián)結(jié)結(jié)果與所述評分集合進(jìn)行第二次聯(lián)結(jié),并結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值; 推薦模塊,用于根據(jù)所述預(yù)測評分值的大小向用戶進(jìn)行推薦。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,該系統(tǒng)還包括: 信息獲取模塊, 用于在建立包含用戶信息、該用戶評分項目及對應(yīng)評分值的評分集合之前獲取用戶信息、該用戶評分項目及對應(yīng)評分值,以及該用戶的未評分項目。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述項目評分差信息計算寫入模塊包括: 項目評分差信息計算模塊,用于將所述評分集合中任一用戶的任意兩個已評分項目作為一個項目對,并計算項目對的評分差;聚合所有用戶所有項目對的評分差及同一項目對出現(xiàn)的總次數(shù),再計算項目對評分差的算術(shù)平均值。
9.根據(jù)權(quán)利要求6或7所述的系統(tǒng),其特征在于,未評分項目預(yù)測評分模塊包括: 第一次聯(lián)結(jié)模塊,用于將每一用戶及其未評分項目作為一個子集,聚合所有用戶及其未評分項目;將所有用戶及其未評分項目與所述項目對評分差表進(jìn)行第一次聯(lián)結(jié)并將第一次聯(lián)結(jié)結(jié)果存入HDFS中;具體的:聯(lián)結(jié)時以子集為單位進(jìn)行聯(lián)結(jié),每一子集的聯(lián)結(jié)結(jié)果中包含該用戶信息、該用戶未評分項目、該用戶未評分項目與已評分項目的項目對評分差的算術(shù)平均值及其出現(xiàn)的總次數(shù); 第二次聯(lián)結(jié)模塊,用于將第一次的聯(lián)結(jié)結(jié)果與評分集合進(jìn)行第二次聯(lián)結(jié);具體的:聯(lián)結(jié)時以子集為單位進(jìn)行聯(lián)結(jié),將第一次聯(lián)結(jié)結(jié)果中的該用戶未評分項目與已評分項目的項目對評分差的算術(shù)平均值和該用戶評分集合中該項目對對應(yīng)的已評分項目的評分值做減法運算,獲得第二次聯(lián)結(jié)結(jié)果的每一子集獲得包含該用戶信息、該用戶未評分項目、減法運算結(jié)果及對應(yīng)項目對出現(xiàn)總次數(shù)。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述未評分項目預(yù)測評分模塊還包括: 預(yù)測模塊,用于結(jié)合預(yù)測算法計算出用戶未評分項目的預(yù)測評分值包括:
【文檔編號】G06F17/30GK103995878SQ201410225857
【公開日】2014年8月20日 申請日期:2014年5月23日 優(yōu)先權(quán)日:2014年5月23日
【發(fā)明者】王雷, 況亞萍, 夏磊, 張成晨 申請人:中國科學(xué)技術(shù)大學(xué)