魏云鶴,馬慧芳,2,姜彥斌,宿 云
(1.西北師范大學計算機科學與工程學院,甘肅 蘭州 730070; 2.桂林電子科技大學廣西可信軟件重點實驗室,廣西 桂林 541004)
隨著互聯網技術的快速發展,信息資源飛速增長,面對嚴重過載的信息,用戶很難快速篩選出對自己有用的信息,從而要耗費大量時間搜索自己需要的內容,于是推薦系統應運而生[1,2]。推薦系統根據用戶的偏好信息或者某些約束信息預測用戶喜歡的項目,并為其給出適當的建議。協同過濾推薦是運用最廣泛的推薦方法,其理論依據是:目標用戶的歷史行為與某些用戶有相似之處,那么該目標用戶與這些相似用戶應該有共同的偏好,協同過濾推薦通過分析用戶的歷史評分信息及反饋信息,預測用戶未來的偏好,是研究的主流方向[3]。
近年來,研究人員提出了許多基于協同過濾的推薦算法,基于矩陣分解的協同過濾算法因其有較高的準確性和可擴展性而被廣泛應用,其基本思想是將用戶和物品表示在低維隱空間上。例如,Cremonesi等人[4]提出了一種PureSVD(Pure Singular Value Decomposition)模型,該模型將丟失的條目視為零,使用矩陣的截斷SVD分解來生成Top-N推薦。Christakopoulou等人[5]提出的sGLSVD(Global and Local Singular Value Decomposition with varying subsets)模型根據用戶的評分將用戶分配到不同的子集,通過截斷奇異值分解方法對用戶進行低秩表示。然而這些方法沒有解決協同過濾算法存在的推薦性能低和冷啟動等問題。因此,越來越多的推薦算法將社交信息融合到矩陣分解算法中, 以改善推薦性能[6,7]。融合社交信息的推薦算法一般假設社交網絡中用戶的偏好受到朋友的影響,并且同社區的用戶具有類似的興趣,首先將用戶和項目同時映射到低維特征空間,然后通過對評分和信任數據上的一些目標函數進行優化來訓練預測模型。SoRec(Social Recommendation using probabilistic matrix factorization)是一種基于矩陣分解的社交推薦模型[8],其在原有的概率矩陣分解模型中加入社交關系矩陣,同時分解評分矩陣和社交關系矩陣,通過共享的用戶潛在特征空間將這2種不同的信息連接起來,從而提高推薦的準確性。Zhao等人[9]提出了一種社交貝葉斯個性化排序模型SBPR(Social Bayesian Personalized Ranking),該模型將社交關系作為一種額外信息來獲得更準確的基于排序的方法,使用社交關系來更好地估計用戶對產品的偏好。Chaney等人[10]提出了社交泊松因子分解SPF(Social Poisson Factorization)模型,這是一種將社交網絡信息納入傳統因子分解方法的概率模型,將社交因素引入到推薦算法中,從而結合用戶對項目的潛在偏好和用戶朋友的潛在影響來提高推薦性能。但是,上述工作忽略了2個問題:一是沒有考慮到用戶可以屬于不同的社交維度,并且在不同社交維度關心的層面不同;二是用戶的偏好既包括全局因素也包括局部因素。
為了解決以上問題,本文提出了一種融合社交信息的局部潛在空間推薦方法LSFS(Local latent Space recommendation method Fusing Social information)。首先,基于用戶的社交關系將用戶劃分到重疊社區中,而在不同的社區中用戶關注的層面不同,這種重疊社區的發現結果可以與用戶興趣的多樣化相對應。然后,利用截斷奇異值分解技術構建預測評分的全局模型和不同子集的局部模型,其中全局模型用來捕獲用戶共享的層面,而不同用戶子集的局部模型用來捕獲不同的用戶子集關心的特定層面,再將二者結合預測所有未評分項目的評分。圖1所示為本文方法的整體框架。

Figure 1 Framework of local latent space recommendation method fusing social information圖1 融合社交信息的局部潛在空間推薦方法框架圖

為了方便描述,將本文所用的其他幾個重要符號總結在表1中。

Table 1 Several important mathematical notations表1 幾個重要的數學符號
在社交網絡中,用戶可以同時屬于多個社區,使得社區結構重疊。基于經典BIGCLAM(CLuster Affiliation Model for BIG networks)[11]方法進行用戶重疊社區檢測。具體地:給定F,用戶ui與uh之間以概率p(i,h)創建邊(i,h)來生成社交網絡G(U,E)。
(1)
G的似然函數l(F)=P(G|F)計算如下:
(2)
通過最大化G的對數似然函數來檢測d個社區:
(3)
其中,F≥0表示矩陣F中所有元素都大于或等于0。

奇異值分解是將任意一個n×m的矩陣表示為3個矩陣乘積的形式,3個矩陣分別是n階正交矩陣、由降序排列的非負的對角線元素組成的n×m矩形對角矩陣和m階正交矩陣,矩陣的奇異值一定存在,但不唯一,奇異值分解可以看做是用因子分解的方式近似地表示原始矩陣的一種方法[12]。在奇異值分解中,只取最大的t個奇異值(t (4) 其中,左奇異矩陣Ut是n×t矩陣,右奇異矩陣Vt是m×t的矩陣,奇異值矩陣Σt是t階對角矩陣;矩陣Ut由完全奇異值分解中U的前t列組成,矩陣Vt由V的前t列組成,矩陣Σt由Σ的前t個對角線元素得到。對角矩陣Σt的秩比原始矩陣A的秩低。 本節提出了一種融合社交信息的潛在空間推薦方法,通過對全局訓練矩陣和局部訓練矩陣的截斷奇異值分解建模全局用戶潛在因子和局部用戶潛在因子,從而預測用戶對未評分項目的評分,并給出推薦列表。 首先基于社交關系將用戶劃分到不同的社區中,每個用戶可以同時屬于不同的社區,用戶在不同的社區中共享不同的偏好。然后在全局訓練矩陣Rg上計算秩為fg的截斷奇異值分解,用來估計全局用戶潛在因子: (5) (6) 通過估計全局潛在空間模型和多個用戶社區特定潛在空間模型來預測用戶對項目的評分,用gi表示全局模型權重,(1-gi)表示局部模型權重,gi取值為[0,1],其中0表示僅使用局部模型,1表示僅使用全局模型。結合目標用戶的全局偏好和其在不同社區的局部偏好預測用戶的最終偏好: (7) 每個用戶ui在所有項目上的平方誤差為: (8) 將平方誤差的導數設置為0后,計算權重gi: (9) 本文方法的步驟如算法1所示。 算法1融合社交信息的局部潛在空間推薦 輸入:用戶項目隱式反饋矩陣R,用戶社交關系矩陣S。 輸出:Top-N項目推薦列表。 步驟1forallui∈UandCk∈C ifFik>0do Ck←ui 步驟2構建Rk,?k∈{1,…,d}; 步驟3在Rg上計算秩為fg的截斷SVD分解; 步驟4 forallRkdo 計算秩為fk的截斷SVD分解; 步驟5利用式(7)構建評分預測模型; 步驟6 forallui∈Uandvj∈Vdo 利用式(9)計算全局模型權重gi; 步驟7利用式(7)計算用戶ui對項目vj的預測評分; 步驟8將項目的預測評分從大到小進行排序,選擇前N個項目為用戶ui產生的Top-N推薦列表。 本節首先對實驗數據進行描述,然后設計實驗對本文所提方法進行驗證,并對實驗結果做進一步分析。實驗環境采用Intel i7-8750H Core 2.67 GHz 處理器,16 GB內存,64位 Windows 10操作系統,實現語言為Python。 為了驗證本文方法,選取FilmTrust[13]、Epinions[6]、Ciao[9]3個數據集進行實驗。FilmTrust是一個電影評分數據集,該數據集包括用戶之間的信任關系,用戶能夠對電影做出評分,同時還可以構建信任關系。Epinions數據集中用戶可以給商品評分,同時還可以給其他人的評論進行打分,標記自己信任的用戶以構建社交網絡。Ciao是從Ciao網站抓取的數據集,在Ciao上用戶不僅可以對不同項目進行評分,還可以與其他用戶建立社交關系。表2描述了實驗所用的數據集的統計信息,其中,Rdensity表示用戶-項目交互數據密度,Sdensity表示用戶社交關系密度。對于所有數據集,使用80%的數據作為訓練集,剩余20%作為測試集。 Table 2 Summary of the datasets 表2 實驗數據集總結 4.2.1 評價指標 為了衡量偏好預測的準確度,本文采用3種常用的評價指標衡量推薦的準確度:精準率(Precision)、召回率(Recall)和歸一化折損累積增益(NDCG),其值越大,推薦性能越好。 (10) (11) 其中,|U|表示用戶總數,S(u)是用戶u的測試集,S(N;u)是用戶u的測試集中存在于推薦列表中的項目集合。 (12) 其中,i為命中項目的位置,如果命中,則reli=1,否則reli=0。 NDCG是用戶的DCG值與理想DCG值IDCG值之比,IDCG是用戶的最佳項目排名值。 (13) 4.2.2 對比方法 選取了2類方法進行測評:(1)PureSVD[4]和sGLSVD[5],這2種方法都只對用戶-項目評分矩陣進行奇異值分解,未考慮用戶的社交信息。選擇這2種方法的目的是驗證本文方法引入社交信息對推薦性能的影響。(2)SBPR[9]和SPF[10],這2種方法與本文方法都是利用社交信息的推薦方法,但是這2種方法都沒有考慮用戶在不同社區內的偏好不同。這2種方法的目的是驗證用戶重疊社區檢測對推薦結果的影響。 此外,還將本文的LSFS與其2種變體進行比較:LSFS-Social和LSFS-Overlap。這2種變體定義如下: LSFS-Social:去掉用戶社交關系,在用戶社區檢測時不利用用戶社交關系,僅通過一般的聚類方法將用戶分成d個不同的子集。 LSFS-Overlap:該變體在用戶社區檢測時只考慮每個用戶ui隸屬于單一社區Ck,不考慮用戶重疊社區檢測對推薦結果的影響。 實驗參數影響著方法的最終性能,PureSVD中嘗試的奇異值f的數量為:{10,15,20,…,95,100,150,200,…,1 000}。sGLSVD在以下值之間改變局部模型fc的值:{1,2,3,5,10,15,…,90,95,100}。SBPR中參數αu,αv,αb分別設置為0.015,0.025和0.01。SPF中潛在因子K設置為40。本文在沒有先驗知識的情況下將社區數量大小設置為{5,10,15,…,45,50},在截斷奇異值分解中奇異值f的大小設置為{1,2,3,5,10,15,…,90,95,100}。 4.3.1 參數對實驗的影響 本節將研究用戶社區數量d如何影響本文方法LSFS的推薦性能。經過多次實驗得到式(5)和式(6)中最佳截斷奇異值大小,其中在FilmTrust數據集上fg和fk分別取30和10,在Epinions數據集上fg和fk分別取50和20,在Ciao數據集上fg和fk分別取45和25。將社區數量設置為{5,10,15,…,45,50},本文方法LSFS在3個數據集上的實驗結果如圖2所示。 Figure 2 Precision of LSFS with different user communities on the three datasets圖2 不同的用戶社區數量下 LSFS在3個數據集集上的Precision 從圖2可以看出,社區的數量會影響推薦性能,并且LSFS在2個數據集上表現出不同的敏感性。對于FilmTrust數據集,隨著d從5增加到30,LSFS的性能提高,之后它的性能隨著d的增加而降低。對于Epinions數據集,隨著d從5增加到25,LSFS的性能提高,之后開始降低。對于Ciao數據集,隨著d從5增加到40,LSFS的性能提高,之后開始降低。因此,在集合{5,10,15,…,45,50}上LSFS在FilmTrust,Epinions和Ciao上嘗試的最優社區d的值分別為30,25和40。 4.3.2 模型分析 為了驗證社交信息與用戶重疊社區檢測對本文方法LSFS的影響,將本文方法與2個變體LSFS-Social、LSFS-Overlap進行比較,圖3所示為在3個數據集上的實驗結果。 Figure 3 Performance of social information and overlapping community detection圖3 社交信息和重疊社區檢測的性能 社交信息可以提供關于用戶的額外信息,社交網絡中擁有社交關系的用戶往往具有相似的偏好并且互相影響,因此社交關系可以有效地提高推薦性能。如圖3所示,本文方法LSFS的性能優于LSFS-Social,這是因為LSFS考慮了用戶的社交信息,基于用戶間的社交關系進行了用戶社區檢測,而LSFS-Social在用戶社區檢測時沒有考慮社交信息,這表明了用戶社交信息有助于提高推薦性能。 用戶的興趣是多樣的,用戶在不同的社區中對不同的物品感興趣,基于用戶社交信息將用戶劃分到不同的社區中,每個用戶可以同時屬于不同的社區,用戶在不同的社區中關注不同的層面,因此用戶重疊社區檢測可以捕獲用戶不同的偏好。如圖3所示,本文方法LSFS的性能優于LSFS-Overlap,這是因為LSFS將用戶同時劃分到不同的社區中,而LSFS-Overlap只將用戶劃分到單一社區中,這表明了用戶重疊社區檢測可以有效提高推薦性能。 4.3.3 與其它方法的比較 將本文提出的方法LSFS與pureSVD、sGLSVD、SBPR和SPF 4種對比方法在FilmTrust、Epinions和Ciao 3個數據集上進行比較,驗證本文方法的性能。表3所示為實驗結果,每種方法設置了最佳參數,并顯示出最佳實驗結果,粗體字表示5種方法的最佳性能。 Table 3 Experimental results of different recommendation list length N on FilmTrust, Epinions and Ciao表3 在 FilmTrust、Epinions和Ciao上不同推薦列表長度N的實驗結果 可以看出,對于所有方法,當推薦列表的長度N越大時,推薦性能越好。當N取相同的值時本文方法LSFS表現最佳。pureSVD和sGLSVD只通過奇異值分解建模用戶對項目的偏好,但未利用用戶的社交信息,而本文方法利用了用戶社交信息將用戶劃分到不同的子集中,進一步表明社交信息可以提高推薦性能。SBPR和SPF雖然考慮了用戶的社交信息,但是未考慮用戶在重疊社區中的特定偏好,表明將用戶劃分到重疊社區中可以提高推薦性能。這意味著本文方法合理地融合社交信息并進行重疊用戶社區檢測提高了推薦質量。其次,SBPR和SPF的性能優于pureSVD和sGLSVD是因為SBPR和SPF利用了社交信息,而pureSVD和sGLSVD沒有利用社交信息,這進一步表明用戶社交信息對提高推薦性能有很大的幫助。sGLSVD的性能優于pureSVD是因為sGLSVD同時考慮了用戶的全局偏好和局部偏好,而pureSVD沒有考慮用戶的局部偏好。 本文針對現有的推薦方法忽略了用戶在不同社交維度中偏好不同的問題,提出了一種融合社交信息的局部潛在空間推薦方法。用戶的偏好可以通過所有用戶共享的層面和用戶在不同用戶社區中特定的層面共同描述,首先利用社交信息將用戶劃分到重疊社區中捕獲用戶在不同社交維度中的特定偏好,然后通過截斷奇異值分解技術建模用戶的共享偏好和特定偏好,最后將二者結合預測用戶的最終偏好。通過在3種不同數據集上的實驗,驗證了本文方法的有效性。
3 融合社交信息的局部潛在空間推薦
3.1 全局和局部奇異值分解



3.2 局部潛在空間推薦模型



4 實驗
4.1 實驗數據集

4.2 實驗設置
4.3 實驗結果與相關分析



5 結束語