馬 鑫 王 芳*
(1.南開大學商學院,天津 300110;2.南開大學網絡社會治理研究中心,天津 300110)
伴隨信息通信技術的快速發(fā)展,數(shù)據(jù)呈指數(shù)式擴增,信息過載問題日益加劇[1]。為了幫助信息消費者從海量信息中獲取有價值信息以及信息提供者提供高質量信息,推薦系統(tǒng)應運而生[2]。作為搜索引擎的重要補充,推薦系統(tǒng)能夠通過分析用戶歷史數(shù)據(jù),構建用戶興趣模型,對滿足用戶模糊的、不明確的信息需求具有重要意義,已被廣泛應用于電子商務[3]、新聞傳媒[4]、搜索引擎和文獻信息獲取[5]等諸多領域。
目前,推薦系統(tǒng)的常用推薦算法包括基于內容的推薦[6-7]、基于知識的推薦[8]、協(xié)同過濾推薦和混合推薦[9-10]。其中,基于內容的推薦利用項目固有的內容屬性向用戶產生推薦。基于知識的推薦利用用戶的顯示需求和項目領域知識產生推薦?;旌贤扑]通過兩種及以上推薦算法的組合為用戶產生推薦。相比之下,協(xié)同過濾推薦利用用戶和項目的交互評分為用戶產生推薦,無需依賴項目的內容屬性和領域知識,具有推薦項目類型多樣、數(shù)據(jù)獲取和技術復現(xiàn)難度小、個人信息安全性高等優(yōu)勢,成為眾多推薦算法中最經典和最通用的一種推薦算法。協(xié)同過濾推薦包括基于模型的推薦和基于近鄰的推薦[11-13]。基于模型的推薦通過算法模型(關聯(lián)規(guī)則、回歸、圖等)預測為用戶產生推薦?;诮彽耐扑]通過用戶或項目之間的近鄰關系為用戶產生推薦,分基于近鄰用戶的推薦和基于近鄰項目的推薦兩種。其中,基于近鄰用戶的協(xié)同過濾推薦(User-based Collaborative Filtering Recommendation,U-CFR)是最早為推薦系統(tǒng)開發(fā)的推薦算法之一[14]。
1)問題描述
準確、高效的推薦算法是推薦系統(tǒng)的核心,決定了推薦效果的優(yōu)劣。對于U-CFR算法而言,數(shù)據(jù)稀疏和計算可擴展問題是最具挑戰(zhàn)性的兩個問題。為了說明這兩個問題,對本研究采集的UserCats(10G)數(shù)據(jù)集進行了一些初步的實驗與分析。
①評分數(shù)據(jù)稀疏。隨機從UserCats數(shù)據(jù)集中抽取10名用戶的歷史數(shù)據(jù),以研究數(shù)據(jù)稀疏問題。圖1(a)和圖1(b)分別繪制了10名用戶的用戶—項目評分矩陣(User-Item Rating,UIR)評分分布和交互次數(shù),用戶對項目進行消費且評分時記為一次交互。結果表明,多數(shù)用戶僅對1 612個項目中的小部分項目感興趣[13],最高交互次數(shù)為86次(約為項目總量的5.33%),最低交互次數(shù)為21次(約為項目總量的1.30%),UIR矩陣稀疏度為97.25%,評分數(shù)據(jù)極為稀疏。
②計算可擴展性差。從相似度計算次數(shù)和推薦耗時兩個方面研究算法的可擴展性。圖1(c)顯示隨著用戶數(shù)的增加,相似度計算次數(shù)呈指數(shù)式增長。類似的,從圖1(d)中可以發(fā)現(xiàn),U-CFR算法的耗時隨用戶數(shù)的增加也呈指數(shù)式上升,且變化率更大。結果表明,隨著用戶數(shù)的增加,相似度計算次數(shù)和推薦耗時呈指數(shù)式上升,U-CFR算法的計算可擴展性將顯著下降[2]。
盡管近年來已在U-CFR算法的基礎上提出了許多改進算法,例如:用于緩解數(shù)據(jù)稀疏的基于鏈接開源數(shù)據(jù)的推薦[15]和基于圖隨機游走的推薦[16]等,用于提升計算可擴展性的基于交替最小二乘的推薦[17]和基于劃分聚類的推薦[2]等,但算法仍然受到數(shù)據(jù)稀疏和計算可擴展性問題的限制。一方面,現(xiàn)有緩解數(shù)據(jù)稀疏性的工作本質上是有限的,受附加數(shù)據(jù)獲取成本、用戶隱私保護和歸納偏差等問題制約,且忽視了離散有限評分(例如:5星離散評分)對用戶真實偏好的表示能力;另一方面,相比數(shù)據(jù)稀疏,針對計算可擴展性問題的研究較為欠缺,且優(yōu)化模型易受超參數(shù)和可解釋性問題影響,性能波動較大。因此,對U-CFR算法的數(shù)據(jù)稀疏問題和計算可擴展問題的研究仍然是一個有價值且具有挑戰(zhàn)性的任務。
圖1 用于說明數(shù)據(jù)稀疏和計算可擴展問題的初步結果
2)研究貢獻
受類目偏好、數(shù)據(jù)場聚類和評論情感挖掘啟發(fā),針對U-CFR算法存在的數(shù)據(jù)稀疏和計算可擴展性問題,本研究提出了一種融合類目偏好和數(shù)據(jù)場聚類的協(xié)同過濾推薦算法(Category Preferred Data Field Clustering based Collaborative Filtering Recommendation,CPDFC-CFR)。該算法首先基于評論情感構建UIS矩陣,并利用類目偏好比將高維情感矩陣映射為低維用戶—類目偏好矩陣(User-Category Preference,UCP)。然后,利用數(shù)據(jù)場聚類對UCP矩陣中的用戶進行分組,按同簇用戶間的綜合相似度大小確定目標用戶最近鄰域。最后,利用最近鄰域用戶的綜合相似度和非共有情感值預測未知項目情感,按預測值大小為目標用戶生成Top-n項目推薦列表。為了進一步驗證算法性能,在兩個真實的電商數(shù)據(jù)集上進行了對照實驗,結果表明,本研究所提CPDFC-CFR算法比U-CFR算法的系列改進算法在準確性和計算效率上有了較為顯著的提升。
本文所提CPDFC-CFR算法的主要貢獻如下:①增強了用戶偏好的表示能力:該算法利用一種基于屬性的無監(jiān)督情感挖掘方法計算所得的評論情感代替用戶評分,緩解了有限離散評分偏好表示能力有限的問題,且情感挖掘方法本身不受人工或機器標注情感標簽的誤差影響;②降低了數(shù)據(jù)稀疏性:該算法引入了類目偏好和用戶語義的概念,并將其應用于用戶聚類和相似度計算,緩解了稀疏數(shù)據(jù)對聚類和相似度計算效果的影響;③提高了計算效率和算法魯棒性:該算法不僅利用劃分聚類降低了用戶相似度的計算次數(shù),提高了推薦系統(tǒng)的實時性,而且將數(shù)據(jù)場作為劃分聚類的前置算法,有效解決了隨機初始聚類中心等對聚類效果的影響(例如:局部最優(yōu)、反復迭代等),使算法結果更加穩(wěn)定。
作為最早為推薦系統(tǒng)開發(fā)的算法之一,基于近鄰用戶的協(xié)同過濾推薦(User-based Collaborative Filtering Recommendation,U-CFR)的核心思想是當一個目標用戶需要個性化推薦時,算法能夠找到與其興趣相近的用戶,并能夠將這些用戶喜好的而目標用戶未交互過的項目推薦給他。算法原理如圖2所示。
圖2 基于近鄰用戶的協(xié)同過濾推薦算法原理
如圖2所示,在5星評分模式下,假設用戶u1為目標用戶,喜歡項目1和項目2(評分均為5),用戶u2喜歡項目4和項目5(評分均為5),用戶u3喜歡項目1和項目2(評分均≥4)。鑒于用戶u1和用戶u2均喜歡項目1和項目2且不喜歡項目3(評分均≤2),偏好更為相近(r=0.97),用戶u1喜歡用戶u3偏好的項目6的可能性更大,因此推薦系統(tǒng)會將項目6推薦給用戶u1。具體計算過程為:
首先利用用戶歷史評分構建用戶—項目評分矩陣(UIR),并計算用戶之間的評分相似度,按相似度大小確定與各用戶具有相似共同偏好的最近鄰用戶集,然后結合近鄰用戶相似度和非共有歷史評分對UIR矩陣缺失評分進行預測,最后按預測評分值高低為用戶生成個性化項目推薦列表。
關于U-CFR算法數(shù)據(jù)稀疏問題的研究,主要集中在附加外部數(shù)據(jù)和隱式圖結構兩個方面。對于附加外部數(shù)據(jù),學者們主要關注如何將在線社區(qū)數(shù)據(jù)或開源數(shù)據(jù)作為稀疏評分數(shù)據(jù)的補充,以降低稀疏性對推薦效果的影響。代表性研究有:丁永剛等[18]將社交網絡中的社會關系與評分結合,挖掘社交網絡好友的歷史偏好以緩解評分稀疏;Senthilselvan N等[15]在SVD++模型中加入鏈接開源數(shù)據(jù)(Linked Open Data,LOD)構建的用戶隱式表示,提出了一種基于LOD的推薦算法。類似的,李浩等[19]將U-CFR算法、基于近鄰項目的協(xié)同過濾推薦算法和利用項目外部附加數(shù)據(jù)構建的循環(huán)知識圖譜相融合,通過實體間的依賴關系來緩解用戶評分的稀疏性,以產生高質量推薦。
對于隱式圖結構,學者們主要關注如何借助圖傳遞或排序技術利用路徑定義用戶相似度,取代傳統(tǒng)相似度計算,優(yōu)化稀疏數(shù)據(jù)推薦表現(xiàn)。代表性研究有:張以文等[20]借助聚類構建用戶信任網絡,通過網絡隨機游走量化用戶相似度,預測缺失評分并產生推薦;Zengin Alp Z等[16]在多層結構中使用不同類型節(jié)點,通過圖隨機游走提出了一種上下文感知推薦算法。類似的,針對多圖融合可能引入的歸納偏差,Wang M等[21]提出了一個多任務多視圖的圖表示學習框架(M2GRL)來學習Web規(guī)模推薦系統(tǒng)中多視圖圖的節(jié)點表示,以應對評分數(shù)據(jù)的稀疏問題。
盡管上述方法的有效性已被證明,但其在解決數(shù)據(jù)稀疏問題中發(fā)揮的作用本質上是有限的。原因有三:其一,附加外部數(shù)據(jù)多為開源人口統(tǒng)計信息等個人隱私數(shù)據(jù),存在數(shù)據(jù)濫用和泄露風險,用戶的發(fā)布意愿較低,數(shù)據(jù)完整性堪憂[15]。特別是,缺少有關中文場景的鏈接開源數(shù)據(jù)庫。其二,隱式圖結構在為每個用戶進行推薦時,均需迭代整個用戶—項目二分圖至各頂點PR值收斂,時間復雜度極高。其三,受評分規(guī)則制約,用戶評分與用戶喜好之間存在一定偏差,但鮮有研究關注該問題,相似度計算結果易失真。本研究利用評論情感替代用戶評分,通過在相似度計算中引入類目偏好和由非隱私數(shù)據(jù)表示的用戶語義偏好的方式應對U-CFR算法的數(shù)據(jù)稀疏問題。
關于U-CFR算法計算可擴展性問題的研究,主要集中在評分矩陣降維和用戶聚類兩個方面。對于降低評分矩陣維度,學者們主要關注如何運用矩陣分解算法將高維稀疏UIR矩陣分解為低維用戶和項目的稠密矩陣,利用稠密矩陣乘積近似評分矩陣并為用戶推薦項目。代表性研究有:Hammou B A等[22]利用矩陣分解分解UIR矩陣,通過結合評論數(shù)據(jù)計算用戶相似度,預測缺失評分并完成推薦;與隨機初始化用戶和項目特征不同,Zhao J等[23]提出來一種基于屬性映射和自編碼神經網絡的矩陣分解初始化方法,進一步提升了矩陣分解效率。Hu Y等[17]提出了一種改進的矩陣分解方法(Alternating Least Squares,ALS),其采用一個交替的訓練程序來獲得一組用戶和項目的嵌入,通過嵌入點積的形式近似原始UIR矩陣,以此產生推薦。
對于用戶聚類,研究人員主要關注如何利用單一或組合聚類算法對用戶進行分組,通過創(chuàng)建較少且包含目標用戶的聚類簇,縮小最近鄰檢索范圍,提升推薦算法計算效率。代表性研究有:陶維成等[24]利用灰色關聯(lián)度對用戶進行灰色關聯(lián)聚類,結合近鄰用戶灰色相似度和非共有評分預測缺失評分并產生推薦;張文等[25]利用譜聚類分別對用戶和項目聚類,并根據(jù)聚類結果對UIR矩陣中用戶和項目位置進行重新調整,通過SVD(Singular Value Decomposition)分解局部稠密分塊矩陣,利用施密特變換預測缺失評分。Li J等[2]將Canopy算法作為K-means算法的前置算法,并將輸出作為K-means算法的輸入(聚類數(shù)),因此提升優(yōu)化聚類效果并降低算法計算耗時。
相比于矩陣分解方法,基于聚類的方法因具有易操作、數(shù)據(jù)利用率高和結果可解釋性較強等優(yōu)勢,成為當下提升U-CFR算法計算效率的研究熱點。但是,受聚類矩陣維度和超參數(shù)(例如:隨機選擇的初始聚類中心)問題影響,實際應用中的用戶聚類效果并不理想,容易出現(xiàn)計算效率低下和局部最優(yōu)等情況。本研究從類目偏好角度對用于聚類的UIS矩陣進行降維,并將數(shù)據(jù)場作為K-means的前置算法,以進一步對推薦算法的計算可擴展性進行優(yōu)化。
數(shù)據(jù)稀疏問題和計算可擴展問題是基于近鄰用戶的協(xié)同過濾推薦算法(User-based Collaborative Filtering Recommendation,U-CFR)優(yōu)化研究的兩個核心問題。為此,學者們借助鏈接開源數(shù)據(jù)[15]、圖[19]、矩陣分解[17]和聚類[2]等技術方法對U-CFR算法進行了大量的改進研究。但是受用戶評分失真、附加數(shù)據(jù)完整性和安全性差、超參數(shù)等問題影響,現(xiàn)有方法對算法準確性和計算效率的提升效果十分有限。
綜上所述,本文在U-CFR算法基礎之上,提出了一種融合類目偏好和數(shù)據(jù)場聚類的協(xié)同過濾推薦算法(Category Preferred Data Field Clustering Based Collaborative Filtering Recommendation,CPDFC-CFR)。該算法首先采用評論情感構建用戶—項目矩陣,修正評分引入的用戶偏好表示偏差。然后,引入類目偏好和用戶語義偏好的概念,并將其與評論情感相似度結合,緩解數(shù)據(jù)稀疏問題對推薦準確性的影響。最后,利用類目偏好比對聚類的輸入矩陣進行降維,并將數(shù)據(jù)場作為聚類前置算法,緩解矩陣維度和超參數(shù)對用戶聚類過程的影響,減少相似度計算次數(shù),提升算法推薦效率。
CPDFC-CFR算法的整體計算框架如圖3所示,先后分評論情感挖掘(計算單元1)、類目偏好比計算(計算單元2)、數(shù)據(jù)場聚類(計算單元3)、綜合相似度計算以及評分預測(計算單元4)和推薦(計算單元5)5個計算單元。其中,計算單元1負責利用基于屬性的無監(jiān)督情感挖掘方法將評論整體情感量化為一個固定區(qū)間的連續(xù)值,并構建用戶—項目情感矩陣(UIS)。計算單元2負責利用類目偏好比將UIS矩陣轉換為維度更低且數(shù)據(jù)密度更高的用戶—類目偏好矩陣(UCP)。計算單元3負責利用數(shù)據(jù)場聚類算法對用戶進行分組,縮小最近鄰域檢索范圍,減少相似度計算次數(shù)。計算單元4負責計算由評論情感相似度、類目偏好相似度和用戶語義相似度構成的綜合相似度,并按相似度大小確定最近鄰域。計算單元5負責利用近鄰用戶綜合相似度和非共有評論情感預測目標用戶對未知項目的情感,并生成Top-n項目推薦列表。
受評分規(guī)則(例如:五星離散評價)制約,有限離散評分無法準確表示用戶對交互項目的連續(xù)真實喜好,加之評分分布集中的特點,導致推薦算法捕獲用戶間細微偏好差異的難度進一步上升[26]。在線評論作為用戶做出明智消費決策的重要信息來源,已被證明其情感值要比用戶給出的粗略數(shù)字評分更有利于度量用戶喜好[27-29]。CPDFC-CFR算法首先根據(jù)項目評論中細粒度的屬性情感和屬性權重生成評論整體情感,利用整體情感值構建UIS矩陣。
假設用戶u的歷史評論集合Tu={t1,t2,…,tj,…,th},項目j的歷史評論集合Tj={t1,t2,…,ti,…,tf},m表示用戶數(shù),n表示項目數(shù),h表示用戶u的歷史評論數(shù),f表示項目j的歷史評論數(shù),tj表示用戶u對項目j的評論(已經過預處理),ti表示用戶i對項目j的評論。
首先,利用Apriori算法生成各項詞性頻繁項集(支持度≥0.50),逐一匹配評論t的屬性詞—情感詞對(w,s),并利用互信息過濾不相關屬性詞及對應情感詞:
(1)
式中,I(w,Gj)表示屬性詞w與項目j的主題詞集合Gj之間的互信息,值越大越相關,g表示Gj中的一個主題詞,p(w,g)表示w和g在Tj中共同出現(xiàn)的概率,p(wx)表示w在Tj中單獨出現(xiàn)的概率,p(g)表示g在Tj中單獨出現(xiàn)的概率。
然后,利用TF-IDF算法計算集合Tj中屬性詞w的權重whw(大多數(shù)人偏好的屬性,更易受到關注)[30],生成屬性詞權重向量WHj=[wh1,wh2,…,whl](l為Tj中屬性詞個數(shù))。評論t中屬性詞權重計算如下:
(2)
式中,cht,i表示用戶u對項目j的評論t中第i個屬性詞的權重,wht,i表示評論t中第i個屬性詞在WHj中的對應權重。
其次,利用臺灣大學NTUSD、知網Hownet和清華大學李軍情感詞典組成的混合詞典,按照[積極,中性,消極]=[5,3,1]的規(guī)則將評論t中的情感詞s量化為cst,i,則評論t的整體情感值計算如下:
(3)
式中,o表示評論t中屬性詞的個數(shù)。最后,按用戶和項目之間的對應關系,利用評論情感構建UIS矩陣。
2.3.1 原理
推薦系統(tǒng)的數(shù)據(jù)往往過于龐大和稀疏,影響聚類和相似度計算效果,因此有必要降低UIS矩陣維度[2]。鑒于每個項目均對應1個或多個類目,本研究利用Pearson相關系數(shù)計算UserCats數(shù)據(jù)集中各用戶相似度,并從中隨機選擇6個近鄰用戶和6個非近鄰用戶的歷史數(shù)據(jù),分析他們與各級類目交互的頻率異同,結果如圖4和圖5所示。
圖4 6個隨機近鄰用戶與各級類目的交互頻率比較
由圖4不難看出,在不同的類目級別上,近鄰用戶均表現(xiàn)出極為相似的類目偏好,而圖5顯示非近鄰用戶的類目偏好則有較大差異。因此,從類目偏好的角度對UIS矩陣進行降維是合理且可行的。
圖5 6個隨機非近鄰用戶與各級類目的交互頻率比較
2.3.2 計算
用戶類目偏好由類目偏好比進行量化表示,CPDFC-CFR算法通過類目偏好比將高維UIS矩陣轉換為低維UCP矩陣。類目偏好比由某一類目下各項目的用戶評論情感收斂得到,包括3個部分:①用戶對某類目項目的情感偏好在所有類目項目的情感偏好中的占比,比值越大,用戶越喜歡該類目;②某類目項目的消費次數(shù)在所有類目項目消費次數(shù)中的占比,是熱門類目的懲罰項;③用戶歷史評論的平均長度與所有用戶的最大歷史評論長度的比值,是虛假用戶的懲罰項。類目偏好比計算公式如下:
(4)
式中,pu,c表示用戶u對類目c的偏好比,∑eu,c表示u對c中各項目情感值的和,∑eu表示u對類目集合C中各項目情感值的和,x(c)表示c的懲罰項,y(c)表示u的懲罰項。
由于小部分受歡迎類目會在多數(shù)用戶交互中出現(xiàn),長尾數(shù)據(jù)訓練的算法極有可能為流行類目項目賦予高于其流行度的推薦頻率,而更高的曝光率會進一步增加流行度,降低推薦公平性[31]。因此,類目偏好比在一定程度上對熱門類目進行了懲罰:
(5)
式中,q(C)表示類目集合C中所有項目被消費的總次數(shù),q(c)表示類目c中所有項目被消費的總次數(shù),類目c中項目被消費的總次數(shù)越多表明類目越流行。
面對巨大的商業(yè)利益,網絡中涌現(xiàn)了一些以虛假評論牟利的用戶,他們的類目偏好對于構建推薦模型意義不大。研究表明,人們不愿意在非自發(fā)行為上花費太多時間,虛假用戶發(fā)布評論的長度普遍比真實評論短[32]。因此,類目偏好比還對虛假用戶進行了懲罰:
(6)
式中,max(U)表示用戶集合U中所有用戶歷史評論的最大長度,a(u)表示用戶u的歷史評論的平均長度,用戶u歷史評論的平均長度越長表明其越有可能為虛假用戶。
K-means作為劃分聚類的經典算法,通過用戶聚類減少相似度計算次數(shù),是提升U-CFR算法計算可擴展性的常用方法。受聚類矩陣維度和超參數(shù)(隨機初始聚類中心等)問題影響,算法聚類效率和聚類結果穩(wěn)定性出現(xiàn)較大波動。聚類矩陣維度通過類目偏好比進行縮減。對于超參數(shù),CPDFC-CFR算法將數(shù)據(jù)場作為前置算法,把數(shù)據(jù)場輸出(聚類數(shù)和聚類中心)作為K-means算法輸入,提升推薦算法計算效率和實時性。
算法首先基于UCP矩陣計算各用戶之間的相互作用勢值并構建數(shù)據(jù)場。勢值計算公式如下:
(7)
式中,φv(u)表示除用戶u外的剩余用戶v對u的作用力之和(勢值),pu表示用戶u的類目偏好向量,pv表示用戶v的類目偏好向量,zv表示用戶v的質量(∑zi=1),σ表示數(shù)據(jù)場的作用半徑。
已有研究表明,數(shù)據(jù)場中用戶的空間分布規(guī)律主要受質量較大的用戶影響[13,33]。給定用戶質量計算公式:
(8)
(9)
當用戶質量z由式(8)和式(9)計算得出,影響因子σ即為影響數(shù)據(jù)場系統(tǒng)復雜性的唯一不確定因素。因此,本研究采用勢熵法求解σ的最優(yōu)取值[33]:
(10)
式中,arg min表示最小值對應σ,φ(u)表示用戶u的勢值,∑v∈Uφ(v)表示數(shù)據(jù)場中所有用戶的勢值和。
然后,使用隨機爬山法計算數(shù)據(jù)場的勢值極大值,將極大值對應的用戶類目偏好向量和向量個數(shù)分別作為K-means算法的初始聚類中心和最佳聚類數(shù),并基于UCP矩陣對用戶進行迭代聚類。
Pearson相關系數(shù)具有易理解和量綱敏感度低等優(yōu)勢,是U-CFR算法中測量用戶相似度的一種常用方法。CPDFC-CFR算法在傳統(tǒng)Pearson相關系數(shù)基礎上引入類目偏好和語義偏好,計算用戶之間的綜合相似度,并選擇N個相似度最高的用戶作為目標用戶的最近鄰域。綜合相似度計算公式如下:
sim(u,v)=α·simt(u,v)+β·simp(u,v)+γ·sims(u,v)
(11)
(12)
(13)
用戶語義向量是用戶昵稱和會員等級拼接并歸一化后的50維向量[35]。這樣設計的原因有三:其一,用戶昵稱和會員等級信息公開可查,非敏感人口統(tǒng)計特征(例如:性別、種族等),采集成本較低且不涉及隱私數(shù)據(jù)泄露風險。其二,昵稱作為用戶的唯一標識符,在一定程度上反映了用戶的心理特征和文化素養(yǎng)[36]。其三,會員等級作為一種常用的用戶分群管理指標,能夠反映用戶的行為規(guī)律和屬性特點差異[37]。
根據(jù)式(11)得到同聚類簇中各用戶的N個最近鄰后,CPDFC-CFR算法對目標用戶未交互項目i的情感得分進行預測,得到完整的UIS矩陣,如圖3中計算單元5所示。情感得分預測公式如下:
(14)
按用戶u對項目i的情感得分大小,選擇前n個項目生成推薦列表。
本研究在遵循網站Robots協(xié)議前提下,將在某知名電商平臺上利用定向爬蟲抓取的相關數(shù)據(jù)作為實驗的原始數(shù)據(jù)集UserCats。該數(shù)據(jù)集由Categories、Comments和Products 3個json文件組成,大小為10G,存儲有585萬用戶與15萬商品的交互數(shù)據(jù),例如:用戶昵稱、產品標題、類目ID、店鋪信息、評論、評分等。選擇該數(shù)據(jù)集的原因有兩個:第一,盡管用于U-CFR算法驗證的開放數(shù)據(jù)集很多,如MovieLens、Netflix等,但項目類目、評論文本和用戶昵稱等數(shù)據(jù)不夠完整;第二,電商領域是推薦系統(tǒng)應用最早的領域,也是一直以來推薦重點關注的領域,平臺商品類目齊全且層次清晰,數(shù)據(jù)便于獲取。
為確保實驗可行性及有效性,本研究隨機從UserCats中無放回抽取若干數(shù)據(jù)生成UserCats1和UserCats2兩個實驗數(shù)據(jù)集,并從中剔除未進行評論的用戶、無任何評論的商品和有內容安全風險的商品[3]。其中,UserCats1數(shù)據(jù)集大小為109M,為740個用戶和1 006個商品的交互數(shù)據(jù),有3個一級類目、5個二級類目和9個三級類目,評論情感稀疏度為96.34%。UserCats2數(shù)據(jù)集大小為108M,為854個用戶與1 373個商品的交互數(shù)據(jù),有6個一級類目、9個二級類目和13個三級類目。綜合考慮數(shù)據(jù)實時性和算法規(guī)模,采用PC離線方法進行實驗[2](Windows 11,PyCharm 2021,Python 3.6,Inter(R)Core TM i7-8550U @ 200GHz,16G RAM)。數(shù)據(jù)集分訓練集(80%)和測試集(20%)。實驗數(shù)據(jù)集描述如表1所示。
表1 實驗數(shù)據(jù)集描述
3.2.1 評價指標
實驗使用兩種類型的指標來評價算法性能:基于準確性的指標和基于即時性的指標。其中,基于準確性的指標為F-measure,該指標根據(jù)項目的Top-n推薦列表計算得出,綜合考慮了精度和召回率,值越大推薦效果越好,相關定義參見文獻[38]?;诩磿r性的指標為推薦耗時和相似度計算次數(shù),評價的是算法計算效率。推薦耗時指整個推薦過程花費的時間,以秒為單位度量(實際數(shù)值取對數(shù)),值越大,計算可擴展性越差??傁嗨贫扔嬎愦螖?shù)指為確定各用戶最近鄰域而需計算的相似度次數(shù),值越大,計算可擴展性越差。
鑒于推薦算法訓練數(shù)據(jù)較大,進一步對相似度計算次數(shù)和推薦耗時進行了取對數(shù)操作,計算公式如下:
(15)
式中,y表示對數(shù)處理后的相似度計算次數(shù)或推薦耗時,U表示用戶集合,xu表示為用戶u生成推薦列表所需的相似度計算次數(shù)和推薦耗時。
3.2.2 對照算法
為全面驗證CPDFC-CFR算法應對數(shù)據(jù)稀疏和計算可擴展性問題的有效性,本研究所選對照算法基本涵蓋了現(xiàn)有研究提出的不同類型的U-CFR算法。下面,對本研究所選對照算法進行簡要說明:
?POP(Popular Products):一種簡單的非個性化基線算法,該算法按項目流行度的大小向各用戶推薦相同的Top-n項目推薦列表。
?ALS(Alternating Least Squares)[17]:一種矩陣分解算法,該算法采用交替訓練的方式獲得一組用戶和項目的嵌入,通過嵌入點積的形式近似原始的用戶—項目矩陣。
?U-CFR(User-based Collaborative Filtering Recommendation)[3]:一種簡單的個性化基線算法,該算法基于用戶相似度為目標用戶推薦其近鄰用戶喜歡的項目。
?Km-CFR(K-means Based Collaborative Filtering Recommendation)[3]:一種基于聚類的推薦算法,該算法在U-CFR基礎上利用K-means算法減少用戶相似度計算次數(shù),提升算法推薦效率。
?CKm-CFR(Canopy-K-means Based Collaborative Filtering Recommendation)[2]:一種基于聚類的推薦算法,該算法將Canopy作為K-means的前置算法,緩解了聚類數(shù)k對聚類效果的影響,在提升計算效率的同時也確保了結果的穩(wěn)定性。
上述算法均適用于用戶—項目矩陣,其中行表示用戶,列表示項目,行列交點表示用戶評分或用戶評論情感。此外,還比較了CPDFC-CFR算法的3種中間算法,以比較算法不同計算單元的優(yōu)化效果:
?U-CFR(UIS):與U-CFR算法相比,構建用戶—項目矩陣利用的是用戶評論情感。
?U-CFR(UIS+DF):與U-CFR(UIS)算法相比,在相似度計算前利用數(shù)據(jù)場聚類對用戶進行了分組。
?U-CFR(UIS+SIM):與U-CFR(UIS)算法相比,Pearson相關系數(shù)替換為綜合相似度。
POP和ALS算法無用戶相似度計算過程,研究僅比較了它們在推薦耗時上的計算效率表現(xiàn)。所有算法由Anaconda 3中Implicit推薦算法庫和Sklearn、Scipy等依賴庫復現(xiàn)。
超參數(shù)是推薦算法開始學習過程之前人工設置值的參數(shù)。取最近鄰個數(shù)N=10(總用戶數(shù)的1%~2%)[34]和項目推薦列表長度n=15(與Last.fm等平臺的項目推薦長度相近)[38],通過對不同參數(shù)進行網格搜索來選擇各算法的超參數(shù),并以F-measure值大小作為最佳參數(shù)確定標準。實驗結果取三折交叉驗證結果的平均。各算法超參范圍如下(POP除外):
對于ALS,在{10,100,1 000}之間選擇嵌入大小,在{500,1 000}之間選擇算法迭代次數(shù),在{0.001,0.0001}之間選擇正則化因子。對于U-CFR、U-CFR(UIS)、U-CFR(UIS+DF)、Km-CFR和CKm-CFR,在Pearson相關系數(shù)之間選擇相似度計算函數(shù),在{2,3,4,5,6,7,8,9,10}之間選擇最佳聚類數(shù)(僅用于Km-CFR算法),在1 000之間選擇迭代次數(shù)(僅用于Km-CFR和CKm-CFR)。
對于U-CFR(UIS+SIM)和CPDC-CFR,有α∈[0,1]、β∈[0,1]和γ∈[0,1]3個超參數(shù),滿足。鑒于3個超參數(shù)的值對為三維空間中的等邊三角形面,如圖6所示,本研究在三條角平分線的7個交點和切割區(qū)域的6個對稱點之間選擇和的最佳取值。
圖6 超參數(shù)α、β和γ的最佳取值范圍
本節(jié)報告并討論實驗結果。首先探討不同類目級別對CPDFC-CFR算法推薦準確性和計算效率的影響(3.4.1節(jié)),然后介紹CPDFC-CFR算法整體性能(3.4.2節(jié)),最后比較不同推薦算法的結果差異(3.4.3節(jié))。
3.4.1 類目級別影響
UserCats1和UserCats2中CPDFC-CFR算法在不同商品類目級別上的性能表現(xiàn)如圖7所示。在準確性方面,商品類目級別越高,算法F-measure值越小。在計算效率方面,商品類目級別越高,算法推薦耗時越長,相似度計算次數(shù)越多。一個可能的原因是,隨著商品類目級別的提升,UCP矩陣貢獻的用戶類目偏好信息粒度越來越大,如圖7(a1)和圖7(a2)所示,弱化了用戶之間的細微偏好差異,令數(shù)據(jù)場聚類效果下降,影響了算法計算效率和準確性。鑒于各評價指標值變化的拐點尚未出現(xiàn),進一步降低商品類目級別(例如:細化三級類目的商品分類,構建四級商品類目),可能是一種提升CPDFC-CFR準確性和計算效率的有效途徑。
圖7 商品類目級別對CPDFC-CFR算法準確性和計算效率的影響
3.4.2 總體性能分析
對照算法和本文所提算法及其中間算法在兩個實驗數(shù)據(jù)集中的F-measure、推薦耗時和相似度計算次數(shù)指標的三折及平均結果如圖8所示。對比U-CFR和U-CFR(UIS)可知,利用評論情感構建的UIS矩陣能夠為近鄰協(xié)同過濾推薦算法提供比UIR矩陣更加接近用戶真實喜好的向量表示。對比U-CFR(UIS)和U-CFR(UIS+DF)可知,利用數(shù)據(jù)場優(yōu)化K-means算法的用戶聚類效果是可行的,能夠有效降低推薦算法的相似度計算次數(shù)和推薦耗時并提升準確性。對比U-CFR(UIS)和U-CFR(UIS+SIM)可知,盡管引入用戶類目偏好信息(三級產品類目)和語義信息會令推薦耗時增加,但實驗結果也基本證實了它們在緩解矩陣數(shù)據(jù)稀疏上的有效性。綜合考慮上述優(yōu)化思路的CPDFC-CFR算法在兩個實驗數(shù)據(jù)集中均取得了最高的F-measure、較少的推薦耗時和最低的相似度計算次數(shù),與算法設計預期相符。
3.4.3 不同推薦算法比較
UserCats1和UserCats2數(shù)據(jù)集中不同類型推薦算法的性能如圖9所示(三折交叉驗證均值)??傮w而言,兩個數(shù)據(jù)集中本文所提CPDFC-CFR算法均取得了整體上的最優(yōu)性能(最高的準確性和較高的計算效率)。在準確性方面,交替訓練ALS的F-measure值要高于Km-CFR和CKm-CFR等基于傳統(tǒng)聚類的協(xié)同過濾推薦算法。POP表現(xiàn)最差,因為其基于產品流行度向所有用戶推薦相同的商品列表。在計算效率方面,U-CFR耗時最長,POP耗時最短,ALS因無需反復計算相似度耗時較短。受超參數(shù)影響,Km-CFR的相似度計算次數(shù)和推薦耗時高于CKm-CFR和CPDFC-CFR。此外,從圖中數(shù)據(jù)可知,無論哪種類型推薦算法,UserCats1(稀疏度96.34%)中的結果都優(yōu)于UserCats2(稀疏度97.94%),這表明數(shù)據(jù)稀疏性對推薦性能有較大影響。
伴隨信息過載,推薦成為信息消費者獲取個性化信息以及信息提供者提供高質量信息的重要方式。受用戶評分失真、附加數(shù)據(jù)完整性和安全性差以及超參數(shù)(例如:隨機初始聚類中心)等問題影響,現(xiàn)有針對基于近鄰用戶的協(xié)同過濾推薦算法數(shù)據(jù)稀疏和計算可擴展性(計算效率)問題的相關研究仍有進一步優(yōu)化的空間。為此,本文提出了一種融合類目偏好和數(shù)據(jù)場聚類的協(xié)同過濾推薦算法(Category Preferred Data Field Clustering Based Collaborative Filtering Recommendation,CPDFC-CFR)。該算法首先通過評論情感構建用戶—項目矩陣,并利用類目偏好比降低矩陣維度;然后,通過數(shù)據(jù)場聚類對用戶進行分組,縮小最近鄰域檢索范圍,減少相似度計算次數(shù);最后,計算同簇中由評論情感、類目偏好和用戶語義共同構成的用戶相似度,同時預測UIS矩陣缺失評分,產生Top-n個性化項目推薦列表。為進一步驗證算法性能,本研究在電商領域的兩個真實數(shù)據(jù)集上進行了對照實驗,結果表明,CPDFC-CFR算法比對照算法和U-CFR算法的系列改進算法在準確性和計算效率上有了較為明顯的提升(UserCats1數(shù)據(jù)集上F-measure=27.65%,推薦耗時=3 633.50秒,相似度計算次數(shù)=263 096次;UserCats2數(shù)據(jù)集上F-measure=26.96%,推薦耗時=6 698.18秒,相似度計算次數(shù)=364 658次),整體性能最優(yōu)。
圖9 不同類型推薦算法的準確性和計算效率表現(xiàn)
本研究的不足之處在于:第一,受數(shù)據(jù)采集成本限制,研究僅在電商場景中對算法準確性和計算效率進行了驗證,在實驗數(shù)據(jù)的多樣性上可能存在一定疏漏,導致研究結果的可靠性和算法的可推廣性有待進一步提升。未來工作可能會采集不同場景下的數(shù)據(jù)集,例如:新聞傳媒、金融理財、研發(fā)等,在不同數(shù)據(jù)量級和不同稀疏度等組合條件下驗證算法性能。第二,雖然研究未發(fā)現(xiàn)類目級別與算法準確性和計算效率之間的均衡點,但卻可以看出一定的規(guī)律,即:隨著類目級別的降低,算法準確性和計算效率逐漸上升,如圖8所示。未來的工作可能會嘗試利用深度學習或人工方式細化類目分類,找到類目級別與算法準確性和計算效率的均衡點,進一步提升算法推薦效果。