黃德柒 茍剛



摘要:傳統協同過濾算法僅利用評分信息進行推薦,而沒有利用到更多用戶特征與電影特征,推薦效果不佳。深度學習的普通應用,為特征提取打下了良好基礎。通過爬取網站上的電影演員信息表,使用卷積神經網絡對文本信息進行特征提取,采用結合注意力機制與場感知因子分解機的混合推薦方法,并使用用戶一電影特征矩陣進行訓練。在公開數據集MovieLens上進行實驗測試,RMSE達到0.850,與5組推薦模型進行對比,RMSE分別提升了18.0%、11.3%、7.60%、25.7%、6.80%。實驗結果表明,該模型可以提高推薦效率。
關鍵詞:推薦系統;注意力機制;場感知因子分解機;卷積神經網絡
DOI:10.11907/rjdk.192143 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP301文獻標識碼:A 文章編號:1672-7800(2020)006-0019-04
0 引言
隨著互聯網的發展,人們在網上觀看各類電影的同時,也被大量電影信息所淹沒。目前解決信息過載的手段主要分為兩種:搜索引擎與推薦系統。當掌握一定量信息時,可以使用搜索引擎進行搜索,但網絡上的視頻數量十分龐大,而且隨著時間推移,數量還會繼續增加。因此,若要在大量信息中尋找到潛在感興趣的電影,則需要用到推薦系統。在互聯網上,各大視頻網站為用戶推薦視頻是很常見的事情,目前常用推薦算法有基于內容的推薦、協同過濾推薦以及混合推薦。基于內容的推薦僅考慮到項目與項目之間的關聯,而沒有考慮到用戶的歷史興趣偏好;協同過濾推薦則是基于用戶之間的相似性,基于多個用戶的歷史行為信息對用戶進行潛在項目評分預測,因此在數據稀疏時效果不佳,且沒有利用電影的特征信息;混合推薦由協同過濾推薦以及基于內容的推薦混合而成,既包含了項目特征,又考慮到用戶的歷史興趣偏好,但由于數據量過于龐大,完全依靠人工進行特征提取需要花費大量人工成本,提取效果也不理想。隨著深度學習研究的發展,Covington等針對You了ubc提出一種基于深度神經網絡的模型,使用兩個深度網絡,一個生成候選集,一個進行推薦,這也是工業上第一次使用深度學習進行視頻推薦。目前評分預測中使用較多的方法是使用矩陣分解進行預測,如何加入更多特征信息提高推薦效果也是目前的主要研究內容。由于神經網絡良好的特征提取性能,基于深度學習進行協同過濾,提取上下文信息學習潛在特征已是很普遍的手段,但在學習大量特征時,協同過濾或矩陣分解都沒有考慮到特征之間的交互性。因此,本文提出基于卷積神經網絡對電影信息進行特征提取,并將特征應用于融合注意力機制的場感知因子分解機電影推薦模型(CAFFM)中。
1 推薦模型框架設計
1.1 基于卷積神經網絡的特征提取
考慮到目前社會上存在明顯的追星效應,電影參演演員會很大程度上影響用戶對于電影的選擇,因此本文將每部電影的演員信息作為電影的一個標簽信息,將該部分信息映射到數字特征空間,并將每個演員表都表示為定長的信息,其中缺失的部分用空白進行填補,最后會形成很大的稀疏矩陣。然而,龐大的稀疏矩陣會極大地浪費模型訓練時間,也會降低推薦效率。因此,本文使用卷積神經網絡對演員信息進行提取。
設計一個單通道的卷積神經網絡,對映射好的特征矩陣輸入進行特征提取及降維處理。卷積神經網絡能夠很好地提取文本信息,特別對于演員信息這種有著順序的文本信息,通過局部感知野、共享權重和下采樣可以有效地捕捉演員順序信息。由于電影演員排序是一個很重要的信息,主角和配角之間的號召力有著明顯差距,本文使用一個四層的卷積網絡對特征進行提取,并通過卷積層進行計算。本文采用relu激勵函數,卷積層和池化層連續疊加,用于對數據進行壓縮、減少參數個數,并對高維特征進行降維,以最大程度保證特征包含的信息。最后在池化層加上注意力層,重點提取特征。
其定義為:
為了更好地提取出特征,采用4個大小不同的卷積核,大小分別為2、3、4、5。將卷積神經網絡的輸出融人電影特征,再將電影特征與用戶特征相連接,即構建出整個特征矩陣,用于接下來的模型輸入。
1.2 融合注意力機制的場感知因子分解機
場感知因子分解機(Field-aware Factorization Machine,FFM)是一種隱向量學習的非線性模型,即將同一性質的特征歸于一個場中。在電影推薦中,部分屬性下擁有多個值,如電影有多個類型,實際上屬于同一性質,即歸于同一個場。FFM模型具有強大的泛化能力,并能很好地利用上下文信息,其定義如公式(2)所示。
對于不同特征,都會有一個交互過程,將公式表示成另一種形式,即:
注意力模型(Attention Model)被廣泛應用于自然語言處理、圖像識別及語音識別等不同類型的深度學習模型中,其借鑒了人的注意力機制,本文將其應用于推薦系統。在評分預測中,不同項對最終結果的影響是不同的,融人注意力機制,給多元二次項中的每個項添加一個注意力系數,用于篩選出具有更高價值的項,并獲取更多所需關注目標的細節信息,同時抑制其它無用信息。融人注意力因子的場感知因子分解機公式如下:
其中,ai、ai,j的值可以解釋為后面所乘項在目標預測中的重要性。對于訓練數據中從未出現過的特征,無法估計其注意力值。為解決一般化問題,本文進一步使用多層感知器(MLP)對注意力值進行參數化,形成一個注意力網絡。定義為:
網絡采用Relu作為激活函數,并對注意力值使用softmax函數進行歸一化,歸一化過程如式(7)、式(8)所示。
1.3 模型框架與損失函數
最終模型框架設計如圖2所示。
損失函數取最小評分誤差,即:
其中L(x)為模型損失值,y是用戶對電影的實際評分,R(x)為模型預測值,為防止過擬合現象,采用dropout與正則化兩種技術,正則化系數在式(8)中表現為入(過擬合懲罰因子),||w||是L2范數,作為過擬合懲罰項。Dropout的思想是在訓練過程中隨機地丟棄一些神經元,以阻止特征檢測器的共同作用,提高神經網絡性能。因此,優化模型的目標是使損失函數最小化,本文采取隨機梯度下降(SGD)算法,通過最小化損失函數訓練模型參數,根據樣本進行迭代更新,可以控制更新速率和迭代次數,從而使模型的訓練變得可控。