陳晉音,陳一賢,林 翔,吳洋洋
(浙江工業(yè)大學(xué) 信息學(xué)院,杭州 310000)
隨著大數(shù)據(jù)技術(shù)的廣泛應(yīng)用,如何有效利用大數(shù)據(jù)來提高人們的生活品質(zhì)已經(jīng)引起了越來越多的關(guān)注.然而,過大的數(shù)據(jù)量往往會(huì)超出處理者的處理能力,即信息超載問題.推薦方法是解決信息超載問題的一個(gè)很好的解決方案,它通過收集用戶的個(gè)性,習(xí)慣和偏好來生成相應(yīng)的推薦信息.而傳統(tǒng)的推薦方法如協(xié)同過濾、非負(fù)矩陣分解等方法具有無法充分挖掘用戶或項(xiàng)目特征,受數(shù)據(jù)稀疏性影響大,當(dāng)數(shù)據(jù)量增加時(shí)計(jì)算復(fù)雜度高等問題.
為了解決這些問題,許多學(xué)者提出了很多有效的方法.其中一個(gè)提高推薦準(zhǔn)確度的方法是從評(píng)論數(shù)據(jù)中尋找更多的特征,而不是只使用用戶對(duì)項(xiàng)目的評(píng)分信息.Wang等人[1]使用改進(jìn)的情感字典來計(jì)算每個(gè)評(píng)論的情感分?jǐn)?shù),將加權(quán)調(diào)整后的平均值和修改后的平均值結(jié)合,以此計(jì)算每個(gè)項(xiàng)目的分?jǐn)?shù).這種方法本質(zhì)上是用情感得分代替用戶直接評(píng)分,忽略了評(píng)論中含有眾多的項(xiàng)目特征.考慮到傳統(tǒng)的基于矩陣分解的方法很難對(duì)用戶解釋矩陣分解得到的結(jié)果,Zhai等人[2]將語言主題模型與矩陣分解相結(jié)合,以發(fā)現(xiàn)用戶和項(xiàng)目的隱藏特征.Wang等人[3]使用基于特征的加權(quán)非負(fù)矩陣分解算法來查找每個(gè)特征的最具代表性的句子,以此來總結(jié)每個(gè)特征.
近年來基于圖結(jié)構(gòu)的推薦系統(tǒng)受到越來越多的重視.在該模型中,用戶和項(xiàng)目被認(rèn)為是二分圖中的節(jié)點(diǎn),而它們間的交互信息被認(rèn)為是連邊.在這種表示下,推薦問題被轉(zhuǎn)換為鏈路預(yù)測問題.最近,在用戶-項(xiàng)目二分網(wǎng)絡(luò)上已經(jīng)出現(xiàn)了許多有效的推薦算法,例如物質(zhì)擴(kuò)散(MD)算法和熱傳導(dǎo)(HC)算法.MD算法[4]實(shí)質(zhì)上是鄰居用戶在對(duì)象之間的資源重新分配方法.HC算法[5]像一個(gè)從項(xiàng)目到相鄰用戶并再次返回項(xiàng)目的熱傳導(dǎo)過程,它具有高度的多樣性,但是精度較低.
本文提出了一種基于評(píng)論分析雙層圖的個(gè)性化推薦算法.該算法使用雙層雙向網(wǎng)絡(luò)模型進(jìn)行個(gè)性化推薦.本文的主要貢獻(xiàn)如下:
1)提出了一種無監(jiān)督的評(píng)論挖掘方法,相比傳統(tǒng)的頻繁項(xiàng)Apriori算法,該方法借助部分特征列表和word2vec對(duì)頻繁名詞項(xiàng)進(jìn)行刪減,具有更高的準(zhǔn)確率和可擴(kuò)展性.
2)提出了一種雙層雙向加權(quán)二分圖模型,該模型配合聚類算法增加了算法處理大數(shù)據(jù)的能力并降低了數(shù)據(jù)稀疏性對(duì)算法的影響,從而獲得更準(zhǔn)確的推薦結(jié)果.
本文的其余部分的結(jié)構(gòu)如下.第二節(jié)介紹了當(dāng)下在評(píng)論挖掘、二分網(wǎng)絡(luò)投影方面的相關(guān)工作.第三節(jié)描述了基于評(píng)論分析雙層圖的個(gè)性化推薦方法.第四節(jié)使用Yelp數(shù)據(jù)集和Amazon數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),將本文的算法與其他推薦算法進(jìn)行比較.第五節(jié)總結(jié)本文的工作.
大多數(shù)評(píng)論挖掘工作的重心在特征提取與情感分析兩部分.做特征提取的先驅(qū)是 Hu等人[6],Hu等人使用Apriori算法提取評(píng)論中的頻繁項(xiàng),然后修建頻繁項(xiàng)集來獲得產(chǎn)品特征并尋找距離特征最近的形容詞作為情感詞.之后大多數(shù)的特征提取工作都具有提取頻繁項(xiàng)的步驟,這種方法的基本假設(shè)是產(chǎn)品特征的出現(xiàn)頻率相較其他詞或短語將更高.還有一種尋找特征與情感詞的方法是使用依存關(guān)系分析,Khan 等人[7]羅列一些句法關(guān)系作為語言模板,提取評(píng)論句子中與模板相匹配的短語,以此作為特征或情感詞,Devasia等人[8]使用斯坦福依存關(guān)系分析工具提取句子中各個(gè)詞之間的語法關(guān)系,針對(duì)不同的語法關(guān)系來提取不同詞性的單詞.這兩種方法因?yàn)闆]有判別尋找到的名詞或名詞短語是否是真正的特征項(xiàng),所以實(shí)際效果一般.Sharma等人[9]創(chuàng)建特征列表來尋找電影評(píng)論,雖然能比較準(zhǔn)確的找出評(píng)論中存在的特征,但因?yàn)榱斜聿⒉荒苋棵杜e,所以仍然會(huì)有特征沒有被提取出來.
現(xiàn)有的情感分析方法主要可以分為基于詞典與基于機(jī)器學(xué)習(xí)兩種方法.基于機(jī)器學(xué)習(xí)的方法包括使用樸素貝葉斯,支持向量機(jī),遞歸深度模型和最大熵等,它可以被用于特定領(lǐng)域的情感分析中.基于詞典的方法是指通過查詢字典獲取各個(gè)單詞的情感得分,以此來判斷句子傾向.Hu等人[6]選擇多個(gè)已知情感方向的形容詞生成種子列表,然后使用wordnet預(yù)測情感詞列表中所有單詞的情感方向.還有一些工作[9]借助SentiWordNet,得到每個(gè)單詞的情感得分,以此來判斷句子的情感傾向.由于借助情感詞典可以快速的得到單詞的情感得分,所以基于詞典的情感分析算法在多個(gè)領(lǐng)域都有良好的表現(xiàn).但是因?yàn)閱卧~的情感得分受上下文關(guān)系影響,所以獨(dú)立考慮每個(gè)單詞的得分有其局限性.
近年來,許多系統(tǒng)將用戶與項(xiàng)目間的關(guān)系建模為雙向網(wǎng)絡(luò).Chang等人[10]應(yīng)用監(jiān)督學(xué)習(xí)的方法來預(yù)測維基百科二分網(wǎng)絡(luò)中的隱藏連邊.Zhang等人[11]將社區(qū)結(jié)構(gòu)添加到用戶-項(xiàng)目關(guān)系中,并將原始算法與雙向網(wǎng)絡(luò)中檢測到的社區(qū)相結(jié)合,從而使建議更加個(gè)性化.Xia等人[12]提出了一種計(jì)算兩個(gè)不同節(jié)點(diǎn)之間的鏈接概率的方法.并且還提出了一些基于核函數(shù)的方法來用于雙向網(wǎng)絡(luò)鏈路預(yù)測.
物質(zhì)擴(kuò)散算法[4]的實(shí)質(zhì)是一種鄰居對(duì)象之間的資源重新分配算法.基于物質(zhì)擴(kuò)散算法,Chen等人[13]在物質(zhì)擴(kuò)散模型中考慮項(xiàng)目間的相似性以提高準(zhǔn)確率.Zeng等人[14]提出相似優(yōu)先擴(kuò)散機(jī)制,即加強(qiáng)或削弱與目標(biāo)用戶相似的用戶的權(quán)重.Wang 等人[15]將相似性函數(shù)與二分網(wǎng)絡(luò)相結(jié)合,基于相似性網(wǎng)絡(luò)使得資源重分配過程更加個(gè)性化.
當(dāng)下已經(jīng)有很多研究工作已經(jīng)證明基于聚類的推薦系統(tǒng)對(duì)于計(jì)算大規(guī)模數(shù)據(jù)集有效率高、擴(kuò)展性強(qiáng)等特點(diǎn)[16].本文使用評(píng)論挖掘提取產(chǎn)品的多維特征,使用密度聚類提高處理大規(guī)模數(shù)據(jù)的能力以應(yīng)對(duì)數(shù)據(jù)稀疏性對(duì)模型的影響,還提出了一種基于評(píng)分?jǐn)?shù)據(jù)的不對(duì)稱加權(quán)方法并將之用于雙層雙向網(wǎng)絡(luò)模型,最后在雙層圖網(wǎng)絡(luò)中使用物質(zhì)擴(kuò)散算法以實(shí)現(xiàn)個(gè)性化推薦.
對(duì)于不加權(quán)的二分網(wǎng)絡(luò),任意節(jié)點(diǎn)中的資源將平均分配給它的鄰居節(jié)點(diǎn).圖1顯示了這種分配的具體過程.如圖1(a)所示,三個(gè)項(xiàng)目節(jié)點(diǎn)最初被賦予的權(quán)重分別為x,y和z.資源分配過程首先從項(xiàng)目到用戶然后重新分配回項(xiàng)目.在每一步之后資源的分配情況如圖1(b)和圖 1(c)所示.經(jīng)過這兩個(gè)步驟之后,位于這三個(gè)項(xiàng)目節(jié)點(diǎn)中的最終資源分布用x′,y′ 和z′表示,其計(jì)算方法如公式(1)所示:
(1)
本文可以注意到公式(1)中的3×3矩陣有一個(gè)明顯的特點(diǎn),即每一列中元素的總和為1,由于每個(gè)項(xiàng)目節(jié)點(diǎn)連接到不同的用戶節(jié)點(diǎn),所以此矩陣是不對(duì)稱的.
圖1 二分網(wǎng)絡(luò)中資源分配過程Fig.1 Illustration of the resource-allocation process in bipartite network
對(duì)于一個(gè)二分圖網(wǎng)絡(luò)G(U,B,L),其中L為連邊集合,U={U1,U2,…,Um}和B={B1,B2,…,Bn}分別表示用戶和項(xiàng)目集合.設(shè)f(bi)表示物品節(jié)點(diǎn)bi的初始資源,lip是大小為n×m的分配矩陣,由連邊權(quán)重定義,k(bi)為分配矩陣lip的第i列元素的和.則經(jīng)過第一步資源流動(dòng)后,用戶節(jié)點(diǎn)up的資源大小為:
(2)
(3)
接下來資源從U流向B,最終物品節(jié)點(diǎn)bi的資源為:
(4)
或者寫做:
(5)
式中:
(6)
本文提出了一種基于評(píng)論分析雙層圖結(jié)構(gòu)的推薦方法(RM-DGR),其主要步驟包括:
1)基于評(píng)論的文本分析結(jié)果和用戶-商品(user-item)簽到關(guān)系,構(gòu)建用戶和商品的特征并分別進(jìn)行密度聚類.
2)構(gòu)建用戶簇和商品簇的雙層雙向二分圖網(wǎng)絡(luò),在雙層圖上使用物質(zhì)擴(kuò)散算法實(shí)現(xiàn)個(gè)性化推薦.
該算法的框架圖2所示.首先對(duì)評(píng)論進(jìn)行詞匯級(jí)情感分析,獲得各項(xiàng)目的特征向量,再根據(jù)簽到關(guān)系進(jìn)行特征映射,獲得各用戶的特征向量,以此對(duì)項(xiàng)目和用戶分別進(jìn)行密度聚類.之后使用用戶簇和項(xiàng)目簇構(gòu)建二部圖網(wǎng)絡(luò),在資源重新分配后,選中目標(biāo)用戶簇和得分最高的K個(gè)項(xiàng)目簇再次構(gòu)建二部圖網(wǎng)絡(luò),完成個(gè)性化推薦.
圖2 RM-DGR框架Fig.2 Framework of the RM-DGR
本節(jié)的目標(biāo)是通過對(duì)評(píng)論進(jìn)行情感分析構(gòu)建項(xiàng)目的特征向量.注意到句子中的特征有隱式特征與顯式特征之分,但是在評(píng)論中隱式特征出現(xiàn)次數(shù)極少[9],是故在此本文只考慮顯式特征.本文中情感分析的流程可以分為以下五個(gè)主要步驟:提取頻繁項(xiàng)、創(chuàng)建特征列表、將頻繁項(xiàng)與列表中的特征相匹配、判斷評(píng)論中句子的情感方向、針對(duì)每個(gè)特征總結(jié)所有評(píng)論.
3.1.1 特征提取
首先我們對(duì)評(píng)論文件進(jìn)行詞性標(biāo)注并刪除停用詞,停用詞通常是冠詞、介詞、連詞,它們經(jīng)常出現(xiàn)在文本中但卻沒有實(shí)際含義.這些停用詞會(huì)對(duì)特征提取造成干擾.由于產(chǎn)品的特征絕大多數(shù)是名詞或名詞短語并且出現(xiàn)得較為頻繁,因此本文提取評(píng)論中的頻繁名詞項(xiàng)作為候選特征.但是并不是所有頻繁名詞項(xiàng)都是真正的特征.為了刪除這種非特征的頻繁名詞項(xiàng),本文創(chuàng)建包含少量特征的特征列表并與word2vec配合使用.例如對(duì)于餐廳,本文可以如表1所示的列表.
創(chuàng)建的特征列表并不必包括太多的真實(shí)特征,只包含少量即可,接下來使用word2vec[17]對(duì)特征列表進(jìn)行擴(kuò)充.首先使用word2vec將單詞轉(zhuǎn)化為向量,選擇余弦相似度來度量每一個(gè)名詞頻繁項(xiàng)與特征列表中單詞的相似度,然后挑選出相似度大于閾值的名詞頻繁項(xiàng)作為特征.需注意的是,因?yàn)閣ord2vec產(chǎn)生的詞向量是基于文本的上下文關(guān)系,是故最終挑選出的特征未必都是名詞.
表1 特征列表
Table 1 List of features
聚類用特征特征食物food,vegetable,fruits,fried,eat,meat服務(wù)service,delivery,order,waiter環(huán)境environment,atmosphere,air,music,space
算法1.項(xiàng)目特征提取
過程(FC,S,θ,δ):
foreachsiinS
foreach wordinPOS tagging
ifword is noun
extract the noun word
endif
Count the number of times each noun word occurred
Extract noun words whose occurrence number greater thanθ
foreach frequent noun wordn
fi.extend(n)
break
endif
endfor
endfor
3.1.2 情感分析
情感分析的目的是根據(jù)評(píng)論句子中情感詞的情感傾向,判斷句子的傾向從而將評(píng)論句子進(jìn)行分類.情感詞是指能夠體現(xiàn)評(píng)論者情感傾向的單詞.情感分析的方法有多種,本文中選用的方法是SentiWordNet,它在很多研究工作中被使用并且表現(xiàn)良好.
SentiWordNet是一個(gè)龐大的字典資源.它包含一個(gè)很大的文本文件,存有字典中每一個(gè)單詞的用法與得分.借助SentiWordNet,對(duì)于每個(gè)單詞的每種用法,本文都會(huì)得到與之相應(yīng)的積極得分(PosScore)與消極得分(NegScore),將積極得分與消極得分相減,可以得到這種用法的得分.
Score=PosScore-NegScore
(7)
最終得分的取值在[-1,1]之間,大于0時(shí)該用法具有積極傾向,反之則具有消極傾向.
另外因?yàn)榫渥又斜硎厩楦袃A向的詞大多是形容詞、副詞、動(dòng)詞、名詞,所以本文提取句子中除了特征外的形容詞、副詞、動(dòng)詞、名詞作為情感詞.在根據(jù)情感詞計(jì)算句子的情感得分前,還必須考慮否定詞的存在,例如以下句子:
“The food in the restaurant is not terrible”
在這個(gè)句子中not 和 terrible的得分均為負(fù)值,若是直接將句子中的所有情感詞得分相加作為句子的得分,那么結(jié)果將不再準(zhǔn)確.所以在計(jì)算情感得分時(shí)必須考慮否定詞的存在.
本文中情感分析的步驟如下:
Step 1.尋找評(píng)論中含有特征的句子.
Step 2.對(duì)每個(gè)句子提取句子中除了特征外的形容詞、副詞、動(dòng)詞、名詞作為情感詞.
Step 3.如果句子中含有否定詞,則標(biāo)記否定詞之后距離否定詞最近的情感詞標(biāo)記優(yōu)先級(jí)為形容詞、副詞、動(dòng)詞、名詞.若之后沒有情感詞,則向前尋找情感詞.
Step 4.使用SentiWordNet 得到每一個(gè)情感詞的得分,對(duì)于被標(biāo)記的情感詞,它的最終得分為SentiWordNet得分的相反數(shù).
Step 5.將句子中所有情感詞的得分和作為句子的得分.
3.1.3 評(píng)論總結(jié)
在總結(jié)所有評(píng)論前,需要構(gòu)建每條評(píng)論的特征向量,假設(shè)有共有n個(gè)用于聚類用特征,則構(gòu)建評(píng)論R的特征向量MR的算法如下:
算法2.構(gòu)建評(píng)論特征向量
過程(S,F):
InitializeMRto zero vector;
foreachsiinS
Calculate the score of the sentencefs
Extract the characteristics of the sentencef
foreachfiinF
iffinfi
endif
endfor
endfor
returnMR
基于評(píng)論對(duì)不同特征的情感傾向,可以得到一個(gè)評(píng)論-特征矩陣,如表2所示.
表2 評(píng)論-特征矩陣
Table 2 Review-feature matrix
(8)
其中R為評(píng)價(jià)項(xiàng)目j的所有評(píng)論,m為其個(gè)數(shù).
3.2.1 距離度量
在構(gòu)建雙層圖結(jié)構(gòu)之前,我們首先要對(duì)用戶和項(xiàng)目分別進(jìn)行聚類.考慮到簇的個(gè)數(shù)與形狀的不確定性,我們采用Rodriguez 等人[18]提出的密度聚類算法,該算法能夠自動(dòng)確定聚類中心并在多個(gè)領(lǐng)域表現(xiàn)良好.
(9)
用戶間的相似性由他們間不同的條目數(shù)量決定:
dist(U1,U2)=num(s1-s2)
(10)
式中:
(11)
(12)
(13)
3.2.2 推薦過程
推薦過程分為兩部分:基于簇的個(gè)性化推薦和基于目標(biāo)用戶的個(gè)性化推薦.首先本文根據(jù)聚類結(jié)果建立用戶簇與項(xiàng)目簇之間的第一層二分網(wǎng)絡(luò),節(jié)點(diǎn)間的權(quán)重由用戶簇與項(xiàng)目簇之間的訪問記錄數(shù)定義.設(shè)P表示用戶簇節(jié)點(diǎn),I表示項(xiàng)目簇節(jié)點(diǎn).在這種情況下,對(duì)于公式(3)中的lip與ljp,計(jì)算方法為:
lIP=lPI=∑i∈I∑p∈Paip
(14)
式中:
(15)
之后通過公式(2)~公式(6)和公式(14)~公式(15),我們可以得到基于簇的個(gè)性化推薦結(jié)果.
本文通過構(gòu)建第二層二分網(wǎng)絡(luò)來完成針對(duì)目標(biāo)用戶的個(gè)性化推薦.第二層二分網(wǎng)絡(luò)使用目標(biāo)用戶所在的用戶簇和上一層簇推薦中的資源最高的K個(gè)項(xiàng)目簇來構(gòu)建.在第二個(gè)二分網(wǎng)絡(luò)中,每一個(gè)節(jié)點(diǎn)表示一個(gè)用戶或項(xiàng)目.考慮到用戶對(duì)項(xiàng)目的評(píng)分范圍為1~5,本文取3作為閾值來判斷用戶的情感取向從而得到兩個(gè)二分網(wǎng)絡(luò),其一由積極連邊構(gòu)成,另一個(gè)則由消極連邊構(gòu)成.
在第二層二分網(wǎng)絡(luò)中,用戶p和項(xiàng)目i間權(quán)重定義為:
(16)
對(duì)于表示消極傾向的二分網(wǎng)絡(luò),lip<0.通過這個(gè)二分網(wǎng)絡(luò)的個(gè)性化推薦可以表示用戶對(duì)每個(gè)項(xiàng)目的不喜歡程度.最后,將兩種二分網(wǎng)絡(luò)中各項(xiàng)目節(jié)點(diǎn)資源之差作為最終結(jié)果,從而得到最終推薦列表.
3.2.3 復(fù)雜度分析
對(duì)于密度聚類算法[18],計(jì)算n維數(shù)據(jù)的局部密度ρ,距離δ和劃分各數(shù)據(jù)點(diǎn)的時(shí)間復(fù)雜度均為O(n),所以聚類過程的時(shí)間復(fù)雜度為O(n).在雙層圖推薦過程中,因?yàn)榈诙訄D結(jié)構(gòu)中節(jié)點(diǎn)數(shù)量遠(yuǎn)大于第一層圖的節(jié)點(diǎn)數(shù)量,所以僅考慮第二層圖的時(shí)間復(fù)雜度.設(shè)目標(biāo)用戶簇中的用戶數(shù)量為N′,項(xiàng)目簇中的項(xiàng)目數(shù)量為M′,則雙層圖推薦的時(shí)間復(fù)雜度是O(N′*M′).因?yàn)镹′和M′遠(yuǎn)小于用戶數(shù)N和項(xiàng)目數(shù)M,所以雙層圖結(jié)構(gòu)有效地降低了MD算法的時(shí)間復(fù)雜度O(N*M).由于雙層圖推薦依舊需要存儲(chǔ)全部信息,所以它的存儲(chǔ)復(fù)雜度與MD算法相同,但是在第一層推薦后,我們可以刪除我們大量不需要的簽到信息,提前釋放大量存儲(chǔ)空間.
實(shí)驗(yàn)數(shù)據(jù)集是在第七屆Yelp數(shù)據(jù)競賽中使用的公共數(shù)據(jù)集.在本論文中,選擇簽到數(shù)量最多的三個(gè)州來測試本文的算法:拉斯維加斯,鳳凰城,斯科茨代爾,其中每個(gè)用戶至少含有5條訪問記錄.
除Yelp數(shù)據(jù)集外,我們還在Amazon數(shù)據(jù)集[19]上測試我們的算法.在實(shí)驗(yàn)中我們所選數(shù)據(jù)集為Amazon零食數(shù)據(jù)集,其中每個(gè)用戶至少含有10條訪問記錄.
過濾后各數(shù)據(jù)集的數(shù)據(jù)分布如表3所示.
實(shí)驗(yàn)中本文依據(jù)訪問時(shí)間8:2將數(shù)據(jù)集劃分為訓(xùn)練集和測試集.實(shí)驗(yàn)環(huán)境為PC i7-4710MQ和8 GBs RAM.
表3 各數(shù)據(jù)集的數(shù)據(jù)分布
Table 3 Data volume of the selected datasets
州 用戶數(shù)量餐廳數(shù)量簽到數(shù)量拉斯維加斯160664068202435鳳凰城5860258480820斯科茨代爾3076107138989亞馬遜4323856986876
本文使用準(zhǔn)確率、召回率、F值分析推薦結(jié)果.
(17)
(18)
(19)
在實(shí)驗(yàn)中使用的對(duì)比算法為IBCF 算法,UBCF 算法,NMF 算法和PMF 算法.除此之外,本文還將原算法與選擇性刪減后的原算法進(jìn)行比較,以驗(yàn)證聚類和評(píng)論挖掘?qū)λ惴ǖ挠绊?接下來本文簡單介紹這些對(duì)照算法.
DGR-Ⅰ:該算法直接使用所有的用戶與項(xiàng)目構(gòu)建二分網(wǎng)絡(luò).即通過單層網(wǎng)絡(luò)直接完成個(gè)性化推薦.
DGR-Ⅱ:該算法項(xiàng)目間相似度距離的度量方法與用戶相似,都是使用項(xiàng)目的標(biāo)簽信息進(jìn)行度量.
實(shí)驗(yàn)中Word2vec訓(xùn)練數(shù)據(jù)為部分維基百科數(shù)據(jù)集,其中單詞數(shù)量為15857306個(gè),詞匯數(shù)量是98331個(gè).在實(shí)驗(yàn)中本文選擇頻繁項(xiàng)閾值θ為評(píng)論個(gè)數(shù)的1%,相似度閾值δ為0.6,使用的特征列表如表4與表5所示.
表4 Yelp數(shù)據(jù)集使用的特征列表
Table 4 List of features used in Yelp datasets
聚類用特征特征食物food,vegetable,fruits,cook,eat,bite,meat,entrees服務(wù)service,delivery,order,waiter,waitress,parking環(huán)境environment,atmosphere,air,spot,music,fountains
表5 Amazon數(shù)據(jù)集使用的特征列表
Table 5 List of features used in Amazon dataset
聚類用特征特征Snacktaste,flavor,product,food,fried,spicy,snack,meatPriceprice,cost,worthHealthhealth,weight,calorie,nutrient,caffeine,vitamin
最終挑選出的頻繁項(xiàng)與特征信息如表6所示.我們可以看出使用頻繁項(xiàng)集挖掘算法和word2vec刪除了大量名詞項(xiàng)并且將原本只包含少量特征的特征列表大幅擴(kuò)展.
表7展示了RM-DGR與DGR-Ⅰ算法的運(yùn)行時(shí)間,表明了雙層圖結(jié)構(gòu)有效提高了MD算法的效率.
圖3-圖6展示了對(duì)于不同推薦長度k,各項(xiàng)指標(biāo)的變化曲線.從圖中可以看出RM-DGR的總體表現(xiàn)明顯優(yōu)于其他算法,尤其在拉斯維加斯區(qū)域內(nèi),各項(xiàng)指標(biāo)優(yōu)勢較為明顯.這表明評(píng)論挖掘與密度聚類的加入非常有效提高了算法在處理大規(guī)模數(shù)據(jù)時(shí)的準(zhǔn)確率.對(duì)于Amazon數(shù)據(jù)集,由于該數(shù)據(jù)集中用戶極少對(duì)同一家商戶有訪問記錄,所以所有算法在該數(shù)據(jù)集上的表現(xiàn)效果均有所下降,但是通過對(duì)比我們?nèi)阅馨l(fā)現(xiàn)相較于其他算法,RM-DGR仍有明顯優(yōu)勢.是故我們認(rèn)為在推薦算法中加入評(píng)論挖掘、聚類機(jī)制確實(shí)有助于提高推薦效果.在鳳凰城區(qū)域中,我們可以看到RM-DGR算法的準(zhǔn)確率與F值兩項(xiàng)指標(biāo)對(duì)于其他算法有一定優(yōu)勢,但在召回率一項(xiàng)上略低于對(duì)照算法DGR-I算法.這可能是因?yàn)樵邙P凰城區(qū)域數(shù)據(jù)中,項(xiàng)目個(gè)數(shù)較少的用戶所簽到的餐廳可能比較特殊,它們歸屬于較小的餐廳簇.如此一來,這些餐廳在簇推薦過程中被刪去,因?yàn)檫@些用戶的簽到餐廳個(gè)數(shù)少,所以這對(duì)召回率的影響較大,是故會(huì)出現(xiàn)準(zhǔn)確率高于對(duì)照算法,而召回率卻略低的情況.
表6 各數(shù)據(jù)集的名詞項(xiàng)、頻繁項(xiàng)與特征個(gè)數(shù)
Table 6 Number of frequent items and feature
州 名詞數(shù)量頻繁項(xiàng)數(shù)量特征數(shù)量拉斯維加斯83260375159鳳凰城47147394163斯科茨代爾36584349147Amazon40731369167
圖3 拉斯維加斯區(qū)域的實(shí)驗(yàn)結(jié)果Fig.3 Evaluation results comparing with other algorithms in Las Vegas
圖4 鳳凰城區(qū)域的實(shí)驗(yàn)結(jié)果Fig.4 Evaluation results comparing with other algorithms in Phoenix
圖5 斯科茨代爾區(qū)域的實(shí)驗(yàn)結(jié)果Fig.5 Evaluation results comparing with other algorithms in Scottsdale
圖6 亞馬遜零食數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果Fig.6 Evaluation results of controlled experiment in Amazon
表7 雙層圖結(jié)構(gòu)對(duì)MD算法的影響(s)
Table 7 Effect of double-layer graph on MD algorithm(s)
州RM-DGRDGR-Ⅰ拉斯維加斯63.688.7鳳凰城13.625.4斯科茨代爾4.713.7Amazon43.466.2
相比對(duì)照算法僅使用評(píng)分一項(xiàng)特征,本文使用評(píng)論挖掘分析多種特征可以更好地對(duì)項(xiàng)目進(jìn)行建模.在圖推薦前加入密度聚類,一方面使得圖中節(jié)點(diǎn)數(shù)大量減少,另一方面經(jīng)過簇推薦也過濾了大量明顯不相干的項(xiàng)目,是故本文在各數(shù)據(jù)上可以取得更好的推薦效果.
本文提出了一種基于評(píng)論分析雙層圖的推薦方法.我們的目的是克服傳統(tǒng)的個(gè)性化推薦算法的缺點(diǎn):這些算法具有較高的時(shí)間復(fù)雜度,僅僅使用評(píng)分信息,不能有效地解決數(shù)據(jù)稀疏性等問題.我們的算法步驟如下:首先,通過詞匯級(jí)情感分析和基于簽到關(guān)系的映射,得到用戶和項(xiàng)目的特征信息,然后分別對(duì)用戶和項(xiàng)目進(jìn)行聚類.接下來,根據(jù)聚類結(jié)果,采用基于雙圖結(jié)構(gòu)推薦算法,對(duì)用戶進(jìn)行個(gè)性化推薦.在未來,我們的目標(biāo)是尋找將文本信息嵌入圖結(jié)構(gòu)的更合適的方法并在模型中考慮社交關(guān)系,以此得到更合理的個(gè)性化推薦結(jié)果.并且,我們也想建立一個(gè)更完整的動(dòng)態(tài)推薦系統(tǒng).