鐘 乾,王仲君
(武漢理工大學理學院,湖北 武漢 430070 )
近年來,隨著云計算,大數據,物聯網等技術的迅猛發(fā)展,在為顧客提供越來越多選擇的同時,網絡數據的規(guī)模也呈爆發(fā)式增長。顧客在復雜的網絡結構面前往往需要瀏覽大量的不必要信息來尋找自己喜好的物品,這就是所謂的“網絡信息過載”。針對這個問題,個性化推薦技術能夠快速的從紛繁復雜的數據中為用戶獲取有價值的信息,從而受到越來越多人的青睞。一些大型的電子商務網站,如Amazon、eBay、Netflix等都將推薦系統(tǒng)作為網站的核心技術。
關注度的提高使得國內外眾多學者對推薦算法展開了大量研究,個性化混合推薦憑借著可以綜合各種推薦算法的優(yōu)勢而備受矚目[1-3]。劉沛文,陳華鋒[4]針對傳統(tǒng)的推薦算法存在評分矩陣稀疏性的問題,提出了基于用戶行為特征的動態(tài)權重混合推薦,在數據預處理時,計算出了用戶對于不同物品的個性化行為特征指數,并與協同過濾混合以提高推薦精度。楊衛(wèi)芳,李學明[5]將基于熱傳導和基于物質擴散的兩種方法混合進行推薦,并引入用戶活躍度的概念進行調節(jié),實現了資源的重新分配,從而獲得了更好的效果。傳統(tǒng)推薦算法中存在著用戶興趣描述過大的問題,基于此,任磊[6]提出了一種增量學習的混合推薦算法。此外,于波[7]等人通過計算項目間屬性的相似性,并與基于項目的協同過濾算法中的相似性動態(tài)結合,解決了混合推薦中了推薦精度差,效率低下的問題。為更全面地反映用戶偏好,提高推薦的準確度,冀振燕[8]提出了融合多源異構數據的混合推薦模型,該模型綜合考慮了用戶社交關系和用戶評論對用戶評分的影響,從評論中提取主題信息作為用戶的特征,結合機器學習方法建立模型,實現推薦。宋文君[9]基于用戶的近期行為能夠更好的反映潛在興趣偏好的思想,提出了基于有限時間窗口的改進混合推薦算法,該算法在標準數據集上的結果證實了用戶近期的歷史記錄可以提高算法的推薦精度。Jian Wei[10]等人利用降噪自編碼器挖掘出項目內容的特征信息,并結合到了改進的時序矩陣分解算法中,有效的解決了推薦算法中的完全冷啟動和不完全冷啟動的問題。王全民[11]提出了一種基于特征偏好分析的改進混合推薦算法,該方法將用戶特征偏好和物品特征相結合,再使用傳統(tǒng)的協同過濾思想,將最優(yōu)評分對象推薦給用戶等。
上述的個性化混合推薦模型均是針對點數據構建出來的,即數據是數值型的。在實際中,由于數據的來源渠道不同,數據的類型多種多樣,點數據模型不可避免的存在著信息丟失,無法精確建模的問題。而符號數據分析(Symbolic Data Analysis,SDA)可以處理多類型的數據,有效的彌補了點數據建模時的不足。考慮到符號數據的優(yōu)勢,Bezerra[12-14]等人將符號數據引入到了個性化推薦算法中,提出了基于符號數據的內容過濾,協同過濾和混合過濾三種方法,提高了推薦算法的效率,但降低了推薦算法的精度。Queiroz[15]等人最先將符號數據引入到了群體推薦算法中,有效的表征了用戶群體的模型。郭均鵬[16-18]等人基于文獻[12]的思想利用模態(tài)型,區(qū)間型,分布式符號數據分別為用戶進行建模,進而預測產生推薦,實驗結果表明符號數據比點數據更能刻畫用戶的興趣偏好,構建出理想的用戶模型,為用戶推薦出滿意度高的項目。
為能夠將符號數據與傳統(tǒng)的個性化混合推薦算法的優(yōu)勢結合起來,本文提出了基于分布式符號數據的混合推薦算法。該算法利用分布式符號數據表征項目內容,將項目內容量化。在利用項目內容構建出用戶的不同偏好子模型后,改進的符號數據的距離度量被用來計算它們之間的相似度。最后結合傳統(tǒng)的協同過濾算法完成推薦預測。該算法與傳統(tǒng)的推薦算法在電影評分數據集上進行實證分析,并比較它們之間的優(yōu)劣。
符號數據分析是一種研究如何從海量數據中挖掘系統(tǒng)知識的理論和方法,其運用“數據打包”技術,不僅能處理類型復雜,規(guī)模巨大的數據,實現對龐大的樣本空間的降維處理,更可以從全局上把握數據對象的內在結構特征,有利于解釋隱含在數據內部的規(guī)律。一般而言,符號數據有定性數據和定量數據兩種,而每一種都有多種表現形式。常用的符號數據類型有1)分布式變量,例如X=({2,4,6}(0.2,0.5,0.3))表示X以(0.2,0.5,0.3)概率分布取值(2,4,6)。2)區(qū)間變量,Y=[a,b]={x:a 本節(jié)以電影推薦領域為例,闡述本文模型的構建過程。在電影推薦領域中,用戶對電影的偏好表示為一個評分矩陣R。其中行Ui表示用戶,列Ij表示項目(電影),矩陣中的元素rij是用戶對項目的評分,取{1,2,3,4,5}上的任意值,1分表示用戶對該電影的興趣偏好很消極,5分表示用戶很偏好該部電影??杖钡牟糠直硎居脩魧﹄娪拔催M行評價,需要去做預測推薦,見表1。 表1 用戶項目原始評價矩陣R 實際的電影數據中還可以得到有關電影的一些內容描述,例如電影的演員表(Cast),導演(Director),以及電影歸屬的流派(Genre)信息等,見表2。 表2 電影項目I4的內容描述 (1) 對于表1中項目的內容,依據上面的方法均可以得到對應的分布式描述,見表3(為了使下文的計算更加簡便,這里用字母代替元素,例如G3代表的是Science,P2代表的是導演Nalan)。 表3 電影項目的分布式內容描述 本文利用表3中電影的分布式內容描述來構建用戶模型。在電影推薦領域中,由于用戶評價過的項目中包含著他所喜歡的項目(評分為4和5)和不喜歡的項目(評分為1和2),因此可以為每一個用戶構建兩個偏好模型,積極子模型和消極子模型。令u+代表用戶u的積極子模型,它是由用戶u所評價過的項目中評分為4和5的項目的分布式內容描述所構成的。同理用u-來代表用戶u的消極子模型,它是由用戶u所評價過的項目中評分為1和2的項目的分布式內容描述所構成的(在文獻[14]構建用戶模型的過程中,認為3分是一個中性評價,對應項目無法合理地表述用戶偏好,因此被忽略,本文同理)。 (2) m∈Sj(uσ)是領域Dj上的一個元素,那么它的權重W(m)∈qj(uσ)的計算公式如下 (3) 這里|uδ|表示屬于模型uσ的電影項目數量。例如用戶U1,他的I2和I5的評分較高,所以用表3中I2和I5的分布式內容描述來構建用戶U1的積極子模型U1+。I1和I3的評分較低,所以可以用來構建用戶U1的消極子模型U1-。此外,在用戶模型的構建過程中,不同的評分理應擁有不同的權重。評分為5(1)比評分為4(2)更能說明用戶喜歡(討厭)該項目,這一點在文獻[14]中已經指出,解決方法是W(m)計算時評分為5(1)的項目重復3次,評分為4(2)的項目重復兩次。本文同理用該種方法進行計算,得到U1的最終模型見表4。 表4 用戶U1的偏好模型 同理,還可以得到用戶U2基于分布式 符號數據的模型見表5。 表5 用戶U2的偏好模型 (4) (5) 分析式(5)中的φ,p代表模型中特征的數量,φs是計算分布式符號數據集合S的差異度函數,φwh是計算集合S對應的權重q的差異度函數。φs的定義如下 (6) 例如集合Scast(U1+)={A2,A3,A6,A7,A8,A9}和集合Scast(U2+)={A1,A3,A5,A6,A7,A8},依據式(6)計算,它們之間的差異度為0.5。φwh的計算要復雜一些。①當φs=0時,即兩個集合元素完全相同。φwh的計算為集合中對應元素權重差的絕對值之和。②當φs≠0時,需要考慮集合間不同元素的權重和所占比例的大小。由四部分構成,計算兩個集合間相同元素的權重和α和β,以及計算兩個集合之間不同元素的權重和γ和δ,如下所示 (7) 對于集合Scast(U1+)和Scast(U2+),因為φs≠0,且其對應的權重為(320,110,1/4,110,14,3/20)和(320,110,320,14,1/4,1/10),那么α,β,γ,δ的計算過程如下 Scast(U1+)∩Scast(U2+)={A3,A6,A7,A8} (8) 基于式(7)中的φwh,能夠計算出集合Scast(U1+)和Scast(U2+)的權重差異度為 φwh(qcast(U1+),qcast(U2+)) (9) 這個值表明在屬性Cast(演員)下,用戶U1和用戶U2的積極子模型之間權重大約相差46.2%。由于集合間相差了50%,因此在屬性Cast下,用戶U1和用戶U2積極子模型間的總差異度為0.5*(0.462+0.5)=0.481。同樣的計算還應該作用在用戶子模型的屬性Director(導演)和屬性Genre(流派上)上,最終U1與U2的積極子模型間的總差異度為 0.462+2/3+0.75)≈0.561 (10) 同理,還可以計算出U1與U2的消極子模型之間的總差異度為(注意,此時Φs=0) (11) 基于式(5)中的φ,得到用戶U1和用戶U2的混合相似度為 (12) 同理,可以計算出表中所有用戶間的相似度。 (13) (14) 其中|T|表示測試數據集中評分的數量。RMSE值越低,算法的推薦精度越高。 為了驗證本文基于分布式符號數據的混合推薦算法(BSHR)在個體推薦上的功效性,選取了經典的movielens數據集作為實驗數據集。Movielens網站(http:∥www.movi-elens,.org)擁有三種不同量集的數據集,這里選擇了943個用戶對1682部電影的約10萬條評分的數據集,其中每個用戶至少評價過20部電影。該數據集中包含了電影的流派(Genre)信息,因此本文從IMDB網站(https:∥www.imdb.com)上只收集了有關電影的演員和導演信息,并將其整理為了內容字段Cast和Director。用戶對電影的評分取集合{1,2,3,4,5}上的值,同樣數值越高表明用戶越喜好該部電影。此外,隨機選擇了80%的評分作為訓練數據集和20%的評分作為測試數據集。實驗過程中,首先根據訓練集中用戶評分的電影內容建立用戶的積極子模型和消極子模型,然后計算用戶間的相似度,根據最近鄰思想預測用戶對未知項目的評分值,最后與測試數據集進行對比檢驗。 選取兩種推薦算法作為本文算法的對比算法。一種是傳統(tǒng)的基于點數據的混合推薦算法(BPHR),主要思想是利用用戶的評分算出電影的評分相似度,利用電影的內容算出電影的內容相似度,將兩種相似度混合,采取最近鄰思想預測推薦。另一種是基于符號數據的協同過濾推薦算法(BSCR),算法的主要思想是根據用戶的評分生成用戶評分權重模型,利用模型間的相似度函數計算出用戶間的相似度,最后采取最近鄰方法實現推薦[18]。 4.4.1 用戶評分的稀疏性對實驗結果的影響 本節(jié)首先探討了三種算法中,用戶評分的稀疏性對實驗結果的影響。將訓練數據集中的用戶按照其所評價過的項目的數量分為了5組,數量在[20-50]的用戶為一組,[50-150]為一組,[150-250]為一組,[250-400]為一組,以及400以上為一組。固定近鄰個數為50后,三種算法分別在5個組中獨立進行實驗,計算每一個組中的RMSE,并進行比較。得的實驗結果見表6。 表6 數據集的稀疏程度對實驗結果的影響 從表6整體來看,三種算法在用戶評分數量的增加下,RMSE都呈現下降的趨勢。這說明隨著數據集評分矩陣的稀疏性降低,各種算法的推薦質量會逐漸提高。其中以本文提出的算法下降的程度最為明顯(0.12>0.09>0.08),表明了基于符號數據的混合推薦算法受數據集稀疏性的影響較大。分析其原因,認為這主要是由于用戶的的積極子模型與消極子模型的構建基于用戶所評價過項目,評價的項目越多,越能代表用戶的偏好,構建的模型也會更加精確。當用戶評分數量較少時([20-50]和[50-150]),本文算法得到的模型較粗糙,因此最終精度也要差于基于點數據的混合推薦算法(0.9528>0.948,0.9370>0.9320)。 從推薦精度來看,本文算法在評分矩陣稀疏性低([150-250],[250-400]和400以上)的情況下得到的實驗結果要優(yōu)于其它兩種算法,而基于符號數據的協同過濾推薦算法整體上的實驗結果要差于其它兩種算法。分析其原因,認為基于符號數據的協同過濾算法并沒有將電影的內容考慮進去,用戶模型的構建僅僅依賴于歷史的評分,因為信息沒有充分利用,導致推薦精度的降低。 4.4.2 近鄰個數對實驗結果的影響 本節(jié)旨在探討數據集稀疏性穩(wěn)定的情況下,算法近鄰個數的增加對實驗結果的影響,這里選擇用戶評分數量在[150-250]區(qū)間內的組。各種算法初始的近鄰個數設置為10,每次實驗近鄰個數遞增10個,一共進行5次對比實驗,得到的實驗結果如圖1。 圖1 各種算法近鄰數量h對實驗結果的影響 通過分析圖1,可以得到如下的結論: 1)最初三種算法隨近鄰個數的增加,RMSE都在下降(h=10,20,30),即推薦精度呈上升的趨勢。這一時間段,近鄰個數對各種算法實驗結果的影響較為顯著。當近鄰個數達到一定程度的時候,RMSE會趨向于一個定值,表明近鄰個數的增加對實驗結果的影響將會越來越小。 2)此外,還可以得到,在[150-250]區(qū)間內,固定近鄰個數的情況下,本文算法的最終推薦精度要高于另外兩種算法,基于符號數據的協同過濾推薦算法的最終精確度卻低于其它的兩種算法。 在這里同樣給出其它評分子集下,近鄰個數h對三種推薦算法精度的影響,如圖2。分析圖2可以發(fā)現結論1)的成立,但也注意到,在用戶評分數量較少時,固定近鄰個數的情況下,本文算法的最終精度不一定高于基于點數據的混合推薦算法 圖2 不同評分數量下h對推薦精度的影響 4.4.3 不同算法的推薦效率 衡量一個算法的好壞不僅看推薦精度,還需考慮推薦效率,即時間的長短。同樣的條件下,所需時間越短,表明了該算法的推薦效率越高。這里給出特定條件下,基于符號數據的混合推薦算法與基于點數據的混合推薦算法完成推薦的時長,見表7,8。 表7 基于點數據的混合推薦算法的完成時間 表8 基于符號數據的混合推薦算法的完成時間 由于基于符號數據的協同過濾推薦算法沒有利用到內容信息,推薦時間自然較短,所以不再將它列出。考慮到不同組內測試集中用戶數量的不同,對于模型的構建,推薦的時間會造成一定的影響,表格中數據因此無法橫向對比。從表7,8列來看,即在固定稀疏度與近鄰數量的情況下,本文的推薦算法所耗費的時長大多數情況下高于點數據推薦,推薦效率較低。分析其原因,認為本文算法為了更加精確的表征用戶模型,利用到了符號數據中的集合和權重,模型的構建上花費了較多的時間,因此效率要低于點數據推薦,相反帶來的益處是計算出的用戶相似度會更加精確,在評分矩陣稀疏性較低的情況下,推薦精度更高。因此,本文算法在數據量大,推薦實時性要求不高的場景下較為適用。 為了能夠處理多源異構數據,本文將分布式符號變量引入到了傳統(tǒng)的混合推薦算法中,利用其表征用戶,構建偏好模型,預測實現推薦。將本文的算法與傳統(tǒng)的推薦算法進行對比實驗,表明基于分布式符號數據的混合推薦算法在推薦精度上更優(yōu),但效率上較差,因此適用于推薦實時性要求不高的領域中。由于目前基于分布式符號數據的混合推薦算法仍然是一個全新的領域,不可避免面臨著冷啟動的問題,此外,如何用分步 式符號變量量化用戶的隱式評分,也將會是 未來的研究方向。3 基于分布式符號數據的混合推薦算法
3.1 構建用戶積極子模型和消極子模型
3.2 計算用戶之間的相似度
3.3 生成推薦預測
4 實驗研究與算法評價
4.1 算法的評估標準
4.2 實驗數據集的來源
4.3 對比算法
4.4 實驗過程與結果分析
5 結論