李卓敏,盧 敏,馬圣雨,宋逸杰
(1.江西理工大學(xué) 理學(xué)院,江西 贛州 341000;2.河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454003)
信息技術(shù)的快速發(fā)展為用戶在平臺(tái)上提供了更多瀏覽選擇,在眾多信息中快速、準(zhǔn)確尋找偏好信息是一個(gè)亟待解決的難題[1]。為了更好地過濾信息,提升用戶服務(wù)質(zhì)量,推薦技術(shù)由此誕生,并迅速引起了學(xué)術(shù)界的廣泛關(guān)注。許多算法被提出來解決推薦技術(shù)的各種問題,其中協(xié)同過濾推薦算法是研究熱門,在許多案例中取得了較好的推薦效果。
該算法通過收集與用戶推薦偏好相似的相關(guān)用戶信息,或收集用戶感興趣的領(lǐng)域信息,為其推薦相關(guān)產(chǎn)品[2],可分為基于用戶和基于項(xiàng)目?jī)煞矫妫?]。其中,用戶協(xié)同過濾算法(Collaborative Filtering,CF)挖掘與目標(biāo)用戶評(píng)價(jià)過相同項(xiàng)目的其他用戶,通過判斷共評(píng)信息,推薦相似用戶評(píng)價(jià)高的項(xiàng)目,但只考慮了用戶間的聯(lián)系,未考慮熱門項(xiàng)目對(duì)用戶的影響,忽略了熱門項(xiàng)目無法突顯用戶個(gè)性化的問題;項(xiàng)目協(xié)同過濾算法通過挖掘項(xiàng)目所有歷史評(píng)分記錄,根據(jù)評(píng)分高低計(jì)算各項(xiàng)目間的相似度,以推薦相似度高的項(xiàng)目集,致力于挖掘項(xiàng)目間的相關(guān)性,但忽略了時(shí)間因素對(duì)相關(guān)性的影響,導(dǎo)致評(píng)分可靠性較低。然而,上述兩種算法僅考慮了單方面因素,忽略了時(shí)間因素對(duì)兩者相關(guān)性的影響。
為此,本文提出一種HCFADT 算法解決傳統(tǒng)算法中熱門項(xiàng)目無法突顯個(gè)性化、用戶可靠度與時(shí)間相關(guān)性低的問題。首先提出一種引入動(dòng)態(tài)時(shí)間權(quán)重因子的相似度計(jì)算方法,根據(jù)用戶為項(xiàng)目評(píng)分的時(shí)間生成動(dòng)態(tài)時(shí)間權(quán)重因子,將用戶可靠性與時(shí)間形成關(guān)聯(lián),突顯用戶個(gè)性化;然后提出一種引入?yún)?shù)β的綜合考慮用戶和項(xiàng)目相似度的混合算法,根據(jù)兩者不同的依賴程度調(diào)整參數(shù),獲取最佳參數(shù)β,以綜合考慮用戶和項(xiàng)目?jī)蓚€(gè)因素,解決傳統(tǒng)算法存在的數(shù)據(jù)稀疏性問題。
協(xié)同過濾算法的產(chǎn)生使互聯(lián)網(wǎng)為用戶提供了更精確的服務(wù)信息,但卻出現(xiàn)了數(shù)據(jù)稀疏、冷啟動(dòng)等問題[4]。針對(duì)這些問題,國(guó)內(nèi)外研究人員提出了許多改進(jìn)的推薦算法,對(duì)今后發(fā)展具有啟發(fā)式作用。
為了解決數(shù)據(jù)稀疏問題,吳賓等[5]根據(jù)不同結(jié)構(gòu)的數(shù)據(jù)設(shè)計(jì)了不同建模方式,提出MSRA 算法分析異構(gòu)數(shù)據(jù)間的相關(guān)性來解決問題。李改等[6]提出一種URA 算法兼顧評(píng)分預(yù)測(cè)和排序預(yù)測(cè),使算法能更快適應(yīng)在大數(shù)據(jù)環(huán)境中的預(yù)測(cè)。文詩(shī)琪等[7]對(duì)用戶評(píng)分設(shè)定閾值,將項(xiàng)目屬性分為用戶偏好與不偏好,只有具備偏好屬性的項(xiàng)目才能作為近鄰,減少了計(jì)算近鄰相似項(xiàng)目的個(gè)數(shù),有效提升了推薦精度,但并未考慮篩選用戶偏好的計(jì)算效率和時(shí)間對(duì)用戶偏好的影響,使得算法的時(shí)間復(fù)雜度較大。
為了提升傳統(tǒng)推薦方法在大量物品中為用戶進(jìn)行推薦的計(jì)算效率,張飛等[8]提出一種根據(jù)用戶興趣和物品特征進(jìn)行聚類分組的方法,并構(gòu)建圖模型求解分組。王瑞琴等[9]根據(jù)項(xiàng)目評(píng)分?jǐn)?shù)據(jù),生成用戶對(duì)項(xiàng)目的評(píng)論態(tài)度影響因子,通過影響因子進(jìn)一步放大用戶對(duì)項(xiàng)目的偏好,以更準(zhǔn)確地預(yù)測(cè)目標(biāo)用戶偏好,提升推薦質(zhì)量和計(jì)算效率。然而,上述文獻(xiàn)均只考慮了用戶偏好領(lǐng)域的信息,未考慮時(shí)間因素對(duì)用戶偏好的影響和熱門項(xiàng)目對(duì)用戶個(gè)性化的影響。
針對(duì)用戶推薦算法中用戶可靠度問題,李偉霖等[10]考慮社會(huì)心理學(xué)中多個(gè)信任要素,深入提取用戶間的信任信息并融入推薦算法,有效提升了推薦精確度,但未考慮時(shí)間對(duì)用戶間信任關(guān)系的影響。潘一騰等[11]考慮用戶作為信任者和被信任者時(shí)不同偏好的情況,得到社會(huì)關(guān)系的隱含間接影響,然后根據(jù)兩種信任強(qiáng)度影響提出一種自適應(yīng)相似度計(jì)算的模型,但忽略了信任關(guān)系的可靠度。綜上,上述方法僅考慮了用戶間信任關(guān)系,均未考慮用戶之間信任關(guān)系的可靠性和時(shí)間變化與用戶可靠度變化的相關(guān)性。
考慮到結(jié)合用戶和項(xiàng)目算法,能有效解決單一依靠用戶或項(xiàng)目導(dǎo)致推薦質(zhì)量較低的問題。Rosa 等[12]提出一種局部相似性方法,利用用戶間的多種相關(guān)結(jié)構(gòu),使用聚類方法查找對(duì)相似項(xiàng)目存在相似偏好的對(duì)象組,為每個(gè)集群創(chuàng)建一個(gè)基于用戶的相似性模型,得到了較好的推薦效果。Ortega 等[13]提出一種基于多類分類算法合并不同CF方法提供的推薦結(jié)果,在MovieLens、Netflix 數(shù)據(jù)集上取得了較高的推薦質(zhì)量。Zhang 等[14]提出一種TTHybridCF 算法,利用標(biāo)簽和評(píng)級(jí)信息計(jì)算用戶或物品間的相似性,極大提升了模型預(yù)測(cè)精度。上述方法表明,混合算法能有效提升推薦精度,但并未考慮時(shí)間因素,仍然存在時(shí)間對(duì)用戶關(guān)系與熱門項(xiàng)目的影響。
對(duì)于時(shí)間改變用戶偏好的問題,Liao 等[15]利用一群信息素捕捉用戶興趣實(shí)時(shí)變化,相較于傳統(tǒng)算法提升了推薦準(zhǔn)確性。Wangwatcharakul 等[16]利用聯(lián)合分解方法提取用戶潛在過渡模式,基于動(dòng)態(tài)環(huán)境的主題建模結(jié)合潛在因素與評(píng)論文本的相關(guān)主題演,捕捉評(píng)分矩陣中的用戶偏好動(dòng)態(tài)。Joorabloo 等[17]考慮到未來的相似性趨勢(shì),重新排列用戶或項(xiàng)目鄰域集提出一種算法預(yù)測(cè)相似性趨勢(shì),根據(jù)趨勢(shì)的增減來更新CF 公式的最終最近鄰集,以提升算法的精確度。雖然,加入時(shí)間因子能提供未來趨勢(shì),有效提升算法精確度,但未考慮將混合算法與時(shí)間因素相結(jié)合,無法有效利用用戶與項(xiàng)目的信息,存在數(shù)據(jù)稀疏性問題。
綜上,考慮到用戶和項(xiàng)目單一的缺點(diǎn),結(jié)合混合算法與時(shí)間因素,本文提出一種基于動(dòng)態(tài)時(shí)間權(quán)重的混和協(xié)同過濾推薦算法。首先,加入動(dòng)態(tài)時(shí)間權(quán)重解決熱門項(xiàng)目和用戶可靠性問題;其次,融合兩種算法計(jì)算相似度,以有效利用用戶與項(xiàng)目信息解決數(shù)據(jù)稀疏性問題;再次,選取用戶的最佳相似鄰居集對(duì)目標(biāo)用戶進(jìn)行推薦預(yù)測(cè),提升模型推薦性能。
本文采用皮爾遜相似度進(jìn)行計(jì)算[18],該數(shù)是一個(gè)-1~1 的數(shù),能衡量?jī)蓚€(gè)數(shù)據(jù)集合之的相似性。相似性強(qiáng)時(shí)相似度趨于1;相似性弱時(shí)相似度趨于0;在負(fù)相似性情況下,一個(gè)數(shù)據(jù)的值很高而另一個(gè)數(shù)據(jù)值很低時(shí)相似度趨于-1。
用戶CF 算法[19,20]假設(shè)用戶間存在相似興趣,很可能會(huì)購(gòu)買相同物品,該方法通過挖掘目標(biāo)用戶的歷史偏好信息來識(shí)別相似用戶,利用相似用戶歷史評(píng)價(jià)信息判斷相似用戶偏好項(xiàng)目,對(duì)目標(biāo)用戶進(jìn)行推薦,如圖1所示。
2.2.1 用戶間的相似度
根據(jù)用戶共同評(píng)分的項(xiàng)目集合信息,計(jì)算用戶間的相似度。計(jì)算用戶u、v的相似度如式(1)所示。
式中:Iuv表示用戶u、v歷史共同評(píng)價(jià)過的項(xiàng)目集合;Ruj表示用戶u對(duì)項(xiàng)目j的評(píng)分,Rvj表示用戶v對(duì)項(xiàng)目j的評(píng)分;和分別表示用戶u和用戶v對(duì)項(xiàng)目的平均評(píng)分。
2.2.2 用戶動(dòng)態(tài)時(shí)間權(quán)重值
假設(shè)兩個(gè)用戶都購(gòu)買了新華詞典,但無法突顯他們的個(gè)性化,因?yàn)榇蠖鄶?shù)人都會(huì)購(gòu)買這本書。然而,如果兩個(gè)用戶都買了機(jī)器學(xué)習(xí)這種少數(shù)人購(gòu)買的書,將突顯兩人的個(gè)性化,表明他們存在相同的興趣或需求。為了解決用戶CF 算法存在熱門項(xiàng)目無法突顯個(gè)性化問題,本文引入用戶權(quán)重wut(i)表示用戶u對(duì)項(xiàng)目i評(píng)分的動(dòng)態(tài)時(shí)間權(quán)重,如式(2)所示。
式中:i∈Iuv、tminu表示用戶第一次對(duì)項(xiàng)目的評(píng)分時(shí)間;tmaxu表示用戶最近一次對(duì)項(xiàng)目的評(píng)分時(shí)間;tu表示用戶的評(píng)分時(shí)間段,即tminu 2.2.3 用戶動(dòng)態(tài)時(shí)間權(quán)重的相似度 引入用戶動(dòng)態(tài)時(shí)間權(quán)重的相似度計(jì)算,如式(3)所示。 用戶間相似度的計(jì)算首先生成用戶評(píng)分矩陣(見表1),根據(jù)評(píng)分信息計(jì)算相似度;然后計(jì)算每個(gè)項(xiàng)目被評(píng)分的頻數(shù)時(shí)間權(quán)重;最后將時(shí)間權(quán)重加入相似度計(jì)算中。 Table 1 User rating matrix表1 用戶評(píng)分矩陣 2.2.4 獲取目標(biāo)用戶的鄰居集 通過計(jì)算用戶間的相似度得到相似度矩陣,對(duì)相似度進(jìn)行降序排序,選取前k個(gè)用戶作為相似鄰居集,用集合N(u)表示。 2.2.5 根據(jù)用戶相似度與相似鄰居集計(jì)算預(yù)測(cè)評(píng)分 利用選取的鄰居集中各相似用戶對(duì)目標(biāo)項(xiàng)目的評(píng)分,預(yù)測(cè)目標(biāo)用戶u對(duì)目標(biāo)項(xiàng)目i的評(píng)分PUADT(Rui),如式(4)所示。 傳統(tǒng)項(xiàng)目CF 計(jì)算項(xiàng)目相似度的原理是用戶可能會(huì)對(duì)與歷史偏好項(xiàng)目相似的項(xiàng)目感興趣,通過挖掘用戶的歷史評(píng)價(jià)數(shù)據(jù)識(shí)別相似項(xiàng)目,根據(jù)這些項(xiàng)目的相似度進(jìn)行推薦,如圖2所示。 Fig.2 Project similarity diagram process圖2 項(xiàng)目相似圖流程 2.3.1 項(xiàng)目間的相似度 根據(jù)對(duì)項(xiàng)目i、j共同評(píng)分過的用戶集計(jì)算項(xiàng)目i和j之間相似度,如式(5)所示。 式中:Uij表示對(duì)項(xiàng)目i、j共同評(píng)價(jià)過的用戶集合;Rui、Ruj分別表示用戶u對(duì)項(xiàng)目i和j的評(píng)分分別表示項(xiàng)目i、j的平均評(píng)分。 2.3.2 項(xiàng)目動(dòng)態(tài)時(shí)間權(quán)重值 項(xiàng)目CF 算法未考慮用戶打分可靠度,假設(shè)某用戶在某時(shí)間內(nèi)由于環(huán)境影響或時(shí)間因素隨意評(píng)價(jià)項(xiàng)目,此時(shí)分?jǐn)?shù)并不可靠,對(duì)相似度計(jì)算會(huì)造成影響。為此,本文引入wit(u)表示項(xiàng)目i的動(dòng)態(tài)時(shí)間權(quán)重,以降低該情況造成的影響,如式(6)所示。 式中:u∈Uij、tmini表示項(xiàng)目第一次被用戶評(píng)分時(shí)間;tmaxi表示項(xiàng)目最近一次被的評(píng)分時(shí)間;ti表示項(xiàng)目被評(píng)分的時(shí)間段,即tminu 2.3.3 引入項(xiàng)目動(dòng)態(tài)時(shí)間權(quán)重項(xiàng)目相似度 引入項(xiàng)目動(dòng)態(tài)時(shí)間權(quán)重的項(xiàng)目相似度計(jì)算,如式(7)所示。 項(xiàng)目間相似度計(jì)算首先生成項(xiàng)目評(píng)分矩陣(見表2),根據(jù)用戶評(píng)分信息計(jì)算相似度;然后通過計(jì)算每個(gè)用戶評(píng)分的頻數(shù)得出時(shí)間權(quán)重;最后將時(shí)間權(quán)重加入相似度計(jì)算。 Table 2 Item rating matrix表2 項(xiàng)目評(píng)分矩陣 2.3.4 選取目標(biāo)項(xiàng)目相似項(xiàng)目集 通過計(jì)算項(xiàng)目相似度得到相似度矩陣,對(duì)相似度進(jìn)行降序排序,選取前k個(gè)相似項(xiàng)目作為相似項(xiàng)目集,通過集合N(i)進(jìn)行表示。 2.3.5 預(yù)測(cè)評(píng)分 根據(jù)項(xiàng)目相似度選取項(xiàng)目集,計(jì)算目標(biāo)用戶u對(duì)目標(biāo)項(xiàng)目i的預(yù)測(cè)評(píng)分PIADT(Rui),如式(8)所示。 由于在評(píng)分預(yù)測(cè)時(shí),依靠項(xiàng)目預(yù)測(cè)或用戶預(yù)測(cè)得到的推薦質(zhì)量較低。為此,本文提出基于動(dòng)態(tài)時(shí)間權(quán)重的混合協(xié)同過濾推薦算法(HCFADT),如式9所示。 式中:等式第一部分包括基于UADT、IADT 的預(yù)測(cè)結(jié)果;β∈(0,1) 為調(diào)節(jié)因子,代表對(duì)UADT、IADT 的依賴程度,當(dāng)β=0 時(shí)表示算法只考慮了用戶信息,當(dāng)β=1 時(shí)表示算法只考慮了項(xiàng)目信息,取中間值時(shí)表示綜合考慮了兩者信息。 為了驗(yàn)證HCFADT 算法的推薦效果,獲取最佳參數(shù)β,實(shí)驗(yàn)在Intel(R)Core(TM)i5-7200U CPU 環(huán)境下進(jìn)行訓(xùn)練,使用Tensorflow 為后端,Python 3.8 進(jìn)行編譯。以平均絕對(duì)誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Square Error,RMSE)作為評(píng)價(jià)指標(biāo)[21],采用的ML-100k 數(shù)據(jù)集包含10 萬條對(duì)電影的評(píng)分記錄,電影評(píng)分范圍為[1,5]的整數(shù),用戶對(duì)電影的評(píng)分越高代表興趣程度越高。數(shù)據(jù)預(yù)處理環(huán)節(jié),將80%的用戶評(píng)分?jǐn)?shù)據(jù)作為實(shí)驗(yàn)訓(xùn)練集,20%的用戶評(píng)分?jǐn)?shù)據(jù)作為實(shí)驗(yàn)測(cè)試集,實(shí)驗(yàn)參數(shù)如表3所示。 Table 3 Detailed parameters of ML-100k dataset表3 ML-100k數(shù)據(jù)集詳細(xì)參數(shù) MAE 計(jì)算真實(shí)值與預(yù)測(cè)值間的平均差值,能表明預(yù)測(cè)與真實(shí)值的接近程度,如式(10)所示;RMSE 由計(jì)算預(yù)測(cè)值與真實(shí)值偏差的平方與總數(shù)之比的平方根所獲得,如式(11)所示,由于RMSE 對(duì)預(yù)測(cè)結(jié)果的波動(dòng)非常敏感,因此可有效驗(yàn)證實(shí)驗(yàn)方法的穩(wěn)定性。 式中:MAE 越小表明預(yù)測(cè)更接近真實(shí)值,預(yù)測(cè)精度越高。 式中:rui、分別表示用戶u對(duì)項(xiàng)目i的預(yù)測(cè)評(píng)分和實(shí)際評(píng)分;N表示測(cè)試集的評(píng)分?jǐn)?shù)量;RMSE 值越低表明預(yù)測(cè)結(jié)果與真實(shí)結(jié)果越接近,算法精確度越高。 由于近鄰數(shù)量對(duì)預(yù)測(cè)得分的準(zhǔn)確性具有很大影響,實(shí)驗(yàn)比較了參數(shù)β在(0,1)內(nèi)間隔為0.2 取值下的最佳值,如圖3 所示。為了評(píng)價(jià)推薦算法的預(yù)測(cè)精度,在相同的實(shí)驗(yàn)環(huán)境下,將本文算法、傳統(tǒng)CF 算法、引入動(dòng)態(tài)時(shí)間權(quán)重的CFADT 算法,在[5,30]間隔為5 的預(yù)測(cè)精度下進(jìn)行實(shí)驗(yàn)比較,實(shí)驗(yàn)結(jié)果如圖4、圖5所示。 Fig.3 MAE values of different β圖3 不同β時(shí)的MAE值 Fig.4 Comparison of MAE values圖4 MAE值比較 Fig.5 Comparison of RMSE values圖5 RMSE值比較 3.2.1 參數(shù)β 在混合協(xié)同過濾算法中引入?yún)?shù)β,以確定算法對(duì)加入動(dòng)態(tài)時(shí)間權(quán)重的項(xiàng)目和用戶依賴程度。實(shí)驗(yàn)中,對(duì)所有近鄰的選擇進(jìn)行實(shí)驗(yàn)以確定β的靈敏度,其中β的值從0變化到1,間隔為0.2,結(jié)果如圖3所示。 由圖3 可見,當(dāng)β=0 時(shí)MAE 值為項(xiàng)目算法的相似度;當(dāng)β處于0~1 時(shí),預(yù)測(cè)融合了用戶和項(xiàng)目算法的優(yōu)點(diǎn),有效提升了預(yù)測(cè)精度;隨著參數(shù)β增大,預(yù)測(cè)向基于用戶的方面靠近,MAE 值逐漸增大,即預(yù)測(cè)誤差逐漸增大;當(dāng)β=1時(shí),MAE值為用戶算法的相似度。 綜上,在兩端單一依賴用戶或項(xiàng)目算法的推薦精確度較低,取中間值能融合各算法的優(yōu)點(diǎn),提升預(yù)測(cè)精度,在0.2時(shí)預(yù)測(cè)精度最佳。 3.2.2 MAE值 為了驗(yàn)證所提算法的優(yōu)越性和有效性,將HCFADT 算法、傳統(tǒng)CF 算法和基于動(dòng)態(tài)時(shí)間權(quán)重的CFADT 算法進(jìn)行比較,K 表示所選近鄰數(shù)量,如圖4所示。 隨著近鄰數(shù)量增加,MAE 值逐漸降低,HCFADT 算法的MAE 值遠(yuǎn)低于CF、CFADT,表明預(yù)測(cè)值更接近真實(shí)值。引入動(dòng)態(tài)時(shí)間權(quán)重的算法預(yù)測(cè)精度優(yōu)于傳統(tǒng)協(xié)同過濾算法,因此動(dòng)態(tài)時(shí)間權(quán)重對(duì)模型預(yù)測(cè)精度具有積極作用。此外,結(jié)合二者算法的混合算法預(yù)測(cè)精度優(yōu)于單一引入動(dòng)態(tài)時(shí)間權(quán)重的算法。 由圖5 可見,隨著近鄰數(shù)量增加,CF、CFADT 算法的RMSE 值下降并逐漸趨于穩(wěn)定,但HCFADT 的RMSE 值波動(dòng)較小,總體低于CF、CFADT 算法。原因?yàn)镃F、CFADT 僅考慮了項(xiàng)目或用戶單方面的影響,導(dǎo)致預(yù)測(cè)精確度不高,并且CF 算法未考慮時(shí)間變化,因此算法RMSE值存在明顯波動(dòng)。然而,本文算法綜合考慮了項(xiàng)目、用戶及時(shí)間因素,因此具有更好的穩(wěn)定性和精確性。 本文為了有效提升推薦算法的推薦質(zhì)量,解決傳統(tǒng)協(xié)同過濾算法存在熱門項(xiàng)目影響和無法識(shí)別一段時(shí)間內(nèi)用戶項(xiàng)目偏愛度的問題,提出一種基于動(dòng)態(tài)時(shí)間權(quán)重的混合協(xié)同過濾推薦算法。首先計(jì)算目標(biāo)用戶的評(píng)論頻數(shù)和目標(biāo)項(xiàng)目的被評(píng)頻數(shù),通過用戶評(píng)論量和項(xiàng)目用戶評(píng)論數(shù)分別為基于項(xiàng)目、用戶的算法添加動(dòng)態(tài)時(shí)間權(quán)重;然后在獲得較好效果的情況下,將兩個(gè)算法相結(jié)合。 實(shí)驗(yàn)表明,在用戶評(píng)分?jǐn)?shù)據(jù)稀疏的情況下,混合相似度計(jì)算顯著提升了模型的推薦預(yù)測(cè)精確性,證明了本文算法在整體上相較于傳統(tǒng)方法更優(yōu)。下一步,考慮到用戶興趣愛好與用戶之間信任關(guān)系的動(dòng)態(tài)變化性,將通過強(qiáng)化學(xué)習(xí)方法接收環(huán)境對(duì)動(dòng)作的獎(jiǎng)勵(lì)(反饋),獲得學(xué)習(xí)信息并更新模型參數(shù),以快速對(duì)用戶進(jìn)行推薦,進(jìn)一步提升模型推薦預(yù)測(cè)的準(zhǔn)確性。
2.3 引入動(dòng)態(tài)時(shí)間權(quán)重的項(xiàng)目相似度計(jì)算


2.4 基于動(dòng)態(tài)時(shí)間權(quán)重的混合協(xié)同過濾推薦算法
3 實(shí)驗(yàn)結(jié)果與分析
3.1 實(shí)驗(yàn)設(shè)置

3.2 算法比較



4 結(jié)語