佘學(xué)兵,黃 沙,劉承啟
(1.江西科技學(xué)院信息工程學(xué)院,江西 南昌 330098;2.南昌大學(xué)網(wǎng)絡(luò)中心,江西 南昌 330031)
互聯(lián)網(wǎng)的發(fā)展拓寬了用戶(hù)獲取信息的渠道,但并非所有的網(wǎng)絡(luò)信息都具有價(jià)值,因此,在信息過(guò)載的時(shí)代,幫助用戶(hù)高效準(zhǔn)確地篩選出感興趣的資源已經(jīng)成為互聯(lián)網(wǎng)發(fā)展的關(guān)鍵。協(xié)同過(guò)濾算法是解決這一問(wèn)題的主要技術(shù)。協(xié)同過(guò)濾作為一種被人們廣泛認(rèn)可的推薦技術(shù),可有效處理結(jié)構(gòu)化信息,不需研究推薦信息的內(nèi)容與屬性;同時(shí),其又能夠結(jié)合一些不容易體現(xiàn)的概念完成信息過(guò)濾,且推薦智能化程度高,充分滿足個(gè)性化推薦的要求。
基于上述協(xié)同過(guò)濾推薦技術(shù)的諸多優(yōu)勢(shì),相關(guān)學(xué)者利用不同方法進(jìn)一步提高協(xié)同過(guò)濾推薦效果。張志鵬[1]等人提出基于覆蓋簡(jiǎn)約的個(gè)性化系統(tǒng)過(guò)濾推薦方法。根據(jù)覆蓋粗糙集中覆蓋約簡(jiǎn)與用戶(hù)約簡(jiǎn)方式,實(shí)現(xiàn)冗余元素與冗余用戶(hù)的匹配;通過(guò)約簡(jiǎn)算法將冗余用戶(hù)從目標(biāo)用戶(hù)集合中剔除,確保協(xié)同過(guò)濾中用戶(hù)的有效性;在公開(kāi)數(shù)據(jù)集下,為目標(biāo)用戶(hù)提供個(gè)性化推薦服務(wù)。黃賢英[2]等人在用戶(hù)興趣度聚類(lèi)基礎(chǔ)上提出一種協(xié)同過(guò)濾推薦方法。結(jié)合目標(biāo)用戶(hù)對(duì)關(guān)鍵詞的評(píng)分頻率,獲得用戶(hù)對(duì)關(guān)鍵詞的偏好程度,構(gòu)成用戶(hù)-關(guān)鍵詞偏好矩陣,通過(guò)此矩陣實(shí)現(xiàn)聚類(lèi);利用Logistic函數(shù)獲得用戶(hù)對(duì)項(xiàng)目的興趣度,確定用戶(hù)喜好,在聚類(lèi)簇中找出用戶(hù)的相似用戶(hù),采集鄰居愛(ài)好的某些信息實(shí)現(xiàn)對(duì)目標(biāo)用戶(hù)的推薦。然而上述推薦方法存在一定局限性,如冷啟動(dòng)[3]問(wèn)題較為嚴(yán)重,且難以準(zhǔn)確反映用戶(hù)與資源之間的關(guān)系。
推薦的實(shí)質(zhì)屬于持續(xù)決策過(guò)程,用戶(hù)的興趣度不是始終不變的,因此不能利用靜態(tài)視角進(jìn)行資源推薦。為此,本文利用深度學(xué)習(xí)方法來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)資源優(yōu)先協(xié)同過(guò)濾推薦。深度神經(jīng)網(wǎng)絡(luò)能夠處理較為復(fù)雜的關(guān)系,在推薦領(lǐng)域得到廣泛關(guān)注。其具體優(yōu)勢(shì)如下:學(xué)習(xí)結(jié)構(gòu)具備較強(qiáng)通用性,可以利用遷移學(xué)習(xí)策略將訓(xùn)練好的網(wǎng)絡(luò)引入到其它任務(wù)中,降低復(fù)雜度。同時(shí)逐層非線性計(jì)算功能,可以實(shí)現(xiàn)資源特征的逐層提取,減少對(duì)人造特征的依賴(lài),進(jìn)一步提高推薦的效果。
本研究在用戶(hù)需求和網(wǎng)絡(luò)資源之間構(gòu)建的一種推薦機(jī)制,以此來(lái)確保用戶(hù)需求享受到個(gè)性化服務(wù)。該過(guò)程受服務(wù)形式、資源種類(lèi)及使用環(huán)境等方面影響,其架構(gòu)如圖1所示。
圖1 推薦架構(gòu)示意圖
該架構(gòu)可分為下述幾個(gè)模塊:
信息處理:對(duì)采集的初始數(shù)據(jù)做加工處理;
信息特征:通過(guò)信息加工后,保留可以反映網(wǎng)絡(luò)資源基本特點(diǎn)的數(shù)據(jù);
資源庫(kù):保存全部資源特點(diǎn)的數(shù)據(jù)庫(kù);
用戶(hù)建模:采集用戶(hù)喜好信息,并處理用戶(hù)反饋的信息;
興趣模塊[4]:可表示用戶(hù)基本特征;
推薦模塊:此模塊的主要任務(wù)是在用戶(hù)興趣模塊與網(wǎng)絡(luò)資源基礎(chǔ)上,利用不同推薦算法實(shí)現(xiàn)資源推薦,是系統(tǒng)的核心工功能模塊。
資源信息推薦與信息檢索之間存在很大差別,其無(wú)需完成信息采集工作,其工作核心為自主推薦。推薦過(guò)程通常依賴(lài)于推薦架構(gòu),而不依賴(lài)信息內(nèi)容,因此結(jié)合上述功能模塊,本文利用深度學(xué)習(xí)方法實(shí)現(xiàn)網(wǎng)絡(luò)資源協(xié)同過(guò)濾推薦。
在本文構(gòu)建的推薦過(guò)程中,用戶(hù)與網(wǎng)絡(luò)資源的特征矢量通過(guò)神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)訓(xùn)練。為獲取某用戶(hù)對(duì)特定資源的評(píng)分,必須將該用戶(hù)與資源的特征矢量引入到神經(jīng)網(wǎng)絡(luò)中,獲得最終的推薦值。該模型被劃分成特征學(xué)習(xí)[5]與網(wǎng)絡(luò)訓(xùn)練[6]兩個(gè)重要階段。
1)資源特征向量
特征學(xué)習(xí)的目的是利用低維度特征矢量描述系統(tǒng)中的用戶(hù)或資源,且該矢量可以準(zhǔn)確體現(xiàn)出用戶(hù)與產(chǎn)品之間相似性等關(guān)系。
本文通過(guò)共現(xiàn)關(guān)系來(lái)表示資源之間的相似性,構(gòu)建用戶(hù)與資源的特征矢量模型。
假設(shè)某推薦系統(tǒng)利用S表示,需綜合分析M個(gè)資源與N個(gè)用戶(hù),且構(gòu)建一個(gè)N×M的用戶(hù)得分矩陣RN×M。假設(shè)ei與ri分別代表資源、用戶(hù)特征矢量,則模型的主要目的是通過(guò)學(xué)習(xí)獲取這兩個(gè)矢量。
首先,將資源共現(xiàn)矩陣[7]C利用ei表示
(1)
(2)
(3)
式中,ei代表的拼接矢量,其中包含不同的語(yǔ)義特性。拼接矢量處理能夠得到更多信息外,還能過(guò)濾出由于過(guò)擬合產(chǎn)生的噪聲。
為進(jìn)一步改善特征矢量的合理性,在式(2)中加入有關(guān)資源i的誤差bi與j的誤差bj。將式(2)改為下述形式
(4)
與資源有關(guān)的特征矢量可利用最小化預(yù)測(cè)共現(xiàn)系數(shù)與實(shí)際值的平方損失誤差獲取。資源特征矢量的訓(xùn)練過(guò)程包括如下四個(gè)步驟:
步驟一:每個(gè)資源i都會(huì)結(jié)合用戶(hù)得分矩陣R形成對(duì)應(yīng)用戶(hù)集合Ui。Ui內(nèi)包括所有評(píng)價(jià)過(guò)資源i的用戶(hù);
步驟三:利用共現(xiàn)值修改共現(xiàn)矩陣C,最終通過(guò)對(duì)C的訓(xùn)練獲得資源特征矢量。
2)用戶(hù)特征向量
用戶(hù)特征矢量學(xué)習(xí)過(guò)程與資源矢量學(xué)習(xí)過(guò)程相似,唯一的區(qū)別是共現(xiàn)值不同。
用戶(hù)間的共現(xiàn)關(guān)系表示為
(5)
(6)
式中,ri為用戶(hù)的最終特征向量。在此基礎(chǔ)上,通過(guò)共現(xiàn)特征構(gòu)建的學(xué)習(xí)模型能夠準(zhǔn)確獲得資源與用戶(hù)特征,展現(xiàn)出二者之間的共現(xiàn)性,過(guò)濾出非特征資源,實(shí)現(xiàn)特征提取。
張量[8]是在向量基礎(chǔ)上提出的。向量代表具有大小和方向的物理量,比如速度等,也可以代表平面。向量可以描述很多物理量,但是依舊存在一定局限性。比如針對(duì)更加復(fù)雜的物理量,就難以利用向量準(zhǔn)確表示。而張量能夠反映較為豐富的物理量,在分析張量之前,需掌握基向量與分量。因此,本研究引入笛卡爾坐標(biāo)系[9]。假設(shè)在此坐標(biāo)系內(nèi),X、Y與Z軸三個(gè)方向上都存在一個(gè)基向量,分別表示為i′、j′與k′,基向量大小均等于1。在此基礎(chǔ)上,構(gòu)建向量v,其中包括2個(gè)i′、3個(gè)j′與4個(gè)k′。在已知基向量條件下,只通過(guò)2、3、4三個(gè)數(shù)字描述v即可。因此,僅需確定三個(gè)分量就能構(gòu)建一個(gè)向量。
在坐標(biāo)系中,對(duì)于任意一向量A,利用Ai′、Aj′與Ak′表示A在不同方向上的分量。Ai′、Aj′與Ak′僅存在一個(gè)下標(biāo),所以它們僅包含一個(gè)基向量,也可稱(chēng)其為一階張量。
綜上所述,張量是表現(xiàn)物理量的方式,包括基向量與分量。參考系的變化也不會(huì)改變張量,且基向量的組合較為多樣化,所以張量能展現(xiàn)更多物理量。
將張量引入到神經(jīng)網(wǎng)絡(luò)中,建立最終的優(yōu)先協(xié)同過(guò)濾推薦模型。
(7)
(8)
為了加強(qiáng)深度學(xué)習(xí)的效果,將一階與二階張量合并引入到神經(jīng)網(wǎng)絡(luò)中,獲得輸出信號(hào)如下
(9)
確定張量神經(jīng)元架構(gòu)后,構(gòu)建用于網(wǎng)絡(luò)資源推薦的神經(jīng)網(wǎng)絡(luò)模型。在信息輸入過(guò)程中,用戶(hù)i*的特征矢量r(i*)與資源j*的特征矢量m(j*),則模型輸出的評(píng)分結(jié)果表示為
yv,w,b(u(i*)m(j*))=
(10)
式中,f(1)(·)與f(2)(·)分別代表隱含層與輸出層中激活函數(shù)。
普通神經(jīng)網(wǎng)絡(luò)需經(jīng)過(guò)學(xué)習(xí)的參數(shù)為(W,b)=(W(1),b(1),W(2),b(2)),張量神經(jīng)網(wǎng)絡(luò)的參數(shù)表示為(V,W,b)=(V[s1],W(1),b(1),W(2),b(2))。在張量神經(jīng)網(wǎng)絡(luò)中利用批量梯度下降以及反向傳播[10]的學(xué)習(xí)算法,優(yōu)先協(xié)同過(guò)濾實(shí)現(xiàn)的過(guò)程如下
步驟一:針對(duì)訓(xùn)練樣本(u(i*),m(j*),t(k*)),做前向傳播處理,獲取每一層輸出;
步驟二:運(yùn)算輸出層偏差,過(guò)程如下
(11)
步驟三:獲得隱含層偏差
(12)
步驟四:獲取輸入層偏差
δ(0)=(W(1))Tδ(1)
(13)
步驟五:對(duì)不同參數(shù)的偏導(dǎo)數(shù)進(jìn)行運(yùn)算
?W(2)J(V,W,b,u(i*),m(j*),t(k))=δ(2)hT
(14)
?b(2)J(V,W,b,u(i*),m(j*),t(k))=δ(2)
(15)
(16)
式中,?代表偏導(dǎo)數(shù)符號(hào)。獲得單個(gè)樣本損失函數(shù)具有的偏導(dǎo)數(shù)后,即可獲得n個(gè)樣本的整體損失函數(shù)存在的偏導(dǎo)數(shù)。
步驟六:通過(guò)對(duì)模型參數(shù)與特征矢量的不斷更新,經(jīng)反復(fù)迭代,直至損失函數(shù)出現(xiàn)收斂現(xiàn)象,J(V,W,b)具有最小值。此時(shí),模型參數(shù)、用戶(hù)與資源特征矢量均為最佳值。將深度學(xué)習(xí)后的模型用以資源評(píng)分,根據(jù)評(píng)分優(yōu)先級(jí),給出優(yōu)先協(xié)同過(guò)濾推薦結(jié)果。
為驗(yàn)證基于深度學(xué)習(xí)的網(wǎng)絡(luò)資源協(xié)同過(guò)濾推薦方法的實(shí)際應(yīng)用性能,設(shè)置如下仿真。
利用Windows 10系統(tǒng)搭建虛擬仿真平臺(tái)。利用Movie Lens數(shù)據(jù)集合完成測(cè)試,將數(shù)據(jù)集均勻分為40份,其中20份為測(cè)試集,其它為訓(xùn)練集。將文獻(xiàn)[1]方法與文獻(xiàn)[2]方法作為對(duì)比方法,與本文方法共同完成性能驗(yàn)證。
實(shí)驗(yàn)一:測(cè)試三種方法的資源特征向量提取聚類(lèi)效果,結(jié)果如圖2-圖4所示。
圖2 本文方法的資源特征提取聚類(lèi)效果圖
圖3 文獻(xiàn)[1]方法的資源特征提取聚類(lèi)效果圖
圖4 文獻(xiàn)[2]方法的資源特征提取聚類(lèi)效果圖
由圖2-圖4能夠看出,本文方法對(duì)資源特征提取聚類(lèi)的效果更好,能夠?qū)⒕哂邢嗤卣鞯馁Y源很好的聚類(lèi)在一起。這是因?yàn)楸疚姆椒ɑ诠铂F(xiàn)性的特征提取模型可以準(zhǔn)確區(qū)分資源特征,為資源推薦奠定良好基礎(chǔ)。
實(shí)驗(yàn)二:使資源推薦數(shù)量由10條增長(zhǎng)到70條,每個(gè)資源間隔為10,鄰居數(shù)量是3,衰減因子分別設(shè)置為0.7與0.9。利用三種不同方法向用戶(hù)推薦資源,由于衰減因子不同,不同方法推薦成功的次數(shù)分別如圖5和6所示。
圖5 衰減因子為0.7時(shí)推薦效果
圖6 衰減因子為0.9時(shí)推薦效果
分析圖5和6可知,在推薦數(shù)量相同情況下,三種方法推薦成功次數(shù)均隨著衰減因子的增加而降低。但是本文方法受衰減因子影響較小,始終保持較高的推薦成功率。這是因?yàn)楸疚姆椒ㄔ谏疃葘W(xué)習(xí)模型中引入張量概念,可獲得更加豐富的物理量,在面對(duì)用戶(hù)興趣逐漸衰減時(shí),也能準(zhǔn)確獲取用戶(hù)特征,從而提高了用戶(hù)滿意度。
實(shí)驗(yàn)三:冷啟動(dòng)問(wèn)題是在為新用戶(hù)推薦資源時(shí),因用戶(hù)的相關(guān)信息較少而難以做出有效推薦的現(xiàn)象。三種方法的冷啟動(dòng)現(xiàn)象如圖7所示。
圖7 不同方法冷啟動(dòng)解決效果
分析圖7可知,在為沒(méi)有歷史記錄的新用戶(hù)推薦資源時(shí),本文方法能夠結(jié)合用戶(hù)的共現(xiàn)關(guān)系為用戶(hù)推薦感興趣的資源,而另外兩種方法難以實(shí)現(xiàn)資源有效推薦。
為提高用戶(hù)網(wǎng)絡(luò)資源推薦滿意度,本文設(shè)計(jì)了基于深度學(xué)習(xí)的協(xié)同過(guò)濾推薦方法。仿真結(jié)果表明,該方法受衰減因子影響較小,同時(shí)解決了冷啟動(dòng)問(wèn)題,可有效實(shí)現(xiàn)網(wǎng)絡(luò)資源推薦。但是由于用戶(hù)行為數(shù)據(jù)越來(lái)越多,導(dǎo)致神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練時(shí)間較長(zhǎng)。針對(duì)此點(diǎn)不足,在今后研究中可利用Hadoop架構(gòu)解決這一問(wèn)題。將協(xié)同過(guò)濾過(guò)程編入Hadoop分布式程序中,通過(guò)提高模型訓(xùn)練速度快速生成推薦列表。