鮑凱麗 劉其成 牟春曉
(煙臺(tái)大學(xué)計(jì)算機(jī)與控制工程學(xué)院 山東 煙臺(tái) 264000)
隨著信息技術(shù)的高速發(fā)展,電子商務(wù)系統(tǒng)中的用戶數(shù)量和產(chǎn)品種類(lèi)越來(lái)越多,導(dǎo)致用戶很難從海量的信息中獲取自己感興趣的內(nèi)容。推薦系統(tǒng)作為一種重要的信息過(guò)濾技術(shù)和手段,是解決信息過(guò)載的有效方式[1]。推薦系統(tǒng)主要包括基于內(nèi)容的推薦、協(xié)同過(guò)濾推薦和基于知識(shí)的推薦[2],協(xié)同過(guò)濾推薦算法是目前應(yīng)用最廣泛的推薦算法[3]。
隨著信息化的迅速發(fā)展,餐飲業(yè)也加快了腳步,越來(lái)越多的用戶通過(guò)網(wǎng)上訂餐的方式進(jìn)行美食選擇。由于美食的種類(lèi)和樣式不斷增多,導(dǎo)致了用戶在選擇美食時(shí)需要花費(fèi)更多的時(shí)間和精力。在推薦算法領(lǐng)域進(jìn)行外賣(mài)的研究分析,不僅可以幫助商家更好地鎖定用戶群,也可以幫用戶高效地選擇自己喜愛(ài)的美食。
本文提出了一種融合樸素貝葉斯和協(xié)同過(guò)濾的外賣(mài)推薦并行算法。該算法基于MapReduce分布式計(jì)算框架,通過(guò)對(duì)外賣(mài)評(píng)論數(shù)據(jù)集進(jìn)行深入挖掘,實(shí)現(xiàn)外賣(mài)個(gè)性化的推薦,推薦的信息對(duì)用戶具有很高的參考價(jià)值。
評(píng)論挖掘是現(xiàn)有的協(xié)同過(guò)濾算法中用以緩解數(shù)據(jù)稀疏問(wèn)題的重要方法之一,當(dāng)前,已經(jīng)有許多專(zhuān)家和學(xué)者對(duì)融入評(píng)論文本的推薦方法進(jìn)行了大量研究。
文獻(xiàn)[4]圍繞從評(píng)論標(biāo)簽中挖掘用戶對(duì)產(chǎn)品特征的觀點(diǎn)展開(kāi)研究,向用戶推薦在他們感興趣的特征上有較高評(píng)價(jià)的產(chǎn)品。文獻(xiàn)[5]圍繞從評(píng)論信息中提取社交情感展開(kāi)研究,在推薦系統(tǒng)中推薦。文獻(xiàn)[6]研究將用戶評(píng)論集和商品評(píng)論集各自潛在的主題向量建立正向映射關(guān)系,進(jìn)一步優(yōu)化推薦模型。文獻(xiàn)[7]提出網(wǎng)絡(luò)評(píng)論數(shù)據(jù)的產(chǎn)品設(shè)計(jì)綜合評(píng)價(jià)模型,運(yùn)用情感傾向分析技術(shù)和LDA主題模型算法進(jìn)行主題發(fā)現(xiàn)的研究。文獻(xiàn)[8]提出利用評(píng)分?jǐn)?shù)據(jù)生成評(píng)論態(tài)度影響因子,建立用戶偏好與物品特征,進(jìn)而進(jìn)行評(píng)分預(yù)測(cè)與物品推薦。文獻(xiàn)[9]提出對(duì)評(píng)論文本進(jìn)行情感傾向的分析來(lái)產(chǎn)生相應(yīng)的分值,從而進(jìn)行推薦。文獻(xiàn)[10]研究基于樸素貝葉斯的協(xié)同過(guò)濾推薦算法,采用改進(jìn)的樸素貝葉斯方法對(duì)沒(méi)有評(píng)分的數(shù)據(jù)進(jìn)行預(yù)測(cè)。
隨著餐飲行業(yè)的快速發(fā)展,如何通過(guò)網(wǎng)絡(luò)及時(shí)準(zhǔn)確的為用戶提供合適的美食推薦已經(jīng)成為目前研究的重點(diǎn)。
文獻(xiàn)[11]研究基于協(xié)同過(guò)濾算法的美食推薦系統(tǒng),根據(jù)用戶對(duì)各種美食的評(píng)分,結(jié)合其他用戶的興趣相似度,并利用美食屬性特征的相似度作為權(quán)重因子進(jìn)行矩陣補(bǔ)全。文獻(xiàn)[12]研究基于LDA模型的餐廳推薦方法。該算法首先對(duì)餐廳評(píng)價(jià)信息進(jìn)行情感分類(lèi),進(jìn)而獲取積極評(píng)價(jià)和好評(píng)率,然后計(jì)算用戶需求與餐廳標(biāo)簽的相似度,根據(jù)相似度和好評(píng)率向用戶推薦餐廳。文獻(xiàn)[13]研究基于協(xié)同過(guò)濾的美食推薦算法,該文獻(xiàn)在計(jì)算相似度時(shí)引入了遺忘函數(shù)和用戶間的信任度。
可以看出,無(wú)論是在融入評(píng)論文本的推薦方法方面,還是在美食推薦方面,上述文獻(xiàn)都未對(duì)融合評(píng)論文本和評(píng)分?jǐn)?shù)值的外賣(mài)推薦針對(duì)性的進(jìn)行深入研究。本文同以上工作相比,數(shù)據(jù)對(duì)象來(lái)源于互聯(lián)網(wǎng)的上真實(shí)美食評(píng)論,具有復(fù)雜性高、涉及面廣等特點(diǎn)。在提高推薦系統(tǒng)的準(zhǔn)確性方面,一方面設(shè)計(jì)融合評(píng)論文本和評(píng)分?jǐn)?shù)值綜合評(píng)分模型;另一方面在ALS模型前融合物品的相似性信息,設(shè)計(jì)一種新的損失函數(shù)。通過(guò)以上改進(jìn),本文算法在一定程度上減小了系統(tǒng)的均方根誤差,提高了推薦準(zhǔn)確率,改善了推薦系統(tǒng)性能。
樸素貝葉斯分類(lèi)是利用概率統(tǒng)計(jì)進(jìn)行分類(lèi)的算法,主要利用貝葉斯定理來(lái)預(yù)測(cè)一個(gè)未知類(lèi)別樣本屬于其他類(lèi)別的可能性,其基本思想如下:
假設(shè)有k個(gè)類(lèi)C1,C2,…,Ck給定一個(gè)未知的數(shù)據(jù)實(shí)例X,分類(lèi)器將預(yù)測(cè)數(shù)據(jù)實(shí)例X分類(lèi)為屬于具有最高后驗(yàn)概率的類(lèi),其中最大后驗(yàn)概率的類(lèi)用P(Ci|X)最大的類(lèi)Ci表示。
(1)
ALS算法的實(shí)質(zhì)是填充用戶—物品評(píng)分矩陣中缺失的部分,如果用戶評(píng)分矩陣為R,其元素表示的是用戶u對(duì)物品v的評(píng)價(jià),由奇異值分解原理,矩陣R等于幾個(gè)矩陣相乘。公式如下:
R=UTV
(2)
通過(guò)用戶-物品的評(píng)分矩陣分解原理可知,預(yù)測(cè)用戶對(duì)物品的喜好只需求取UT和V,一般通過(guò)最小化損失函數(shù)求取。為了防止損失函數(shù)過(guò)擬合,采用正則化方法添加正則化項(xiàng),最后損失函數(shù)如下:
(3)
對(duì)于求解上述損失函數(shù)的最優(yōu)化,可以使用梯度下降也可以使用最小二乘法,其中二乘法求取的是全局的最小值,固定一個(gè)向量,求取另一個(gè)向量,然后交替迭代執(zhí)行,最終訓(xùn)練出一個(gè)最好的預(yù)測(cè)模型。
MapReduce是處理大數(shù)據(jù)的一種并行編程框架,將數(shù)據(jù)表達(dá)成鍵值對(duì)的形式。MapReduce包含任務(wù)分解(Map)和結(jié)果匯總(Reduce)兩個(gè)步驟處理數(shù)據(jù),Map任務(wù)和Reduce任務(wù)可以被分配到不同的資源節(jié)點(diǎn)并行執(zhí)行。
目前,越來(lái)越多的外賣(mài)網(wǎng)站都支持用戶對(duì)購(gòu)買(mǎi)的外賣(mài)進(jìn)行打分和發(fā)表評(píng)論,用戶在挑選外賣(mài)時(shí)越來(lái)越注重商品的評(píng)論。評(píng)論文本內(nèi)容是用戶對(duì)外賣(mài)美食特征、質(zhì)量、商家服務(wù)等的描述,評(píng)分并不能全面衡量用戶對(duì)外賣(mài)的情感,所以結(jié)合評(píng)論文本這一指標(biāo)來(lái)修正原來(lái)評(píng)分。
3.1.1評(píng)分預(yù)測(cè)
對(duì)外賣(mài)評(píng)論文本進(jìn)行關(guān)鍵詞提取,進(jìn)而構(gòu)建出針對(duì)外賣(mài)評(píng)論的情感詞典,然后設(shè)計(jì)并行化的樸素貝葉斯文本情感分類(lèi)器,量化評(píng)論文本情感值。經(jīng)過(guò)數(shù)據(jù)預(yù)處理輸出外賣(mài)訓(xùn)練評(píng)論數(shù)據(jù)形為D={C1,C2,…,Ck,A1,A2,…,An}, 其中A是屬性變量,C為情感傾向。這部分算法主要分為兩個(gè)步驟:
第一步訓(xùn)練階段的主要目標(biāo)就是生成外賣(mài)評(píng)論數(shù)據(jù)情感傾向的分類(lèi)器,在算法訓(xùn)練階段的Map階段中,每一個(gè)節(jié)點(diǎn)隨機(jī)抽取本臺(tái)機(jī)器中存儲(chǔ)的訓(xùn)練集Di中的外賣(mài)評(píng)論數(shù)據(jù),Map階段中每個(gè)節(jié)點(diǎn)執(zhí)行的Map任務(wù)描述如下:
輸入: 訓(xùn)練集
輸出:
Begin
(1) While Di!=null do
(2) for each value do
(3) vals=str.split(″″)
(4) ClassID.set(vals[0])
(5) write(ClassID, one)
(6) end for
(7) for each value do
(8) GetCateInClass()
(9) cws.set(temp)
(10) write(cws, one)
(11) end for
End
Reduce階段主要負(fù)責(zé)將Map階段每個(gè)節(jié)點(diǎn)輸出的內(nèi)容進(jìn)行匯總,輸出<劃分屬性值,數(shù)量統(tǒng)計(jì)>鍵值對(duì)和情感傾向的先驗(yàn)概率prior[c]。Reduce階段中每個(gè)節(jié)點(diǎn)執(zhí)行的Reduce任務(wù)描述如下:
輸入:
輸出:
Begin
(1) int Num=0
(2) int Count=0
(3) for each vido
(4) Num+=val.get()
(5) write(ClassID, Num)
(6) end for
(7) for each vido
(8) Count+=val.get()
(9) write(cws, Count)
(10) end for
(11) for each calss do
(12) prior[c]=Num/sum
(13) end for
(14) write(ClassID, prior[c])
End
第二步分類(lèi)階段目標(biāo)是使用第一步的分類(lèi)器對(duì)未知情感傾向的評(píng)論文本預(yù)測(cè)分類(lèi),對(duì)每一條測(cè)試數(shù)據(jù),根據(jù)式(1)計(jì)算測(cè)試樣本的后驗(yàn)概率,然后將最大的后驗(yàn)概率的情感傾向判定為測(cè)試樣本的類(lèi)。
算法分類(lèi)階段的Map階段的目標(biāo)是計(jì)算每條外賣(mài)測(cè)試數(shù)據(jù)的條件概率,根據(jù)先驗(yàn)概率和條件概率通過(guò)計(jì)算測(cè)試樣本的后驗(yàn)概率。Map階段中每個(gè)節(jié)點(diǎn)執(zhí)行的Map任務(wù)描述如下:
輸入: 測(cè)試數(shù)據(jù)集
輸出:
Begin
(1) While Bi!=null do
(2) for each value do
(3) Record=Data.freq.get(date)
(4) Tct=Record/Num
(5) P=P*Tct
(6) end for
(7) for each Class do
(8) Posterior[c]=prior[c]*P
(9) end for
(10) write(id, Posterior[c])
End
算法分類(lèi)階段的Reduce階段的任務(wù)是把上一步輸出結(jié)果進(jìn)一步合并處理,若Posterior[積極傾向]大于Posterior[消極傾向],判斷該評(píng)論數(shù)據(jù)為積極傾向,否則為消極傾向。其中, Score即該外賣(mài)評(píng)論文本情感值。
輸入:
輸出:
Begin
(1) for each calss do
(2) if(P>maxf)
(3) maxf=p
(4) end for
(5) id=new Text(val[ ])
(6) Score=new Text(ClassNames.get(maxf));
(7) write(id, Score)
End
由于外賣(mài)評(píng)分值是五分制,需要對(duì)上述量化的情感值Score進(jìn)行處理使其取值范圍在[0, 5]之間。
3.1.2綜合評(píng)分模型
本文將外賣(mài)評(píng)分?jǐn)?shù)值與評(píng)論文本情感值模型結(jié)合構(gòu)建外賣(mài)綜合評(píng)分模型。綜合評(píng)分模型如下所示:
Score(i)new=w1×Score(i)1+w2×Score(i)2
(4)
w1+w2=1
(5)
式中:i表示第i條外賣(mài)評(píng)論;Score(i)1表示外賣(mài)評(píng)分?jǐn)?shù)值;Score(i)2表示外賣(mài)評(píng)論文本的情感值;w1和w2分別表示外賣(mài)評(píng)分?jǐn)?shù)值和外賣(mài)評(píng)論文本情感值的權(quán)重;Score(i)new表示結(jié)合外賣(mài)評(píng)分?jǐn)?shù)值和外賣(mài)評(píng)論文本情感值的綜合評(píng)分。
在得到外賣(mài)綜合評(píng)分?jǐn)?shù)據(jù)集后將其整合到并行文件系統(tǒng)HDFS中。在后續(xù)的并行推薦過(guò)程中,算法將從HDFS直接獲取數(shù)據(jù)。
3.2.1算法的優(yōu)化
依據(jù)ALS算法的原理可以發(fā)現(xiàn),損失函數(shù)忽略了物品之間有價(jià)值的數(shù)據(jù)信息。因此,針對(duì)這個(gè)問(wèn)題本文設(shè)計(jì)了一種新的損失函數(shù),引入物品相似度。本文選擇修正的余弦相似度,則此時(shí)損失函數(shù)為:
(6)
式中:nui表示用戶Ui評(píng)價(jià)過(guò)的外賣(mài)的數(shù)量;nvj表示為外賣(mài)Vj評(píng)過(guò)分的用戶數(shù)量;rui表示用戶u對(duì)物品i的評(píng)分;ruj表示用戶u對(duì)物品j的評(píng)分。
3.2.2計(jì)算推薦集
該部分主要通過(guò)3個(gè)步驟實(shí)現(xiàn): ① 針對(duì)用戶評(píng)分?jǐn)?shù)據(jù)集求出外賣(mài)項(xiàng)目向量矩陣和用戶向量矩陣。 ② 求用戶特征矩陣U和外賣(mài)特征矩陣V。 ③ 利用上述步驟產(chǎn)生的U和V,求出推薦矩陣。
第①步的實(shí)現(xiàn)需要兩個(gè)MapReduce過(guò)程,分別求出用戶u評(píng)價(jià)過(guò)的外賣(mài)的集合和評(píng)價(jià)過(guò)外賣(mài)v的用戶的集合。第一個(gè)Map階段接受初始輸入的數(shù)據(jù)集合, 統(tǒng)計(jì)不同用戶對(duì)同一外賣(mài)的評(píng)分,Reduce階段將其合并輸出記為R[n]。第二個(gè)Map階段統(tǒng)計(jì)同一用戶對(duì)不同外賣(mài)的評(píng)分,Reduce階段將其合并輸出記為R[m]。
第②步計(jì)算用戶特征矩陣U和外賣(mài)特征矩陣V, 每次求用戶特征矩陣U和外賣(mài)特征矩陣V都需要一次MapReduce過(guò)程。由于用戶ID和外賣(mài)ID的唯一性,在迭代計(jì)算過(guò)程不需要Reduce階段。當(dāng)求解U矩陣時(shí),輸入用戶評(píng)分過(guò)的外賣(mài)的集合R[n]及外賣(mài)特征矩陣V,利用式(6)計(jì)算用戶的特征向量Ui,Map階段中每個(gè)節(jié)點(diǎn)執(zhí)行的Map任務(wù)描述如下:
輸入: R[n]
輸出:
Begin
(1)whileDi!=nulldo
(2)foreachvifromDido
(3) V=rand()
(4) calculate Uiaccording to formula
(5)endfor
(6) write(
End
同理,當(dāng)求解V矩陣時(shí),輸入評(píng)價(jià)過(guò)的外賣(mài)的用戶的集合R[m]及用戶特征矩陣U,利用式(6)計(jì)算外賣(mài)的特征向量Vj,Map階段中每個(gè)節(jié)點(diǎn)執(zhí)行的Map任務(wù)描述如下:
輸入: R[m]
輸出:
Begin
(1)whileDi!=nulldo
(2)foreachvifromDido
(3) U=rand()
(4) calculate Vjaccording to formula
(5)endfor
(6) write(
End
這樣反復(fù)迭代計(jì)算U和V, 最后通過(guò)一個(gè)迭代次數(shù)計(jì)數(shù)器的任務(wù)來(lái)結(jié)束整個(gè)算法流程。
第③步利用上述步驟產(chǎn)生U和V,根據(jù)X=UVT求出預(yù)測(cè)評(píng)分矩陣X,得到的結(jié)果即為用戶對(duì)每個(gè)項(xiàng)目的預(yù)測(cè)評(píng)分。最后對(duì)這些評(píng)分從高到低進(jìn)行排序, 同時(shí)除去用戶已經(jīng)評(píng)價(jià)過(guò)的外賣(mài),即可得到最終的用戶推薦外賣(mài)項(xiàng)目集。
從某外賣(mài)網(wǎng)站抓取了外賣(mài)的評(píng)論數(shù)據(jù)記為Date,采集的評(píng)論數(shù)據(jù)包括評(píng)論用戶編號(hào)、外賣(mài)編號(hào)、評(píng)論時(shí)間、評(píng)分?jǐn)?shù)值、評(píng)論文本。其中,評(píng)分值都是整數(shù)值(1~5之間),分?jǐn)?shù)越高代表用戶相應(yīng)的外賣(mài)評(píng)分就越高。本實(shí)驗(yàn)數(shù)據(jù)集包括三組:第一組從Date中隨機(jī)抽取5 000條評(píng)論數(shù)據(jù)記為Date1;第二組從Date中隨機(jī)抽樣500 000條數(shù)據(jù)記為Date2;第三組從Date中分別采集3種不同規(guī)模的數(shù)據(jù)集,得到數(shù)據(jù)規(guī)模分別為三組測(cè)試數(shù)據(jù)的大小分別是:589 MB、1 432 MB和2 471 MB。
(1) 準(zhǔn)確度。衡量一個(gè)推薦系統(tǒng)的優(yōu)劣,有很多種評(píng)價(jià)指標(biāo)[14]。本文將通過(guò)均方根誤差(RMSE)來(lái)評(píng)價(jià)評(píng)分預(yù)測(cè)的準(zhǔn)確度。均方根誤差值越小,意味著準(zhǔn)確度越高。公式表示為:
(7)
(2) 加速比。加速比用來(lái)衡量并行算法并行化的性能和效果。指同一個(gè)串行算法的運(yùn)行時(shí)間(Ts)和并行處理器算法中運(yùn)行消耗的時(shí)間(Tp)的比率,公式表示為:
(8)
權(quán)重的確定方法主要分為主觀賦權(quán)法[15]和客觀賦權(quán)法[16]兩大類(lèi)。本文使用主觀賦權(quán)法,通過(guò)人工標(biāo)注對(duì)Date1數(shù)據(jù)集中評(píng)論文本和評(píng)分?jǐn)?shù)值進(jìn)行綜合打分(5分制),然后比較評(píng)分?jǐn)?shù)值的正確率(A1)和評(píng)論文本情感值正確率(A2)。
正確率=判斷評(píng)分和人工標(biāo)注評(píng)分相同的個(gè)數(shù)/總個(gè)數(shù),結(jié)果如表1所示。
表1 評(píng)論文本和評(píng)分?jǐn)?shù)值正確率 %
從表1可以看出,評(píng)論文本情感值的正確率比評(píng)分?jǐn)?shù)值的正確率高,所以評(píng)論文本情感值更能反映外賣(mài)的真實(shí)評(píng)分,因此在構(gòu)建綜合評(píng)分模型時(shí)通過(guò)正確率的大小來(lái)確定評(píng)論文本和評(píng)分?jǐn)?shù)值這兩個(gè)變量的權(quán)重。
(9)
(10)
得到綜合評(píng)分模型為:
Score(i)new=0.46×Score(i)1+0.54×Score(i)2
(11)
(1) 準(zhǔn)確率分析。本文算法中最重要的參數(shù)是正則化參數(shù)λ和迭代次數(shù)。其中,迭代次數(shù)越大越精確,但是設(shè)置的越大也就意味著越耗時(shí),算法在每次迭代時(shí)都會(huì)優(yōu)化矩陣,因此經(jīng)少數(shù)迭代就能收斂到一個(gè)較合理的模型,所以本文選取迭代次數(shù)為20、30、40。正則化參數(shù)越高正則化越嚴(yán)厲,但并非越高越好,在本文中選取正則化參數(shù)的值為0.1、1、10。因此共產(chǎn)生9個(gè)模型,該部分實(shí)驗(yàn)使用數(shù)據(jù)集Date2,分別計(jì)算9個(gè)模型的均方根誤差如表2所示。
表2 本文算法均方根誤差
從表2中可以發(fā)現(xiàn),在正則化參數(shù)固定的條件下,隨著迭代次數(shù)值增大,均方根誤差的值越來(lái)越小。而在迭代次數(shù)值不變的情況下,隨著正則化參數(shù)值增大,均方根誤差值越來(lái)越大。其中當(dāng)?shù)螖?shù)為40,正則化參數(shù)為0.1時(shí),算法的均方根誤差最優(yōu),得到最優(yōu)模型后,可以通過(guò)最優(yōu)模型來(lái)進(jìn)行推薦。
(2) 加速比分析。實(shí)驗(yàn)采用第三組數(shù)據(jù)集,分別測(cè)試三種規(guī)模數(shù)據(jù)在1個(gè)、2個(gè)和3個(gè)節(jié)點(diǎn)上的運(yùn)行時(shí)間,實(shí)驗(yàn)結(jié)果如表3所示。
表3 運(yùn)行時(shí)間 s
根據(jù)表3中的數(shù)據(jù),可以計(jì)算出算法在三組數(shù)據(jù)集的加速比如表4所示,算法加速比的曲線如圖1所示。
表4 數(shù)據(jù)運(yùn)行加速比
圖1 不同規(guī)模數(shù)據(jù)的加速比
分析表4和圖1可以發(fā)現(xiàn),在數(shù)據(jù)量不變的情況下,加速比隨著節(jié)點(diǎn)數(shù)目的增加而增加。當(dāng)節(jié)點(diǎn)數(shù)目不變時(shí),隨著數(shù)據(jù)規(guī)模的增大,加速比也會(huì)隨之增高。實(shí)驗(yàn)結(jié)果表明,本文算法在處理比較大規(guī)模的數(shù)據(jù)時(shí)展現(xiàn)出了良好的性能,可以有效提高算法的執(zhí)行效率,具有比較好的加速比。
(1) 綜合評(píng)分模型有效性實(shí)驗(yàn)對(duì)比。為驗(yàn)證融合評(píng)論文本和評(píng)分?jǐn)?shù)值綜合評(píng)分模型有效性,對(duì)數(shù)據(jù)集Date2進(jìn)行處理,將僅有評(píng)論數(shù)值的外賣(mài)評(píng)論數(shù)據(jù)記為訓(xùn)練數(shù)據(jù)集D21,融合評(píng)論文本和評(píng)分?jǐn)?shù)值的外賣(mài)評(píng)分?jǐn)?shù)據(jù)記為訓(xùn)練數(shù)據(jù)集D22。使用兩個(gè)數(shù)據(jù)集分別進(jìn)行實(shí)驗(yàn),推薦結(jié)果準(zhǔn)確率對(duì)比如表5所示。
表5 均方根誤差的值
由表5可知,采用訓(xùn)練數(shù)據(jù)集D22比訓(xùn)練數(shù)據(jù)集D21進(jìn)行實(shí)驗(yàn)得到的均方根誤差略小。實(shí)驗(yàn)結(jié)果表明,使用融合評(píng)論文本和評(píng)分?jǐn)?shù)值綜合評(píng)分模型會(huì)降低RMSE值,使推薦結(jié)果更加準(zhǔn)確。
(2) 算法準(zhǔn)確性實(shí)驗(yàn)對(duì)比。為驗(yàn)證本文算法是否提高了推薦結(jié)果的準(zhǔn)確性,采用ALS算法在相同的數(shù)據(jù)集、正則化參數(shù)和迭代次數(shù)情況下,用均方根誤差指標(biāo)對(duì)以上兩種算法的推薦效果進(jìn)行對(duì)比。得到ALS算法的均方根誤差值如表6所示,在正則化參數(shù)不變的情況下,隨著迭代次數(shù)的變化兩種算法的均方根誤差值對(duì)比如圖2所示。
表6 ALS算法均方根誤差
圖2 RMSE值對(duì)比
結(jié)合表2、表6和圖2可以發(fā)現(xiàn),無(wú)論在迭代次數(shù)固定正則化參數(shù)增加,還是在正則化參數(shù)固定迭代次數(shù)增加的情況下,本文算法的RMSE值比ALS算法的值都有所減小。實(shí)驗(yàn)結(jié)果表明,本文算法與傳統(tǒng)ALS算法相比降低了預(yù)測(cè)評(píng)分的均方根誤差,提高了推薦系統(tǒng)的準(zhǔn)確率,該算法用于個(gè)性化外賣(mài)推薦是可行和有效的。
本文提出了一種融合樸素貝葉斯和協(xié)同過(guò)濾的外賣(mài)推薦并行算法,該算法具有較高的準(zhǔn)確性,能夠較準(zhǔn)確地對(duì)用戶進(jìn)行外賣(mài)推薦。同時(shí),算法可以處理大規(guī)模的數(shù)據(jù)并且具有良好的加速比,有效地提升了協(xié)同過(guò)濾算法對(duì)于海量數(shù)據(jù)的處理能力。本文實(shí)現(xiàn)了對(duì)外賣(mài)信息的深度挖掘,推薦的信息對(duì)用戶具有很高的參考價(jià)值。
推薦系統(tǒng)的一個(gè)目標(biāo)是向用戶推薦滿足個(gè)性化要求的物品,而如果只以推薦準(zhǔn)確度為目標(biāo)進(jìn)行推薦,將影響推薦系統(tǒng)的長(zhǎng)期性能,導(dǎo)致長(zhǎng)尾效應(yīng)。所以下一步的研究重點(diǎn)是如何將本算法與其他推薦方法結(jié)合使用,提升推薦結(jié)果的多樣性,從而構(gòu)建以本文算法為核心的高效推薦算法。