賈俊杰,姚葉旺,陳旺虎
(西北師范大學計算機科學與工程學院,甘肅 蘭州 730070)
網絡信息的爆炸增長,導致人們在選擇心儀的商品或服務時極易陷入“信息過載”的窘境。推薦系統作為緩解信息過載問題的重要手段,得到廣大學者的研究[1]。該技術通過對用戶大量歷史行為數據進行深度挖掘,分析出不同用戶的偏好與需求,實現向用戶精準推送[2]。傳統的個性化推薦系統采用協同過濾[3]和矩陣分解[4]等手段,在單個用戶的預測評分和推薦方面取得巨大成功,被廣泛應用于電子商務、音樂和新聞等領域。
隨著交通工具和媒介技術的不斷革新,人們之間的交往變得越來越簡單、頻繁,用戶的消費或娛樂行為也越來越傾向于以群組的形式進行,如旅游、聚餐等。多人參與便會產生分歧和沖突,群組更是如此,針對同樣的商品,群組內的不同成員往往有不同的意見與喜好。在此情況下,傳統的個性化推薦系統無法解決群體內部的偏好沖突問題,群組推薦系統[5]便應運而生。
群組推薦系統的目標是向多用戶組成的群組進行推薦,其核心是提取并融合組內不同成員之間的偏好,最大程度地緩解偏好沖突,建立群組模型。目前主流的融合策略有均值策略AVG(AVeraGe strategy)[6]、最小痛苦策略LM(Least Misery strategy)[7]、最開心策略MP(Most Pleasure strategy)[8]、最受尊敬者策略[9]、痛苦避免均值策略[10]和基于以上傳統策略的加權結合方法[11,12]等。但是,傳統策略往往存在各種弊端,如均值策略僅僅把組內各成員的評分均值作為群組評分進行偏好建模,雖然執行簡單,但忽視了成員的貢獻度,群組偏好易被貢獻度較低的成員擾亂;最小痛苦策略和最開心策略簡單選取組內的最低或最高評分作為群組評分,忽視了組內大部分人的喜好,容易帶來不公平性問題;最受尊敬者策略以某一成員偏好代表整體,有失偏頗;痛苦避免均值策略通過對超過痛苦閾值的評分求取均值建立群組模型,可以在一定程度上避免惡意評分的干擾,但痛苦閾值的選取需視情況而定,且該策略沒有考慮群體成員的整體偏差。
本文在此基礎上,提出一種基于非負矩陣分解的群組推薦算法GRBNMF(a Group Recommendation algorithm Based on Non-negative Matrix Factorization)。通過K-Means聚類發現群組,對群組內用戶評分矩陣,利用非負矩陣分解得到用戶矩陣和項目矩陣。計算項目矩陣中各項目在不同隱含類別下的隸屬度和用戶矩陣中各成員在不同隱含類別上的專業度,并結合隸屬度和專業度得到各成員針對不同項目評分的貢獻度,依據成員貢獻度對成員偏好加權融合得到群組偏好,由此產生群組推薦列表。相比于傳統融合策略,本文算法根據群組中專家成員對整個群組偏好的影響,降低了普通成員對融合結果的干擾。
本文主要貢獻如下:
(1)提出了一種群組偏好建模方法,該方法從群組成員對隱含項目類別的專業度出發,通過非負矩陣分解獲取組內成員在每個項目上的貢獻度,以此為依據構建群組偏好模型;
(2)提出了一種基于非負矩陣分解的群組推薦算法,該算法可以避免非專家成員對融合結果的干擾,解決了一般的群組推薦問題。
近年來,有許多學者對群組推薦系統進行了深入研究,這些工作的重心基本都是圍繞在群組成員的偏好融合方面。
在偏好融合的過程中,根據群組建模發生的時間不同,可將偏好融合分為模型融合和推薦融合,如圖1所示。

Figure 1 Schematic diagram of two aggregation methods圖1 2種融合方法示意圖
模型融合先對成員偏好進行融合構建群組偏好模型,可根據群組模型生成推薦列表;推薦融合是先對群組成員進行個性化推薦,再融合成員個人的推薦結果得到群組推薦結果。2種融合方法的優劣不能一概而論,但其缺點都較為明顯,模型融合易受評分稀疏性的影響,推薦融合則忽略了群組之間的交互,因為個人行為易受群體影響[13]。
在融合策略方面的研究中,陳君同等[11]針對旅游組推薦提出一種滿意度平衡策略,該策略在融合過程中結合均值策略和最小痛苦策略,提升了群體成員的推薦滿意度。陶永才等[12]提出一種混合融合策略,在分歧閾值的兩側分別采用最受尊敬者策略和均值策略完成偏好融合,但閾值的選取往往需視情況而定。針對組內成員的評分預測,鄭偉等[14]認為在同一群組中用戶的未知偏好會受到組內其他成員的影響,基于此提出了一種偏好預測算法,但該算法時間復雜度較高。Wang等[15]結合信任社交網絡對群體成員的偏好進行修正,但通常情況下信任度難以獲取,因此該方法并不易于實施。
自從矩陣分解模型在Netflix Prize大賽上一鳴驚人之后[16],人們紛紛展開了將矩陣分解應用于推薦系統的研究。到目前為止,矩陣分解模型已經在個性化推薦系統上取得傲人成績,但將其應用于群組推薦的算法卻寥若晨星。王海艷等[17]受潛在因子模型與狀態空間模型啟發,提出一種基于動態卷積概率矩陣分解的群組推薦方法,該方法在潛在因子模型下可以充分挖掘用戶與服務的隱含關系,幫助生成潛在群組,提高推薦質量。王剛等[18]將群組成員間的關系加入聯合概率矩陣分解,提高了群組推薦的準確率。Ortega等[19]在傳統矩陣分解基礎上,通過計算群組成員對項目的評分數量和評分一致性為候選項目添加權重,再通過融合項目權重進行組推薦。Zhang等[20]在考慮了項目的自然屬性以及用戶興趣會隨時間發生動態變化的基礎上,提出一種按項目加權的矩陣分解模型,通過將該模型與時效函數相結合,提升了群組推薦系統的查全率與查準率。由此可見,矩陣分解模型在群組推薦系統上依然可以發揮其獨特的優勢[17-20]。但是,傳統矩陣分解因為受到初始值和更新方法的顯著影響,無法保證獲得一個穩定的解,因此也無法建立一個穩定且唯一的群組偏好模型[21]。在Lee等[22]提出非負矩陣分解模型之后,因該模型實現上的簡便性,分解形式和分解結果的可解釋性,在計算機視覺和數據挖掘等方面得到廣泛應用。Wang等[21]利用可分離非負矩陣分解在全局空間上挖掘群組成員的貢獻度,并依據成員貢獻度對成員評分進行加權融合建立群組偏好模型。該方法在一定程度上緩解了組內矛盾,但其在偏好融合過程中對用戶知識背景和項目固有屬性(即隱含類別)之間的關系欠缺考慮。
基于以上研究啟發,本文考慮從隱含項目類別入手,利用非負矩陣分解分析成員專業度,嘗試緩解非專業成員對融合結果的影響,以期建立準確率更高的群組偏好模型,實現高效的群組推薦。
矩陣分解將高維用戶項目評分矩陣Rm×n分解為2個低維用戶矩陣Um×k和項目矩陣Vk×n,其中用戶矩陣表示用戶對k個隱含項目類別的偏好程度,項目矩陣表示項目在k個隱含項目類別上的隸屬程度。通過2個特征矩陣相乘完成對原評分矩陣的擬合,并在擬合過程中對特征矩陣進行不斷更新。矩陣分解可以表示如式(1)所示:
Rm×n≈Um×kVk×n
(1)
其中,Rm×n表示原用戶項目評分矩陣;Um×k表示用戶特征矩陣;Vk×n表示項目特征矩陣;m和n分別表示用戶和項目的數量,k為隱含項目類別數量。
非負矩陣分解NMF(Non-negative Matrix Factorization)在矩陣分解的基礎上對特征矩陣加上非負的約束條件,即同時要求:U和V中元素不小于0。
這種非負性的約束會導致相應描述在一定程度上的稀疏性,但稀疏性的表述已被證明是介于完全分布式和單一活躍分量的描述間的一種有效數據描述形式,并且這種稀疏性的描述能使對數據的解釋變得方便(少量活躍的分量使數據的組成方式變得清晰)與合理(在評分中不可能存在負值)[23]。
為使式(1)最大程度地逼近原評分矩陣,建立的目標函數如式(2)所示:

(2)
其中,ri,j表示原評分矩陣中的元素值,β為正則項系數。
根據Lee等[24]提出的乘性迭代規則求解目標函數,最終得到的迭代式如式(3)和式(4)所示:
(3)
(4)
當前,群組推薦系統還沒有統一的形式化定義,本文從群組推薦的一般步驟出發對其進行簡單闡述。
定義1群組G是由若干有偏好意愿的用戶組成的集合,G={ui|0
定義2群組偏好profileG,i=∑uu∈Gωu,iprofileu,i,其中profileG,i表示群組G對項目ii的偏好,通常以評分表示;profileu,i表示成員uu對項目ii的偏好;ωu,i是群組G中成員uu在項目ii上的權重,不同的權重可以代表不同的偏好融合策略。如ωu,i≡1/|G|時,上式可以表示均值策略;而當評分最低的成員權重為1,其他成員權重為0時,上式可以表示最小痛苦策略。
定義3Top-N組推薦:群組推薦系統一般將候選項目集中前N個偏好得分最高的項目推薦給群組,候選項目集一般為未被所有成員消費的項目集合。對于給定的群組G,可從候選項目集I中得到一個群組推薦列表IG,如式(5)所示:
|IG|=N,?ii,ij∈I,
s.t.profileG,i≥profileG,j,ii∈IG,ij?IG
(5)
且IG中的項目按照群組偏好降序排列。
在群組推薦系統中,推薦結果的好壞不僅依賴于偏好融合策略的設計,而且在很大程度上受到組內相似度的影響。一般而言,組內相似度越高,群組的偏好沖突就越小,對推薦結果的整體滿意度也就越高。而相對地,組內相似度越低,說明組內成員的興趣愛好大相徑庭,正所謂眾口難調,在此情況下,群組對推薦結果的滿意度往往也比較低。因此,發現內部更為相似的群組對提高推薦結果的滿意度有著至關重要的作用。
K-Means聚類算法因其實現簡單、收斂速度快的優勢,成為最常用的聚類算法之一。本文根據文獻[25],以用戶評分向量之間的Pearson相關系數為度量,采用K-Means對評分數據集中的用戶進行多次聚類,生成大小不一的多個群組。Pearson相關系數的計算公式如式(6)所示:
sim(uu,uv)=
(6)

通常,評分數據集中用戶數量遠少于項目數量,因此一般的評分數據集往往稀疏度都非常高,同時Pearson相關系數的計算非常依賴共同評分項。為緩解評分稀疏對用戶聚類結果的影響,在對用戶聚類之前先對項目聚類,使相似項目位于同一個簇中。之后,計算用戶對每個項目簇的評分均值作為用戶的評分向量,減少用戶的空白評分,使Pearson相關系數的計算更加準確。最后,對用戶進行聚類產生群組。由于一個用戶可以屬于多個群組,反復執行聚類過程產生大量群組。假設原評分數據如表1所示。

Table 1 Rating table表1 評分表
先對表1中項目進行聚類,假設項目聚類結果為S1={i1,i2,i3,i4,i5}和S2={i6,i7,i8,i9,i10}。然后對各項目簇的評分取均值可實現用戶評分向量的降維,如用戶u1降維后的評分向量就是[3.2,1.4]。在此基礎上對用戶聚類,假設表1產生G1={u1,u2,u3,u4}和G2={u5,u6,u7,u8}2個群組。算法的具體描述如算法1所示。
算法1群組發現算法
輸入:評分矩陣Rm×n,項目種類p,群組數量q。
輸出:q個群組。
步驟1K-Means(items);//items為R中的所有項目
步驟2 Foruuinusers://users為R中的所有用戶
步驟3ru=[avg(rcluster1),avg(rcluster2),…,avg(rclusterp)];/*clusterp為項目聚類后第p個項目簇*/
步驟4 EndFor;
步驟5K-Means(users);//對降維后的用戶進行聚類
步驟6 Returnqgroups。
在實際生活中,一個項目通常具有多個屬性,如一部電影,它可以屬于某個年代,也可以屬于某幾種類型。在群組決策的過程中,針對不同的項目屬性,成員之間的話語權往往各不相同。一般情況下,對于項目所涉屬性具有較多專業背景知識的成員話語權更高,在決策過程中的貢獻度也更高,決策結果也常傾向于此。通常,用戶專業程度與其興趣度成正比,而用戶興趣度常以用戶特征矩陣中的偏好值表示。
本文算法通過分析群組成員對隱含項目類別的專業程度,使偏好融合的結果傾向于更為專業的成員。通過預測評分矩陣對原評分矩陣中的空值填充得到填充評分矩陣,針對成員專業背景知識對群組偏好的影響,通過項目矩陣計算項目在各隱含項目類別下的隸屬度,并結合各成員在用戶矩陣計算得到的各隱含類別上的專業度,形成成員在各項目上進行偏好融合的貢獻度,根據成員貢獻度對成員偏好加權融合得到群組偏好。
通過表1所得群組G1={u1,u2,u3,u4}作為示例進行演示,利用NMF建立群組偏好模型的步驟如下所示:
步驟1填充評分矩陣。
對于一個給定群組G,設其評分矩陣為RG∈R|G|×n,如式(7)所示:
(7)
其中,|G|表示群組規模,n表示項目數量,ri,j表示成員ui對項目ij的評分。
對RG進行非負矩陣分解得到用戶矩陣UG∈R|G|×k和項目矩陣VG∈Rk×n,分別如式(8)和式(9)所示:
(8)
(9)
其中,k為隱含項目類別數量,且k≤|G|?n;ui,x表示成員ui對隱含項目類別x的偏好值;ix,j表示項目ij在隱含類別x上的屬性值。
則對群組G1有:
(10)
設k=2,對RG 1分解可得(四舍五入保留2位小數):
(11)
(12)
(13)


(14)
經上述步驟可得G1的填充評分矩陣RFG 1如式(15)所示:
(15)
步驟2計算項目隸屬度和成員專業度。
通過項目矩陣可計算項目ij在隱含項目類別x下的隸屬度iweight(j,x),如式(16)所示:
(16)
上述矩陣VG1中,i1在2個隱含項目類別下的值分別為2.28和0.16,計算得到總屬性值為2.44,之后可得iweight(1,1)=2.28/2.44=0.93,iweight(1,2)=0.07。
項目的屬性權重面向的是隱含項目類別,與之不同是,成員專業度的權值計算面向的是群組。因此,可通過用戶矩陣得到成員ui對于隱含項目類別x在群組G中的專業度uweight(i,x),如式(17)所示:
(17)
例如,在矩陣UG1中,4位成員在隱含項目類別1上的總偏好值為1.84+0.17+1.24+2.55=5.8,可計算得到uweight(1,1)=1.84/5.8=0.32。
步驟3得出成員貢獻度矩陣。
以上可得項目隸屬度矩陣VW∈Rk×n和成員專業度矩陣UW∈R|G|×k分別如式(18)和式(19)所示:

(18)

(19)
在矩陣VW中,每一列表示項目在不同隱含類別(屬性)下的隸屬度;在矩陣UW中,每一行表示群組成員對于不同隱含項目類別在群組中的專業度。因此,通過UW和VW2個矩陣點積可得群組成員對于不同項目在群組中所占權重,以此表示各成員在不同項目上偏好融合時的貢獻度,即:
UIW=UW·VW=

(20)
其中,weight(i,j)表示群組G中成員ui對于項目ij在偏好融合時的貢獻度。
對群組G1,通過步驟3可得項目隸屬度矩陣VWG1和成員專業度矩陣UWG1,分別如式(21)和式(22)所示:
VWG1=

(21)
(22)
通過式(21)和式(22)中2個矩陣可得成員貢獻度矩陣(四舍五入保留2位小數),如式(23)所示:
UIWG1=

(23)
步驟4群組偏好。
此時,將G中所有成員對項目ij填充后的評分與其貢獻度相乘的結果進行累加,得到群組G對項目ij的評分rG,j,即群組偏好,如式(24)所示:
(24)
如計算群組G1對項目i1的評分,如式(25)所示:
rG1,1=0.31×5+0.06×0.82+
0.22×4+0.41×5=4.53
(25)
根據式(24),在計算G對候選項目評分的過程中即可建立群組偏好模型。
通過上述方法完成群組建模之后,便可在群組偏好中選取前N個評分最高的項目進行推薦。本文所提GRBNMF算法的框架圖如圖2所示。

Figure 2 Framework diagram of GRBNMF algorithm圖2 GRBNMF算法框架圖
在第1階段,通過K-Means算法對用戶聚類發現潛在群組;在第2階段中,采用NMF模型對群組評分矩陣進行分解,從成員知識背景和項目固有屬性之間的關系出發,獲得了群組成員對不同項目的貢獻度,依據成員貢獻度構建了群組偏好模型;在第3階段,通過群組模型生成了Top-N推薦列表。
本文算法(GRBNMF)的具體描述如算法2所示。
算法2GRBNMF算法
輸入:群組G的評分矩陣RG,隱含項目類別數量k,候選項目集I,推薦數量N。
輸出:Top-N推薦列表。
步驟1NMF(RG);
步驟2RFG←U·V;//對RG中的空值賦值
步驟3UW←U,VW←V;
步驟4UIW=UW·VW;
步驟5 ForiiinI:
步驟6rG,i=∑uu∈Gweight(u,i)·rfu,i;
步驟7 Endfor;
步驟8sortedrG,iby descending order;
步驟9selectNhighest items;
步驟10ReturnTop-Nlist。
本文使用MovieLens公開電影評分數據集進行實驗驗證,它分為多個版本,本文實驗所使用的ML-100K數據集信息如表2所示,其它的信息還包含每個電影的標簽、每個用戶的職業、年齡、郵編等個人信息。本文在實驗中將數據集按照8∶2的比例分為訓練集和測試集,將算法在訓練集上進行訓練,訓練完成之后在測試集上進行驗證。

Table 2 ML-100K data set information表2 ML-100K數據集信息
(1)推薦準確率。
歸一化折損累計增益nDCG(normalized Discounted Cumulative Gain)是評價推薦系統的常用指標,被廣泛用于衡量群組推薦的準確率。每個用戶的nDCG的計算如式(26)和式(27)所示:
(26)
(27)
其中,DCG@N表示用戶對推薦列表中N個項目的真實評分與其在列表中相對位置的滿意程度,reli表示用戶對推薦列表中排名第i的項目的評分。IDCG@N是最好情況下的DCG@N的值,即推薦列表對于用戶個人而言是按照評分降序進行排列的。
nDCG@N由DCG@N和IDCG@N的比值得來,其取值在0~1,且nDCG@N越大,說明用戶對推薦列表的滿意度越高,推薦效果越好。實驗中計算群組內每個成員的nDCG@N的值,以均值表示群組的nDCG@N值。
(2)推薦列表多樣性。
推薦列表的多樣性是指推薦列表內的項目在種類或類型上彼此不同,多樣性越高,說明推薦列表的質量越高,推薦效果越好。本文使用Jaccard距離來計算推薦列表多樣性,具體如式(28)和式(29)所示:
(28)
(29)
其中,distanceJac(ij,il)表示兩者之間Jaccard距離,ijgenre表示項目ij包含的類型。
群組推薦的結果受群組特征的影響,群組特征主要包括群組規模(group size)和組內相似度(intra-group similarity)[26]。群組規模表示組內成員個數,組內相似度指群組中任意2個用戶相似度的最小值[26]。本文首先從群組特征的2個方面出發,針對均值策略AVG[6]、最小痛苦策略LM[7]、最開心策略MP[8]以及Ortega等[19]提出的WBF(Weighted Before Factorization)算法,驗證本文GRBNMF算法的可行性。
同時,為探究項目隸屬度和成員專業度對本文算法的影響,在對比實驗中設置基于成員專業度MPro(Member Professional degree)的方法,該方法忽略項目的多元屬性,并將其歸為隸屬度最大的一類,針對該類別下成員專業度進行偏好融合生成群組推薦列表。忽略成員專業度的偏好融合方法即為均值策略。
此外,在研究不同算法在不同群組規模下的推薦性能時,針對群組的產生方式,設置2類由不同方法發現的群組,即本文群組發現算法產生的群組(group size-Simi)和隨機產生的群組(group size-Rand),以評估群組發現算法對群組推薦效果的影響情況。
最后,因為本文算法基于非負矩陣分解,所以在驗證算法在不同群組特征下的可行性之后,探究不同k值對算法的影響也是非常必要的。
5.3.1 群組規模
為研究不同算法在不同群組規模下的推薦性能和群組發現算法對推薦效果的影響,從由群組發現算法產生的群組和隨機產生的群組中隨機選擇不同規模的群組進行實驗。選取群組規模從5開始,間隔為5,直到30為止。實驗中推薦列表長度N取10,正則項系數β為0.005,矩陣分解最大迭代次數設置為1 000,k值隨群組規模改變,但所有算法都是基于同一個分解結果,因此并不影響。
(1)推薦準確率。
根據圖3得到的實驗結果,橫向來看,在由群組發現算法產生的群組中,本文算法除了在群組規模為10和30時推薦準確率略低之外,在其他情況下均明顯高于其他對比算法。尤其在群組規模為20時,本文算法推薦準確率較均值策略提高6%,較最小痛苦策略則提高了9.2%。在由隨機產生的群組中,本文算法在推薦準確率方面普遍優于其他算法,這是因為隨機產生的群組組內相似度普遍較低,內部偏好沖突較大,而本文算法通過選取專家成員緩解了內部沖突,使推薦準確率保持在較為穩定的水平。而推薦準確率總體呈現一種先上升后下降的趨勢,這是因為在選擇群組規模時沒有考慮組內相似度。從縱向觀察可知,推薦準確率受組內相似度的影響較大,這也從側面表明群組推薦的效果受群組發現算法的影響顯著。

Figure 3 Accuracy rate under different group sizes圖3 不同群組規模下的推薦準確率
(2)推薦列表多樣性。
推薦列表多樣性通常與準確率負相關,從圖4的實驗結果可以看出,本文算法在準確率明顯高于其他算法的情況下,多樣性常介于其他算法之間。在群組規模為15時,本文算法在準確率高于其他算法的情況下,多樣性也高于其他算法。這是因為本文算法能夠充分分析成員偏好及其貢獻度,使得每位成員喜歡的項目都有可能被推薦。在群組規模為10時,本文算法在犧牲較低準確度的情況下,換來了多樣性的極大提升。

Figure 4 Diversity under different group sizes圖4 不同群組規模下的推薦多樣性
結合圖3和圖4來看,本文算法能夠在不同的群組規模下發揮較好的推薦性能。最開心策略在上述實驗中表現較差,這是因為在選擇不同的群組規模時無法保證組內相似度的一致性,而組內相似度也會對推薦結果造成一定的影響。
5.3.2 組內相似度
為了探究組內相似度對推薦結果的影響并從多方面衡量本文算法的優劣性,設置相似度閾值為0.4,將相似度低于此閾值的群組設為低相似度群組,高于的則記為高相似度群組,群組規模固定為12,其余參數與上文一致,進行如下對比實驗。
(1)推薦準確率。
從圖5的實驗結果可看出,本文算法無論在高相似度群組還是在低相似度群組中都有著較高的推薦準確率。尤其在組內相似度較低時,本文算法的推薦準確率高于基于成員專業度的算法10%,高于WBF 7%,高于均值策略和最小痛苦策略13%和25%,有著較為穩定的發揮。這是因為本文算法從隱含項目類別對群組成員的知識背景進行了詳細分析,使得群組模型在專家成員的影響之下更為準確??傮w來看,推薦準確率與組內相似度之間呈現一種正相關,組內相似度越高,推薦準確率就越高。

Figure 5 Accuracy rate under different intra-group similarities圖5 不同組內相似度下的推薦準確率
另外,結合圖5和圖3b來看,即使是在圖5的低相似度群組中,推薦列表準確率依舊顯著高于圖3b中群組的推薦列表準確率。這說明由群組發現算法得到的即便是低相似度群組,其組內相似度依舊顯著高于隨機產生的群組,這也從側面反映了本文群組發現算法對潛在群組的挖掘能力。
(2)推薦列表多樣性。
從圖6的實驗結果來看,本文算法在組內相似度較低時,推薦列表多樣性是最低的,相較于基于成員專業度的算法、WBF方法、均值策略和最小痛苦策略分別低了5.3%,2.6%,2.7%和12%,但這些與準確率的提升相比顯得微不足道。在組內相似度較高時,本文算法的推薦列表多樣性介于其他算法之間,且表現較好。

Figure 6 Diversity under different intra-group similarities圖6 不同組內相似度下的推薦多樣性
總結圖5和圖6的實驗結果可以看出,本文算法在組內相似度低和高時都可以發揮出色的推薦性能。
5.3.3k值
非負矩陣分解模型要求k的取值要小于或等于矩陣維度,因此,為了更好地觀察k值對本文算法的影響,選取規模較大的群組進行多次實驗。在實驗中選擇群組規模為50的10個群組,獲取每個群組在對應k值下的推薦準確率,以均值表示不同算法在該k值下的推薦準確率。由于WBF基于傳統矩陣分解,所以不在本次實驗范圍之內。推薦數量N取10,非負矩陣分解參數與上文保持一致,實驗結果如圖7所示。

Figure 7 Accuracy rate under different k values圖7 不同k值下的推薦準確率
從實驗結果中可以看到,本文算法受k值影響較大,這是因為如果k值選取不當,會使成員貢獻度計算失真,進而使群組模型偏差較大,降低推薦質量。從圖7中可以看到,均值策略幾乎不受k值影響,這是因為均值策略將所有成員貢獻度視為一致,從而擺脫了參數k的影響,其曲線略微波動是因為在不同的k值下得到的預測評分不同。但可以看到的是,在k值為[5,20]時,本文算法推薦準確率呈上升趨勢且高于其他算法,尤其在k值為20時,準確率大幅高于其他算法,這是因為候選項目類別約為20種。因而可得,當k值較為準確時,本文算法可以展現出色的推薦性能。
本文提出了一種基于非負矩陣分解的群組推薦算法,該算法從成員知識背景和項目固有屬性之間的關系出發,利用非負矩陣分解深入分析了群組中各成員在偏好融合時的貢獻度,建立了更加準確的群組偏好模型。之后,依據群組偏好模型產生了推薦列表。在MovieLens數據集上的實驗結果表明了本文算法的有效性。
盡管本文利用非負矩陣分解可以有效分析成員貢獻度,提高推薦性能,但通過矩陣分解得到的預測評分無法體現群組成員之間的交互和影響,如何將成員之間的交互加入矩陣分解模型,進一步提高群組推薦的準確率,將會是下一步研究目標。