苑寧萍,辛力堅,王呼生+,寧鵬飛
(1.內蒙古醫科大學 計算機信息學院,內蒙古 呼和浩特 010110;2.內蒙古電力科學研究院,內蒙古 呼和浩特 010020)
協同過濾(collaborative filtering,CF)存在因數據稀疏、冷啟動等造成的推薦精度低等問題。為此國內外學者們進行了大量的研究[1-7]。文獻[8]為了解決其中的用戶冷啟動問題,將用戶社交信息和評分信息進行融合,提出了一種基于社區專家信息的協同過濾推薦算法;文獻[9]采用稀疏評分矩陣建立用戶評分項目集合,對評分矩陣進行降維、構建近似評分矩陣并填充用戶項目的評分集合,得到用戶間相似度;文獻[10]利用深度學習來決定矩陣分解中的初始化問題,實現信任效應對推薦的影響;文獻[11]提出了一種高效的角色挖掘推薦算法,利用用戶間共識向組內其他用戶推薦服務;文獻[12]利用用戶提供的稀疏評估數據和稀疏社交數據來提高協同過濾的推薦效率。
研究結果表明,用戶對社交活動的選擇多基于興趣愛好,并且往往與具有相同興趣愛好的用戶保持緊密聯系[13,14]。近年來,大多數的研究只注重利用用戶對社交活動的評分,忽略了用戶對活動的興趣和用戶間的信任度,致使改進算法推薦精度提高有限。基于此,本文提出了一種融合用戶興趣度和信任度的協同過濾推薦算法。
本節對基于興趣度和信任度的個性化推薦模型進行詳細描述。在本文構建的個性化推薦模型中,假設用戶集合為U, 被評價過的社交活動集合為S, 未被評價的新社交活動集合為S′, 用戶間可能存在信任關系,設為信任矩陣為TR。 設目標用戶為ui∈U, 本文的目的就是利用融合興趣度和信任度的協同過濾算法預測ui對未被評價的社交活動集合S′的評分,然后按照Top-N排序規則將排名靠前的社交活動推薦給目標用戶ui。
用戶對社交活動的興趣度是考量用戶是否參加活動的重要影響因素之一。本文利用文件主題模型(latent Dirichlet allocation,LDA)求取用戶ui參加過的社交活動S的主題分布,并用其表示目標用戶ui的興趣度。為了便于計算,我們設φt表示隱含主題t在單詞集合上的多項式分布,設fileui表示目標用戶ui參加的社交活動內容所形成的文件,利用文件主題模型可求出社交活動內容文件fileui所有的隱含主題多項式分布。參考文獻[15]我們可以利用文件主題模型中的狄利克雷函數Dirichlet(α)、Dirichlet(β) 分別求取隱含主題與單詞的概率分布δt和文件與單詞的概率分布φfileui, 利用多項式分布函數Mult(φfileui)、Mult(δtfileui,m) 對文件fileui中的第m單詞生成主題分配tfileui,m和單詞wfileui,m, 其中α、β為兩個狄利克雷函數的參數。用戶文件fileui的似然函數為

(1)
式中:wfileui,Mfileui,ηfileui,Ψ分別表示文件fileui中所有單詞、單詞的數量、單詞的主題分配、單詞對應的主題-單詞概率分布。
設在文件主題模型中文檔間是相互獨立的,則Numf個文件的完全似然函數如下
(2)
式中:Wo,T,Υ分別表示文件中所有單詞、主題的分布以及所有文件-主題詞概率分布。我們幾乎不可能從似然函數中推斷出參數Υ和Ψ,并且難以直接從某一多變量概率分布中近似抽取樣本序列,針對于此,采用吉布斯采樣將隱含主題詞t從聯合的概率分布中采樣出來

(3)
(4)
(5)

(6)
設目標用戶ui的文件為fileui, 新社交活動sj的文件為filesj, 兩者所對應的主題分布為φfileui和φfilesj, 為了求取用戶與社交活動的主題的相似度,本文引入庫爾貝克-萊布勒散度(Kullback-Leibler,KL)[16]和延森-香農散度(Jensen-Shannon)[17]來計算兩者之間的相似度,Jensen-Shannon定義為

(7)
式中:KL(·) 表示庫爾貝克-萊布勒散度,其定義為
(8)
JS(ui‖sj) 會隨著φfileui和φfilesj兩者主題分布的差別而增大,這里定義目標用戶ui對社交活動sj的興趣度為inui,sj
inui,sj=1-JS(ui‖sj)
(9)
在網絡社交活動中,用戶間的信任一般分為直接信任和間接信任[18]。直接信任顧名思義就是基于用戶間的某種認知而產生的一對一信任,而間接信任就是用戶因某個中間人的推薦而對另一個用戶的信任。通常情況下用戶間的信任值用[0,1]內的某個數值表示,信任值越趨于1越信任,信任值為0表示不信任。
定義1 信任網絡:對于給定的社交活動網絡,可將其對應的看出一個用戶間因信任值而形成的信任網絡Q=(U,E,D), 其中U為用戶集合,E為信任網絡中有向邊集合,邊e(ui,uj) 表示用戶ui對用戶uj的信任關系,D表示有向邊上的信任度集合。
定義2 信任路徑:在給定的信任網絡Q=(U,E,D) 中,目標用戶ui對非直接信任用戶ux的信任感知是基于一條可達的路徑p=(ui,…,uy,uz,…,ux), 并且路徑p上任意邊e(uy,uz) 的信任度都大于所設定的信任閾值wθ, 那么路徑p就為一條信任路徑。但信任也會隨著路徑的加大而衰減,所以我們在信任路徑中規定一定的跳數閾值hθ。
一般來說在社交網絡中,若一個用戶被較多的其他用戶所信任,那么一般表明此用戶的可信度較高,反之亦然。基于此,我們借鑒Pagerank算法的思想求取用戶的信任度
(10)
式中:Tui表示ui的信任用戶集合,|Tui| 表示集合的大小,Nuj、Nur分別表示uj、ur被信任的用戶個數。圖1中用戶節點間的信任度是基于用戶面對面的直接信任產生的,但在實際的社交網絡中,許多用戶間可能不存在或存在不明顯的潛在信任關系,這樣得到的信任矩陣非常稀疏,計算信任相似度的難度就會難上加難。

圖1 用戶間信任網絡
為此,本文在計算用戶信任矩陣前,引入信任傳遞以計算無交集用戶間的信任度,若兩個用戶間沒有直接信任關系,其信任度的計算公式如下
(11)

(12)
如圖1中,設信任閾值wθ=0.5,hθ=3, 那么我們若是計算用戶u2對用戶u7的間接信任,則存在4條路徑:u2→u6→u4→u7、u2→u6→u3→u7、u2→u5→u3→u7和u2→u5→u3→u1→u7, 而根據信任閾值wθ=0.5,hθ=3, 最終剩余u2→u6→u4→u7、u2→u6→u3→u7和u2→u5→u3→u7這3條信任路徑。據式(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根據式(11)用戶u2對用戶u7的間接信任Td′u2,u7

那么用戶之間的信任度可表示為
基于以上各用戶間的信任度值建立用戶信任矩陣,這里用UT表示
(13)
式中:utumun表示用戶um對用戶un的信任度。
在基于社交活動的網絡中,用戶對其曾經參加的社交活動會有一個評價,所有用戶對其所參加的所有活動的評價就形成了用戶-社交活動評價矩陣,這里用US表示
(14)
式中:usmn表示用戶um對社交項目sn評分,矩陣USm×n每一行都為用戶ui對社交活動集S的具體評分,矩陣USm×n中的每一列是所有用戶u對某一個社交項目si評分。
基于前文中各相關因素,本節給出推薦模型建立的詳細過程。
本節融合用戶對社交活動的興趣度和評分,構建新的興趣度相似矩陣。
首先,獲取用戶-社交活動評價矩陣USm×n, 根據USm×n的元素利用Pearson相關系數計算目標用戶與其他用戶的相似度

(15)

(16)

根據式(9),我們可以獲得用戶對社交活動的興趣度矩陣INm×n
(17)
同理,根據INm×n的元素利用Pearson相關系數計算目標用戶的興趣相似度

(18)

(19)
融合用戶評分相似度和用戶-社交活動興趣相似度,可得綜合用戶相似度
sim(ui,uj)″=λsim(ui,uj)′us+(1-λ)sim(ui,uj)′in
(20)
式中:λ∈[0,1] 為調解參數,若λ=1表示沒有考慮用戶-社交活動興趣相似度,即為傳統的協同推薦算法。
在融合用戶-社交活動興趣相似度的基礎上,本文得出了用戶間的綜合相似度。但相似的用戶是不是值得信任,推薦的社交活動能否得到目標用戶的認可,是本文考慮的重點。為此本節在傳統協同過濾推薦的基礎上結合信任推薦的思想,將綜合用戶相似度與用戶信任度相融合,得到個性化推薦權值

(21)
按照協同過濾推薦的步驟,采用修正后的個性化推薦權值Weui,uj加權修正原推薦公式
(22)

為了獲得較大的社交數據,選取一線城市北京、上海、廣州豆瓣同城2017年1月1日-2019年2月28日期間的所有社交活動。主要采集的信息為:用戶信息(用戶名、用戶ID、用戶的興趣、用戶對所參加過的社交活動的評分),社交活動信息(社交活動類別、社交活動的內容、社交活動ID等),數據統計見表1。

表1 數據統計明細
仿真實驗將Top-N推薦算法推薦結果,采用Precision@N、Recall@N、MAE(mean absolute error)和覆蓋率(Coverage)這4個評價指標評估各算法推薦的性能
(23)
(24)
式中:Reui,N、Teui分別表示各算法按照Top-N推薦給目標用戶ui的社交活動以及用戶ui在測試集中所參與的活動集合, |*| 為計算集合大小,這里設置N=1,3,5,7,10
(25)
式中:Pi為候選社交活動i的預測評分,Hi為活動i的實際評分,N為候選社交活動個數
(26)
其中,R(u) 表示向目標用戶推薦社交活動集合。
在文件主題模型中需要對參數進行優化設置,并且調節參數的大小這直接影響著算法推薦的效果,各參數設置如下:
(1)文件主題模型參數設置
實驗采用自然語言處理框架Gensim實現文件主題模型,在模型中設分布函數參數β=50/Numk,α=0.01, 為了獲得隱含主題t的最佳個數Numk, 利用豆瓣同城北京、上海和廣州數據集測試文件主題模型在不同的Numk下Precision@5和Recall@5, 結果如圖2所示。
通過圖2我們可以看出在不同數據集上,隨著隱含主題數的增大,評價指標Precision@5、Recall@5變化是有差別的。在豆瓣同城北京數據集上,評價指標Precision@5和Recall@5隨著隱含主題個數Numk的增大而增大,在Numk≤60前期階段,兩個指標的增幅較大,在后期兩個指標的增幅緩慢趨于平穩。當Numk=100時,兩個評價指標Precision@5和Recall@5取得最高值。

圖2 不同隱含主題Numk下Top-5推薦性能
在豆瓣同城上海數據集上,在Numk≤80前期階段,推薦評價指標隨隱含主題個數Numk的增大而增大,在80 (2)調節參數λ的設置 調節參數λ是融合用戶評分相似度和用戶-社交活動興趣相似度的關鍵參數。設目標用戶鄰居個數Num=10、20、30、40、50, 本文算法的MAE值跟參數λ的關系如圖3所示。 圖3 調節參數λ與MAE之間的關系 在不同的目標用戶鄰居數下,本文算法的MAE值隨著參數λ的增大基本趨勢是一致的,即隨著λ值的增大先減小后緩慢增大。其中當鄰居規模Num=30, 參數λ=0.4時MAE值最小,鄰居規模Num=50, 參數λ=1時MAE值最大。綜合考慮,為了獲得最優效果,設鄰居規模Num=30, 調節參數λ=0.4。 本文實驗的硬件環境為Intel(R) Core(TM) i5-8400@2.8 GHz,RAM:8 GB,軟件環境為:Windows 7操作系統,使用Python編程實現。這里我們將已結束的社交活動作為訓練集,將新的社交活動作為訓練集,為驗證本文所提算法的性能,將本文算法與傳統協同過濾推薦算法、文獻[20]進行目標用戶新社交活動推薦效果對比。 本節將3種算法對已有用戶社交活動的推薦結果進行對比分析。通過圖4這3種算法在Top-N(N=1,3,5,7,10) 下的推薦評價指標對比可以看出,本文提出的個性化推薦算法在不同N值下的推薦指標明顯好于其它兩種推薦算法,說明本算法在綜合用戶對活動的興趣度、用戶間信任度后能夠取得較好的推薦結果。其中圖4(a)和圖4(b)為3種算法在豆瓣同城北京數據集上的推薦結果,其中在Top-N(N=1,3,5,7,10) 的推薦中,本文算法相較于文獻[20]和傳統協同過濾推薦算法的準確率至少提升了5.88%和12.5%,召回率至少提升了約7.84%和23.53%;圖4(c)和圖4(d)為各算法在豆瓣同城上海數據集上的推薦結果,本文算法相較于文獻[20]和傳統協同過濾推薦算法的準確率至少提升了5.26%和21.42%,召回率至少提升了約8.57%和19.23%;圖4(e)和圖4(f)為各算法在豆瓣同城廣州數據集上的推薦結果,本文算法相較于文獻[20]和傳統協同過濾推薦算法的準確率至少提升了4.92%和18.18%,召回率至少提升了約7.89%和12.73%。 圖4 各算法Top-N推薦評價指標對比 為了比較本文算法與其它兩種算法在MAE上的差異,這里固定調節參數λ=0.4, 以目標用戶鄰居數目為變量,3種算法MAE值的變化如圖5所示。 圖5 不同算法間的MAE對比 通過圖5可以看出,3種算法隨著鄰居數目的增加,MAE值都呈下降的趨勢,但本文算法的MAE值整體上都小于其它兩種算法。在豆瓣同城北京數據集上,當鄰居數目Num>50后,3種算法MAE值下降的幅度緩慢,鄰居數目Num≤50前,本文算法的MAE性能優勢更明顯;在豆瓣同城上海數據集上,當鄰居數目Num>60后,3種算法MAE值下降的幅度緩慢,基于MAE值的優劣區分度不高,而鄰居數目Num≤60前,本文算法的MAE值相較于其它兩種算法更小,社交個性化推薦的誤差更低;在豆瓣同城廣州數據集上,鄰居數目Num=70為分界點,Num>70后3種算法MAE值下降幅度緩慢,MAE值大小接近,但整體上相較于其它兩個數據集,MAE值都要小,推薦的精度較高,這是由于在廣州數據集上對活動的評分反饋信息量大于其它兩個數據集。 本節以目標用戶鄰居數目為變量,觀察3種算法在3個數據集上的推薦覆蓋率,其實驗結果如圖6所示。 圖6 不同算法間的Coverage對比 通過圖6可以看出,3種算法隨著鄰居數目的增加,覆蓋率會不斷提高,但后期覆蓋率增幅都趨于平緩。在3個數據集上,本文算法的覆蓋率都遠遠大于其它兩種算法,這是由于本文算法將用戶對社交活動評分、興趣和用戶間的信任度融合到推薦中,擴大了潛在社交活動的推薦范圍,從而提高了推薦活動的覆蓋率。 本文在傳統協同過濾推薦的基礎上融合用戶興趣度和信任度,提出了一種個性化推薦算法。算法綜合用戶對社交活動的興趣度和評分,構建新的興趣度相似矩陣得到用戶間的綜合相似度,將綜合用戶相似度與用戶信任度相融合,得到個性化推薦權值,以不同的權值配比獲得最終的社交化活動推薦。利用豆瓣同城數據集分析確定了文件主題模型參數和調節參數λ值。與其它兩種算法對比可知,本算法不僅取得了較高的準確率和召回率,在覆蓋率和推薦誤差上也有較好的表現,但推薦精度的提高可能要增加時間和空間消耗,將本文算法并行化處理以降低時間復雜度是后續研究的重點方向。
4 仿真實驗與對比分析
4.1 不同算法的準確率和召回率對比

4.2 不同算法的MAE對比

4.3 不同算法的覆蓋率對比

5 結束語