熊聰聰,林 穎,史艷翠,馮 闊
(天津科技大學人工智能學院,天津 300457)
當今互聯(lián)網(wǎng)發(fā)展迅速,同時互聯(lián)網(wǎng)信息量以爆炸式的速度增長,而這種信息量對用戶個人搜索而言異常困難,互聯(lián)網(wǎng)用戶需要花費大量時間去篩選符合條件的信息.推薦系統(tǒng)成為如何從眾多信息中篩選出符合用戶需要信息的方法之一.傳統(tǒng)推薦系統(tǒng)通過分析個人行為推薦,而現(xiàn)在社交網(wǎng)絡中,用戶不僅不是孤立的而且極有可能還與其他用戶存在大量的關系.在影視作品中,用戶會自主地根據(jù)觀看內(nèi)容為電影標記符合內(nèi)容的標簽.標簽作為電影最重要附屬信息,同時也是用戶對電影最直觀的感受,因此標簽可用于提取用戶行為首選項.大多數(shù)用戶有時會與朋友和家人一起觀看電影,需要考慮群組成員觀看的電影類型.
為了解決上述推薦問題,對群組推薦問題提出相關研究.目前,部分組推薦在用戶評分預測中直接使用聚類方法對用戶進行分類,這樣用戶的相似度僅依賴用戶評分矩陣,而部分組推薦則是挖掘分組之前用戶間的相似度信息[2].這樣對于標簽的信息量挖掘不足,標簽只是作為評分矩陣的附加信息,起到較小的作用.例如,鄭劍等[3]將標簽信息加入到項目相似度的計算過程中,隨后融入到矩陣分解.研究人員可以通過構(gòu)建用戶、項目、標簽的三維張量,挖掘數(shù)據(jù)之間的潛在關系.例如,楊林等[4]利用標簽懲罰機制和用戶評分構(gòu)建張量;曾輝等[5]則根據(jù)用戶使用產(chǎn)品的活躍性以及用戶之間相似性對用戶聚類,構(gòu)建用戶、項目、標簽之間的權(quán)重.這樣能將標簽與用戶的聯(lián)系建立起來,而不是作為權(quán)值添加進評分矩陣.
鑒于以上研究,本文提出了一種基于標簽的電影組推薦方法.首先對標簽信息與結(jié)合時間因素的評分矩陣分別計算用戶相似度,融合二者相似度后,對用戶聚類;然后在群組中找出高評分率的標簽,建立用戶、電影、標簽的初始張量,運用梯度下降法[6]迭代求解近似張量;最后融合群組偏好,給出推薦列表.
TF(Term Frequency)表示詞條 N在某一文本詞條總數(shù)中的頻率,IDF(Inverse Document Frequency)取包含 N詞條的文件數(shù)在總文件中占比的對數(shù).TF_IDF(詞頻-逆向文件頻率)計算的是文本中所有詞條的重要度權(quán)重.
張量是對多維數(shù)組的線性分析總稱,如一階張量代表向量,二階張量代表矩陣,高階張量是多維數(shù)組的統(tǒng)稱[7].本文是由用戶、電影、標簽 3種屬性構(gòu)建的張量,即張量R的維度大小由用戶數(shù)IU、電影數(shù)IM、標簽數(shù)IT組成.
不同推薦系統(tǒng)在構(gòu)建張量方式上也不同.“0/1”表示形式即用戶-產(chǎn)品-標簽的三維張量值為0或1,用戶使用一個產(chǎn)品并屬于一個標簽,則對應的張量值為1;否則,用戶沒有使用該產(chǎn)品也不屬于該標簽,則張量值為 0[8].多元權(quán)值張量通過構(gòu)建用戶-電影-標簽之間的關系權(quán)值建立初始張量,而對沒有看過的電影及標簽張量值為0.
本文采用的分解算法為tucker分解,該算法分解后得到張量各維度下的矩陣和1個核張量,3個矩陣包含各維度上的潛在特征[9].表示為
其中:axnl表示核張量 A 的元素;uix、mjn、tkl分別表示矩陣 U、M、T元素.如果為得到近似張量,即簡單地使總的誤差最小,那么可以將張量分解的逼近問題轉(zhuǎn)化為一個無約束的優(yōu)化問題,即梯度下降方法
其中 S表示所有非零元素合集.對目標函數(shù) J對uim、mjn、tkl和 amnl求偏導,得到
再根據(jù)梯度下降方法,uix、mjn、tk和 axnl在每次迭代過程中的更新公式為
其中:更新公式中的求和項下標 j,k : (i,j,k)∈S、i,k : (i,j,k)∈S 、i,j:(i,j,k)∈S分 別 表 示 矩 陣X(i,:,:)、X(:,j,:)、X(:,:,k)所有非零元素索引.
本文首先對標簽信息與結(jié)合時間因素的評分矩陣分別計算用戶相似度,融合二者相似度后,對用戶聚類;然后挖掘群組成員中的觀影信息,統(tǒng)計群組用戶觀看的高評分率電影,計算電影標簽的好評率,建立“用戶-電影-標簽”的關系張量,并對其分解,得到近似張量;最后對群組偏好融合,得到群組推薦列表.
2.1.1 基于標簽的用戶相似度
電影標簽是對每部電影的總結(jié)概述或是描述該電影所擁有的特點,以用戶對電影標簽的偏好代表用戶對不同電影特征屬性的偏好.通過各個用戶觀看過的標簽在總標簽的重要程度,以及用戶對標簽的觀看占比計算用戶對每個標簽的偏好權(quán)重值,本文在TF-IDF基礎上進行改進,TF-IDF作為一種統(tǒng)計方法,用于計算標簽對于所有標簽的是否有代表性[10].用戶對標簽的偏好表示為
其中:ftj,ui表示用戶 ui觀看的標簽 tj個數(shù);mt表示所有包含標簽的電影數(shù);mtj表示包含標簽 tj的電影數(shù).在所有標簽中,用戶觀看的標簽出現(xiàn)頻率較低,可以更好地區(qū)別用戶之間偏好,相較于高頻率標簽的出現(xiàn)更具有代表性.而同時標簽出現(xiàn)在電影中的次數(shù)越少,對于電影的區(qū)分度則越高,標簽更能區(qū)分用戶的偏好.標簽的重要性為
其中:t表示所有電影的標簽出現(xiàn)次數(shù);tj表示標簽 tj在總標簽中出現(xiàn)次數(shù);n表示用戶數(shù);ntj表示觀看過標簽 tj的用戶數(shù).標簽之間比率表示標簽重要性,用戶之間比率表示標簽獨特性.用戶對標簽的偏好權(quán)重為
用戶基于標簽信息的相似度公式為
其中:tij表示用戶 ui和用戶 uj均觀看過的標簽,分別表示用戶對于標簽偏好權(quán)重的均值.
2.1.2 基于評分矩陣的用戶相似度
用戶興趣隨時間的推移可能發(fā)生變化,在不同時間段會有不同需求.將以前的用戶歷史信息與現(xiàn)在的信息作為同等價值的信息處理,會使用戶行為分析有偏差.用戶最近時段的偏好,能夠更準確地推斷用戶偏好.通過指數(shù)函數(shù)模擬遺忘函數(shù),以此作為時間對用戶偏好影響[11].
其中:Δt表示當前時間與評分時間差,時間計算單位為周;T0是半衰期常量;rui,mk表示用戶 ui對電影 mk的評分.基于評分矩陣的用戶相似度公式為
其中:mij表示用戶 ui和用戶 uj共同觀看過電影,分別表示用戶對于電影評分的均值.用戶觀看電影的數(shù)量差會對用戶偏好相似預測產(chǎn)生偏差,需要修正因數(shù)量級造成的相似度變差.為此,加入用戶參數(shù)λ修正數(shù)量級差造成的偏好相似.
其中:muij表示用戶 ui與用戶 uj觀看相同的電影數(shù);mui表示用戶 ui觀看的電影數(shù);muj表示用戶 uj觀看的電影數(shù).修正后的用戶相似度為
2.1.3 計算用戶總體偏好相似度
基于標簽信息計算出的用戶相似度,與基于評分矩陣計算出的用戶相似度存在差異.標簽傳輸?shù)男畔⑹菍﹄娪八鶎傩畔⒌目偨Y(jié),而電影能夠傳達的信息要遠遠多于標簽信息所能概括的信息.用戶在選擇觀看的電影時不僅僅會選擇熟悉的電影類型,有時會挑選擁有熟悉標簽的冷門電影類型.比如,用戶在看完漫威電影后,需要看看其他類型的電影,也會選擇主演們演繹的其他電影.因此,將標簽信息計算出的相似度結(jié)合評分矩陣計算出的相似度作為用戶總相似度作為用戶之間的相似度,其計算式為
其中α用來權(quán)衡用戶標簽相似度影響大還是評分相似度影響大.
在計算出總體相似度后,通過用戶之間的相似度劃分群組,將擁有高相似偏好的用戶集合到一起進行推薦.對于如何將用戶分組,可以通過分析用戶對其他用戶的綜合相似度,從而采用 K-means聚類方法,將擁有高相似度的用戶聚類,得到用戶群組[12].
用戶分組后的群組中,用戶之間偏好相似,直接建立群組的“0/1”初始張量,用戶對電影和標簽的喜好沒有任何表現(xiàn).通過加入權(quán)值的方式,考慮用戶對各個維度下的元素喜好程度,同時也可以反映各維度元素之間的關系.直接將用戶評分作為初始張量的權(quán)重,能夠反映用戶對電影的偏好.由于標簽是對電影的某一方面總結(jié),通過計算用戶對電影的評分,以此隱式反映含有該標簽的電影是否好看,從而作為標簽的好評率.
由于在群組中,用戶偏好相似,在張量創(chuàng)建初始可以為高評分率的電影添加一個相對較高的權(quán)重值,使得求解近似張量時好電影能夠得到更好的推薦.群組評分權(quán)值
群組對于一個標簽評價高低表明大多數(shù)觀看人對標簽的喜好程度,并以此給沒有觀看過該標簽的用戶進行推薦.而對于用戶看過擁有該標簽的電影,通過計算用戶對標簽的好評率,降低群組對標簽的好評率權(quán)重,以此作為用戶的權(quán)重,避免出現(xiàn)用戶不喜歡的電影類型.用戶標簽好評率權(quán)值為
高評分的設定標準通過對比國內(nèi)外各電影評分網(wǎng)站的評分標準,以及觀眾通過評分判定電影好壞的程度.國外的影評網(wǎng)爛番茄對于一部電影正面評價超過60%,會給出新鮮的評價,網(wǎng)站80%以上影評人給出超過 75%的評分值,電影達到堅定新鮮標準.同樣是國外影評網(wǎng)的 IMDb,作為老牌影評網(wǎng),十分制下 6~7分的電影屬于正常范圍,達到8分基本達到top250水平.與 IMDb相似的國內(nèi)豆瓣影評網(wǎng)評分同樣采取十分制,用戶對于電影評分判定分水嶺為 6分,達到該分數(shù)線的電影進入可觀看行列,豆瓣top250 分值也在 8分左右.基于以上各大知名網(wǎng)站的比較,用戶對于好電影的評價都在分值 6分以上,佳片的評分均達到 8分左右.但由于能達到 8分的電影在各網(wǎng)站相對于電影片庫的數(shù)量均是占比較少,用戶分組后能達到電影推薦條件的數(shù)量又需要減少.為提高推薦質(zhì)量和數(shù)量取 6分電影與 8分電影的中位數(shù),將 7分電影定為高評分的電影評價標準,即為五分制的3.5分.
在對用戶、電影、標簽張量權(quán)重中綜合群體對標簽電影的評分高低,結(jié)合各個用戶對該電影標簽的偏好,綜合作為總權(quán)重,即
張量的3個維度構(gòu)建出用戶U、電影M、標簽T的相互關系,由計算得到的綜合權(quán)值確定對應張量維度上的元素值并構(gòu)建初始三維張量.通過分解初始張量得到核張量與3個因子矩陣,之后采用梯度下降更新獲得新初始核張量與因子矩陣,乘積后相似張量X,其中張量中的值為對于整體的基于標簽的電影組推薦算法設計流程如下:
輸入:用戶、電影、評分、時間數(shù)據(jù)的四元組(U,M,R,Ti),用戶、電影、標簽三元組(U,M,T).
輸出:近似張量X.
(1) (U,M,T)按公式(6)—(9)計算基于標簽的用戶相似度simtag;
(2) (U,M,R,Ti)按公式(10)—(13)計算基于評分矩陣的用戶相似度simrating;
(3) 根據(jù)公式(14)融合 simtag和相似度 simrating的相似度得到融合相似度 s im(ui, uj);
(4) 根據(jù)融合相似度用 K-means分組用戶,得到群組用戶;
(5) 計算群組用戶中標簽好評率,按公式(15)—(17)計算;
(6) 按公式(18)建立初始張量權(quán)重值.
初始張量按公式(4)和(5)更新迭代張量,得到近似張量X.
通過近似張量可以得到用戶對標簽的選擇概率,通過這個概率計算用戶對每部電影的選擇概率.確定群組成員對每部電影的選擇概率后,為平衡成員對電影選擇概率不同,需要融合用戶對電影的偏好,以此滿足組內(nèi)成員的喜好.目前均值策略是組推薦應用較廣泛的策略,均值策略采用組內(nèi)成員對每部電影的選擇概率均值作為組選擇概率,而后為組內(nèi)成員選取top_N作為推薦列表.
本文使用 MovieLens數(shù)據(jù)集,包含用戶對視頻的評分,以及用戶給視頻標注的標簽數(shù)據(jù).通過對數(shù)據(jù)處理,得到 100004條數(shù)據(jù),這些數(shù)據(jù)集中包含694個用戶、9743個電影、1239個標簽,每個用戶對電影的評分范圍為 0.5~5,用戶的頻分等級劃分為十,評分區(qū)間間隔為0.5.
本文使用 F值(F-Measure)、準確率(Precision)和召回率(Recall)作為算法的評價標準.在推薦系統(tǒng)中,F(xiàn)值作為評價推薦結(jié)果,F(xiàn)值越高推薦結(jié)果越好.
其中:Precision表示在推薦列表中得到的推薦結(jié)果與測試集中實際情況相同的物品數(shù)與所有的推薦物品數(shù)的比值,Recall指的是推薦列表中準確的結(jié)果占測試樣本的比例.準確率和召回率的計算公式為
其中:test表示測試集中群組用戶觀看電影合集;top_N表示推薦的結(jié)果;N表示推薦的數(shù)目.在實驗過程中,處理后的數(shù)據(jù)集將被劃分成兩部分:訓練集和測試集.其中,訓練集占80%,測試集占20%.
本文實驗選擇的對比方法如下:
(1) method1,對原始評分矩陣聚類分組后的張量分解方法OR(Original Rating).
(2) method2,評分矩陣與標簽信息相似聚類的張量分解方法 TIR(Tag Information and Rating).即本文提出用戶總體偏好方法,通過標簽相似聚類得到的用戶群與通過評分矩陣相似聚類得到的用戶群,同時通過調(diào)整α值,計算各不同比重下聚類得到的用戶群推薦結(jié)果的差異.
(3) method3,在 method2方法上加入文獻[4]中的PMUS(Penatly Mechanism and User Score)方法進行張量分解TIR_PMUS.
(4) method4,在 method2方法上加入本文提出的電影好評率FR(Favorable Rate)后的張量分解方法TIR_FR.
3.4.1 相似度融合中參數(shù)α對推薦結(jié)果的影響
當參數(shù)α取值不同時,TIR推薦結(jié)果如圖1所示.
圖1 參數(shù)α 對推薦結(jié)果的影響Fig. 1 Effect of parameter α on recommendation results
從圖1中得到只有標簽信息計算的用戶相似度,與通過評分矩陣計算的用戶相似度得到的群組推薦結(jié)果.單獨計算兩種信息相似度后的推薦結(jié)果與融合相似度得到的群組推薦結(jié)果對比顯示,評分矩陣得到的結(jié)果顯示在所有比重中表現(xiàn)較好,排到所有比重的第三,而標簽信息得到的結(jié)果推薦比評分矩陣結(jié)果差,排到第五.從圖 1可看出,準確率、召回率和 F值均隨推薦數(shù)增長而增加,推薦數(shù)目在 50時準確率、召回率和 F值達到最高點.綜合 3種評價標準,α=0.2的推薦結(jié)果表現(xiàn)比其他比重推薦結(jié)果表現(xiàn)好.準確率在推薦數(shù)目為 4時居于所有比重的最高點,并且推薦數(shù)目增加一直是最佳推薦結(jié)果.召回率與 F值的表現(xiàn)同其他比重差值在 0.02中變化,在推薦數(shù)達到 5后居于所有比重最高點,并隨推薦數(shù)增長,召回率與F值增加最快.
3.4.2 加入好評率后相似度融合中參數(shù)α對推薦結(jié)果的影響
method4在α=0.3時,準確率、召回率與 F值的結(jié)果均表現(xiàn)比其他比重優(yōu)秀(圖 2).由于推薦列表是與群組用戶的合集進行對比,推薦列表相較測試集數(shù)量過于稀疏,使得準確率很高,同時召回率和 F值整體很小.
圖2 加入好評率后參數(shù)α 對推薦結(jié)果的影響Fig. 2 Effect of α changes on results after adding favorable rate
由于好評率計算中以評分作為選擇概率,并在此基礎上計算組內(nèi)成員對標簽的好評率,將評分與標簽好評率結(jié)合作為最終權(quán)重.這使得分組中評分信息與標簽信息對推薦結(jié)果影響程度改變,造成 TIR和TIR_FR在不同α值下取得最佳推薦結(jié)果.
3.4.3 不同方法推薦結(jié)果的比較
圖 3表示 4種方法在準確率、召回率和 F值上的比較.
圖3 不同方法推薦結(jié)果的比較Fig. 3 Comparison of results by different recommendation methods
OR的準確率、召回率和F值增長速度相較于其他 3種較低,準確率基本持平.TIR在推薦數(shù)目小于4時,準確率低于 OR,但是在召回率和 F值的表現(xiàn)上要優(yōu)于OR.TIR_PMUS與TIR_FR在各方面均優(yōu)于其他兩種方法,準確率在推薦數(shù)為 5時達到峰值,隨后均在推薦數(shù)到10時急速下降.之后TIR_PMUS準確率能夠在下降后緩慢增長,接近 0.5左右,但TIR_FR準確率一直在緩慢下降.TIR_FR在推薦數(shù)達到 50時,準確率與 TIR_PMUS表現(xiàn)結(jié)果相同,均達到 0.5.TIR_FR的召回率與 F值表現(xiàn)在推薦數(shù)達到40后被TIR_PMUS超過.加入標簽后的推薦相對于只通過用戶評分預測用戶偏好電影,更相似度用戶之間推薦效果更佳突出,通過標簽信息構(gòu)建的張量在比只在用戶評分中構(gòu)建張量能夠得到更佳的結(jié)果.
本文針對電影推薦中標簽信息的利用率低,提出一種基于標簽的電影組推薦方法.針對現(xiàn)有組推薦技術大多是在隨機分組或原始信息上聚類分組后推薦,現(xiàn)提出分組時盡可能提高組內(nèi)成員相似度,通過評分矩陣與標簽信息進行融合相似度,以此提高組內(nèi)相似度.通過實驗驗證本方法對推薦準確率有所提高.本實驗在使用張量進行用戶-電影-標簽信息隱形特征分析時,張量分解運行時間長,需要提高推薦速度.