於躍成,谷 雨,左華煜,李 慧
(江蘇科技大學(xué) 計算機學(xué)院,鎮(zhèn)江 212100)
隨著社交網(wǎng)絡(luò)的出現(xiàn),在線社交對人們生活所產(chǎn)生的影響越來越大.而如今微博、Twitter和豆瓣等社交媒體的迅速發(fā)展,使得網(wǎng)絡(luò)逐漸成為人們獲取和發(fā)布信息的主要途徑,這些龐大的用戶群體的活躍網(wǎng)絡(luò)行為,產(chǎn)生了大量可用的社交信息,為分析社交網(wǎng)絡(luò)提供了大量可用的數(shù)據(jù).社會推薦已成為人們從海量信息中快速準(zhǔn)確地獲取可用信息的有效方法,其中基于矩陣分解的協(xié)同過濾算法則是近年來最流行的社會推薦算法之一.作為一類個性化推薦方法,社會推薦方法雖然具有較高的推薦準(zhǔn)確性,良好的可伸縮性和較高的靈活性,但是社會推薦中使用的用戶評價矩陣仍然具有數(shù)據(jù)稀疏和分布不均的特點,同樣需要面對新用戶數(shù)據(jù)稀疏,冷啟動和長尾等問題[1].如何更好地表示和利用稀疏且不平衡的用戶信息成為改善社交推薦的主要途徑之一.
在現(xiàn)代電子商務(wù)和社交網(wǎng)絡(luò)中,大多數(shù)的網(wǎng)站都為用戶提供了產(chǎn)品評論和社交網(wǎng)絡(luò)結(jié)構(gòu),使在線評論、評分和關(guān)注關(guān)系的可用性不斷提高,而融合社交關(guān)系以及用戶反饋信息的推薦系統(tǒng)則變得越來越實用[2-3].然而,用戶評分或反饋過的項目數(shù)遠遠小于項目總數(shù),用戶評分矩陣和反饋矩陣的數(shù)據(jù)都面臨著數(shù)據(jù)稀疏的問題,而反饋矩陣的稀疏性則更為突出.現(xiàn)實生活中,人們的選擇日益趨于理性,不再會因為某個項目被多數(shù)人好評就會去嘗試.相對于大眾的意見,人們都更愿意接受自己認識的熟人或信賴的朋友推薦的信息.為此,利用用戶的歷史評分和用戶之間的信任關(guān)系成為改善上述問題的有效途徑.文獻[4]利用矩陣分解技術(shù),通過“用戶-用戶”和“項目-項目”的相似性來恢復(fù)已評分項目和未評分項目之間的用戶偏好,實現(xiàn)了社會信任與隱性用戶反饋推薦項目的有效融合.類似地,文獻[5]同樣利用矩陣分解技術(shù),通過度量信任傳播和信任度的相似性,實現(xiàn)了對信任度缺失的有效預(yù)測.而對于在線社交網(wǎng)絡(luò)中用戶之間的信任傳播,除了融合正則化技術(shù)的方法外[6-10],文獻[11-12]還提出了通過因式分解來利用社交網(wǎng)絡(luò)中的信任關(guān)系的方法.近兩年,文獻[12]提出的加權(quán)信任指標(biāo)被用來生成個性化的推薦,文獻[13]提出了一種TrustANLF的社交正則化方法,該方法將用戶的社交信任信息合并到非負矩陣分解框架中,將信任作為附加信息源以及評分集成到推薦模型中,以處理數(shù)據(jù)稀疏性和冷啟動問題.
到目前為止,矩陣分解仍然是社會推薦算法采用的主要技術(shù)框架,其核心是將用戶對項目的評分以及用戶的反饋信息融入項目評分矩陣,從而實現(xiàn)新用戶的有效推薦.事實上,用戶反饋信息十分稀疏,特別是反映用戶對項目喜好或是厭惡的反饋更加稀疏,現(xiàn)有算法往往通過衡量用戶之間偏好的相似性來擴展這類信息的適用人群.然而,這種度量用戶相似性的方式僅僅考慮了用戶歷史行為的相似,模糊了用戶在特定項目上的差異,而且通過這種方式擴展的適用人群只是用戶的直接近鄰.在現(xiàn)實生活中,用戶對產(chǎn)品的選擇更傾向于聽取家人或是朋友的建議,其本質(zhì)是一種基于信任的信息傳遞.在社交網(wǎng)絡(luò)中,用戶之間通過關(guān)注、點贊、轉(zhuǎn)發(fā)等網(wǎng)絡(luò)行為,形成了社交領(lǐng)域的信任關(guān)系.類似于現(xiàn)實生活中親朋間的信息傳遞,信息也可以在社交網(wǎng)絡(luò)中可信用戶之間傳播.直覺上,借助于社交網(wǎng)絡(luò)的可信計算,一方面可以通過描述相似人群在特定方面的相似程度,確保用戶反饋信息與領(lǐng)域用戶偏好相似的準(zhǔn)確匹配,提升反饋信息的使用精度;另一方面則可以將反饋信息的適用人群從用戶近鄰擴展至用戶社交鏈上的可信人群,擴展反饋信息的適用范圍.
為此,基于文獻[14],文中利用節(jié)點出入度信息和用戶交互信息,設(shè)計同時考慮用戶相似和可信用戶的關(guān)聯(lián)用戶計算方法,在改進的目標(biāo)函數(shù)上實現(xiàn)反映用戶好惡的反饋信息在關(guān)聯(lián)用戶上的可信傳播,以更好地彌補反饋矩陣數(shù)據(jù)稀疏性的不足,更好地提升用戶體驗.
為了緩解協(xié)同過濾方法面臨的數(shù)據(jù)稀疏和冷啟動用戶問題[15],社會推薦引入了各種社交網(wǎng)絡(luò)信息.用戶的決策除了受用戶自身的特征影響外,還會受到其所信任的朋友的影響,為此,提出了概率矩陣分解的社會信任集成推薦(recommend with social trust ensemble,RSTE)模型.
在RSTE的目標(biāo)函數(shù)中,用戶的預(yù)測評分由用戶對項目的顯式評分和用戶的朋友對項目的評分兩部分構(gòu)成.通過用戶對項目的顯式評分可以得到用戶評分的條件分布,并可根據(jù)貝葉斯推理得到只利用用戶特征對項目的預(yù)測評分.進而,在評分預(yù)測中加入用戶朋友的特征矩陣,以便將朋友的偏好融入用戶的預(yù)測評分.RSTE的目標(biāo)函數(shù)為:
(1)
總體來說,來自不同社交媒體的用戶社交信息大致可以分為兩類,即朋友關(guān)系和信任關(guān)系.在微信、QQ、Facebook等社交媒體中,用戶之間的關(guān)系是雙向關(guān)系,屬于朋友關(guān)系.相反,在微博、Twitter和豆瓣等社交媒體中,用戶之間的關(guān)系是單向關(guān)系,這是一種信任關(guān)系.盡管社交媒體中的朋友關(guān)系與現(xiàn)實世界的關(guān)系更加密切,并且這些朋友在現(xiàn)實生活中往往就是家人、同學(xué)、同事等,但他們對特定主題的興趣不一定相同.事實上,社交網(wǎng)絡(luò)中具有信任關(guān)系的用戶往往是真正具有相同興趣愛好的潛在朋友,他們之間的關(guān)聯(lián)通常是基于某個特定主題的相同品味.因此,基于信任的用戶信息比來自友誼的用戶信息更可靠,在基于信任的推薦系統(tǒng)中的應(yīng)用也更為普遍.
為了實現(xiàn)信任計算與推薦技術(shù)的有效融合,多種信任計算模型被相繼提出.典型的信任計算模型包括基于路徑的算法TidalTrust[16]、基于信任的協(xié)同過濾的算法MoleTrust[17-18]、基于概率的算法Sunny[19]、基于流模型的算法Advagato[20]和基于擴散激活的算法Appleseed[21]等.此外,在進行信任推薦時,用戶上下文信息[22]是一類重要的可用信息,隨機游走(TrustWalker)[23]則是一種效果較好的推薦策略.在對信任度進行評估時,無論是全局信任度還是局部信任度,一般都采用加權(quán)計算的方式.當(dāng)前的算法通常利用態(tài)度、交互經(jīng)驗和行為模式等3種信息來綜合建立新的信任評估模型[24-26].
現(xiàn)有的社會推薦算法雖然使用了用戶的社交信息,但是忽略了用戶在使用社交網(wǎng)絡(luò)的過程中產(chǎn)生的反饋信息,尤其是哪些反映用戶好惡的反饋信息,而這些信息通常隱藏于用戶的各種網(wǎng)絡(luò)行之中.為此,文中在改進RSTE的基礎(chǔ)上,構(gòu)建綜合考慮用戶相似性和用戶可信性的關(guān)聯(lián)用戶度量方法,以便將這些稀少而有效的反饋信息以可信傳播的方式擴展應(yīng)用于關(guān)聯(lián)用戶,提升反饋信息的使用精度,擴展反饋信息的適用范圍,改善反饋信息矩陣的稀疏性.
目前,包括電商、購物、電影和旅游在在內(nèi)的各個平臺的用戶都可以對各種項目進行評分.例如豆瓣電影網(wǎng)站的用戶可以用1~5的一個數(shù)對電影加以評分.有時候兩個不同用戶對同一部電影的評分看似只相差了1分,但是卻可能反映了用戶對這部電影的不同感受.實際上,給4分的用戶可能喜歡這部電影,給3分的用戶僅僅覺得這部電影一般,而給2分的用戶可能就有點討厭這部電影了.這意味著,具有相似評分的用戶看起來有著相似的表現(xiàn),但實際反映的可能是用戶對同一項目截然不同的感受.由此可見,直接根據(jù)用戶評分來度量用戶相似程度的方法在一些特定場景并不合適.此外,相比于數(shù)量龐大的項目書,用戶評分過的項目遠遠不及項目總數(shù).這樣,用戶之間對同一項目進行評分的數(shù)據(jù)記錄更為稀少且寶貴,但卻更為精準(zhǔn)地反映了用戶間的相似程度.需要注意的是,如果兩個用戶中只有一個人對項目j進行了評分,而另一個人并沒有對該項目加以評分,此時并不能說這兩個用戶的相似度很低.這是因為那個沒有對項目j評分的用戶很可能只是沒有與項目j有過交互,并不能說明該用戶不喜歡項目j.
為此,選用皮爾遜相關(guān)系數(shù)[27](Pearson correlation coefficient,PCC)來計算用戶間的相似度.在計算用戶相似度時,只考慮那些對相同項目進行了評分的用戶.皮爾遜相關(guān)系數(shù)為:
(2)
式中:ij為用戶i對項目j的評分;kj為用戶k對項目j的評分;n為用戶i和用戶k共同評分的項目數(shù).
由于社交網(wǎng)站上用戶眾多,故只計算具有直接社交關(guān)系的用戶間的相似度.然而,用戶間的相似度還不足以說明用戶之間的信任程度.在社交網(wǎng)中,用戶之間的信任關(guān)系可以用一個有向圖來表示,圖中的節(jié)點表示用戶,節(jié)點之間的邊表示了用戶之間的各種直接關(guān)系.假設(shè)用戶i關(guān)注了m個用戶,那么這m個用戶發(fā)布的信息被用戶i看見的可能性以及用戶i采納這m個用戶的意見的可能性存在差異性.也就是說,在用戶i關(guān)注的m個用戶中,他們對目標(biāo)用戶i的影響力有差異.
從社交媒體上可以直接觀察到的用戶間的社交關(guān)系通常都是二值型的,即在網(wǎng)站上只顯示兩個用戶間存在著信任關(guān)系或者不存在信任關(guān)系.這種二值型的定性描述用戶信任關(guān)系的方式并不能體現(xiàn)用戶間具體的信任程度.事實上,如果一個用戶關(guān)注的人越多,那么該節(jié)點的出度越高,這就意味著該用戶對每個關(guān)注對象的信任度也就越低.如果目標(biāo)用戶關(guān)注了較多的用戶,而每個人用于瀏覽信息的時間有限,這很可能導(dǎo)致該用戶無法瀏覽完所有信息,從而降低這些信息對目標(biāo)用戶決策的影響.相反,如果一個用戶被越多的人關(guān)注,這就意味著該用戶很可能是某個方面的領(lǐng)袖,關(guān)注他的人對其具有更高的信任度.顯然,節(jié)點的出度和入度定量描述了用戶i與其關(guān)注的m個用戶之間的信任程度.為此,采用基于節(jié)點出入度的方法來度量用戶間的信任程度[28],假設(shè)用戶i關(guān)注了用戶k,則trust(i,k)就表示了用戶i對用戶k的信任度為:
(3)
式中:Indegree(k)為用戶節(jié)點k的入度;Outdegree(i)為用戶節(jié)點i的出度.用戶i的出度越高,意味著用戶i關(guān)注的用戶數(shù)越多,用戶i對每個用戶的信任度就也越低.
式(2)通過定量計算不同用戶所共同評分的項目,準(zhǔn)確度量了相似用戶在特定方面的相似程度,而式(3)則從用戶信任的角度描述了可信用戶之間決策影響的程度.為了確保用戶反饋信息與領(lǐng)域用戶偏好相似的準(zhǔn)確匹配,提升反饋信息的使用精度,文中采用復(fù)合信任度來描述社交網(wǎng)絡(luò)中具有直接關(guān)系的用戶間的可信用戶關(guān)聯(lián)度Sik為:
Sik=β·trust(i,k)+
(4)
式中:same_pearson_r(i,k)為用戶i與用戶k共同評分的項目的皮爾遜相似度;trust(i,k)為用戶i對用戶k的信任度;β為處于區(qū)間[0,1]之間的調(diào)整系數(shù).由于皮爾遜相似度的值域是[-1,1],為了方便計算,因此需要將其映射到[0,1].
社交媒體中的用戶通過關(guān)注、轉(zhuǎn)發(fā)、評論等網(wǎng)絡(luò)行為形成了一個社交網(wǎng)絡(luò),用戶間的信任便可以沿著網(wǎng)絡(luò),從一個成員傳遞到另一個成員.這意味著,借助于網(wǎng)絡(luò)中用戶間的信任關(guān)系,少數(shù)用戶擁有的反映自身好惡的反饋信息,不僅可以影響自身的喜好預(yù)測,還可以輔助預(yù)測其信任用戶的喜好.顯然,在社交網(wǎng)絡(luò)中存在著直接關(guān)聯(lián)和間接關(guān)聯(lián)的用戶,即使他們的相似程度相同,但他們之間的信任程度還是存在差異的.為了確保這些反饋信息能夠最大程度的用于網(wǎng)絡(luò)用戶喜好的預(yù)測,將這些反映少數(shù)用戶的期望能夠在與這些用戶關(guān)聯(lián)的用戶中可信傳播.也就是說,根據(jù)用戶的相似程度和可信程度,使得這些反饋信息能夠在一定范圍內(nèi)作用于可信用戶的偏好預(yù)測.
設(shè)矩陣S為用戶間的信任關(guān)系矩陣,Sik為用戶i和用戶k之間的可信關(guān)聯(lián)度.令F=[Fij]m×n表示用戶反饋信息矩陣,F(xiàn)i= {Fi1,Fi2,…,Fin}描述每個項目中來自第i個用戶的反饋信息的值.為了實現(xiàn)用戶反饋信息在可信關(guān)聯(lián)用戶上傳播,減少用戶不喜歡項目在推薦列表中出現(xiàn)的概率,改善用戶體驗,在RSTE模型的基礎(chǔ)上,引入新的用戶可信關(guān)聯(lián)度矩陣和反饋信息矩陣,將目標(biāo)函數(shù)由式(1)修改為:
L(R,S,U,V,F)=
(5)
類似于RSTE模型,目標(biāo)函數(shù)式(5)仍然采用梯度下降的方法求解.將用戶隱式反饋信息加入用戶評分預(yù)測之中,并采用社交網(wǎng)絡(luò)信任度計算來改善隱式反饋信息的數(shù)據(jù)稀疏性.根據(jù)反饋行為的不同,反饋值的取值是不同的.要注意的是,不同社交媒體系統(tǒng)中的評分標(biāo)準(zhǔn)是不一致的.例如,有些平臺采用10分系統(tǒng),而有的則采用5分系統(tǒng).為了對反饋信息進行統(tǒng)一度量,文中使用f(x)=x/Rmax對評分進行歸一化處理,其中x為實際的評分值,Rmax為該平臺的滿分值.
在此方法中,直接關(guān)聯(lián)用戶之間屬于直接信任,其值通過計算可信關(guān)聯(lián)度Sik的方式獲得.而對于那些沒有直接關(guān)聯(lián)的用戶,他們之間的信任屬于間接信任.間接信任通過信任的傳遞性推導(dǎo)出用戶間隱含的信任關(guān)系,并結(jié)合矩陣分解方法去預(yù)測間接關(guān)聯(lián)的用戶間的信任度,從而算出了所有用戶間的信任度,得到了用戶間信任關(guān)系矩陣S.借助用戶間信任關(guān)系矩陣S,可以將用戶的評分、反饋等稀少但是寶貴的信息,通過用戶間的信任關(guān)系傳播給其他用戶.這樣,當(dāng)對用戶未評分項進行評分預(yù)測時,借助于信任計算便可以將用戶的好惡信息傳播給這些通過信任產(chǎn)生的關(guān)聯(lián)用戶,充分利用這些稀少但有效的反饋信息來降低關(guān)聯(lián)用戶的推薦列表中出現(xiàn)用戶反感的內(nèi)容的概率.
就復(fù)分解反應(yīng)而言,酸、堿、鹽、氧化物之間的轉(zhuǎn)化要求非常熟練,這在最新的高考考試大綱中也是“理解”的能力層次要求,從其中還可以深挖出“強酸制弱酸”“強堿制弱堿”和競爭反應(yīng)等基本規(guī)律。
在現(xiàn)實生活中人們會聽取朋友的建議,但是對于朋友的朋友的建議,采納的可能性會明顯下降.類似地,社交網(wǎng)絡(luò)中用戶間的信任關(guān)系也會隨著傳播而逐漸衰減,而當(dāng)衰減到一定程度以后不僅無法為用戶提供有效影響,反而還會對推薦產(chǎn)生干擾.因此,文中為矩陣分解預(yù)測得到的用戶間信任度設(shè)置了一個閾值,其選取由實驗得到,當(dāng)閾值選取為0.5時,目標(biāo)損失函數(shù)最?。虼水?dāng)信任度低于0.5時,視這兩個用戶之間不存在任何的信任關(guān)系,并將兩個用戶間的信任度設(shè)置為0,不再考慮這些用戶間相互產(chǎn)生的影響.
文中提出的算法具體步驟如下:
算法:融合信任用戶反饋信息的推薦算法輸入:用戶集U,項目集V,評分矩陣R,用戶反饋F,信任用戶集合T,信任用戶的評分Tr,用戶節(jié)點入度Indegree,用戶節(jié)點出度Outdegree,迭代次數(shù)Iter,步長γ,參數(shù)α,β,λU,λV輸出:預(yù)測評分矩陣P方法:1隨機初始化U,V2節(jié)點出入度計算trust(u,k)=sqrt(Indegree(k)/(Out-degree(i)+ Indegree(k)))3節(jié)點相似度計算same_pearson_r(i,k)4 用戶間可信關(guān)聯(lián)度Sik=βtrust(u,k)+(1-β) same_pearson_r(i,k)5矩陣分解預(yù)測得到用戶信任矩陣S=[Sik]6for iteration=1,2,…,Iter do:7 for useri in U do:8 for itemj in V do:9 更新Tr10 predict_rating←αUTiVj+(1-α)Tr+Fb11 更新Ui←Ui-γ(?L/?Ui)12 更新Vj←Vj-γ(?L/?Vj)13 end for14 end for15 P←α×U×V+(1-α)×S×U×V+F+S×F16 end for
硬件配置:3.60GHz Inter(R)Core(TM)i7-9700K CPU,16GB內(nèi)存
操作系統(tǒng):Windows10企業(yè)版(64位操作系統(tǒng))
開發(fā)工具:PyCharm2018.3,Navicat Premium
環(huán)境配置:Python3.6.9
數(shù)據(jù)庫:MySQL
第三方類庫:numpy,metric,matplotlib,BeautifulSoup
實驗數(shù)據(jù)集是通過自己編寫的爬蟲程序從豆瓣網(wǎng)(www.douban.com)爬取而得.豆瓣網(wǎng)是一個社區(qū)網(wǎng)站,提供有關(guān)書籍,電影,音樂等的信息.使用站內(nèi)的網(wǎng)絡(luò)搜尋器,在用戶和電影之間搜尋信息,包括電影的用戶評分,用戶之間的關(guān)系以及用戶對電影的注釋.用戶之間的關(guān)系是單向關(guān)注關(guān)系.當(dāng)用戶標(biāo)記電影時,如果將其標(biāo)記為“想要”,則此標(biāo)簽將被視為來自用戶的正面反饋.如果用戶看過電影但未對電影評分,則該電影將被視為用戶不感興趣的電影.
在對爬取的數(shù)據(jù)進行清洗時刪除了獨立節(jié)點,即沒有關(guān)注任何人的用戶.清洗后的數(shù)據(jù)集中總共有2 003個用戶,用戶關(guān)系數(shù)為2 240條.這些用戶共計評論了63 895部電影,其中電影評分數(shù)為620 991條,用戶反饋信息119 752條.在這些用戶中,他們各自評分的電影數(shù)量并不相同,表1顯示了與不同評分數(shù)量相對應(yīng)的用戶數(shù)量.表1可以看出,極少數(shù)的用戶觀影數(shù)量很高,他們往往是某一領(lǐng)域的領(lǐng)袖用戶,而評分數(shù)為0的冷啟動用戶也很多,在用戶集中占了不低的比例,說明在現(xiàn)實場景下,冷啟動問題對推薦效果有著較大的影響.
表1 對應(yīng)用戶數(shù)和電影評分的統(tǒng)計表
實驗時,數(shù)據(jù)集被隨機劃分為2個數(shù)據(jù)子集,即訓(xùn)練集和測試集.訓(xùn)練集包含了80%的數(shù)據(jù),測試集則包含了20%的數(shù)據(jù),采取五折交叉驗證的方法對實驗結(jié)果取平均值,以減少外部因素對實驗結(jié)果的影響.
文中通過實驗對模擬平臺為新用戶進行推薦時的推薦效果進行考察,并與其他傳統(tǒng)方法進行對比.假設(shè)新用戶在注冊登錄時,根據(jù)自己的興趣,采納了平臺為他推薦的一些用戶的選擇,那么就成為了一個沒有評分但存在社交關(guān)系的用戶.由于他沒有任何的評分信息,也沒有反饋信息,因此推薦什么項目給他全部依賴于他的社交關(guān)系.因此,為了驗證社交關(guān)系在推薦中起到了不可或缺的重要作用,從原本的數(shù)據(jù)集中選取了10個用戶,保留他們的社交關(guān)系信息,去掉評分、反饋信息,然后對他們進行推薦,并根據(jù)推薦的結(jié)果與原來的結(jié)果進行對比.但是由于電影數(shù)目十分龐大,推薦中同一部電影的可能性并不是很大,用戶喜歡的不應(yīng)該是某一部電影,而是某一類電影.因此可以對比推薦的電影類型,與該用戶實際喜歡的電影類型是不是相同.在爬取的電影信息的數(shù)據(jù)中,電影標(biāo)簽主要包括年代、導(dǎo)演&演員、電影類型、拍攝國家等等,并且在爬取下來的數(shù)據(jù)中都是以單獨的詞出現(xiàn).例如,《中國機長》的標(biāo)簽為:張涵予/歐豪/杜江/袁泉/張?zhí)鞇?李沁/雅玫/楊祺如/高戈/黃志忠/朱亞文/李現(xiàn)/焦俊艷/吳樾/闞清子/李岷城/馮文娟/陳數(shù)/楊穎/余皚磊/關(guān)曉彤/劉浩/伊拉爾·帕薩/亞歷克斯·皮希汀/莎倫·張/趙亮/周波/劉偉強/孟子義/余沛杉/李梓琳/中國大陸/劉偉強/111分鐘/劇情/災(zāi)難/于勇敢YongganYu/漢語普通話/藏語/英語.而對某個用戶觀看的223部電影的標(biāo)簽進行了高頻詞提取,其中,前十的高頻詞如下:劇情 142/美國 122/漢語105/普通話 104/英語 95/中國香港 73/愛情 61/喜劇 52/邁克爾 38/英國 36,可以看出用戶更關(guān)心電影類型、拍攝國家等信息.
因此,對平臺新用戶推薦效果的考察,采取對比推薦的電影的標(biāo)簽的高頻詞recommend_tag和該用戶實際喜歡的和想看的電影標(biāo)簽的高頻詞real_tag的相同程度,并根據(jù)人們普遍的觀念,將3分及3分以上的視為是用戶喜歡的.式(6)是表示有多少個recommend_tag在real_tag中,以此作為對平臺新用戶進行推薦的評價標(biāo)準(zhǔn).
(6)
首先對參數(shù)進行選取,由于不同用戶構(gòu)建的社交網(wǎng)絡(luò)復(fù)雜程度不同,并且不同的應(yīng)用場景也會對參數(shù)產(chǎn)生影響.參照文獻[29],參數(shù)β應(yīng)該是一個自適應(yīng)的參數(shù),根據(jù)不同的用戶、應(yīng)用場景而變化,通過多次實驗來選擇適應(yīng)于當(dāng)前應(yīng)用場景最優(yōu)的權(quán)重系數(shù).
表2是隨機從用戶集中選取的某名用戶,通過文中算法得到的推薦列表,和不考慮信任用戶的偏好產(chǎn)生的影響得到的推薦列表的對比.
表2 不同推薦方法的推薦結(jié)果對比
該名用戶的歷史評分如下:“流浪地球”3分、“蝴蝶效應(yīng)”4分、“實習(xí)生”5分等,被標(biāo)記為“想看”的電影有:“浪漫的體質(zhì)”、“彗星來的那一夜”、“查理和巧克力工廠”等,可以看出這名用戶比較注重劇情,偏向于歐美國家的作品.顯然,表2中的兩個推薦列表,該名用戶會更偏向融合了信任用戶的算法進行的推薦結(jié)果一些.
表3顯示的是從用戶集中隨機抽取的10名用戶,刪去他們的評分與反饋信息,只保留信任關(guān)系,為他們進行推薦后,將推薦的項目與他們實際喜歡的項目是同一類型的概率Same_Ratio,在5種不同方法下的實驗結(jié)果.其中,概率矩陣分解模型(probabilistic matrix factorization,PMF)[30]是一種僅僅使用用戶-項目矩陣進行推薦的經(jīng)典概率矩陣分解推薦算法,而基于用戶的協(xié)同過濾(user-based collaborative filtering,UserCF)[31]則是采用協(xié)同過濾為用戶推薦與其興趣相似的其他用戶所喜歡的項目的經(jīng)典算法.基于信任的奇異值分解(trust-based singular value decomposition,TrustSVD)[32]作為一種基于信任的矩陣分解方法,在對項目進行推薦的時候,同時考慮了項目評分和信任產(chǎn)生的顯性影響及其隱性影響.協(xié)作用戶網(wǎng)絡(luò)嵌入社交推薦系統(tǒng)(collaborative user network embedding for social recommender systems,CUNE)[33]則從用戶反饋中提取隱含的、可靠的社交信息,并為每個用戶識別top-N語義朋友,并將這些語義好友信息整合到矩陣分解框架中,以改善評分預(yù)測的性能.
表3 Same_Ratio在不同Top-N下的值
通過表3可以看出,文中方法SoRFI在不同Top-N的情況下,Same_Ratio的值均優(yōu)于其他幾種算法.這意味著當(dāng)用戶只有社交信息,但是沒有評分、反饋信息的時候,通過信任關(guān)系將用戶的喜好傳遞給關(guān)聯(lián)用戶,可以較好地為這類用戶進行推薦,從而為各平臺緩解冷啟動用戶問題提供了一個可行的辦法.
以社會推薦模型RSTE為基礎(chǔ),文中將用戶反饋信息和可信關(guān)聯(lián)用戶信息引入目標(biāo)函數(shù),一方面利用反饋信息降低了用戶厭惡信息在推薦列表中出現(xiàn)的概率,另一方面通過反饋信息在關(guān)聯(lián)用戶之間的可信傳播,擴大了反饋信息的使用人群,改善了反饋信息的稀疏性,改善了用戶體驗.真實數(shù)據(jù)集上的實驗表明,文中算法的用戶體驗要優(yōu)于PMF、UserCF、TrustSVD、CUNE和RSTE等多種社會推薦算法.