佘學兵,黃 沙,劉承啟
(1.江西科技學院信息工程學院,江西 南昌 330098;2.南昌大學網絡中心,江西 南昌 330031)
互聯網的發展拓寬了用戶獲取信息的渠道,但并非所有的網絡信息都具有價值,因此,在信息過載的時代,幫助用戶高效準確地篩選出感興趣的資源已經成為互聯網發展的關鍵。協同過濾算法是解決這一問題的主要技術。協同過濾作為一種被人們廣泛認可的推薦技術,可有效處理結構化信息,不需研究推薦信息的內容與屬性;同時,其又能夠結合一些不容易體現的概念完成信息過濾,且推薦智能化程度高,充分滿足個性化推薦的要求。
基于上述協同過濾推薦技術的諸多優勢,相關學者利用不同方法進一步提高協同過濾推薦效果。張志鵬[1]等人提出基于覆蓋簡約的個性化系統過濾推薦方法。根據覆蓋粗糙集中覆蓋約簡與用戶約簡方式,實現冗余元素與冗余用戶的匹配;通過約簡算法將冗余用戶從目標用戶集合中剔除,確保協同過濾中用戶的有效性;在公開數據集下,為目標用戶提供個性化推薦服務。黃賢英[2]等人在用戶興趣度聚類基礎上提出一種協同過濾推薦方法。結合目標用戶對關鍵詞的評分頻率,獲得用戶對關鍵詞的偏好程度,構成用戶-關鍵詞偏好矩陣,通過此矩陣實現聚類;利用Logistic函數獲得用戶對項目的興趣度,確定用戶喜好,在聚類簇中找出用戶的相似用戶,采集鄰居愛好的某些信息實現對目標用戶的推薦。然而上述推薦方法存在一定局限性,如冷啟動[3]問題較為嚴重,且難以準確反映用戶與資源之間的關系。
推薦的實質屬于持續決策過程,用戶的興趣度不是始終不變的,因此不能利用靜態視角進行資源推薦。為此,本文利用深度學習方法來實現網絡資源優先協同過濾推薦。深度神經網絡能夠處理較為復雜的關系,在推薦領域得到廣泛關注。其具體優勢如下:學習結構具備較強通用性,可以利用遷移學習策略將訓練好的網絡引入到其它任務中,降低復雜度。同時逐層非線性計算功能,可以實現資源特征的逐層提取,減少對人造特征的依賴,進一步提高推薦的效果。
本研究在用戶需求和網絡資源之間構建的一種推薦機制,以此來確保用戶需求享受到個性化服務。該過程受服務形式、資源種類及使用環境等方面影響,其架構如圖1所示。

圖1 推薦架構示意圖
該架構可分為下述幾個模塊:
信息處理:對采集的初始數據做加工處理;
信息特征:通過信息加工后,保留可以反映網絡資源基本特點的數據;
資源庫:保存全部資源特點的數據庫;
用戶建模:采集用戶喜好信息,并處理用戶反饋的信息;
興趣模塊[4]:可表示用戶基本特征;
推薦模塊:此模塊的主要任務是在用戶興趣模塊與網絡資源基礎上,利用不同推薦算法實現資源推薦,是系統的核心工功能模塊。
資源信息推薦與信息檢索之間存在很大差別,其無需完成信息采集工作,其工作核心為自主推薦。推薦過程通常依賴于推薦架構,而不依賴信息內容,因此結合上述功能模塊,本文利用深度學習方法實現網絡資源協同過濾推薦。
在本文構建的推薦過程中,用戶與網絡資源的特征矢量通過神經網絡實現訓練。為獲取某用戶對特定資源的評分,必須將該用戶與資源的特征矢量引入到神經網絡中,獲得最終的推薦值。該模型被劃分成特征學習[5]與網絡訓練[6]兩個重要階段。
1)資源特征向量
特征學習的目的是利用低維度特征矢量描述系統中的用戶或資源,且該矢量可以準確體現出用戶與產品之間相似性等關系。
本文通過共現關系來表示資源之間的相似性,構建用戶與資源的特征矢量模型。
假設某推薦系統利用S表示,需綜合分析M個資源與N個用戶,且構建一個N×M的用戶得分矩陣RN×M。假設ei與ri分別代表資源、用戶特征矢量,則模型的主要目的是通過學習獲取這兩個矢量。
首先,將資源共現矩陣[7]C利用ei表示
(1)


(2)

(3)
式中,ei代表的拼接矢量,其中包含不同的語義特性。拼接矢量處理能夠得到更多信息外,還能過濾出由于過擬合產生的噪聲。
為進一步改善特征矢量的合理性,在式(2)中加入有關資源i的誤差bi與j的誤差bj。將式(2)改為下述形式
(4)
與資源有關的特征矢量可利用最小化預測共現系數與實際值的平方損失誤差獲取。資源特征矢量的訓練過程包括如下四個步驟:
步驟一:每個資源i都會結合用戶得分矩陣R形成對應用戶集合Ui。Ui內包括所有評價過資源i的用戶;

步驟三:利用共現值修改共現矩陣C,最終通過對C的訓練獲得資源特征矢量。
2)用戶特征向量
用戶特征矢量學習過程與資源矢量學習過程相似,唯一的區別是共現值不同。
用戶間的共現關系表示為
(5)

(6)
式中,ri為用戶的最終特征向量。在此基礎上,通過共現特征構建的學習模型能夠準確獲得資源與用戶特征,展現出二者之間的共現性,過濾出非特征資源,實現特征提取。
張量[8]是在向量基礎上提出的。向量代表具有大小和方向的物理量,比如速度等,也可以代表平面。向量可以描述很多物理量,但是依舊存在一定局限性。比如針對更加復雜的物理量,就難以利用向量準確表示。而張量能夠反映較為豐富的物理量,在分析張量之前,需掌握基向量與分量。因此,本研究引入笛卡爾坐標系[9]。假設在此坐標系內,X、Y與Z軸三個方向上都存在一個基向量,分別表示為i′、j′與k′,基向量大小均等于1。在此基礎上,構建向量v,其中包括2個i′、3個j′與4個k′。在已知基向量條件下,只通過2、3、4三個數字描述v即可。因此,僅需確定三個分量就能構建一個向量。
在坐標系中,對于任意一向量A,利用Ai′、Aj′與Ak′表示A在不同方向上的分量。Ai′、Aj′與Ak′僅存在一個下標,所以它們僅包含一個基向量,也可稱其為一階張量。
綜上所述,張量是表現物理量的方式,包括基向量與分量。參考系的變化也不會改變張量,且基向量的組合較為多樣化,所以張量能展現更多物理量。
將張量引入到神經網絡中,建立最終的優先協同過濾推薦模型。
(7)


(8)
為了加強深度學習的效果,將一階與二階張量合并引入到神經網絡中,獲得輸出信號如下

(9)
確定張量神經元架構后,構建用于網絡資源推薦的神經網絡模型。在信息輸入過程中,用戶i*的特征矢量r(i*)與資源j*的特征矢量m(j*),則模型輸出的評分結果表示為
yv,w,b(u(i*)m(j*))=
(10)
式中,f(1)(·)與f(2)(·)分別代表隱含層與輸出層中激活函數。
普通神經網絡需經過學習的參數為(W,b)=(W(1),b(1),W(2),b(2)),張量神經網絡的參數表示為(V,W,b)=(V[s1],W(1),b(1),W(2),b(2))。在張量神經網絡中利用批量梯度下降以及反向傳播[10]的學習算法,優先協同過濾實現的過程如下
步驟一:針對訓練樣本(u(i*),m(j*),t(k*)),做前向傳播處理,獲取每一層輸出;
步驟二:運算輸出層偏差,過程如下
(11)
步驟三:獲得隱含層偏差
(12)
步驟四:獲取輸入層偏差
δ(0)=(W(1))Tδ(1)
(13)
步驟五:對不同參數的偏導數進行運算
?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)
式中,?代表偏導數符號。獲得單個樣本損失函數具有的偏導數后,即可獲得n個樣本的整體損失函數存在的偏導數。
步驟六:通過對模型參數與特征矢量的不斷更新,經反復迭代,直至損失函數出現收斂現象,J(V,W,b)具有最小值。此時,模型參數、用戶與資源特征矢量均為最佳值。將深度學習后的模型用以資源評分,根據評分優先級,給出優先協同過濾推薦結果。
為驗證基于深度學習的網絡資源協同過濾推薦方法的實際應用性能,設置如下仿真。
利用Windows 10系統搭建虛擬仿真平臺。利用Movie Lens數據集合完成測試,將數據集均勻分為40份,其中20份為測試集,其它為訓練集。將文獻[1]方法與文獻[2]方法作為對比方法,與本文方法共同完成性能驗證。
實驗一:測試三種方法的資源特征向量提取聚類效果,結果如圖2-圖4所示。

圖2 本文方法的資源特征提取聚類效果圖

圖3 文獻[1]方法的資源特征提取聚類效果圖

圖4 文獻[2]方法的資源特征提取聚類效果圖
由圖2-圖4能夠看出,本文方法對資源特征提取聚類的效果更好,能夠將具有相同特征的資源很好的聚類在一起。這是因為本文方法基于共現性的特征提取模型可以準確區分資源特征,為資源推薦奠定良好基礎。
實驗二:使資源推薦數量由10條增長到70條,每個資源間隔為10,鄰居數量是3,衰減因子分別設置為0.7與0.9。利用三種不同方法向用戶推薦資源,由于衰減因子不同,不同方法推薦成功的次數分別如圖5和6所示。

圖5 衰減因子為0.7時推薦效果

圖6 衰減因子為0.9時推薦效果
分析圖5和6可知,在推薦數量相同情況下,三種方法推薦成功次數均隨著衰減因子的增加而降低。但是本文方法受衰減因子影響較小,始終保持較高的推薦成功率。這是因為本文方法在深度學習模型中引入張量概念,可獲得更加豐富的物理量,在面對用戶興趣逐漸衰減時,也能準確獲取用戶特征,從而提高了用戶滿意度。
實驗三:冷啟動問題是在為新用戶推薦資源時,因用戶的相關信息較少而難以做出有效推薦的現象。三種方法的冷啟動現象如圖7所示。

圖7 不同方法冷啟動解決效果
分析圖7可知,在為沒有歷史記錄的新用戶推薦資源時,本文方法能夠結合用戶的共現關系為用戶推薦感興趣的資源,而另外兩種方法難以實現資源有效推薦。
為提高用戶網絡資源推薦滿意度,本文設計了基于深度學習的協同過濾推薦方法。仿真結果表明,該方法受衰減因子影響較小,同時解決了冷啟動問題,可有效實現網絡資源推薦。但是由于用戶行為數據越來越多,導致神經網絡模型訓練時間較長。針對此點不足,在今后研究中可利用Hadoop架構解決這一問題。將協同過濾過程編入Hadoop分布式程序中,通過提高模型訓練速度快速生成推薦列表。