武蒙蒙
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
推薦系統(tǒng)如今已經(jīng)成為一種為用戶搜素感興趣或有用對(duì)象(如衣物、電影、旅游、酒店、餐館等)時(shí)提供的個(gè)性化指導(dǎo)的基本方法。盡管大多數(shù)現(xiàn)有的推薦系統(tǒng)都是支持單個(gè)用戶的,但是在“人類是群居動(dòng)物”的大環(huán)境下,許多項(xiàng)目都是由組組成的,這也使得我們對(duì)群組推薦系統(tǒng)越來(lái)越感興趣。本文的主要目的是對(duì)主流的群組推薦算法提供易于理解的介紹。
群組推薦是通過以某種方式融合組員首選項(xiàng)來(lái)確定的。在群組推薦系統(tǒng)中,推薦的確定取決于所選擇的偏好融合策略。群組推薦系統(tǒng)有兩種基本的融合策略。第一種稱為推薦融合,是為每個(gè)小組成員確定推薦建議,然后融合為一個(gè)小組建議。第二種稱為模型融合,是將單個(gè)用戶的首選項(xiàng)融合到一個(gè)組概要文件中,然后使用該概要文件確定一個(gè)組推薦。
自上世紀(jì)90 年代末以來(lái),已有許多文獻(xiàn)提出了群組推薦系統(tǒng)。1998 年,MusicFX 推出了一種為一群在健身中心健身的人選擇背景音樂的系統(tǒng)[1]。根據(jù)人們的喜好,系統(tǒng)構(gòu)建一個(gè)群組配置文件(通過聚合喜好),并選擇一個(gè)音樂頻道,在選擇過程中加入一些隨機(jī)性,以確保多樣性。根據(jù)一項(xiàng)定量評(píng)估,參與這項(xiàng)試驗(yàn)的健身中心絕大多數(shù)成員都對(duì)小組的建議感到滿意。在電影領(lǐng)域,PolyLens 是MovieLens 的一個(gè)擴(kuò)展,它支持對(duì)群組進(jìn)行推薦[2]。該推薦系統(tǒng)采用協(xié)同過濾算法,根據(jù)用戶的星級(jí)評(píng)分為用戶推薦電影。在電視內(nèi)容推薦方面,家庭互動(dòng)電視系統(tǒng)(FIT)過濾電視節(jié)目,并根據(jù)不同觀眾的喜好創(chuàng)建自適應(yīng)節(jié)目指南[3]。
雖然Web 瀏覽通常是一個(gè)單獨(dú)的活動(dòng),就像今天的大多數(shù)桌面應(yīng)用程序一樣,但是各種各樣的研究計(jì)劃都試圖通過建議可能具有共同興趣的新材料來(lái)幫助一組人進(jìn)行瀏覽。Let's Browse 是單個(gè)用戶瀏覽器的擴(kuò)展,它使用基于內(nèi)容的算法向一組人推薦Web 頁(yè)面[4]。該推薦系統(tǒng)通過分析每個(gè)個(gè)體和群體的訪問網(wǎng)頁(yè)的單詞來(lái)估計(jì)用戶的興趣。小組推薦的另一個(gè)用例是家庭食譜推薦器[5]。由于所有家庭成員通常每天至少一起吃一頓飯,所以選擇食譜和食用食物是集體活動(dòng)的好例子。
本文中,我們將介紹推薦融合策略和模型融合策略如何應(yīng)用于群組協(xié)同過濾、基于內(nèi)容的組推薦、基于約束條件的組推薦,并具體介紹了基于協(xié)同過濾的常用推薦方法——矩陣分解在群組推薦系統(tǒng)中的應(yīng)用。
在群組推薦系統(tǒng)中,一個(gè)主要的問題是:給定關(guān)于群組成員個(gè)人偏好的信息,如何適應(yīng)整個(gè)群組?由于沒有最優(yōu)的方法來(lái)聚合推薦列表[6],因此必須使用相應(yīng)的聚合策略來(lái)提出“盡可能”地考慮到組成員的個(gè)人偏好的推薦。基本聚合策略主要包括:投票制(如果喜歡該項(xiàng)目的成員超過閾值則推薦該項(xiàng)目)、平均策略(通過計(jì)算成員評(píng)分預(yù)測(cè)值的平均值來(lái)聚合各個(gè)推薦列表,并使用該平均值作為組的預(yù)測(cè)值)[7]、平均無(wú)痛苦策略(為群體找到最優(yōu)的決策,而不是讓一些群體成員對(duì)這個(gè)決策感到不滿意)、領(lǐng)導(dǎo)者策略(為群組選取一個(gè)“領(lǐng)導(dǎo)者”,領(lǐng)導(dǎo)者決定組將選擇什么而不咨詢其他組成員的用戶)、最小痛苦策略(群組對(duì)某一項(xiàng)的預(yù)測(cè)值等于該組所有成員對(duì)該項(xiàng)的預(yù)測(cè)值的最小值。如果聚合了首選項(xiàng),則組對(duì)某項(xiàng)的評(píng)分是該成員對(duì)該項(xiàng)的最低評(píng)分)、最快樂策略(群組對(duì)某一項(xiàng)的預(yù)測(cè)值等于該組所有成員對(duì)該項(xiàng)的預(yù)測(cè)值的最大值。在聚合首選項(xiàng)策略中,組對(duì)某項(xiàng)的評(píng)分是該成員對(duì)該項(xiàng)的評(píng)分的最大值)
當(dāng)前所使用的協(xié)同過濾都是基于Breese 等人的工作實(shí)現(xiàn)的[8]。協(xié)同過濾(Collaborative filtering,CF)的基本思想是推薦項(xiàng)目來(lái)自于最近鄰居的偏好。鄰居即,相似用戶或系統(tǒng)中相似項(xiàng)。兩個(gè)用戶或項(xiàng)目之間的相似性是通過計(jì)算他們給出或接收的評(píng)分之間的皮爾遜相關(guān)系數(shù)來(lái)確定的。
協(xié)同過濾算法又分為基于用戶的協(xié)同過濾和基于項(xiàng)目的協(xié)同過濾。在基于用戶的方法(UBCF)中,用戶對(duì)某個(gè)項(xiàng)目的評(píng)分是基于類似用戶的評(píng)分來(lái)預(yù)測(cè)的。所獲得的預(yù)測(cè)得分估計(jì)了該項(xiàng)目將被用戶欣賞的程度。預(yù)測(cè)得分最高的項(xiàng)目包含在該用戶的推薦列表中。在基于項(xiàng)目的方法(IBCF)中,用戶對(duì)一個(gè)項(xiàng)目的評(píng)分是基于他/她對(duì)系統(tǒng)中類似項(xiàng)目的評(píng)分來(lái)預(yù)測(cè)的。同樣,預(yù)測(cè)得分最高的項(xiàng)目推薦給該用戶。
當(dāng)推薦融合策略和協(xié)同過濾相結(jié)合時(shí),將為單個(gè)用戶確定推薦評(píng)級(jí),然后融合為針對(duì)組的推薦,如圖1所示。
其中up(un)代表單個(gè)用戶--項(xiàng)目評(píng)分,CFn 代表單個(gè)用戶的協(xié)同過濾,r?ij代表用戶i 對(duì)物品j 的預(yù)測(cè)評(píng)分。按照這種方法,對(duì)于每一組成員i 和每一組成員沒有打分的項(xiàng)目j,確定一個(gè)預(yù)測(cè)評(píng)分r?ij,然后根據(jù)不同的聚合函數(shù)聚合這些預(yù)測(cè)評(píng)分得到小組評(píng)分。
圖1
當(dāng)使用模型融合策略時(shí),將單個(gè)用戶的評(píng)分聚合到一個(gè)組概要文件gp 中。協(xié)同過濾基于組概要文件決定每個(gè)候選項(xiàng)的排名。具體模型如圖2 所示。
圖2
在模型融合策略中組由組概要文件gp 表示。gp包括通過應(yīng)用于單個(gè)組成員的項(xiàng)目評(píng)級(jí)聚合函數(shù)(模型)生成的組對(duì)項(xiàng)目的總評(píng)級(jí)。
基于內(nèi)容的過濾(CBF)[9]是基于推薦與當(dāng)前用戶喜歡的類別相似的新項(xiàng)目。用戶(組成員)首選的類別存儲(chǔ)在用戶配置文件中;這些類別派生自用戶已經(jīng)使用的項(xiàng)的描述。這個(gè)概要文件包含了用戶對(duì)每個(gè)類型、特征(如電影中對(duì)電影分類、國(guó)家、導(dǎo)演、年代、演員)的偏好估計(jì),這些類型、特征都與用戶所評(píng)價(jià)的項(xiàng)目相關(guān)聯(lián)。根據(jù)該概要文件的首選項(xiàng),推薦人通過將未評(píng)級(jí)項(xiàng)目的元數(shù)據(jù)與用戶的概要文件匹配來(lái)預(yù)測(cè)用戶對(duì)未評(píng)級(jí)媒體項(xiàng)的首選項(xiàng)。然后,選擇預(yù)測(cè)得分最高的項(xiàng)目作為推薦列表。
當(dāng)使用推薦融合策略時(shí),基于組成員個(gè)人內(nèi)容的推薦器將確定,他/她沒有使用的項(xiàng)與他/她的用戶配置文件之間的相似性。確定項(xiàng)目的相似性然后融合,從而形成小組建議?;谕扑]融合的基于內(nèi)容的組過濾的模型圖3 與圖1 相似,僅僅在基于推薦融合的基于內(nèi)容的組過濾F 的模型中使用CBF 算法生成Sij(既用戶i 與物品j 的相似度)。
圖3
聚合策略可以確定組推薦。對(duì)相似性進(jìn)行聚合的另一種方法是聚合由基于內(nèi)容的單個(gè)推薦器提出的項(xiàng)。
當(dāng)使用模型融合策略時(shí),將個(gè)人用戶的首選類別集成到組概要文件gp 中。然后,基于內(nèi)容的過濾通過計(jì)算gp 和候選項(xiàng)之間的相似性來(lái)確定推薦。具體模型如圖4 所示。
圖4
矩陣分解(MF)[10]是一種常用的基于協(xié)同過濾(CF)的推薦方法,其基本思想是通過從項(xiàng)目評(píng)分模式中推斷出的因素向量來(lái)表征項(xiàng)目和用戶。項(xiàng)目和用戶因素之間的高度對(duì)應(yīng)關(guān)系導(dǎo)致推薦。矩陣分解的一個(gè)優(yōu)點(diǎn)是它允許合并額外的信息。當(dāng)沒有顯式反饋時(shí),推薦系統(tǒng)可以使用隱式反饋來(lái)推斷用戶的偏好,隱式反饋通過觀察用戶的行為(包括購(gòu)買歷史、瀏覽歷史、搜索模式,甚至鼠標(biāo)移動(dòng))來(lái)間接地反映用戶的意見。
MF 模型是將原始的評(píng)價(jià)矩陣分解成兩個(gè)或多個(gè)矩陣來(lái)表示用戶-項(xiàng)目交互。將評(píng)價(jià)矩陣分解為兩個(gè)矩陣:一個(gè)矩陣表示潛在因素空間中的用戶,一個(gè)矩陣表示潛在因素空間中的項(xiàng)目。
在群組推薦場(chǎng)景中應(yīng)用矩陣因子分解的方法的關(guān)鍵是在潛在因子空間中計(jì)算表示群組--項(xiàng)目相互作用的群組潛在因子。計(jì)算這些因子的原始方法可以分為兩種[11]。這兩種方法可以根據(jù)用戶數(shù)據(jù)統(tǒng)一為組數(shù)據(jù)的時(shí)間進(jìn)行分類:分解前(BF)和分解后(AF)。
AF:這是使用MF 模型計(jì)算推薦給一組用戶的最簡(jiǎn)單方法。它通過合并組內(nèi)所有用戶的影響因素來(lái)計(jì)算組的影響因素。
BF:它通過構(gòu)建一個(gè)虛擬用戶來(lái)對(duì)用戶組建模,該虛擬用戶表示該組用戶的項(xiàng)首選項(xiàng)。為了計(jì)算群組潛在因子,它對(duì)虛擬用戶使用折疊技術(shù)將其添加到因子分解模型中。
AF 和BF 的比較:由于AF 的簡(jiǎn)單性,AF 得到了有效的計(jì)算,并為基于矩陣因子分解的群組推薦方法提供了堅(jiān)實(shí)的基線。然而,在實(shí)際中,BF 在較大的數(shù)據(jù)集和較大的組上給出了更好的預(yù)測(cè)結(jié)果。
得到群組潛在因子矩陣和物品潛在因子矩陣進(jìn)行點(diǎn)積即可得到群組對(duì)物品的預(yù)測(cè)評(píng)分,在這個(gè)過程中我們要考慮獲得最小化誤差來(lái)優(yōu)化損失函數(shù)。誤差的最小化通常用梯度下降法和梯度下降法變體來(lái)計(jì)算。
本文介紹組主推薦系統(tǒng)中常用的聚合函數(shù),并詳細(xì)描述了如何為協(xié)同過濾、基于內(nèi)容的過濾、基于約束的推薦設(shè)計(jì)相關(guān)的群組推薦場(chǎng)景。越來(lái)越多的用戶群體在社交網(wǎng)絡(luò)中的相關(guān)性導(dǎo)致了群組推薦系統(tǒng)的顯著擴(kuò)展。群組推薦系統(tǒng)已經(jīng)應(yīng)用于不同的領(lǐng)域:旅游、娛樂、Web 餐飲等??梢灶A(yù)見,未來(lái)將會(huì)涌現(xiàn)大量群組推薦的相關(guān)工作。