古險峰, 白林鋒
(河南科技學(xué)院 信息工程學(xué)院,河南 新鄉(xiāng) 453003)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展以及大數(shù)據(jù)、云計算的興起,大量的數(shù)據(jù)在給人們?nèi)粘I顜肀憬莸耐瑫r,也帶來了信息超載、維數(shù)災(zāi)難的問題.如何在有限的時間內(nèi)精準的找到符合自己期望的數(shù)據(jù),提高信息的使用率,個性化推薦系統(tǒng)應(yīng)運而生[1].已有的推薦系統(tǒng)難以適應(yīng)復(fù)雜的場景,單純依靠用戶瀏覽的歷史數(shù)據(jù)和特征分析,忽略了項目屬性信息和項目間的關(guān)聯(lián)性,使得在面對新用戶、新項目時存在冷啟動、數(shù)據(jù)稀疏性和推薦精度不高的問題[2].基于深度學(xué)習的混合協(xié)同過濾,利用深度神經(jīng)網(wǎng)絡(luò)模型對已知數(shù)據(jù)進行特征提取解決用戶信息不對稱帶來的數(shù)據(jù)稀疏問題,混合協(xié)同過濾則將評分矩陣與項目屬性信息融合應(yīng)用得到項目間的映射關(guān)系并進行聚類分析,解決面對新系統(tǒng)未知信息時數(shù)據(jù)庫中相關(guān)信息不足,推薦精度不高的問題,從而提高推薦精度提升用戶的黏連度,優(yōu)化推薦系統(tǒng)固有的問題[3].
在海量數(shù)據(jù)背景下如何有效的挖掘用戶的潛在信息,進而在推銷商品的同時提升客戶的黏連度,是推薦系統(tǒng)的主要目的[4].推薦系統(tǒng)作為信息過濾的一種是人工智能的具體應(yīng)用,通過對已知行為數(shù)據(jù)進行分析構(gòu)建模型,繼而對新系統(tǒng)、新項目和新用戶進行預(yù)測[5].其數(shù)學(xué)表示為:如果存在用戶集I,項目集U,評價函數(shù)S代表把u推薦給i的準確率,推薦系統(tǒng)即為找到準確率最大的推薦物品r,使s取得極大值,?i∈I,r=arg max(s(i,u)),u∈U.已知的推薦算法根據(jù)評價對象不同可以分為三種,分別為基于協(xié)同過濾、基于內(nèi)容和混合推薦等.評價對象為項目內(nèi)容的推薦算法依據(jù)用戶興趣和項目本身的內(nèi)容進行推薦,不需要依賴其他數(shù)據(jù),精度較高,但特征提取比較困難,在面對新項目、新用戶時存在冷啟動問題;根據(jù)項目和用戶的交互信息進行推薦的協(xié)同過濾推薦算法有模型和鄰域之分,其中基于近鄰的又可以分為根據(jù)當前用戶興趣相似度推知未知用戶興趣的評分,即用戶型和利用已知用戶的瀏覽歷史和項目屬性的關(guān)聯(lián)規(guī)則,生成推薦表格的項目型.為了取長補短更好的實現(xiàn)個性化推薦,通過對多種推薦算法進行融合生成混合推薦系統(tǒng),提升推薦準確性,可以分為特征層、模型層和決策層融合[6].推薦系統(tǒng)主要算法如圖1所示.
圖1 推薦系統(tǒng)主要算法Figure 1 Main algorithm of recommendation system
協(xié)同過濾算法針對評分矩陣在面對新用戶、新項目和新系統(tǒng)時,由于沒有大量的已知數(shù)據(jù)進行樣本訓(xùn)練,進而導(dǎo)致特征提取比較困難,出現(xiàn)推薦精度不高的現(xiàn)象即冷啟動問題的出現(xiàn)[7].深度卷積神經(jīng)網(wǎng)絡(luò)卷積層和池化層具有局部連接、權(quán)值共享和特征自適應(yīng)的優(yōu)點,可以利用給定的樣本模型進行反復(fù)訓(xùn)練,從而得到魯棒性強的數(shù)據(jù)參數(shù),進而在面對復(fù)雜的、動態(tài)的輸入輸出關(guān)系時進行關(guān)聯(lián)建模,得到接近真實值的預(yù)測結(jié)果,從而解決冷啟動問題;同時,針對用戶瀏覽歷史有限、信息不對稱和關(guān)聯(lián)性不高出現(xiàn)的數(shù)據(jù)稀疏性問題,卷積神經(jīng)網(wǎng)絡(luò)利用卷積核具有參數(shù)同一層共享,池化層不產(chǎn)生新的模型參數(shù)的特點,使得模型復(fù)雜的大大降低、識別精度得到了提高,優(yōu)化了計算能力,提升了評分預(yù)測精度解決了數(shù)據(jù)稀疏性問題[8].
傳統(tǒng)的協(xié)同過濾系統(tǒng)依賴已知用戶的評價矩陣,忽略了項目屬性和用戶興趣間的關(guān)聯(lián)性,僅僅通過用戶的評分準則對新用戶進行推薦,在面對稀疏數(shù)據(jù)時無法精確的實現(xiàn)個性化推薦;而基于內(nèi)容的推薦算法在面對新用戶和新內(nèi)容時,可以基于已知內(nèi)容進行推薦冷啟動問題不明顯,但是在進行特征提取時,需要人工進行,進而無法面對種類繁多的大量數(shù)據(jù),應(yīng)用場景有限[9].基于深度學(xué)習的混合推薦模型,利用深度卷積神經(jīng)網(wǎng)絡(luò)從已知輔助信息中提取數(shù)據(jù)的特征值,同時將項目屬性和用戶興趣間的融合,并利用神經(jīng)網(wǎng)絡(luò)協(xié)同過濾進行相似度計算,進而彌補相關(guān)信息不足帶來的冷啟動問題以及用戶評價有限造成的數(shù)據(jù)稀疏和可擴展性有限的問題,從而提高推薦的準確性[10].基于深度學(xué)習的混合推薦系統(tǒng)架構(gòu)如圖2所示.
圖2 基于深度學(xué)習的混合推薦系統(tǒng)架構(gòu)Figure 2 Hybrid recommendation system architecture based on deep learning
協(xié)同過濾認為不同用戶間存在相似性即“物以類聚、人以群分”屬性,通過分析已知用戶的隱式或顯式數(shù)據(jù),根據(jù)關(guān)聯(lián)特征進而得到不同用戶間的興趣點,進行個性化推薦[11].利用已知用戶的瀏覽數(shù)據(jù)進行評分是基于用戶的協(xié)同過濾算法的主要特征,根據(jù)關(guān)聯(lián)特征找到相似用戶,并把已知用戶的興趣點推薦給未知用戶[12],具體步驟為:首先根據(jù)已知數(shù)據(jù)創(chuàng)建用戶和項目間的評分矩陣,即對興趣點打分并對缺失值進行填充處理;根據(jù)用戶和項目間的評分矩陣計算相似度,得到最相似的目標人群,相似度計算可以通過余弦相似度得到:
(1)
其中:兩個用戶分別用i和j表示,對不同n個項目的評分用n維向量I和J表示.余弦相似度取值為[0,1],越接近1說明兩個用戶間的相似度越高[13].雖然余弦相似度可以得到目標用戶與已知用戶的相似度,但卻沒有考慮評分均值對矩陣的影響,對于數(shù)值不敏感,導(dǎo)致精確度不高[14].基于此在余弦相似度的基礎(chǔ)上提出了修正余弦相似度的概念即皮爾遜系數(shù),利用評分數(shù)值具體的不同,通過計算協(xié)方差和標準差的比值,將數(shù)據(jù)做中心化處理,進而得到較為精確的相似度計算:
(2)
(3)
為了緩解傳統(tǒng)協(xié)同過濾算法對冷啟動、數(shù)據(jù)稀疏性以及可擴展性等問題的不足,提高個性化系統(tǒng)推薦的準確度,利用聚類分析的優(yōu)勢將協(xié)同過濾算法和聚類分析相融合,根據(jù)皮爾遜系數(shù)得到相同愛好的目標客戶,使其聚集為一個簇,進而對簇進行處理,而不需要對每一個相似目標用戶進行分析,進而大大減少計算復(fù)雜度以及系統(tǒng)運行時間,解決在面對新系統(tǒng)時出現(xiàn)的可擴展性不足以及數(shù)據(jù)稀疏性問題[15].其數(shù)學(xué)表示為:假設(shè)存在n個目標相似用戶{x1,x2,…,xn},相似度表示為{Dx1,Dx2,…,Dxn},選取類間距離大的點作為閾值點進行分類,當聚集簇滿足數(shù)量要求時,開始進行聚類研究,得到聚類結(jié)果即用戶群,同時為了避免K均值帶來的聚類偏差和時間損失,需要對聚類進行最優(yōu)化處理,具體方法為:
(4)
其中:相似用戶i和j聚類的距離用dij表示,C為聚類的簇,r表示簇第r類.Dr表示第r類中任意相似用戶的距離之和.對Dr進行標準化處理:
(5)
為了得到精確的簇組,使樣本的損失最小,充分考慮評分均值對矩陣的影響,需要對數(shù)據(jù)集進行進一步處理:
(6)
為了驗證系統(tǒng)性能的優(yōu)劣,需要不同的評測指標在具有代表性的數(shù)據(jù)集上對不同算法進行比較,進而得出系統(tǒng)設(shè)計模型的準確性.本文設(shè)計算法通過使用絕對值預(yù)測誤差MAE以及均方根誤差RMSE來驗證模型性能;
(7)
(8)
傳統(tǒng)的推薦系統(tǒng)僅僅利用用戶和項目間的評分情況即相似度矩陣進行推薦,忽略了項目的屬性信息且沒有充分利用用戶興趣點,對于大量非線性數(shù)據(jù)很難進行追蹤和表達.深度學(xué)習獨特的延展性和網(wǎng)絡(luò)結(jié)構(gòu)以及強大的學(xué)習能力,針對數(shù)據(jù)的潛在特征可以利用激活函數(shù)進行非線性建模,準確的反映用戶的興趣點,提高模型可解釋性的同時避免人工特征提取在應(yīng)對大數(shù)據(jù)時的弊端,同時對混合協(xié)同過濾不同的數(shù)據(jù)特征可以分別提取,提高模型的準確率和效率.本文提出深度學(xué)習框架下基于用戶的混合協(xié)同過濾算法,將評分矩陣與項目屬性信息融合利用用戶聚類進行分析,擬合出最佳分類,提高個性化推薦精度.
具體算法流程為:
1)根據(jù)已知用戶興趣點以及項目屬性,對數(shù)據(jù)進行分類處理,得到用戶特征矩陣;
2)對用戶特征矩陣進行預(yù)處理,并進行全連接聚類分析;
3)將用戶特征矩陣輸入卷積神經(jīng)網(wǎng)絡(luò),利用卷積神經(jīng)網(wǎng)絡(luò)獨特的延展性和網(wǎng)絡(luò)結(jié)構(gòu)以及強大的學(xué)習能力,對樣本進行訓(xùn)練并得出預(yù)測矩陣;
4)根據(jù)預(yù)測矩陣以及相似度,對評分進行排序生成推薦列表.
為了驗證本文算法的準確性和有效性,需要利用評測指標在具有代表性的數(shù)據(jù)集上對不同算法進行比較.本文通過均方根誤差RMSE來驗證模型性能,系統(tǒng)硬件參數(shù)為Core i7處理器,16G內(nèi)存、Nvidia GPU、1T固態(tài)硬盤、顯存為11.00GB GDDR5X,軟件環(huán)境為Ubuntu 18.04操作系統(tǒng)、python3.5編程環(huán)境、基于深度學(xué)習框架采用TensorFlow模型,同時為了驗證算法的普遍適用性,數(shù)據(jù)集采用三個不同的規(guī)模和稀疏性.推薦準確度如表1所示.
表1 不同算法推薦準確度
通過表1可知,深度學(xué)習框架下基于用戶的混合協(xié)同過濾算法,均方根誤差(RMSE)明顯優(yōu)于傳統(tǒng)協(xié)同過濾算法,在召回率和準確率上也具有一定的優(yōu)勢.同時,為了驗證算法的普遍適用性在不同數(shù)據(jù)量上均方根誤差(RMSE)進行對比,結(jié)果如圖3所示.
通過圖3可以看出,隨著訓(xùn)練樣本數(shù)據(jù)量的不斷上升,不同算法的均方根誤差(RMSE)在不斷減小,直到趨于穩(wěn)定,且本文算法優(yōu)于其他算法,推薦準確性上具有一定優(yōu)勢.
圖3 不同算法在不同數(shù)據(jù)量上均方根誤差Figure 3 The root mean square error of different algorithms on different amounts of data
本文通過對推薦系統(tǒng)相關(guān)理論知識進行研究,分析了傳統(tǒng)協(xié)同濾波算法的優(yōu)缺點,在面對新用戶、新數(shù)據(jù)以及新系統(tǒng)時沒有大量的已知數(shù)據(jù)進行樣本訓(xùn)練,進而導(dǎo)致特征提取比較困難,出現(xiàn)推薦精度不高、數(shù)據(jù)稀疏性和可擴展性不足的問題,針對這一情況提出將評分矩陣與項目屬性信息融合利用用戶聚類進行分析,擬合出最佳分類.同時,利用深度學(xué)習獨特的延展性和網(wǎng)絡(luò)結(jié)構(gòu)以及強大的學(xué)習能力,建立模型提高個性化推薦精度.經(jīng)過實驗可知本文算法相較于傳統(tǒng)算法具有一定的精度和普遍適應(yīng)性.