林澤聰+王玉山+甘嘉穎+柯懿倍
(廣東外語外貿(mào)大學(xué) 信息學(xué)院, 廣州 510006)
[摘 要] 保持個(gè)人的膳食結(jié)構(gòu)合理是保證個(gè)人健康的關(guān)鍵因素之一。因此一款個(gè)性化的推薦系統(tǒng)顯得非常必要。為此研究、設(shè)計(jì)了一個(gè)個(gè)性化食材推薦系統(tǒng),該系統(tǒng)采用基于用戶的協(xié)同過濾算法,針對用戶的飲食習(xí)慣進(jìn)行推薦。
[關(guān)鍵詞] 協(xié)同過濾算法;推薦系統(tǒng);飲食推薦
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2017. 07. 071
[中圖分類號] TP311 [文獻(xiàn)標(biāo)識碼] A [文章編號] 1673 - 0194(2017)07- 0150- 03
1 引 言
1.1 項(xiàng)目背景
人們獲取信息的互聯(lián)網(wǎng)“信息過載”問題越來越嚴(yán)重。不得不花大量時(shí)間閱讀和分析這些信息。為此個(gè)性化推薦系統(tǒng)應(yīng)運(yùn)而生,它是對用戶的歷史數(shù)據(jù)進(jìn)行挖掘,建立用戶關(guān)于興趣的數(shù)學(xué)模型,并預(yù)測用戶將來的行為和喜好、給用戶推薦可能需要的服務(wù)。
美食與健康是現(xiàn)代社會(huì)的熱點(diǎn)問題之一,能隨時(shí)找出自己需要的食材是用戶的需求之一。
1.2 個(gè)性化推薦發(fā)展國內(nèi)外現(xiàn)狀
個(gè)性化推薦系統(tǒng)1990年代被提出。準(zhǔn)確,高效的推薦算法不僅給用戶提供較好的個(gè)性化服務(wù),還可以找到用戶潛在的消費(fèi)傾向。但大多數(shù)關(guān)注的是音樂 [1 ]、微博 [2 ]等應(yīng)用。針對食材的個(gè)性化推薦的研究相對較少。EuiHH 在文獻(xiàn)[3 ]中提出了一個(gè)基于特征的個(gè)性化推薦算法、能根據(jù)歷史數(shù)據(jù)向用戶推薦商品。Reid A在文獻(xiàn) [4 ]中對基于信任的推薦系統(tǒng)進(jìn)行了研究。
2 協(xié)同過濾推薦算法概述
協(xié)同過濾推薦算法分為兩類:基于用戶的協(xié)同過濾算法和基于物品的協(xié)同過濾算法。還有基于模型的協(xié)同過濾,包括Aspect Model,pLSA,LDA,聚類,SVD,Matrix Factorization等,這種方法訓(xùn)練過程比較長,但是訓(xùn)練完成后,推薦過程比較快。本文將采用協(xié)同過濾技術(shù),與飲食數(shù)據(jù)相結(jié)合,設(shè)計(jì)并實(shí)現(xiàn)一種食材推薦算法。
3 根據(jù)飲食習(xí)慣的食材推薦
收集用戶的歷史飲食數(shù)據(jù),通過協(xié)同過濾算法篩選出用戶最喜歡或偏好的幾種食材進(jìn)行推薦。這里采用基于用戶的協(xié)同過濾算法。該算法是通過用戶的歷史數(shù)據(jù)發(fā)現(xiàn)用戶對商品喜歡的內(nèi)容,并對這些喜好進(jìn)行度量和打分。根據(jù)不同用戶對相同商品或內(nèi)容的態(tài)度和偏好程度計(jì)算用戶之間的關(guān)系。在有相同喜好的用戶間進(jìn)行商品推薦。將該算法分為3個(gè)步驟。
第一步,收集所有用戶的歷史飲食數(shù)據(jù)。用戶在不同時(shí)間段想吃的食材不同,因此我們可以規(guī)定數(shù)據(jù)收集的時(shí)間段,收集5個(gè)用戶一個(gè)月的飲食數(shù)據(jù),統(tǒng)計(jì)如表1所示。
第二步,計(jì)算用戶距離。方法有歐幾里得距離和皮爾遜相關(guān)系數(shù)等。皮爾遜相關(guān)系數(shù)計(jì)算雖然復(fù)雜,但對于評分?jǐn)?shù)據(jù)不規(guī)范或由于用戶使用頻率較少,次數(shù)相差過大時(shí),能夠給出更好的結(jié)果。采用皮爾遜相關(guān)系數(shù)公式(見公式1)。該計(jì)算結(jié)果是一個(gè)在-1和1之間的系數(shù)。該系數(shù)數(shù)值越大,兩個(gè)用戶的相關(guān)性就越高。系數(shù)為負(fù)時(shí),表明用戶間無相關(guān)。
通過計(jì)算5個(gè)用戶對五種食材的使用次數(shù)的相關(guān)度系數(shù),可以看到,用戶A&B,C&D,C&E和D&E之間相似度較高,如表1所示。
第三步,選取k個(gè)近鄰,加權(quán)并篩選和推薦。
假設(shè)我們需要對用戶C推薦食材,先對相似度進(jìn)行排序,發(fā)現(xiàn)用戶C和D與E的相似度最高?;蛘哒f這三個(gè)用戶是一個(gè)群體,擁有相同的偏好。因此可以給C推薦D和E食用過的食材。提取用戶D與E食用過的所有食材次數(shù),并用皮爾遜相似度系數(shù)進(jìn)行加權(quán)計(jì)算,得到一個(gè)推薦系數(shù)表如表3所示。
用戶可能不會(huì)每天都記錄自己的飲食情況、導(dǎo)致每日的推薦結(jié)果都相同。為了得到推薦結(jié)果的多樣性,采用輪盤賭選擇法。把計(jì)算得到的結(jié)果用餅狀圖表示(見圖1),要做的就是旋轉(zhuǎn)這個(gè)輪子,直到輪盤停止,看指針停止在哪一塊上,就選中哪個(gè)食材。
假設(shè)要推薦3種食材,就將輪盤旋轉(zhuǎn)三次。每次選中的食材存表后從輪盤中剔除,為了健康把與該次選中相克的食材剔除,把選中食材相生的食材加權(quán)提高,提升被選中的概率,重新生成輪盤。
4 系統(tǒng)測試
設(shè)計(jì)了一款應(yīng)用軟件,已在360軟件、百度軟件、應(yīng)用寶等應(yīng)用市場上架。采集到了近百名用戶在30天內(nèi)的飲食數(shù)據(jù)情況。將前20天作為數(shù)據(jù)集,后10天作為驗(yàn)證集。這里測試根據(jù)習(xí)慣推薦的準(zhǔn)確度,以用戶Missyezzy的午餐情況為例,首先統(tǒng)計(jì)百名用戶20天的飲食數(shù)據(jù)情況得到數(shù)據(jù)如表4所示。由于數(shù)據(jù)量的原因,表4中只列舉出部分用戶的若干個(gè)食材。
接下來計(jì)算皮爾遜相似度,這里只列舉與用戶Missyezzy相關(guān)的若干個(gè)用戶的系數(shù),如表5所示。
我們將k值設(shè)為3,提取出與Missyezzy最相近的三個(gè)用戶,并把該三個(gè)用戶食用過的所有食材進(jìn)行加權(quán)計(jì)算,得到表如表6所示。
接下來采用輪盤法,從中隨機(jī)選取3種食材,并進(jìn)行10次重復(fù)生成,以模擬后10天的飲食情況,如表7所示。
通過統(tǒng)計(jì)Missyezzy用戶后10天的實(shí)際飲食數(shù)據(jù),和推薦得到的10天的飲食數(shù)據(jù),生成兩個(gè)n維向量,通過比較兩個(gè)的余弦相似性來判斷推薦系統(tǒng)的好壞。在這里以Missyezzy為例得到兩個(gè)向量,一個(gè)是實(shí)際飲食數(shù)據(jù)得到的向量,一個(gè)是上表得到的向量,如表8所示。
在評估推薦結(jié)果的準(zhǔn)確性上,采用余弦相似度,又稱余弦相似性。是通過計(jì)算兩個(gè)向量的夾角余弦值來評估他們的相似度。余弦值的范圍在[-1,1]之間,值越趨近于1,代表兩個(gè)向量的方向越趨近于0,他們的方向更加一致。相應(yīng)的相似度也越高。公式如下:
將上述算法重復(fù)若干次以去除偶然性,然后統(tǒng)計(jì)了十名用戶的余弦相似度的平均值得到表9,推薦結(jié)果的準(zhǔn)確度達(dá)80%。
本文根據(jù)用戶歷史飲食數(shù)據(jù),采用基于用戶的協(xié)同過濾算法,找出與用戶有相似愛好的用戶數(shù)據(jù)、生成推薦食材。采用輪盤推薦法,使推薦系統(tǒng)推薦準(zhǔn)確、多樣。采用余弦相似度對本系統(tǒng)做出了驗(yàn)證。該系統(tǒng)仍有不足之處,如數(shù)據(jù)量較大時(shí),算法的效率較低、尋找相似用戶時(shí)容易陷入局部尋找等。
主要參考文獻(xiàn)
[1]Lee SK,Cho YH,Kim SH. Collaborative Filtering with Ordinal Scale-Based Implicit Ratings for Mobile Music Recommendations[J]. Information Sciences, 2010,180(11):2142-2155.
[2]Chiu PH,Kao GYM,Lo CC. Personalized Blog Content Recomender System for Mobile Phone Users[J]. Intl Journal of Human- Computer Studies,2010,68(8):496-507.
[3]Han E H S,Karypis G. Feature-Based Recommendation System[C]∥Proceedings of the 14th ACM International Conference on Information and Knowledge Management,2005:446-452.
[4]Andersen R,Borgs C,Chayes J T, et al. Trust-Based Recommendation Systems: an Axionmatic Approach[C]∥Proceedings of the 17th International Conference on WWW.ACM,2008:199-208.
[收稿日期]2017-03-09
[基金項(xiàng)目]2016年廣東團(tuán)省委和科技廳項(xiàng)目(pdjh2016b0168)。