摘要:如今,情境感知推薦系統(tǒng)已成為推薦系統(tǒng)研究的主要研究領(lǐng)域之一。本文首先介紹了矩陣分解算法在個(gè)性化推薦中的應(yīng)用,主要對比了PureSVD、FunkSVD和BiasSVDd三種算法優(yōu)缺點(diǎn);然后,介紹了情境預(yù)過濾、情境后過濾和情境建模三種情感知技術(shù);最后,分析了基于矩陣分解的情境感知推薦算法的特點(diǎn)和優(yōu)勢。
關(guān)鍵詞:矩陣分解;情境感知;推薦系統(tǒng)
推薦系統(tǒng)是通過在用戶和項(xiàng)目之間建立二元關(guān)系,通過已有的選擇過程或相似關(guān)系挖掘用戶的興趣點(diǎn),從而給出個(gè)性化的推薦。傳統(tǒng)的推薦算法主要分為基于內(nèi)容的推薦算法和基于協(xié)同過濾的推薦算法?;趦?nèi)容的推薦算法理論依據(jù)主要是信息檢索和信息過濾,通過分析用戶以往偏好的項(xiàng)目,提供內(nèi)容特征與以往偏好項(xiàng)目相類似的推薦,該算法當(dāng)新用戶出現(xiàn)時(shí)存在冷啟動(dòng)的問題。基于協(xié)同過濾的推薦算法的思想源于“集體智慧”,算法通過對用戶歷史行為數(shù)據(jù)的挖掘發(fā)現(xiàn)用戶的偏好,基于不同的偏好對用戶進(jìn)行群組劃分并推薦品味相似的商品。協(xié)同過濾算法同樣也存在冷啟動(dòng)的問題,當(dāng)沒新用戶數(shù)據(jù)時(shí),無法給出較好的推薦。沒有考慮情境的差異,比如不同根據(jù)季節(jié)的不同,給用戶推薦與季節(jié)相適應(yīng)的服飾?;谝陨蠁栴},研究人員提出了基于矩陣分解的情境感知推薦法。
1 矩陣分解算法在個(gè)性化推薦中的應(yīng)用
矩陣分解的核心思想是將用戶評分矩陣分解為低秩的矩陣,使其乘積盡可能接近原始評分矩陣,使得預(yù)測的矩陣與原始矩陣之間的誤差平方最小。奇異值分解(Singular Value Decomposition,以下簡稱SVD)在機(jī)器學(xué)習(xí)領(lǐng)域得到了廣泛的應(yīng)用,因?yàn)樗粌H可以用于降維算法中的特征分解,還能用于推薦算法。如果將m個(gè)用戶和n個(gè)項(xiàng)目對應(yīng)的評分看做一個(gè)矩陣M,本文將用矩陣分解來解決該問題。
1.1 PureSVD算法
PureSVD(傳統(tǒng)的奇異值分解)在降維中的應(yīng)用,將用戶和項(xiàng)目對應(yīng)的m×n矩陣M進(jìn)行SVD分解,通過選擇部分較大的奇異值進(jìn)行降維分解為:
Mm×n=Um×k∑k×kVTk×n(1)
其中k是矩陣M中的奇異值的個(gè)數(shù),一般會(huì)小于用戶數(shù)和項(xiàng)目數(shù)。如果要預(yù)測第i個(gè)用戶對第j個(gè)物品的評分mij,則只需要計(jì)算uTi∑vj即可。對于稀疏的矩陣,PureSVD采用的方法是對評分矩陣進(jìn)行簡單的補(bǔ)全,再用SVD分解并降維。
1.2 FunkSVD算法
FunkSVD是基于PureSVD計(jì)算效率問題提出的,PureSVD中矩陣分解為3個(gè)矩陣,而FuckSVD將矩陣分解為2個(gè)低秩的用戶項(xiàng)目矩陣。
Mm×n=PTm×kQk×n(2)
對于某一個(gè)用戶評分mij,使用FunkSVD進(jìn)行矩陣分解,對應(yīng)的表示為qTjpi,采用均方差做為損失函數(shù),則期望(mijqTjpi)2盡可能小。如果考慮所有項(xiàng)目和樣本的組合,則最小化如下公式。
∑i,j(mijqTjpi)2(3)
將公式(3)最小化,并求出極值對應(yīng)的pi,qj,則將得到矩陣P和Q,對于任意矩陣M任意一個(gè)空白評分的位置,都可以通過qTjpi計(jì)算預(yù)測評分。在實(shí)際應(yīng)用中,為了避免過度擬合觀測數(shù)據(jù),又提出了帶有L2正則項(xiàng)的FunkSVD。
argminpi,qj∑i,j(mijqTjpi)2+λ(‖pi‖22+‖qj‖22)(4)
以上最優(yōu)化函數(shù)可以通過梯度下降或隨機(jī)梯度下降法來尋求最優(yōu)解,進(jìn)而用于推薦。
1.3 BiasSVD算法
繼FuckSVD算法提出后,出現(xiàn)了很多基于FunkSVD算法的改進(jìn)版,其中BiasSVD是其中較為主流的一種。該算法的提出基于如下假設(shè):某些用戶天生愿意給出好評,但又有某些要求比較嚴(yán)苛,給出評分較低;同時(shí)某些項(xiàng)目,一經(jīng)推出便有其地位,某些受歡迎,某些被嫌棄。也就是說,對于一個(gè)推薦系統(tǒng),用戶存在某些屬性與項(xiàng)目無關(guān),項(xiàng)目也存在某些屬性與用戶無關(guān),這也就是提出用戶和項(xiàng)目偏置項(xiàng)的原因。BaisSVD推薦系統(tǒng)包括三個(gè)部分的偏置項(xiàng):某些與用戶項(xiàng)目無關(guān)的評分因素,用戶的某些與項(xiàng)目無關(guān)的評分因素,稱為用戶偏置項(xiàng);項(xiàng)目中某些與用戶無關(guān)的評分因素,稱為項(xiàng)目偏置項(xiàng)。
假設(shè)評分系統(tǒng)平均分為μ,第i個(gè)用戶的用戶偏置項(xiàng)為bi,而第j個(gè)項(xiàng)目的項(xiàng)目偏置項(xiàng)為bj,則加入了偏置項(xiàng)后的優(yōu)化目標(biāo)函數(shù)J(p,q)如公式(5)所示。
argminpi,qj∑i,j(mijμbibjqTjpi)2+λ(‖pi‖22+‖qj‖22+‖bi‖22+‖bj‖22)(5)
BiasSVD增加了對額外因素的考慮,因些在某些情景中比FunkSVD表現(xiàn)的好。
2 情景感知個(gè)性化推薦常見的技術(shù)
情境感知推薦系統(tǒng)(ContextAware Recommender Systems,CARS),主要研究如何根據(jù)已有的用戶偏好,結(jié)合用戶所處情況,過濾掉與當(dāng)前情境無相關(guān)偏好,提高推薦精度和用戶滿意度,逐漸成為緩解“信息過載”的有效手段。根據(jù)情境在推薦生成過程中的作用,將推薦系統(tǒng)分為3類:情境預(yù)過濾、情境后過濾和情境建模。
2.1 情境預(yù)過濾
如圖(a)所示,情境預(yù)過濾方法的基本思路是:在生成推薦結(jié)果前,使用當(dāng)前所處的情境信息將無關(guān)的用戶偏好數(shù)據(jù)過濾掉,從而構(gòu)建與當(dāng)前情境相關(guān)的推薦數(shù)據(jù)集;再使用傳統(tǒng)推薦技術(shù)處理這些篩選后的數(shù)據(jù)以進(jìn)行偏好預(yù)測,最后生成滿足所處情境下的推薦結(jié)果。
情境實(shí)例的分類或粒度,是影響情境預(yù)過濾的重要因素。如果情境實(shí)例的分類過于粗糙,那么情境過濾后的推薦數(shù)據(jù)集不一定全部與當(dāng)前情境相關(guān),從而影響推薦的準(zhǔn)確性;如果情境實(shí)例的分類過于精細(xì),那么可能使得篩選后的數(shù)據(jù)集極度稀疏,也將影響推薦的準(zhǔn)確性,而且某些情境過度精細(xì)劃分的作用也不明顯。
2.2 情境后過濾
如圖(b)所示,情境后過濾方法的基本思路是:首先忽略情境因素,使用傳統(tǒng)二維的推薦技術(shù)處理不含情境信息的推薦數(shù)據(jù)來預(yù)測潛在的用戶偏好;然后根據(jù)當(dāng)前情境過濾掉無關(guān)的推薦結(jié)果或調(diào)整TOPN排序列表。情境后過濾以可以分為:啟發(fā)式方法與基于模型的方法,啟發(fā)式方法重點(diǎn)關(guān)注如何發(fā)現(xiàn)所處情境中的用戶偏好項(xiàng)目集合的共同屬性特征,基于模型的方法則側(cè)重于計(jì)算用戶在特定情境下選擇該項(xiàng)目的概率值。
情境預(yù)過濾/情境后過濾都是將“多維推薦”轉(zhuǎn)化成“二維推薦”,能夠使用傳統(tǒng)推薦系統(tǒng)的成熟技術(shù)。但是,因?yàn)槭褂煤Y選后的相關(guān)數(shù)據(jù)生成推薦,降維后數(shù)據(jù)的完整性得不到保證。所以,情境預(yù)過濾/情境后過濾較適合于情境信息與用戶偏好信息之間是松耦合關(guān)系的情形。
2.3 情境建模
如圖(c)所示,情境建模的基本思路是:將情境信息融入推薦生成的整個(gè)過程,從而設(shè)計(jì)適合的算法、模型來處理多維度情境用戶偏好,而非忽略情境信息的用戶偏好。這種方法需要處理多維數(shù)據(jù),是最為復(fù)雜的,同時(shí)也是最能有效挖掘用戶、情境、項(xiàng)目三者間的關(guān)聯(lián)關(guān)系的。因此,這種方法適用于情境和用戶偏好間為緊耦合關(guān)系的情形。
情境建??煞譃椋夯趩l(fā)式的方法和基于模型的方法?;趩l(fā)式的方法是使用具有直觀意義的啟發(fā)式方法,情境相關(guān)的多維數(shù)據(jù)的相似性是計(jì)算公式的重點(diǎn)和難點(diǎn)?;谀P偷姆椒ㄊ鞘褂没趯哟蔚臋C(jī)器學(xué)習(xí)或數(shù)學(xué)統(tǒng)計(jì)等相關(guān)的模型,與前者相比,后者需要較長的時(shí)間來構(gòu)建或更新預(yù)測模型,也需要調(diào)整大量的參數(shù)來優(yōu)化,當(dāng)用戶偏好數(shù)據(jù)較少時(shí)有可能不能構(gòu)建可靠的分?jǐn)?shù);但是,后者常常只需要存儲(chǔ)遠(yuǎn)小于原始數(shù)據(jù)的模型,可在一定程度上降低數(shù)據(jù)的稀疏性,而且能利用相關(guān)模型的優(yōu)點(diǎn)得到更好的推薦結(jié)果。
3 基于矩陣分解的情景感知個(gè)性化推薦
為更好的權(quán)衡模型復(fù)雜度和可用訓(xùn)練數(shù)據(jù)間的關(guān)系,研究人員提出了三種情境感知矩陣分解推薦模型,分別是:CAMFC、CAMFCI和CAMFCC。CAMFC假定每一個(gè)情境條件對用戶的評分有統(tǒng)一的影響,與具體項(xiàng)目無關(guān)。CAMFCI假定每一個(gè)情境對第一個(gè)項(xiàng)目的評分有著不同的影響,該模型可以更好地預(yù)測評分。CAMFCC假定項(xiàng)目可以根據(jù)類別分組,并且每一個(gè)情境條件對同一組內(nèi)所有項(xiàng)目的評分有著相同的影響。以上三種模型的評分預(yù)測公式可以用統(tǒng)一的公式表示。
r^uic1,…,ck=i+bu+∑kl=1Bicl+ITiUu(6)
假定訓(xùn)練數(shù)據(jù)集中共有n個(gè)項(xiàng)目,k個(gè)情境變量共有K個(gè)不同的取值。在CAMFCI中,每一個(gè)情境條件和項(xiàng)目i的均對應(yīng)一個(gè)參數(shù)Bicl。這樣在該模型中,參數(shù)Bicl的總數(shù)為Kn。與CAMFCI相比,CAMFCC較為粗糙。在CAMFCC中,每一個(gè)情境條件項(xiàng)目類別對應(yīng)一個(gè)參數(shù)Bicl,如果項(xiàng)目i和項(xiàng)目j是同一類,則Bicl=Bjcl。如果訓(xùn)練數(shù)據(jù)集中項(xiàng)目分為t個(gè)不同的類,那么在CAMFCC模型中參數(shù)Bicl的個(gè)數(shù)就是Kt。在CAMFC中,每一個(gè)情境條件僅對應(yīng)一個(gè)參數(shù)Bicl。
4 結(jié)語
推薦系統(tǒng)是目前解決“信息過載”問題的一種重要手段,它通過對用戶興趣偏好的研究,進(jìn)行個(gè)性化計(jì)算,由系統(tǒng)發(fā)現(xiàn)用戶的興趣點(diǎn),得出相應(yīng)的推薦結(jié)果,提高推薦的精確性和用戶的滿意度。但是,傳統(tǒng)的推薦系統(tǒng)未考慮用戶或項(xiàng)目與所處情境的關(guān)聯(lián),使得推薦性能受到限制。將情境融入到推薦過程中,可以得出更為準(zhǔn)確的評分和更符合用戶需求的推薦,情境感知推薦系統(tǒng)已逐漸成為推薦系統(tǒng)研究的主流之一。
參考文獻(xiàn):
[1]王立才,孟祥武,張玉潔.上下文感知推薦系統(tǒng)[J].軟件學(xué)院,2012,23(1).
[2]文俊浩,孫光輝,李順.基于用戶聚類和移動(dòng)上下文的矩陣分解推薦算法研究[J].2018,45(4).
[3]馮鵬程.基于情境感知的個(gè)性化推薦算法的研究[D].2014.
[4]彭宏偉,靳遠(yuǎn)遠(yuǎn),呂曉強(qiáng),王曉玲.一種基于矩陣分解的上下文感知IPO推薦算法[J].2018,41.
基金項(xiàng)目:江西省教育廳科技項(xiàng)目(編號:GJJ161151)
作者簡介:金歡(1985),女,碩士,副教授,研究方向?yàn)樾枨蠊こ?、軟件工程?/p>