苑寧萍,辛力堅(jiān),王呼生+,寧鵬飛
(1.內(nèi)蒙古醫(yī)科大學(xué) 計(jì)算機(jī)信息學(xué)院,內(nèi)蒙古 呼和浩特 010110;2.內(nèi)蒙古電力科學(xué)研究院,內(nèi)蒙古 呼和浩特 010020)
協(xié)同過濾(collaborative filtering,CF)存在因數(shù)據(jù)稀疏、冷啟動等造成的推薦精度低等問題。為此國內(nèi)外學(xué)者們進(jìn)行了大量的研究[1-7]。文獻(xiàn)[8]為了解決其中的用戶冷啟動問題,將用戶社交信息和評分信息進(jìn)行融合,提出了一種基于社區(qū)專家信息的協(xié)同過濾推薦算法;文獻(xiàn)[9]采用稀疏評分矩陣建立用戶評分項(xiàng)目集合,對評分矩陣進(jìn)行降維、構(gòu)建近似評分矩陣并填充用戶項(xiàng)目的評分集合,得到用戶間相似度;文獻(xiàn)[10]利用深度學(xué)習(xí)來決定矩陣分解中的初始化問題,實(shí)現(xiàn)信任效應(yīng)對推薦的影響;文獻(xiàn)[11]提出了一種高效的角色挖掘推薦算法,利用用戶間共識向組內(nèi)其他用戶推薦服務(wù);文獻(xiàn)[12]利用用戶提供的稀疏評估數(shù)據(jù)和稀疏社交數(shù)據(jù)來提高協(xié)同過濾的推薦效率。
研究結(jié)果表明,用戶對社交活動的選擇多基于興趣愛好,并且往往與具有相同興趣愛好的用戶保持緊密聯(lián)系[13,14]。近年來,大多數(shù)的研究只注重利用用戶對社交活動的評分,忽略了用戶對活動的興趣和用戶間的信任度,致使改進(jìn)算法推薦精度提高有限?;诖?,本文提出了一種融合用戶興趣度和信任度的協(xié)同過濾推薦算法。
本節(jié)對基于興趣度和信任度的個性化推薦模型進(jìn)行詳細(xì)描述。在本文構(gòu)建的個性化推薦模型中,假設(shè)用戶集合為U, 被評價過的社交活動集合為S, 未被評價的新社交活動集合為S′, 用戶間可能存在信任關(guān)系,設(shè)為信任矩陣為TR。 設(shè)目標(biāo)用戶為ui∈U, 本文的目的就是利用融合興趣度和信任度的協(xié)同過濾算法預(yù)測ui對未被評價的社交活動集合S′的評分,然后按照Top-N排序規(guī)則將排名靠前的社交活動推薦給目標(biāo)用戶ui。
用戶對社交活動的興趣度是考量用戶是否參加活動的重要影響因素之一。本文利用文件主題模型(latent Dirichlet allocation,LDA)求取用戶ui參加過的社交活動S的主題分布,并用其表示目標(biāo)用戶ui的興趣度。為了便于計(jì)算,我們設(shè)φt表示隱含主題t在單詞集合上的多項(xiàng)式分布,設(shè)fileui表示目標(biāo)用戶ui參加的社交活動內(nèi)容所形成的文件,利用文件主題模型可求出社交活動內(nèi)容文件fileui所有的隱含主題多項(xiàng)式分布。參考文獻(xiàn)[15]我們可以利用文件主題模型中的狄利克雷函數(shù)Dirichlet(α)、Dirichlet(β) 分別求取隱含主題與單詞的概率分布δt和文件與單詞的概率分布φfileui, 利用多項(xiàng)式分布函數(shù)Mult(φfileui)、Mult(δtfileui,m) 對文件fileui中的第m單詞生成主題分配tfileui,m和單詞wfileui,m, 其中α、β為兩個狄利克雷函數(shù)的參數(shù)。用戶文件fileui的似然函數(shù)為
(1)
式中:wfileui,Mfileui,ηfileui,Ψ分別表示文件fileui中所有單詞、單詞的數(shù)量、單詞的主題分配、單詞對應(yīng)的主題-單詞概率分布。
設(shè)在文件主題模型中文檔間是相互獨(dú)立的,則Numf個文件的完全似然函數(shù)如下
(2)
式中:Wo,T,Υ分別表示文件中所有單詞、主題的分布以及所有文件-主題詞概率分布。我們幾乎不可能從似然函數(shù)中推斷出參數(shù)Υ和Ψ,并且難以直接從某一多變量概率分布中近似抽取樣本序列,針對于此,采用吉布斯采樣將隱含主題詞t從聯(lián)合的概率分布中采樣出來
(3)
(4)
(5)
(6)
設(shè)目標(biāo)用戶ui的文件為fileui, 新社交活動sj的文件為filesj, 兩者所對應(yīng)的主題分布為φfileui和φfilesj, 為了求取用戶與社交活動的主題的相似度,本文引入庫爾貝克-萊布勒散度(Kullback-Leibler,KL)[16]和延森-香農(nóng)散度(Jensen-Shannon)[17]來計(jì)算兩者之間的相似度,Jensen-Shannon定義為
(7)
式中:KL(·) 表示庫爾貝克-萊布勒散度,其定義為
(8)
JS(ui‖sj) 會隨著φfileui和φfilesj兩者主題分布的差別而增大,這里定義目標(biāo)用戶ui對社交活動sj的興趣度為inui,sj
inui,sj=1-JS(ui‖sj)
(9)
在網(wǎng)絡(luò)社交活動中,用戶間的信任一般分為直接信任和間接信任[18]。直接信任顧名思義就是基于用戶間的某種認(rèn)知而產(chǎn)生的一對一信任,而間接信任就是用戶因某個中間人的推薦而對另一個用戶的信任。通常情況下用戶間的信任值用[0,1]內(nèi)的某個數(shù)值表示,信任值越趨于1越信任,信任值為0表示不信任。
定義1 信任網(wǎng)絡(luò):對于給定的社交活動網(wǎng)絡(luò),可將其對應(yīng)的看出一個用戶間因信任值而形成的信任網(wǎng)絡(luò)Q=(U,E,D), 其中U為用戶集合,E為信任網(wǎng)絡(luò)中有向邊集合,邊e(ui,uj) 表示用戶ui對用戶uj的信任關(guān)系,D表示有向邊上的信任度集合。
定義2 信任路徑:在給定的信任網(wǎng)絡(luò)Q=(U,E,D) 中,目標(biāo)用戶ui對非直接信任用戶ux的信任感知是基于一條可達(dá)的路徑p=(ui,…,uy,uz,…,ux), 并且路徑p上任意邊e(uy,uz) 的信任度都大于所設(shè)定的信任閾值wθ, 那么路徑p就為一條信任路徑。但信任也會隨著路徑的加大而衰減,所以我們在信任路徑中規(guī)定一定的跳數(shù)閾值hθ。
一般來說在社交網(wǎng)絡(luò)中,若一個用戶被較多的其他用戶所信任,那么一般表明此用戶的可信度較高,反之亦然?;诖?,我們借鑒Pagerank算法的思想求取用戶的信任度
(10)
式中:Tui表示ui的信任用戶集合,|Tui| 表示集合的大小,Nuj、Nur分別表示uj、ur被信任的用戶個數(shù)。圖1中用戶節(jié)點(diǎn)間的信任度是基于用戶面對面的直接信任產(chǎn)生的,但在實(shí)際的社交網(wǎng)絡(luò)中,許多用戶間可能不存在或存在不明顯的潛在信任關(guān)系,這樣得到的信任矩陣非常稀疏,計(jì)算信任相似度的難度就會難上加難。
圖1 用戶間信任網(wǎng)絡(luò)
為此,本文在計(jì)算用戶信任矩陣前,引入信任傳遞以計(jì)算無交集用戶間的信任度,若兩個用戶間沒有直接信任關(guān)系,其信任度的計(jì)算公式如下
(11)
(12)
如圖1中,設(shè)信任閾值wθ=0.5,hθ=3, 那么我們?nèi)羰怯?jì)算用戶u2對用戶u7的間接信任,則存在4條路徑:u2→u6→u4→u7、u2→u6→u3→u7、u2→u5→u3→u7和u2→u5→u3→u1→u7, 而根據(jù)信任閾值wθ=0.5,hθ=3, 最終剩余u2→u6→u4→u7、u2→u6→u3→u7和u2→u5→u3→u7這3條信任路徑。據(jù)式(12)得:W(1)=0.624*0.761=0.4749,W(2)=0.725*0.746=0.5409,W(3)=0.624*0.588=0.3669根據(jù)式(11)用戶u2對用戶u7的間接信任Td′u2,u7
那么用戶之間的信任度可表示為
基于以上各用戶間的信任度值建立用戶信任矩陣,這里用UT表示
(13)
式中:utumun表示用戶um對用戶un的信任度。
在基于社交活動的網(wǎng)絡(luò)中,用戶對其曾經(jīng)參加的社交活動會有一個評價,所有用戶對其所參加的所有活動的評價就形成了用戶-社交活動評價矩陣,這里用US表示
(14)
式中:usmn表示用戶um對社交項(xiàng)目sn評分,矩陣USm×n每一行都為用戶ui對社交活動集S的具體評分,矩陣USm×n中的每一列是所有用戶u對某一個社交項(xiàng)目si評分。
基于前文中各相關(guān)因素,本節(jié)給出推薦模型建立的詳細(xì)過程。
本節(jié)融合用戶對社交活動的興趣度和評分,構(gòu)建新的興趣度相似矩陣。
首先,獲取用戶-社交活動評價矩陣USm×n, 根據(jù)USm×n的元素利用Pearson相關(guān)系數(shù)計(jì)算目標(biāo)用戶與其他用戶的相似度
(15)
(16)
根據(jù)式(9),我們可以獲得用戶對社交活動的興趣度矩陣INm×n
(17)
同理,根據(jù)INm×n的元素利用Pearson相關(guān)系數(shù)計(jì)算目標(biāo)用戶的興趣相似度
(18)
(19)
融合用戶評分相似度和用戶-社交活動興趣相似度,可得綜合用戶相似度
sim(ui,uj)″=λsim(ui,uj)′us+(1-λ)sim(ui,uj)′in
(20)
式中:λ∈[0,1] 為調(diào)解參數(shù),若λ=1表示沒有考慮用戶-社交活動興趣相似度,即為傳統(tǒng)的協(xié)同推薦算法。
在融合用戶-社交活動興趣相似度的基礎(chǔ)上,本文得出了用戶間的綜合相似度。但相似的用戶是不是值得信任,推薦的社交活動能否得到目標(biāo)用戶的認(rèn)可,是本文考慮的重點(diǎn)。為此本節(jié)在傳統(tǒng)協(xié)同過濾推薦的基礎(chǔ)上結(jié)合信任推薦的思想,將綜合用戶相似度與用戶信任度相融合,得到個性化推薦權(quán)值
(21)
按照協(xié)同過濾推薦的步驟,采用修正后的個性化推薦權(quán)值Weui,uj加權(quán)修正原推薦公式
(22)
為了獲得較大的社交數(shù)據(jù),選取一線城市北京、上海、廣州豆瓣同城2017年1月1日-2019年2月28日期間的所有社交活動。主要采集的信息為:用戶信息(用戶名、用戶ID、用戶的興趣、用戶對所參加過的社交活動的評分),社交活動信息(社交活動類別、社交活動的內(nèi)容、社交活動ID等),數(shù)據(jù)統(tǒng)計(jì)見表1。
表1 數(shù)據(jù)統(tǒng)計(jì)明細(xì)
仿真實(shí)驗(yàn)將Top-N推薦算法推薦結(jié)果,采用Precision@N、Recall@N、MAE(mean absolute error)和覆蓋率(Coverage)這4個評價指標(biāo)評估各算法推薦的性能
(23)
(24)
式中:Reui,N、Teui分別表示各算法按照Top-N推薦給目標(biāo)用戶ui的社交活動以及用戶ui在測試集中所參與的活動集合, |*| 為計(jì)算集合大小,這里設(shè)置N=1,3,5,7,10
(25)
式中:Pi為候選社交活動i的預(yù)測評分,Hi為活動i的實(shí)際評分,N為候選社交活動個數(shù)
(26)
其中,R(u) 表示向目標(biāo)用戶推薦社交活動集合。
在文件主題模型中需要對參數(shù)進(jìn)行優(yōu)化設(shè)置,并且調(diào)節(jié)參數(shù)的大小這直接影響著算法推薦的效果,各參數(shù)設(shè)置如下:
(1)文件主題模型參數(shù)設(shè)置
實(shí)驗(yàn)采用自然語言處理框架Gensim實(shí)現(xiàn)文件主題模型,在模型中設(shè)分布函數(shù)參數(shù)β=50/Numk,α=0.01, 為了獲得隱含主題t的最佳個數(shù)Numk, 利用豆瓣同城北京、上海和廣州數(shù)據(jù)集測試文件主題模型在不同的Numk下Precision@5和Recall@5, 結(jié)果如圖2所示。
通過圖2我們可以看出在不同數(shù)據(jù)集上,隨著隱含主題數(shù)的增大,評價指標(biāo)Precision@5、Recall@5變化是有差別的。在豆瓣同城北京數(shù)據(jù)集上,評價指標(biāo)Precision@5和Recall@5隨著隱含主題個數(shù)Numk的增大而增大,在Numk≤60前期階段,兩個指標(biāo)的增幅較大,在后期兩個指標(biāo)的增幅緩慢趨于平穩(wěn)。當(dāng)Numk=100時,兩個評價指標(biāo)Precision@5和Recall@5取得最高值。
圖2 不同隱含主題Numk下Top-5推薦性能
在豆瓣同城上海數(shù)據(jù)集上,在Numk≤80前期階段,推薦評價指標(biāo)隨隱含主題個數(shù)Numk的增大而增大,在80 (2)調(diào)節(jié)參數(shù)λ的設(shè)置 調(diào)節(jié)參數(shù)λ是融合用戶評分相似度和用戶-社交活動興趣相似度的關(guān)鍵參數(shù)。設(shè)目標(biāo)用戶鄰居個數(shù)Num=10、20、30、40、50, 本文算法的MAE值跟參數(shù)λ的關(guān)系如圖3所示。 圖3 調(diào)節(jié)參數(shù)λ與MAE之間的關(guān)系 在不同的目標(biāo)用戶鄰居數(shù)下,本文算法的MAE值隨著參數(shù)λ的增大基本趨勢是一致的,即隨著λ值的增大先減小后緩慢增大。其中當(dāng)鄰居規(guī)模Num=30, 參數(shù)λ=0.4時MAE值最小,鄰居規(guī)模Num=50, 參數(shù)λ=1時MAE值最大。綜合考慮,為了獲得最優(yōu)效果,設(shè)鄰居規(guī)模Num=30, 調(diào)節(jié)參數(shù)λ=0.4。 本文實(shí)驗(yàn)的硬件環(huán)境為Intel(R) Core(TM) i5-8400@2.8 GHz,RAM:8 GB,軟件環(huán)境為:Windows 7操作系統(tǒng),使用Python編程實(shí)現(xiàn)。這里我們將已結(jié)束的社交活動作為訓(xùn)練集,將新的社交活動作為訓(xùn)練集,為驗(yàn)證本文所提算法的性能,將本文算法與傳統(tǒng)協(xié)同過濾推薦算法、文獻(xiàn)[20]進(jìn)行目標(biāo)用戶新社交活動推薦效果對比。 本節(jié)將3種算法對已有用戶社交活動的推薦結(jié)果進(jìn)行對比分析。通過圖4這3種算法在Top-N(N=1,3,5,7,10) 下的推薦評價指標(biāo)對比可以看出,本文提出的個性化推薦算法在不同N值下的推薦指標(biāo)明顯好于其它兩種推薦算法,說明本算法在綜合用戶對活動的興趣度、用戶間信任度后能夠取得較好的推薦結(jié)果。其中圖4(a)和圖4(b)為3種算法在豆瓣同城北京數(shù)據(jù)集上的推薦結(jié)果,其中在Top-N(N=1,3,5,7,10) 的推薦中,本文算法相較于文獻(xiàn)[20]和傳統(tǒng)協(xié)同過濾推薦算法的準(zhǔn)確率至少提升了5.88%和12.5%,召回率至少提升了約7.84%和23.53%;圖4(c)和圖4(d)為各算法在豆瓣同城上海數(shù)據(jù)集上的推薦結(jié)果,本文算法相較于文獻(xiàn)[20]和傳統(tǒng)協(xié)同過濾推薦算法的準(zhǔn)確率至少提升了5.26%和21.42%,召回率至少提升了約8.57%和19.23%;圖4(e)和圖4(f)為各算法在豆瓣同城廣州數(shù)據(jù)集上的推薦結(jié)果,本文算法相較于文獻(xiàn)[20]和傳統(tǒng)協(xié)同過濾推薦算法的準(zhǔn)確率至少提升了4.92%和18.18%,召回率至少提升了約7.89%和12.73%。 圖4 各算法Top-N推薦評價指標(biāo)對比 為了比較本文算法與其它兩種算法在MAE上的差異,這里固定調(diào)節(jié)參數(shù)λ=0.4, 以目標(biāo)用戶鄰居數(shù)目為變量,3種算法MAE值的變化如圖5所示。 圖5 不同算法間的MAE對比 通過圖5可以看出,3種算法隨著鄰居數(shù)目的增加,MAE值都呈下降的趨勢,但本文算法的MAE值整體上都小于其它兩種算法。在豆瓣同城北京數(shù)據(jù)集上,當(dāng)鄰居數(shù)目Num>50后,3種算法MAE值下降的幅度緩慢,鄰居數(shù)目Num≤50前,本文算法的MAE性能優(yōu)勢更明顯;在豆瓣同城上海數(shù)據(jù)集上,當(dāng)鄰居數(shù)目Num>60后,3種算法MAE值下降的幅度緩慢,基于MAE值的優(yōu)劣區(qū)分度不高,而鄰居數(shù)目Num≤60前,本文算法的MAE值相較于其它兩種算法更小,社交個性化推薦的誤差更低;在豆瓣同城廣州數(shù)據(jù)集上,鄰居數(shù)目Num=70為分界點(diǎn),Num>70后3種算法MAE值下降幅度緩慢,MAE值大小接近,但整體上相較于其它兩個數(shù)據(jù)集,MAE值都要小,推薦的精度較高,這是由于在廣州數(shù)據(jù)集上對活動的評分反饋信息量大于其它兩個數(shù)據(jù)集。 本節(jié)以目標(biāo)用戶鄰居數(shù)目為變量,觀察3種算法在3個數(shù)據(jù)集上的推薦覆蓋率,其實(shí)驗(yàn)結(jié)果如圖6所示。 圖6 不同算法間的Coverage對比 通過圖6可以看出,3種算法隨著鄰居數(shù)目的增加,覆蓋率會不斷提高,但后期覆蓋率增幅都趨于平緩。在3個數(shù)據(jù)集上,本文算法的覆蓋率都遠(yuǎn)遠(yuǎn)大于其它兩種算法,這是由于本文算法將用戶對社交活動評分、興趣和用戶間的信任度融合到推薦中,擴(kuò)大了潛在社交活動的推薦范圍,從而提高了推薦活動的覆蓋率。 本文在傳統(tǒng)協(xié)同過濾推薦的基礎(chǔ)上融合用戶興趣度和信任度,提出了一種個性化推薦算法。算法綜合用戶對社交活動的興趣度和評分,構(gòu)建新的興趣度相似矩陣得到用戶間的綜合相似度,將綜合用戶相似度與用戶信任度相融合,得到個性化推薦權(quán)值,以不同的權(quán)值配比獲得最終的社交化活動推薦。利用豆瓣同城數(shù)據(jù)集分析確定了文件主題模型參數(shù)和調(diào)節(jié)參數(shù)λ值。與其它兩種算法對比可知,本算法不僅取得了較高的準(zhǔn)確率和召回率,在覆蓋率和推薦誤差上也有較好的表現(xiàn),但推薦精度的提高可能要增加時間和空間消耗,將本文算法并行化處理以降低時間復(fù)雜度是后續(xù)研究的重點(diǎn)方向。4 仿真實(shí)驗(yàn)與對比分析
4.1 不同算法的準(zhǔn)確率和召回率對比
4.2 不同算法的MAE對比
4.3 不同算法的覆蓋率對比
5 結(jié)束語