《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于Hadoop平臺的個性化新聞推薦系統(tǒng)的設(shè)計
基于Hadoop平臺的個性化新聞推薦系統(tǒng)的設(shè)計
2016年微型機與應(yīng)用第23期
韋靈,黎偉強
廣西科技大學(xué)鹿山學(xué)院 電氣與計算機工程系,,廣西 柳州 545616
摘要: 為使互聯(lián)網(wǎng)用戶快捷地查找所需信息,,個性化推薦系統(tǒng)的優(yōu)勢得到了體現(xiàn)和運用。該系統(tǒng)設(shè)計的目的是為廣大網(wǎng)民在瀏覽新聞時提供一個個性化的新聞推薦系統(tǒng),,實現(xiàn)對新聞數(shù)據(jù)的協(xié)同過濾推薦處理,。系統(tǒng)利用 Hadoop的MapReduce模型實現(xiàn)并行快速地聚類海量新聞數(shù)據(jù),大大提高了數(shù)據(jù)處理的速度,,聚類使得新聞之間的相似度得以體現(xiàn),,再利用不同的協(xié)同過濾算法實現(xiàn)個性化的新聞推薦。
關(guān)鍵詞: Hadoop MapReduce 聚類 個性化
Abstract:
Key words :

  韋靈,,黎偉強

 ?。◤V西科技大學(xué)鹿山學(xué)院 電氣與計算機工程系,廣西 柳州 545616)

       摘要:為使互聯(lián)網(wǎng)用戶快捷地查找所需信息,,個性化推薦系統(tǒng)的優(yōu)勢得到了體現(xiàn)和運用,。該系統(tǒng)設(shè)計的目的是為廣大網(wǎng)民在瀏覽新聞時提供一個個性化的新聞推薦系統(tǒng),實現(xiàn)對新聞數(shù)據(jù)的協(xié)同過濾推薦處理,。系統(tǒng)利用 HadoopMapReduce模型實現(xiàn)并行快速地聚類海量新聞數(shù)據(jù),,大大提高了數(shù)據(jù)處理的速度,聚類使得新聞之間的相似度得以體現(xiàn),,再利用不同的協(xié)同過濾算法實現(xiàn)個性化的新聞推薦,。

  關(guān)鍵詞:Hadoop;MapReduce;聚類;個性化;Mahout

  中圖分類號:TP301.6文獻標識碼:ADOI: 10.19358/j.issn.16747720.2016.23.006

  引用格式:韋靈,黎偉強. 基于Hadoop平臺的個性化新聞推薦系統(tǒng)的設(shè)計[J].微型機與應(yīng)用,,2016,35(23):21-23,,27.

0引言

  隨著互聯(lián)網(wǎng)的發(fā)展,大量新聞快速涌現(xiàn),,信息嚴重過載,,令用戶無從選擇。新聞推薦系統(tǒng)被廣泛應(yīng)用于解決信息過載問題[1],,解決不同人之間關(guān)注新聞熱點不一致的問題,。新聞是人們生活中必不可少的一部分,,如何使人們快速地在每天眾多新聞中找出自己感興趣,、想要了解并查看的新聞成為了各大新聞門戶網(wǎng)站的一大難題。快速準確的新聞推薦能節(jié)省用戶大量查找自己感興趣的新聞的時間,,這能讓用戶得到一個非常好的用戶體驗,。大數(shù)據(jù)的出現(xiàn)標志著人們生活品質(zhì)的進步,這是社會進化的副產(chǎn)品,,它能利用許多常規(guī)機器進行海量數(shù)據(jù)處理,。將一個海量數(shù)據(jù)任務(wù)分成需要的小任務(wù),分別發(fā)給許多常規(guī)機器進行并行處理,,然后得出結(jié)果,,這個過程就像許多常規(guī)機器匯聚成為一個超級機器,整個處理過程就像一個機器在處理一樣,,這大大降低了數(shù)據(jù)挖掘的成本,,并且在數(shù)據(jù)量很大時大大減少了計算的時間。在當(dāng)今時代,,無論是新聞門戶網(wǎng)站還是購物網(wǎng)站,,無論是醫(yī)療方面的還是金融方面的,大數(shù)據(jù)平臺下的數(shù)據(jù)挖掘都是現(xiàn)在主流的發(fā)展方向,。從另一個角度看,,大數(shù)據(jù)的出現(xiàn)不僅幫助人們篩選出了有用的信息,同時還幫人們過濾掉了無用的信息,?;旌戏椒◤浹a了基于內(nèi)容推薦在多樣性上的不足,但卻帶來了冷啟動問題,,在推薦熱點新聞或用戶具有潛在興趣的新聞時,,沒有得到足夠點擊的新聞依然無法推薦給目標用戶[2]。目前,,國內(nèi)外學(xué)者在新聞推薦領(lǐng)域已展開了一系列研究,。參考文獻[3-6]使用了協(xié)同過濾的新聞推薦方法,本文提出了基于用戶和物品的協(xié)同過濾算法來實現(xiàn)面向不同用戶的個性化新聞內(nèi)容推薦,。

1協(xié)同過濾算法介紹

  個性化推薦主要分為協(xié)同過濾推薦,、基于內(nèi)容推薦、混合推薦,。個性化推薦本質(zhì)上是把用戶與物品進行聯(lián)系,,使得用戶能夠發(fā)現(xiàn)自己所喜愛的物品,使得物品能夠被所喜歡的用戶所了解[7],。關(guān)于協(xié)同過濾的一個最典型的例子就是看電影,,有時候不知道哪一部電影是我們喜歡的或者評分比較高的,那么通常的做法就是問問周圍的朋友,,看看最近有什么好的電影推薦,。在詢問時,,都習(xí)慣于問與自己愛好相似的朋友,這就是協(xié)同過濾的核心思想,。協(xié)同過濾推薦與傳統(tǒng)的基于內(nèi)容過濾推薦不同,,協(xié)同過濾分析用戶興趣,在用戶群中找到指定用戶的相似(興趣)用戶,,綜合這些相似用戶對某一信息的評價,,形成對該指定用戶對此信息的喜好程度預(yù)測。協(xié)同過濾主要分為基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾,。

  1.1基于用戶的協(xié)同過濾算法

  俗話說“物以類聚,、人以群分”,拿看電影這個例子來說,,如果你喜歡《蝙蝠俠》,、《碟中諜》、《星際穿越》,、《源代碼》等電影,,另外有個人也喜歡這類電影,而且他還喜歡《鋼鐵俠》,,則很有可能你也喜歡《鋼鐵俠》這部電影,。所以說,當(dāng)一個用戶 A 需要個性化推薦時,,可以先找到與他興趣相似的用戶群體 G,,然后把 G 喜歡的、并且 A 沒有聽說過的物品推薦給 A,,這就是基于用戶的協(xié)同過濾算法,。

  1.2基于物品的協(xié)同過濾算法

  基于物品的協(xié)同過濾算法(ItemCF)是業(yè)界應(yīng)用最多的算法,主要思想是利用用戶之前有過的行為,,給用戶推薦和之前物品類似的物品,。依然以電影為例,如果喜歡《蝙蝠俠》的用戶有A,、B,、C和D,喜歡《碟中諜》的用戶有A,、C,、D。那么可以認為《蝙蝠俠》和《碟中諜》擁有相似的用戶群體,,則很可能B用戶也會喜歡《碟中諜》這部電影,,于是推薦《碟中諜》給B用戶。這就是基于物品的協(xié)同過濾算法,。

圖像 001.png

2協(xié)同過濾算法用戶的模型構(gòu)建

  協(xié)同過濾算法所需要的數(shù)據(jù)結(jié)構(gòu)是用戶id+新聞id+評分,,為了將數(shù)據(jù)庫中的數(shù)據(jù)形成這樣的數(shù)據(jù)結(jié)構(gòu),,通過查詢新聞表的用戶表來確定所查詢的用戶是否在其中,然后得到該用戶瀏覽過的所有新聞id,,最后對該新聞的喜愛程度進行預(yù)測。根據(jù)式(1)計算出Preference喜好值,,其中Preference為預(yù)測的結(jié)果,,ct為新聞聚類結(jié)果簇的個數(shù),cn為當(dāng)前新聞所在簇的新聞個數(shù),,unt為當(dāng)前用戶瀏覽過的新聞總數(shù),,nct為該新聞的瀏覽數(shù)。

  QQ圖片20170103181529.png

  基于用戶的協(xié)同過濾推薦流程圖如圖1所示,。當(dāng)啟動基于用戶的協(xié)同過濾算法引擎后,,指定一個用戶為其推薦,系統(tǒng)將查詢數(shù)據(jù)庫中該用戶瀏覽過的所有新聞,,根據(jù)新聞中用戶表查詢?yōu)g覽過的該新聞的相關(guān)用戶,,然后構(gòu)建協(xié)同過濾算法用戶的模型。整個過程封裝在MyRecommender類的UserRecommender方法中,,而在UserRecommender中封裝了數(shù)據(jù)庫的一系列查詢方法與協(xié)同過濾算法的調(diào)用,,通過基于用戶的協(xié)同過濾算法計算出應(yīng)該為其推薦的新聞。

3協(xié)同過濾算法物品的模型構(gòu)建

  首先,,以具有相同標題的新聞作為查詢語句的分組條件,,查詢出每一個新聞標題下都有哪些用戶訪問過,根據(jù)查詢到的結(jié)果形成該新聞未訪問過的推薦用戶列表,。另外系統(tǒng)將會查詢出瀏覽過該新聞的用戶并構(gòu)建瀏覽用戶列表,,并直觀顯示在分析后的推薦列表中,同時根據(jù)用戶瀏覽的新聞分類的不同比重,,推薦結(jié)果顯示時,,根據(jù)比重做相關(guān)的排序,把用戶最關(guān)注的那類新聞排在最前面,,以此來做推薦排序,。基于物品的協(xié)同過濾利用式(2)計算:

  QQ圖片20170103181532.png

  其算法流程圖如圖2所示,。

圖像 002.png

  基于物品的協(xié)同過濾推薦,,當(dāng)啟動基于物品的協(xié)同過濾算法引擎后,指定一個用戶為其推薦,,系統(tǒng)將查詢數(shù)據(jù)庫中該用戶瀏覽過的所有新聞,,根據(jù)新聞中用戶表查詢?yōu)g覽過該新聞的相關(guān)用戶,然后構(gòu)建協(xié)同過濾算法用戶的模型,。整個過程封裝在MyRecommender類的ItemRecommender方法中,,而在ItemRecommender中封裝了數(shù)據(jù)庫的一些查詢方法和協(xié)同過濾算法的調(diào)用,,通過基于物品的協(xié)同過濾算法計算出應(yīng)該推薦的新聞。

4個性化新聞推薦系統(tǒng)實現(xiàn)

  基于Hadoop平臺聚類算法的個性化新聞推薦系統(tǒng),,其目的是為讓廣大網(wǎng)民在瀏覽新聞時,,為其提供一個個性化的新聞推薦系統(tǒng)。大量的信息使得用戶找到自己需要的信息變得很困難,。為了使互聯(lián)網(wǎng)用戶快捷地查找所需信息,,個性化推薦系統(tǒng)的優(yōu)勢得到了體現(xiàn),本文利用 Hadoop的MapReduce模型實現(xiàn)并行快速地聚類海量新聞數(shù)據(jù),,大大提高了數(shù)據(jù)處理的速度,,聚類使得新聞之間的相似度得以體現(xiàn),再利用不同的協(xié)同過濾算法實現(xiàn)個性化的新聞推薦,。系統(tǒng)使用了JSP,、Servlet技術(shù)及Mahout開源項目編寫程序,首先利用Java將新聞數(shù)據(jù)按約定格式處理并將其傳到Hadoop的HDFS上,,在安裝好Hadoop的Linux端定時調(diào)用shell腳本聚類處理新聞,,然后使用MySQL數(shù)據(jù)庫存儲數(shù)據(jù),實現(xiàn)對新聞數(shù)據(jù)的協(xié)同過濾推薦處理,。新聞推薦系統(tǒng)主要功能包括前臺與后臺的設(shè)計,,圖3所示為系統(tǒng)整體功能結(jié)構(gòu)圖,前臺主要負責(zé)展示推薦的新聞信息結(jié)果和供用戶瀏覽新聞,;后臺處理新聞數(shù)據(jù),,并將處理好的數(shù)據(jù)插入數(shù)據(jù)庫供前臺使用。

圖像 003.png

  圖4為新聞推薦流程圖,。選擇基于用戶的協(xié)同過濾推薦,,系統(tǒng)將自動啟動基于用戶的協(xié)同過濾算法引擎進行數(shù)據(jù)的計算并將數(shù)據(jù)推送到頁面中。同理基于物品的協(xié)同過濾算法相同,。這個過程中查詢所有人的瀏覽記錄是通過多次的數(shù)據(jù)庫查詢得到的,。

圖像 004.png

  新聞普遍存在的問題就是冷啟動問題,當(dāng)用戶第一次使用時該如何進行推薦,,用戶新加入時沒有任何的歷史行為及其興趣,,因此無法對其進行推薦。本文使用熱門推薦來解決這種極端的情況,。當(dāng)剛打開該系統(tǒng)時,,為模擬處理冷啟動問題,系統(tǒng)將查詢出瀏覽數(shù)前十的新聞進行推薦,。

  (1)當(dāng)用戶進行基于用戶的協(xié)同過濾推薦算法操作時,,將觸發(fā)baseOnUserSer這個Servlet基類,該Servlet基類將查詢出系統(tǒng)中的所有用戶,,并對所有的用戶進行基于用戶的協(xié)同過濾算法推薦,。首先,,提交所有用戶的相關(guān)數(shù)據(jù)(格式為:用戶id,新聞id,,評分),,格式表示某用戶id瀏覽過某條新聞id,并且把喜歡程度表示為評分,,利用每個用戶的新聞評分,,根據(jù)皮爾遜相關(guān)系數(shù)公式計算出需要推薦的用戶與其他用戶之間的皮爾遜相似度,最后利用式(2)計算出需要推薦的用戶與用戶之間的皮爾遜相似度per,。假設(shè)某用戶瀏覽過的某條新聞的評分為p,,那么通過公式可以計算出該條新聞的推薦分值point=per×p,,如果該條新聞被多個用戶閱讀過則需求出Σpoint=per1×p1+per2×p2…+pern×pn,。得到所有新聞的推薦分后,選取被推薦用戶沒有瀏覽過的新聞中最高分的新聞作為推薦,。

  基于用戶的協(xié)同過濾推薦系統(tǒng)效果如圖5所示,。

圖像 005.png

  (2)當(dāng)用戶進行基于物品的協(xié)同過濾推薦操作時,將觸發(fā)baseOnItemSert類,,該類將查詢出系統(tǒng)中的所有用戶,,并過濾掉admin這個測試用戶,將所有的用戶進行基于物品的協(xié)同過濾算法推薦,所有推薦結(jié)果存儲在一個專門設(shè)計的newsModeBean類中 ,,其他的操作基本與基于用戶的協(xié)同過濾推薦一樣,。基于物品的協(xié)同過濾算法,,提交數(shù)據(jù)的格式與基于用戶的協(xié)同過濾算法一樣,。首先提取出所有的新聞,計算并建立新聞的共軛矩陣,。然后使用用戶向量點乘共軛矩陣可以得到推薦分數(shù),。

  基于物品的協(xié)同過濾推薦系統(tǒng)如圖6所示。

圖像 006.png

5結(jié)論

  隨著互聯(lián)網(wǎng)的迅速發(fā)展,,用戶面對海量互聯(lián)網(wǎng)信息的時候,,有時覺得很迷茫,不知道從何閱讀,,甚至有時面對無關(guān)的廣告產(chǎn)生煩躁的心情,。為了提高有效閱讀率,本文提出了利用基于用戶或者物品的協(xié)同過濾算法來實現(xiàn)新聞的個性化推薦,,從測試的效果看,,基本上達到用戶信息個性化新聞推薦的各項功能要求,表明該算法是有效的,。因為測試數(shù)據(jù)較少,,在Hadoop平臺上運行,,沒有體現(xiàn)出并行計算的效果,,下一步將利用更多的用戶數(shù)據(jù)來驗證系統(tǒng),。同時,算法目前的實現(xiàn)主要依靠相似性來做推薦,,后續(xù)將引進其他算法來改進個性化推薦的新聞內(nèi)容和分類,,從而提高推薦的準確性。

  參考文獻

 ?。?] JIANG S,,HONG W X.A vertical news recommendation system:CCNS—an example from Chinese campus news reading system[C].ICCSE 2014: Proceedings of the 2014 9th International Conference on Computer Science & Education.Piscataway,NJ: IEEE,,2014: 1105-1114.

 ?。?] 楊武,唐瑞,盧玲.基于內(nèi)容的推薦與協(xié)同過濾融合的新聞推薦方法[J].計算機應(yīng)用, 2016, 36(2):414-418.

  [3] 劉金亮.基于主題模型的個性化新聞推薦系統(tǒng)的研究與實現(xiàn)[D].北京: 北京郵電大學(xué),,2013.

 ?。?] 彭菲菲,錢旭.基于用戶關(guān)注度的個性化新聞推薦系統(tǒng)[J].計算機應(yīng)用研究,,2012,,29(3) : 1005-1007.

  [5] 文鵬,,蔡瑞,,吳黎兵.一種基于潛在類別模型的新聞推薦方法[J].情報雜志,2014,,33(1):161-166.

 ?。?] 項亮.推薦系統(tǒng)實踐[M].北京: 人民郵電出版社,2012.

 ?。?] 曹一鳴. 基于協(xié)同過濾的個性化新聞推薦系統(tǒng)的研究與實現(xiàn)[D]. 北京:北京郵電大學(xué), 2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。