金強山 馮光
摘? 要: 為了改善單一協(xié)同過濾算法在餐飲推薦系統(tǒng)中存在的“數(shù)據(jù)稀疏”問題,采用基于用戶的協(xié)同過濾算法和基于物品的協(xié)同過濾算法相融合的方式,兩種算法之間取長補短,設(shè)計餐飲推薦系統(tǒng)推薦引擎架構(gòu),實現(xiàn)基于協(xié)同過濾混合算法的餐飲推薦系統(tǒng)。
關(guān)鍵詞: 混合算法; 協(xié)同過濾算法; 餐飲推薦系統(tǒng); 個性化推薦
中圖分類號:TP39? ? ? ? ? 文獻標(biāo)識碼:A? ? 文章編號:1006-8228(2020)02-74-03
Research on catering recommender system based on hybrid collaborative
filtering algorithm
Jin Qiangshan, Feng Guang
(Department of Information Engineering, Xinjiang Institute of Technology, Aksu, Xijiang 843100, China)
Abstract: In order to improve the data sparsity of the single collaborative filtering algorithm in catering recommender system, the user-based collaborative filtering algorithm is combined with the commodity-based collaborative filtering algorithm, to design the recommendation engine architecture of the catering recommender system, and thereby implement the catering recommender system based on hybrid collaborative filtering algorithm.
Key words: hybrid algorithm; collaborative filtering algorithm; catering recommender system; personalized recommendation
0 引言
隨著“互聯(lián)網(wǎng)+”的快速迅猛發(fā)展,信息技術(shù)與餐飲行業(yè)的結(jié)合越來越緊密。如何為客戶提供準(zhǔn)確的、喜愛的、合口味的個性化餐飲服務(wù)成為“互聯(lián)網(wǎng)+餐飲”行業(yè)領(lǐng)域研究的熱點。
近年來,在餐飲行業(yè)中餐飲推薦系統(tǒng)正在大規(guī)模普及應(yīng)用,它不僅可以滿足客戶的個性化餐飲需求,而且還建立了長期穩(wěn)定的客戶關(guān)系,客戶流失率逐漸降低,客戶忠誠度逐步提高。餐飲推薦系統(tǒng)的核心是推薦算法,主要的推薦算法有基于協(xié)同過濾的算法、基于內(nèi)容過濾的算法以及基于關(guān)聯(lián)規(guī)則過濾的算法等[1]。協(xié)同過濾算法具有較高的推薦準(zhǔn)確率,但是單一協(xié)同過濾推薦算法覆蓋范圍不同,各自的優(yōu)勢無法互補。本文主要討論協(xié)同過濾混合算法在餐飲推薦系統(tǒng)中的設(shè)計與實現(xiàn)。
1 協(xié)同過濾混合算法的設(shè)計
1.1 協(xié)同過濾算法的分類
1992年Goldberg與Nicols提出了協(xié)同過濾算法基本概念,起初是用來過濾用戶的電子郵件[2]。經(jīng)過這么多年的發(fā)展,協(xié)同過濾算法已經(jīng)成為當(dāng)今重要的推薦算法之一。具體講,協(xié)同過濾算法(Collaborative Filtering,簡稱CF)是根據(jù)用戶對物品的偏好,計算用戶與用戶、用戶與物品之間的相似度,查找與目標(biāo)用戶相似度較高的鄰近集,并通過鄰近集用戶對其他物品的潛在評分產(chǎn)生推薦的物品集合[3]。
協(xié)同過濾算法又分為基于用戶的協(xié)同過濾算法(user-based collaboratIve filtering,簡稱User CF)、基于物品的協(xié)同過濾算法(item-based collaborative filtering,簡稱Item CF)[4]。
1.2 對比User CF 與Item CF的優(yōu)缺點,為融合兩種算法提供依據(jù)
基于用戶的協(xié)同過濾算法是根據(jù)用戶對物品的偏好,尋找與目標(biāo)用戶興趣相似的近鄰用戶所喜歡的物品,然后推薦給當(dāng)前用戶?;谖锲返膮f(xié)同過濾算法是分析現(xiàn)有的用戶行為,計算目標(biāo)物品與已購物品的相似度,為用戶提供相似度較高的物品。本文將從以下幾個角度對比User CF和Item CF之間的優(yōu)缺點,為融合兩種推薦算法提供依據(jù)。
⑴ 針對于推薦熱門的物品,基于User CF比Item CF具有更為準(zhǔn)確的推薦精度;由于熱門物品都是基于其他多個用戶對該物品的良好評價,即物品被越多的用戶喜歡,那么它被推薦的概率就越高。
⑵ 針對于推薦冷門的物品或最新的物品,基于Item CF比User CF具有更為準(zhǔn)確的推薦精度;若用戶之前歷史記錄中使用過的物品,與該冷門物品或最新物品具有很多相似特征,那么基于Item CF算法會最準(zhǔn)確的進行推薦。
⑶ 以用戶和物品的數(shù)量進行對比。當(dāng)用戶的數(shù)量遠超物品的數(shù)量時,且物品的數(shù)量及物品間的相似度比較穩(wěn)定,Item CF比User CF推薦機制的實時性更好;當(dāng)物品的數(shù)量遠超用戶的數(shù)量時,且物品的更新速度快,User CF比Item CF在相似穩(wěn)定性方面具有一定優(yōu)勢[5]。
⑷ 以推薦的多樣性進行對比。當(dāng)從單個用戶的角度對比,給定一個用戶,來比較推薦表中物品之間的相似度,User CF比Item CF在推薦多樣性方面要表現(xiàn)的更好;當(dāng)從系統(tǒng)的多樣性角度對比,推薦系統(tǒng)給所有用戶提供豐富的選擇,Item CF的多樣性要遠遠好于User CF。
⑸ 以推薦算法的性能和個性化進行對比。Sarwar[6]和 Karypis [7]等已經(jīng)證明Item CF比User CF在性能上有所提升;在用戶數(shù)目較多的情況下,Item CF更能夠提供個性化的推薦結(jié)果。
由此可見,兩種協(xié)同過濾算法都具有較高的準(zhǔn)確推薦率,但是它們覆蓋的范圍卻不同。因此,讓兩種協(xié)同過濾算法相互融合、優(yōu)勢互補,成為本餐飲推薦系統(tǒng)的核心和關(guān)鍵。
2 基于協(xié)同過濾混合算法的餐飲推薦系統(tǒng)設(shè)計
2.1 餐飲推薦系統(tǒng)的架構(gòu)設(shè)計
餐飲推薦系統(tǒng)從架構(gòu)上可分為業(yè)務(wù)應(yīng)用層、推薦系統(tǒng)層、核心數(shù)據(jù)層、算法計算層。系統(tǒng)架構(gòu)從四個層次完成了用戶數(shù)據(jù)和菜肴基本數(shù)據(jù)的收集、提取、分析、過濾、排名、個性化推薦等過程,餐飲系統(tǒng)架構(gòu)圖如圖1所示。
2.2 推薦引擎設(shè)計
推薦引擎是協(xié)同過濾算法在本餐飲系統(tǒng)中實現(xiàn)個性化推薦的核心,本餐飲系統(tǒng)的設(shè)計采用基于用戶和基于物品的協(xié)同過濾混合算法,推薦引擎中不僅要分析用戶間、物品間的相關(guān)性,而且要根據(jù)具體情況進行推薦算法的選擇,實現(xiàn)高效、準(zhǔn)確的個性化推薦服務(wù),推薦引擎架構(gòu)圖如圖2所示。
3 關(guān)鍵技術(shù)的實現(xiàn)
3.1 計算用戶的偏好數(shù)據(jù)
通過從用戶的行為和偏好中發(fā)現(xiàn)規(guī)律并基于此給予推薦,是協(xié)同過濾算法的重要環(huán)節(jié),因此,收集用戶偏好的數(shù)據(jù)顯得至關(guān)重要。用戶可以通過購買、評分、評論、標(biāo)簽、收藏夾、轉(zhuǎn)發(fā)、點贊等方式,向系統(tǒng)提供自己的偏好信息。根據(jù)用戶的不同行為,對各種行為進行分類,然后進行加權(quán)處理,如購買的權(quán)值賦值要高于收藏夾中的權(quán)值,體現(xiàn)用戶的喜歡程度。
3.2 計算相似的用戶
計算相似用戶可以基于相似度門檻的鄰居計算方法,它以當(dāng)前的點為中心,對一定范圍內(nèi)的點作為鄰居,但是如何把握此范圍的限度,需要根據(jù)鄰居數(shù)量進行調(diào)整,如果范圍過大、用戶數(shù)量龐大,定會造成相似度用戶特征繁雜,使準(zhǔn)確的個性化推薦性能降低。
3.3 計算用戶與物品之間的相似度
計算用戶與物品間的相似度采用皮爾遜相關(guān)系數(shù),該系數(shù)用于確定兩個變量之間的密切程度,取值在[-1,+1]之間,sx, sy分別表示x和y的標(biāo)準(zhǔn)偏差。
[⑴]
3.4 利用Mahout構(gòu)建推薦系統(tǒng)引擎
Mahout是Apache Software Foundation(ASF)旗下的一個開源項目,實現(xiàn)了機器學(xué)習(xí)領(lǐng)域經(jīng)典的算法,為快速實現(xiàn)智能程序提供了便捷[8]。本系統(tǒng)依據(jù)前期的架構(gòu)設(shè)計,利用Mahout提供的協(xié)同過濾算法構(gòu)建搜索引擎,提高了開發(fā)者開發(fā)的效率。
4 餐飲推薦系統(tǒng)核心模塊的實現(xiàn)
4.1 用戶請求推薦模塊
在餐飲推薦系統(tǒng)中,用戶根據(jù)自己的喜好對相關(guān)的菜肴進行搜索,是推薦系統(tǒng)中用戶最常用的顯性行為之一。根據(jù)用戶當(dāng)前搜索菜肴的特征與用戶以往喜歡菜肴進行比對,將具有相似特征的菜肴進行推薦。若用戶在使用關(guān)鍵字搜索后沒有找到最合口味的菜肴,用戶請求推薦模塊可以為其提供菜肴推薦,提高用戶體驗,如餐飲推薦系統(tǒng)中常見的熱門菜肴、銷量hot菜肴等。
4.2 特色菜肴推薦模塊
特色菜肴推薦模塊主要依靠其他用戶對特色菜肴的持久好評和店家對特色菜肴的主動推薦。特色菜肴不依賴于當(dāng)前用戶的歷史喜好,而是其他用戶對特色菜肴的好評越多,該菜肴被推薦的可能性越大。其次,店家對特色菜肴信心十足,確立幾道菜為本店的特色招牌菜,那么可以在特色菜肴推薦模塊進行權(quán)重調(diào)參,可以為用戶最大概率的推薦本店的招牌菜。特色菜肴是本推薦系統(tǒng)的重要組成部分,也是用戶參考點餐使用最多的推薦模塊之一。
4.3 最新菜肴推薦模塊
對于最新的菜肴往往具有較少的用戶點餐行為記錄,但是最新菜肴和用戶需要的菜肴之間會具有相似的特征,針對這些具有相似的菜肴進行加權(quán)處理,按照權(quán)重大小分別進行排序處理,即將用戶最想吃、最匹配、最新的菜肴排在第一位,然后根據(jù)權(quán)重依次排序。由于受用戶需求的限制,推薦的最新菜肴不易過多,若是推薦過多會造成用戶選擇困難,同時也會增大對菜肴基數(shù)的需求。
5 結(jié)束語
本餐飲推薦系統(tǒng)在設(shè)計的過程中,采用了基于用戶和基于物品的協(xié)同過濾混合算法,最大化地發(fā)揮了各算法的優(yōu)勢,使兩種協(xié)同過濾算法優(yōu)勢互補、相互融合,為推薦系統(tǒng)更加精準(zhǔn)的服務(wù)提供支持。
參考文獻(References):
[1] 陳果,周志鋒,楊小波,王成,歐陽純萍.基于人臉識別的商品推薦系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機時代,2018.11:52-55
[2] GOLDBERG D,NICOLS D.Using collaborative filtering to weaver an information tapestry [J].Communications of the ACM,1992.35(12):61-70
[3] 劉輝,郭夢夢,潘偉強.個性化推薦系統(tǒng)綜述[J].常州大學(xué)學(xué)報(自然科學(xué)版),2017.29(3):51-59
[4] 劉青文.基于協(xié)同過濾的推薦算法研究[D].中國科學(xué)技術(shù)大學(xué),2013.
[5] 海平,黃湊英.兩種協(xié)同過濾推薦算法的比較研究[J].貴陽學(xué)院學(xué)報(自然科學(xué)版),2015.10(1):1-4
[6] LINDEN G,SMITH B,YORK J.Recommendation tem-to-item collaborative filtering[J].IEEE Internet Computing,2003.7(1):76-80
[7] SARWAR B,KARYPIS G,KONSTAN J,et al.Item-basee collaborative filtering recommendation algorithms[C]//International World Wide Web Conferences. Hong-kong: ACM,2001:285-295
[8] 許海玲,吳瀟,李曉東,閻保平.互聯(lián)網(wǎng)推薦系統(tǒng)比較研究[J].軟件學(xué)報,2009.20(2):350-362