吳彥文,寧 彬,李 斌
(華中師范大學 物理科學與技術學院,武漢 430079)
絕大多數(shù)推薦系統(tǒng)都是為個人推薦而設計的,通過挖掘個人的興趣愛好可以向個人推薦電影,音樂,書刊等.在某些情況下針對一個群體也可以使用推薦技術,例如一群朋友聚會計劃去餐廳吃飯,可以為群體提供可供參考的餐廳或者餐品信息.傳統(tǒng)的組推薦采取群組成員偏好融合的方式,其基本思想是提出融合模型,在用戶偏好提取階段對用戶的偏好進行模型融合,但是這種方式不適合群組成員差異度較大的情況.群組差異度較大時,采取去除差異而強行融合成一種偏好,這樣會大大降低推薦的準確度.此外,現(xiàn)有的組推薦技術在研究為群組成員提供更為準確的推薦時,忽略了對推薦結果的解釋,降低了推薦的透明度以及用戶對推薦的滿意度[1].為了解決上述問題,本文提出一種彌補群組成員差異的可解釋性組推薦方法,將群組劃分為相似性群組和差異性群組,對于不同的群組采取不同的推薦方法,并開展數(shù)據(jù)實驗對提出算法的可行性進行驗證.
當前,關于群組推薦的研究主要集中在相似群組的推薦,基于偏好融合的群組推薦,基于群組成員決策的群體推薦等[2,3].
相似群組的推薦是最早的組推薦研究之一.例如王海艷等為了找到具有較高用戶相似性的群組,在進行用戶關系融合時,將用戶的關注信息、興趣信息、標簽信息等多個維度的顯式信息都考慮在內[4].上述方法能夠有效提高群組推薦的精確度,但對群組中單個成員的偏好考慮較少,降低群組成員對推薦結果的滿意度.
在研究融合群組偏好方向,Zhang Yiru等認為不能將群組偏好融合看成是簡單的投票問題,從投票視角出發(fā)的建模無法構成在大量信息存在下偏好的最優(yōu)表示,應當考慮偏好關系中的不確定性,并以信念函數(shù)理論為基礎構建了偏好融合模型[5].胡川等提出一種改進的偏好融合方法,同時通過實驗得出了“群組偏好與個人偏好具有相似性”的結論,并將該結論應用在融合模型中,提高了推薦的準確率[6].但是上述的偏好融合方法有一個共同的缺點:在群組差異度較大的情況下群組的偏好融合越困難,并且模型融合的數(shù)據(jù)越稀疏,群組成員對融合貢獻就越少,降低了推薦的精度.
同時,在研究群組決策方向,Delic A等分析了由200人組成的55個群組的決策過程,得出“群組達成決策不僅取決于決策任務的類型,還取決于組成該群組的群組和個人特征”的結論,并以旅行團目的地推薦為例對該結論進行了驗證[7];Tran使用注意力機制來捕獲組中每個用戶的影響,具體來說即使模型通過學習組中每個用戶的影響權重,并根據(jù)其成員的權重偏好向組推薦項目[8];Nicola Capuano等從模糊數(shù)學的角度來評估群組成員的影響力,并在計算群組成員影響力時將用戶個性和人際信任考慮在內[9].這些在群組決策方向提出的方法或模型可以動態(tài)調整組推薦,但是在群組差異很大的情況會導致共識偏差很大,結果依然會降低推薦滿意度.
可見,組推薦方面的研究雖然眾多,但組推薦效果卻差強人意.而當前用可解釋性的推薦方法來解決推薦的滿意度是一個熱點,張永峰對推薦模型的可解釋性做出了研究,他利用詞組情感分析技術從大規(guī)模的用戶評論中提取產品屬性詞和表達不同情感的屬性,引入顯式變量,在此基礎上提出了一種基于詞組情感分析的顯式變量分解模型,提高了推薦的滿意度[1].這類算法在個人推薦領域得到廣泛的應用,但在群組推薦領域應用還較少,F(xiàn)ernando等提出一種群組的協(xié)同過濾推薦的計算方法,也指出推薦的可解釋性是組推薦新的挑戰(zhàn)[10].
綜上,本論文擬研究彌補群組成員差異、實現(xiàn)滿意度高的組推薦方法.為此,首先提出一種自適應劃分群組的方法,通過群組成員差異度計算,把群組分為差異性群組和相似性群組,分而治之.
1)對于相似性群組,本文采用融合偏好,依據(jù)決策權重生成推薦列表.其大體過程是通過群組成員間信任值計算出成員在群組中的決策權重,然后結合群組成員預測評分得到成員個人推薦列表和不推薦列表,并對成員列表項目的得分進行決策權重加權,最后對全部群組成員的推薦和不推薦列表進行混合,生成群組的TopN項推薦列表.
2)對于差異性群組,其成員的偏好具有多樣性,為了彌補群組成員的差異,本文提出一種考慮成員信任值的群組LDA模型(Group LDA Model Considering Member Trust Value).該模型先根據(jù)觀點檢測,對群組成員偏好和觀點概率分布建模,構建出<概念;主題;情感>三元組,然后利用該模型對候選項目進行評分預測,選取最高概率的評分作為對該項目的評分,其次結合概念、主題和情感標簽生成可解釋性推薦詞組,最后根據(jù)預測評分結合可解釋性詞組生成群體推薦列表,以期提高推薦的精度和滿意度.
本文根據(jù)群組成員之間的差異性情況采用不同的推薦策略,對本文問題給出形式化的定義如下.首先,系統(tǒng)中用戶由U={u1,u2,…,uU}表示,項目由E={e1,e2,…,eE}表示,R={Ri,j}U×E指用戶ui對項目ej的評分值組成的矩陣.另外,有關群組信息,系統(tǒng)中的群組由G={g1,g2,…,gG}來表示,其中,如果Gl,i=1表示用戶ui加入了群gl,否則Gl,i=0.系統(tǒng)中用戶的評論由由D={d1,d2,…,dD}表示.任意評分Ri,j都與用戶ui對項目ej的評論du,i相關聯(lián).給定對項目ei的評論Di,每一條評論d∈Di都由一組詞語表示,即d={w1,w2,…,w|d|}.
對于任意一條評論,按照如下標準定義其中包含主題、特征和情感.定義一個主題z作為分詞的概率分布,一條評論存在K個主題,z?{1,2,…,K}.定義一個概念為圍繞著主題特征的嚴格指示詞,由c表示,一條評論包含一個概念.情感定義為概率分布在正面和負面的情感標簽.每一個分詞wj都附有情感標簽lj,當分詞wj表示負面情緒時lj=-1、當分詞wj表示正面情緒時lj=1.本文將一條評論所包含的觀點v定義為有限混合三元組由概念、主題和情感組成<概念;主題;情感>,v=〈c,z,l〉.同時由于評論都是較短文本,本文假定在每個用戶評論d中僅存在一個觀點vd.
項目e∈E可以表示為視點上的混合,項目e中的觀點的概率分布由πe表示,主題在觀點上的概率分布由μ表示,概念在觀點上的概率分布由λ表示.對于用戶評論中的分詞,本文由φ表示概念,主題和情感標簽上的概率分布,該分布由超參數(shù)β上的Dirichlet分布導出[11,12].
為了更好的描述本文所提出的彌補群組成員差異的可解釋性組推薦方法,給出下面一些定義.
定義1.評分矩陣X∈RM×N通過正交非負矩陣分解得到3個非負矩陣,表示如式(1)所示.其中,U∈RM×K表示用戶的潛在特征、E∈RL×N表示項目的潛在特征、S∈RK×L為評分矩陣X的特征矩陣.
X≈USET
(1)
定義2.若群組中兩用戶ui和uj同時加入的群組gii,j,可以表示為式(2),gii,j的集合則由GIi,j表示.
gii,j={Gl,i=1∧Gl,j=1}
(2)
定義3.如果任意兩個用戶ui和uj的共同加入群集GIi,j≠?,表明用戶ui和用戶uj之間具有社交關聯(lián)性[13],那么就認為在群組決策時,用戶ui會對用戶uj的做出的決定有一定信任值,并且這種信任關系是相互的.群組gl中任意兩用戶ui和uj的信任值Ti,j可以表示為式(3):
Ti,j=Trust(ui,uj),GIi,j≠φ
(3)
本研究充分考慮了群組成員間可能存在較大的偏好差異,在組推薦過程中引入群組成員差異度計算,并以此為基礎將群組分為差異性群組和相似性群組,對兩種性質的群組采用不同的推薦方法.本文所提出的方法框架如圖1所示.本文所提的彌補群組成員差異的可解釋性組推薦方法主要包括以下步驟:
圖1 推薦框架
1)衡量用戶間信任值.計算任意兩用戶之間的信任值,將同時考慮用戶分別加入群組的數(shù)量、用戶同時加入群組的數(shù)量、用戶同時加入群組的規(guī)模等信息.
2)計算群組中用戶之間的差異度.任意兩個用戶之間的差異性從他們之間的信任值、用戶過往體驗過的物品和用戶對該物品的打分中得出.
3)相似性群組的推薦.相似性群組的推薦過程包括成員決策權重計算、個人推薦和不推薦列表的生成和決策權重混合的群組TopN推薦列表生成.
4)相似性群組的推薦.相似性群組的推薦包括對用戶評論的特征檢測和情感分析、構建<概念;主題;情感>三元組及其分布的求取、候選項目評分預測,最后生成TopN推薦和對推薦結果的解釋.
不同層次的社會信任關系對用戶決策的影響不同[14].本文通過用戶的群組信息來計算任意兩用戶的信任值,群組信息包括每個用戶分別加入的群組數(shù)量、兩用戶同時加入群組的數(shù)量以及兩用戶同時加入群組的規(guī)模信息都被考慮在內.某個群組規(guī)模很小,說明這個群組的所有成員可能具有較高的親密度,則可以認為加入該群組的用戶ui會對同樣加入該群組的用戶uj擁有較大的信任值.相反,如果用戶ui和用戶uj如果都在某個規(guī)模較大的群組,則認為群組成員之間的關系比較松散、互相之間的信任值也較低.本文計算用戶ui和用戶uj之間的信任值為式(4):
(4)
其中,|gl|表示群gl內擁有的成員數(shù)目.
本文依據(jù)對群組成員間差異度的計算將群組分成差異性群組和相似性群組,針對兩類的群組采用不同的推薦策略.
在一個群組中如果用戶ui和uj對項目ek的打分都屬于系統(tǒng)高分或者低分,認為他們具有相似性,如果用戶ui對項目ek打高分、而用戶uj打低分,則認為他們具有差異性.用戶ui和用戶uj的差異性可以用余弦相似度來計算,見式(5):
(5)
其中,Eui∪Euj表示用戶ui和用戶uj打分項目的交集,same(Eui∩Euj)表示用戶ui和用戶uj打同樣高分或低分的集合,contrary(Eui∩Euj)表示用戶ui和用戶uj打相反分數(shù)的集合.
將成員之間的信任值考慮進來,本文采用帶信任度權值的余弦相似度.帶信任度權值的余弦相似度計算公式如式(6)所示:
(6)
計算整個群組用戶的差異度,如式(7)所示,如果simgl大于0,則認為群組gl為相似性群組,反之則為差異性群組.
(7)
對于相似性群組,本文采用基于評分預測的方法的生成的個人推薦列表和不推薦列表,然后通過決策權重加權來生成群組的TopN推薦結果.
計算用戶ui在群組gl中的決策權重由用戶在群組中的平均信任值給出,如式(8)所示.當用戶ui群組中的平均信任值越高,群組中其它用戶在做決策時會更加考慮用戶ui的決定.
(8)
在計算群體中各個成員的決策權重之后,利用預設個人推薦系統(tǒng)進行評分預測.本文將系統(tǒng)中評分多的成員分成一組,并將組內成員的評分作為源評分矩陣;將群組gl中所有成員分為另一組,并將該群組中成員的評分作為目標矩陣,利用源矩陣對目標矩陣評分,預測得到群組中每個成員的項目評分列表.具體步驟如下:
第1步.抽取目標矩陣用戶偏好S.
(9)
(10)
(11)
(12)
(13)
(14)
第3步.評分預測
(15)
O為目標最優(yōu)函數(shù), ‖·‖F(xiàn)表示Frobenious矩陣范式.
評分預測矩陣R同樣可以可以表示為R=U1S1E1.其中,U1、S1、E1由式(15)通過梯度下降法的優(yōu)化算法、使用非負性的KKT互補條件求解得到[16].
在得到群組中每個成員的項目評分列表后,將預測評分屬于系統(tǒng)高分的項目作為該成員的推薦列表、預測評分屬于系統(tǒng)低分的項目作為該成員的不推薦列表.每個成員的推薦列表進行決策權重的加權后,對群組內所有成員的推薦和不推薦列表混合、出現(xiàn)在多個成員的項目的得分進行疊加形成群組推薦列表和不推薦列表,最后剔除同時在群組推薦列表和群組不推薦列表的項目、將群組推薦列表中剩余的項目按評分排序后作為TopN推薦結果.
對于差異性群組,用戶偏好存在較大的差異,個人推薦列表中包含的項目重合度較低,最終生成的群組TopN推薦列表評分普遍不高、群組成員對推薦結果的滿意度也不高.因此,本文提出一種考慮成員信任值的群組LDA模型,該模型通過對評論短文本的特征檢測和情感分析提取構建<概念;主題;情感>三元組,然后應用Gibbs EM采樣近似得到模型中隨機變量的后驗分布[17],最后依據(jù)分布對候選項目進行評分,將評分高的項目作為推薦結果、并結合三元組生成推薦解釋.
第1步.特征檢測及情感分析
本文對推薦平臺中使用描述性關鍵字作為活動的概念,Ci特征存在于活動e的評論中.為了從群成員評論d∈Di中提取出其對應的概念,本文使用word2Vec來計算給定概念c∈Ci和群成員評論d之間的相似度.由于分詞的質量隨著訓練數(shù)據(jù)量的增加而顯著增加,本文對word2Vec的訓練使用維基百科的數(shù)據(jù)進行訓練.然后使用訓練好的word2Vec模型來預測群成員評論中給定的概念e和評論中每個字符的相似度.相似度計算公式見式(16):
(16)
其中Nd表示評論中的字符數(shù).給定候選概念εi,與d最相似的概念將被視為相關概念.通過根據(jù)候選概念和群成員評論之間的相似性對文檔進行排序,找到每個群成員評論的相關概念,并在評論文本中選取一個合適的觀點為主觀點vd,表示為<概念;主題;情感>三元組.
第2步.Gibbs EM采樣
由于隨機變量之間存在著未知關系,本文使用Gibbs EM采樣去條件近似得到隨機變量的后驗分布.采樣的目標是近似得到后驗分布p(V,Z,L|W,ε,R,F).采樣程序分為3個步驟:
1)給定群成員u和活動e,采樣觀點f(u,e)的條件概率,給定當前的觀點狀態(tài),即P(f(u,e)=y|f(u,e),W,V,R);
2)給定推斷主題和情感標簽的值,在每個d∈D中對觀點v的條件概率進行采樣,即P(vd=v|V-d,ε,W,Z,R);
3)給定當前的觀點狀態(tài),對于字符wj,用情感來對主題zj的條件概率進行抽樣,情感標簽lj轉換標簽xj,即p(zj=k,lj=l,xj=x|v,X-j,L-j,Z-j,W,R,F).
具體描述如下:給定用戶u和活動e,首先在不帶(u,e)對f-(m,e)的采樣得到fu,e.因此對于用戶u對活動e的觀點,得到p(f(u,e)=y|f(u,e),W,V,R)如式(17)所示:
p(f(u,e)=y|f(u,e),W,V,R)∝
(17)
(18)
其中Tu,u′表示用戶u和u′之間的信任值;Fu表示群組中的信任關系.
對于用戶u為活動e撰寫的評論d,推斷所有其他隨機變量都得出觀點vd=v的條件概率,即式(19):
p(vd=v|V-d,ε,W,Z,R)∝
(19)
p(zj=k,lj=l,xj=x|v,X-j,L-j,Z-j,W,R,F)∝
(20)
給定上述的條件概率,針對每個評分r估計群組中用戶的觀點分布θr,v,每個項目e的觀點分布πi,主題的概率、觀點和分詞所表示的情感φ,觀點在概念上的分布λ和主題在觀點上的分布μ,針對每個評分r估計群組中用戶的觀點分布θr,v計算如式(21)所示:
(21)
第3步.推薦結果及解釋生成
(22)
對每個候選評分r排序p(rg,e=r|g,e),可以選擇具有最高概率的評分作為預測頻分,同時選取有高概率得高分的候選項目作為推薦結果TopN,并結合觀點三元組<概念;主題;情感>進行解釋.
本文在實驗中使用了Amazon Fine Food Reviews數(shù)據(jù)集.該數(shù)據(jù)集最早于2013年由Kaggle發(fā)布,并在2017年5月1日對該數(shù)據(jù)集發(fā)布了更新版本,本文使用的是這一更新版本(見表1).該數(shù)據(jù)集包含256059個用戶、74258件商品和568454條評論.評論信息不僅包括文本,還包括用戶對商品的數(shù)字評分,數(shù)字評分從1~5.但是該數(shù)據(jù)集并不包含群組信息,本文借鑒文獻[18]中的方式對數(shù)據(jù)集重構、進行群組劃分:如果用戶ui和用戶uj購買了相同的商品,則將用戶ui和用戶uj劃分到以該商品建立的一個群組.通過群組劃分,重構的數(shù)據(jù)集中的256059個用戶共形成了10619個群組,規(guī)模最大的群組有913個成員,規(guī)模最小的群組有10個成員.本文從重構的數(shù)據(jù)集中隨機選擇80%的數(shù)據(jù)作為訓練集,20%的數(shù)據(jù)作為測試集.
表1 數(shù)據(jù)集群組信息
對于推薦效果的評估,本文使用平均絕對誤差MAE(Mean Absolute Error)、準確率Precision@N和召回率Recall@N作為的評價指標.
MAE計算如公式(23)所示:
(23)
精確率和召回率表示如公式(24)和公式(25)所示:
(24)
(25)
其中,erecommend表示向群組g推薦的商品的集合,ebuy表示在測試集中群組g所有用戶購買過的商品的集合.
對于一個給定的群組,首先會計算群組差異度simgl,進行群組類別的判定,然后根據(jù)群組所屬的類別采用對應的推薦策略.
通過群組劃分共得到10619個群組,計算每個群組的差異度,最終這10619個群組中有8316個相似性群組、2303個差異性群組.
對差異性的群組,本文提出了一種考慮成員信任值的群組LDA模型.在LDA主題模型中,主題的數(shù)量會對實驗有很大的影響.為找到本文所提出模型的最佳參數(shù),在重構的數(shù)據(jù)集上使用Recall@10下的召回率進行實驗,來對主題個數(shù)的影響進行評估.實驗結果如圖2所示.可以看出,主題數(shù)量K應設置為20.
圖2 不同主題數(shù)量的Recall@10
本文使用3個對比方法,分別是AVE-CF、GD-MVL、和PF.
1)AVG-CF:群組中所有成員對項目評分的平均值作為群組對該項目的評分,然后利用項目相似性來生成推薦[2].
2)GD-MVL:采用群組發(fā)現(xiàn)的思想,在計算相似度矩陣時考慮了包括用戶的興趣信息和標簽信息在內的多個維度的信息[4].
3)PF:在偏好融合時考慮群組中成員對群組偏好有不同的影響程度,同時還考慮了項目熱度,最后利用群組的相似性來生成推薦[19].
為了評估本文所提出方法在不同數(shù)據(jù)稀疏度下的表現(xiàn),選取最優(yōu)參數(shù),使用MAE作為評價指標,在Amazon Fine Food Reviews重構數(shù)據(jù)集開展了實驗,實驗結果如表2所示.從實驗結果可以看出,使用群組成員對項目的平均分作為預測得分的AVG-CF方法總體表現(xiàn)最差,GD-MVL和PF在不同稀疏度下表現(xiàn)接近.本文所提出的方法在數(shù)據(jù)稀疏時,對于群組的不同情況能自適應采用評分數(shù)據(jù)跨域填充或者采用基于群組評論情感分析的評分預測策略,所以能更好的的應對數(shù)據(jù)稀疏性問題.
表2 不同稀疏度下各算法的MAE
為了更好地驗證本文提出算法的推薦效果,選取最優(yōu)參數(shù),繼續(xù)在 Amazon Fine Food Reviews重構數(shù)據(jù)集進行推薦準確率和召回率的實驗,設置向群組推薦商品的數(shù)量N分別設置為5、10、15和20.實驗結果如圖3、圖4所示.
圖3 Top-N精準率
圖4 Top-N召回率
從圖3、圖4中可以看出:基于協(xié)同過濾的AVG-CF算法表現(xiàn)較差,因為數(shù)據(jù)集中絕大多數(shù)用戶只有10條以下的購買、評論記錄,造成數(shù)據(jù)非常稀疏.本文所提出的算法在數(shù)據(jù)集上效果最好,其次是PF,因為PF同樣考慮了群組中的成員對于決策有不同的影響權重.由于沒有考慮成員偏好存在較大差異性的情況,所以在N值較小時,PF的準確率還要差一些.GD-MVL將最具有相似性的用戶劃分到一個群組,因此對于相似性較高的群組推薦效果是很好的,但是成員相似度不高的群組,推薦效果不太理想,所以整體的正確率表現(xiàn)一般.
表3為本文提出的算法在Amazon Fine Food Reviews數(shù)據(jù)集上生成的示例視點.第1列出了與視點相對應的概念;第2列列出觀點中的主題,第3列和第4列列出每個主題的正面和負面標簽的概率,第5列列出每個觀點的預測評分及其概率.
表3 生成觀點示例
在表3的示例觀點中,看到帶有相關主題和相應情感標簽的概念.對于每個觀點,第2列中的相關主題有助于解釋第一列中的概念,并且情感標簽會告知用戶觀點中的觀點.另外,也可以看到對于每個觀點,預測的評分與情感極性一致.
本文考慮到在組推薦任務中群組成員偏好可能相差較大,將群組劃分為相似性群組和差異性群組.在對群組進行劃分時,本文把群組成員的偏好和成員間的社會信任關系同時考慮進來.對相似性群組本文采用基于決策權重的群組推薦方法;對差異性群組提出了一種考慮成員信任值的群組LDA模型.該模型有兩個關鍵部分:觀點檢測和評分預測.從用戶評論中構建觀點三元組<概念;主題;情感>,同時提取觀點的概率分布,然后利用該模型對候選項目進行評分預測,選取概率較高的評分作為預測評分,最后依據(jù)評分得到推薦列表,同時結合觀點給出推薦結果的解釋.
在實驗部分,本文所提出的方法已經被證明是有效的.在使用3個基準數(shù)據(jù)集進行測試時,發(fā)現(xiàn)相對于其它方法有較大的提升.本文還表明,群組劃分和社會信任關系的使用可以提高推薦的準確性.與以前使用的簡單的基于主題解釋相比,使用<概念;主題;情感>三元組可以為群組成員提供的更多信息解釋,從而提升滿意度.
本文工作的局限性在于使用社會信任關系的維度較低,當前社交網(wǎng)絡中還廣泛存在眾多其它社會化信息,這些信息對組推薦也有一定的影響,因此多維度社會化信息的篩選以及在組推薦中有效的融合策略需進一步研究.同時在差異性群組的推薦中,本文提出的模型是基于主題模型構建,因此主題之間的條件獨立性原則上可能導致多余的觀點和主題,如何降低這一冗余也將是下一步工作的重點.