徐 彬,何文娟,錢亞彬
關于推薦系統的數據存儲研究
徐彬,何文娟,錢亞彬
(河南大學計算機與信息工程學院,開封475000)
隨著互聯網的快速發展,電子商務行業的豐富化加劇,推薦系統被廣大用戶和網站運營商所接受。而隨著大數據時代的來臨,推薦系統面臨的不僅僅是對產品的需求更多的是對速度的追求,經過對傳統數據存儲算法的研究,給出基于RCFile的數據存儲來解決該類問題。
存儲;RCFile;RDSR;推薦系統
隨著互聯網的快速發展,電子商務行業也隨之急速地發展,人們面臨著多樣化的商品選擇,這就意味著人們的選擇范圍越來越大,更多的商品是不能快速地被顧客看到的。這種電子商務的背景下,推薦系統服務正在以一種十分迅速的方式進入人們的視線,與此同時爆炸式的數據也充斥在電子商務中間,新加入用戶的數據越來越多,新加入的產品信息也越來越多,對于推薦系統來說,新用戶的加入、新的產品的加入有很多,另外針對推薦系統的推薦算法,數據的查詢也同樣需要一種合適的存儲算法來加快查詢的效率。本文將引入一種高效的存儲算法,以便于能夠更有效地處理推薦系統中的用戶和產品數據,使得推薦系統能夠更加快速地添加、查詢用戶和產品的信息。
目前國內外的推薦系統針對大數據的環境,通常運用開源的框架Hadoop來架構系統,用來處理大規模的數據集[1],Hadoop是由HDFS和MapReduce兩個核心部分組成,即包括了分布式文件系統和編程模型兩個部分。
MapReduce是Hadoop的數據處理部分也稱為編程模型[2],是運用在大規模的數據集合中的重要技術。MapReduce包含了兩個部分:Map(映射)和Reduce(歸約)。
2.1基本概念
推薦系統是電子商務網站通過對用戶的行為分析,給用戶提供推薦服務的系統,使得用戶能夠更快速更準確地找到適合自己的產品,這種推薦的行為是模擬銷售人員向顧客推薦產品幫助購買的過程。
推薦系統的定義為利用函數計算目標用戶的推薦度(如用戶的評價和鄰居用戶的評價等),其中需要用到所有的用戶的集合,通過函數計算出給目標用戶推薦的產品集合[3]。公式如下:
(4)應用精準化鉆井系統軟件對多口施工井進行技術方案的編寫、制定,并根據與現場實際的貼合度進行反饋和修正。

較為經常用到的推薦算法有:基于協同過濾推薦、基于內容推薦、基于關聯規則推薦、混合型推薦等。
(1)基于系統過濾推薦:提取出系統中與被推薦用戶有著相同愛好的用戶的歷史評論和購買行為,預測出被推薦用戶的可能喜歡的產品。
(2)基于內容推薦:提取出系統中被推薦用戶自己的行為,跟蹤用戶的行為數據,通過這些數據推測出用戶可能喜歡的產品。
(3)基于關聯規則推薦:提取出系統中不同產生關聯的信息,將這些信息運用到被推薦用戶的推薦中,給被推薦用戶推薦與他已經購買的產品相關聯的其他的產品。
(4)混合型推薦:鑒于這些常用的推薦算法都有一定的缺點,在實際運用中并不能達到我們的要求,因此,實際的推薦系統大多把不同的推薦算法進行結合。
2.2推薦系統數據處理要求
由于使用推薦系統的用戶需要的是能夠快速地加入系統[4],這就意味著需要一種能夠將數據快速載入的存儲方式,這種需求在大數據的環境下顯得更為重要,人們要求數據的加載時間要更加的短暫。
通過上文介紹的推薦系統的幾種推薦算法可以得知,推薦系統的推薦算法很多都是基于提取出已有的信息為基礎,將已經提取出的信息進行解析計算,來得出被推薦用戶所需要的產品,針對這樣一種情況我們需要一種能符合實時查詢請求和高并發用戶提交查詢的優化算法,這就需要底層的存儲結構能夠在查詢不斷增加時還能夠擁有較高的查詢處理速度。
3.1行存儲
行存儲(Row-store)是目前推薦系統最常用的數據存儲結構[5],是按照行的方式儲存數據的,在推薦系統中根據用戶或者產品的加入時間,按次序將它們依次排列,在傳統的數據存儲算法中,行存儲是主要的方式,其中的數據都按一樣的格式存儲,如圖1所示。
3.2列存儲
列存儲將數據以列的方式進行存儲[6],這種存儲方式對于列的讀取有一定的優化作用,將每一列放到一個子關系中或者將相關的列放入到不同的列組(這種情況下有列組之間有重疊),如圖2所示。

圖1

圖2
本文介紹的RCFile算法是一種類似于PAX混合存儲算法的算法,先利用水平分組,再豎直分組的方式來進行存儲。與行存儲相似的地方在于,RCFile的同一行信息都在一個節點上,另外與列存儲不同的地方在于,RCFile能夠垂直地進行數據壓縮,并能不讀取不必要的列信息,如圖3所示。
4.1算法原理
推薦系統在大數據環境下由于其新加入用戶數量龐大,和產品的數量龐大這一特征,在數據的存儲和查詢中會產生很多的數據,如果數據過多會導致網絡堵塞,無法快速地處理數據,有時也有可能造成數據丟失,這就使得之后的數據分析算法不夠準確。本文基于存儲特征數據的推薦系統的特點,針對協同過濾算法提出了一種基于RCFile的推薦系統數據存儲算法(Recommender System Data Storage based on RCFile,RDSR)。RDSD算法的基本思想是:針對協同過濾算法將用戶的評價信息按照相同的數據類型,先按照行的存儲方式存儲,使同一類數據放在同一個節點上,然后,使用列存儲的優勢將每個列分開獨立壓縮,并在讀取數據時能夠跳過不必要的列。

圖3
4.2數據集的選擇
為了驗證本文提出的基于RC Flies的推薦系統數據存儲的算法的改進,本文在DataNode節點固定的條件下,不同用戶moviepilot數據輸入測試系統,本部分實驗分為四個不同的數據集的數量進行。首先,以用戶為單位從Moviepilot數據庫中分別抽取100個用戶、200個用戶、500個用戶、1000個用戶和2000個用戶,以此作為本節實驗的測試數據集,選取的數據集中包含了上萬部電影以及用戶對電影的評分(評分及評價的電影數量都不同)。
4.3實驗結果分析
對于上文中提到的數據,使用行存儲、列存儲和RCFile存儲,分別對數據運行協同過濾推薦算法,得出了不同的數據集在不同節點上的對比時間,具體結果如圖4:

圖4
根據上圖所示我們可以很清楚地看出本文所提到的基于RCFile的RDSR算法,相比于行存儲和列存儲在數據量越來越大的情況下有很明顯的優勢,這能夠很好地驗證本文提出的觀點。
本文給出了基于RCFile的推薦系統數據存儲的研究,選擇了基于RCFile的RDSR算法,與行存儲和列存儲進行比較,得出的結果是RDSR算法能夠使得推薦系統能夠更快速的使用推薦算法。該算法能夠在一定情況下解決推薦系統所面臨的實際問題具有一定的實際意義。
[1]于利勝,張延松,王珊等.基于行存儲模型的模擬列存儲策略研究.計算機研究與展.ISSN100021239/CN1121777/TP 47(5): 8782885,2010
[2]Goldberg D,Nichols D,Oki BM,et al.Using Collaborative Filtering to Weave an Information Tapesty[J].Communications of the ACM 2002,35(12):61~70
[3]Konstan JA,Miller BN,Maltz D,et al.GroupLens:Applying Collaborative Filtering to Usenet News[J].Communications of the ACM, 2012,40(3):77~78
[4]Goldberg K.Roeder T,Gupta D,et al.Eigentaste:A Constant Time Collaboratve Filtering Algorithm[J].Information Retrieval J,2009,4(2):133~151
[5]S.Ghemawat.H.Gobioff,S,Leung.The Google File System[C].In Proc.of ACM Symposium on Operating Systems Principles,Lake George, NY,Oct 2003:29~43
[6]Lith,Adam,Mattsson,Jakob.Investigating Storage Solutions for Large Data-A Comparison of Well Performing and Scalable Data Storage Solutions for Real Time Extraction and Batch Insertion of Data,2010
Storage;RCFile;RDSR;Recommendation System
Research on Data Store of Recommendation System
XU Bin,HE Wen-juan,QIAN Ya-bin
(College of Computer and Information Engineering,Henan University,Kaifeng 475000)
With the development of Internet,e-commerce industry increases rapidly,recommendation system is accepted by users and Website operators.With the advent of the era of big data,the recommendation system faces more than just demand for the speed of product,through the study of traditional data storage algorithm,gives RCFile based data storage to solve the issues.
1007-1423(2015)12-0030-04
10.3969/j.issn.1007-1423.2015.12.007
徐彬(1966-),男,河南新鄉人,高級工程師,本科,研究方向為電子商務
何文娟(1988-),女,河南開封人,在讀研究生,研究方向為計算機應用技術
錢亞彬(1990-),男,河南開封人,在讀研究生,研究方向為計算機技術
2015-03-26
2015-04-03