陳善雄 張曦煌
(江南大學物聯網工程學院 無錫 214122)
本文探討基于融合輔助信息的神經網絡組合推薦系統,通過輔助信息和歷史交互數據重新定義用戶和項目交互功能。利用輔助信息不僅可以提高真實交互作用的成功率,還可以提高對預測進行正確排序的能力。在處理文本內容的輔助信息時,利用哈希函數的優勢,減輕數據稀疏性的弊端。在神經網絡隱藏層結構中,層數由m層擴展為n層(n>m),使得輔助數據和歷史交互數據能被挖掘出更深層次的潛在信息。
主要工作總結如下:
1)設計一種基于融合輔助數據的神經網絡組合推薦系統通用框架,主要由矩陣分解神經網絡和深度神經網絡組合而成。該框架從輔助數據和交互數據中對用戶和項目的隱性特征進行建模。
2)引入輔助信息到大規模數據領域的推薦系統框架中,顯著提高推薦質量以及應對推薦系統冷啟動問題。
3)采用哈希函數處理文本數據,緩解數據稀疏性。
4)本文使用三個真實數據集評估NFR的推薦效果,實驗結果表明NFR優于其他先進方法。
矩陣分解(MF)是眾多應用方法中最著名的協同過濾方法。隨著Netflix Prize[3]的普及,矩陣分解已經成為潛在因子建模推薦的首選方法。矩陣分解通過將評分矩陣有效分解為低維度的潛在因子,使用戶和項目投影到共享的潛在空間里。推薦系統使用潛在因素的內積來體現用戶和商品之間的相互作用。目前有較多的研究來提高矩陣分解的性能,Sheng等[4]提出了一種深度協同過濾方法(DCF),此方法結合概率矩陣分解(PMF)和邊緣化降噪自動編碼器(MDA),從深層網絡的隱層中提取潛在因子,并將其運用于矩陣分解向量的輸入。Wang等[5]提出了一種用于向在線社區推薦科學文章的協作主題模型。文中將LDA(Latent Dirichlet Allocation)運用于用戶評分以及商品內容。當用戶和文章被表示為潛在因子,就將矩陣分解應用其潛在表示中來預測用戶的偏好。Kim等[6]提出一種上下文感知推薦模型被稱為卷積矩陣分解(Con?vMF)。此模型將卷積神經網絡(CNN)集成到概率矩陣分解(PMF)中,從卷積神經網絡直接訓練的矩陣分解中得到項目表示。
這是一個快速發展、急劇變化的時代,關心未來成為人們的迫切需要。湯因比的挑戰與應戰說是思考未來的有效方法。無論是個人、集體還是人類社會,洞察和預知面臨的最大危機與挑戰都是頭等大事,因為它直接決定處境判斷、及時應對和戰略抉擇,面對什么比擁有什么更重要,這決定了自己的安危和出路。為此本文探討三項內容,一是人類面臨的最大危機與挑戰是什么?二是化解最大危機與挑戰的難點和危機嚴峻程度,三是科技危機引發的以新科技革命、新產業革命與社會大轉型為核心內容的智業革命,最后是主要結論、展望和啟動方案。
推薦系統的大多數研究使用深度神經網絡[7],但采用深度神經網絡直接從數據中學習交互的工作相對較少。Roy等[8]首次嘗試使用神經網絡建立傳統的協作過濾機制來模擬矩陣分解,并用前饋神經網絡替換矩陣分解的內積,但這在數據集的表現上并未成功。由于內積無法捕獲用戶和項目的非線性交互,何向南等[9]對此方法進行改進,提出NCF框架。NCF采用純協同過濾方法:廣義矩陣分解(GMF)和多層感知機(MLP)。通過前饋神經網絡中非線性交互函數替換內積,得到較為理想的結果。但僅從歷史交互數據中受益,并沒有完全考慮冷啟動問題。Payam等[10]對NCF框架進行改進,提出NHR通用框架。此框架結合隱式反饋來獲取顯式反饋無法獲取的有價值信息,將輔助數據和歷史交互數據組合起來,得到比任何單方面數據更好的預測結果。但使用隱式反饋缺乏負實例,實驗結果往往不盡人意。因此采用討論負采樣來解決此問題。上述研究表明輔助信息對隨時引入新用戶或項目的推薦系統極為關鍵。因此為了進一步提高推薦質量,如何改進NCF并更好地融合輔助信息成為推薦領域面臨的重要問題。
文中使用前饋神經網絡,建立協同過濾和輔助信息結合的通用框架。神經網絡可以對用戶和項目的交互進行建模,并且它已被證明可以學習非線性關系,這對于推薦電影,圖像或工作等復雜對象至關重要。在遵循NCF的前提下,首先使用相同的交互數據組合不同的神經網絡,來構建廣度和深度的協同過濾方法,再將補充網絡的輔助信息添加到系統中以解決冷啟動問題。通過訓練彼此獨立的多個神經推薦模型,構建一個由所有模型組建的框架。模型中的網絡大致分為兩類:矩陣分解神經網絡和深度神經推薦網絡。
矩陣分解神經網絡是基于矩陣分解實現的簡單神經網絡。矩陣分解用一個潛在特征向量值將每個用戶和項目關聯起來。
如圖1,圖中嵌入層將用戶和項目轉換為矢量表示,所獲得的嵌入向量被看作是潛在因素模型用于上下文中。如果用mu和ni分別表示用戶u和項目i的潛在向量,則將映射函數定義為

圖1 矩陣分解神經網絡

其中Ψ表示潛在向量的元素乘積,接著將此項目矢量投影到模型的輸出層:

其中x=Ψ(u,i|mu,ni)表示圖1乘積層的輸出向量,W,b和αout分別是該層的權重矢量,偏差值和激活函數。假設權重初始向量W是1的均勻向量,方程中的b是零偏差,激活函數是一個單位函數,該函數允許用輸入的確切值來定義感知器,這一環節用來充當傳統的矩陣分解。為了實現矩陣分解神經網絡,利用等式(5)中的對數損失函數,從相互作用中學習權重向量W和偏差b,從而獲得廣義矩陣分解(GMF)。Sigmoid函數定義αout,用等式σ(x)=1∕(1+exp(-x))表達。Sigmoid函數可以在(0,1)范圍內控制神經元,來滿足項目的預測期望。
廣義矩陣分解(GMF)對向量簡單地連接不足以說明用戶和向量的潛在特征,因此利用多層感知機(MLP)來學習用戶和項目潛在特征之間的相互作用。多層感知機擁有高水平的靈活性和非線性建模能力,不像廣義矩陣分解那樣簡單的對元素進行內積。
廣義矩陣分解和多層感知機模型的嵌入層輸出都轉換成一維向量,它們的輸入長度為1(僅id)。但在輔助數據上訓練的深度神經推薦網絡的嵌入層會產生嵌入序列。平均池化是一種將序列成員中存在的信息收集為特定形式的應用程序,如從單詞嵌入中獲取句子嵌入。因為用戶和項目需用幾個特征要素表示,且每個要素特征都有自己的嵌入空間,所以嵌入層的平均池化使用戶和項目對具有唯一的潛在向量表示。
如圖2所示,嵌入層后獲得的用戶和項目對的潛在向量通過隱藏層中每一層對應的函數公式來生成MLP模型:

圖2 深度神經推薦網絡

其中α1~αn-1是ReLU激活函數,最后的αn是Sig?moid函數,W是權重函數,b是偏差向量。
矩陣分解神經網絡應用線性內核來模擬潛在的特征交互。深度神經推薦網絡則使用非線性內核學習交互數據,并融合輔助數據,提高推薦模型的泛化能力。為了充分發揮兩種框架的優點,更好的對復雜模型進行建模,允許GMF和MLP學習獨立的嵌入,僅將模型輸出之前的最后一層連接起來。通過加權將多個神經網絡模型組合到一起,最終框架如圖3。

圖3 神經網絡組合推薦
權重初始化對提高深度學習模型的性能至關重要[11]。首先通過訓練沒有先驗信息的模型,直至收斂為止;其次用訓練得到的參數來初始化整個體系結構上的相關權重。為了合并所有模型,僅將輸出之前的最后一層網絡連接起來。該層定義了模型的預測能力,在文獻中通常稱為預測因子。在加權過程中使用最后一層網絡的原始權重:

其中ωn表示第n個模型預訓練的權重向量,(α,β,…,γ)是多個超參數,來權衡各個預訓練模型的比重。
所有模型層定義中給出的參數經下面二類交叉熵損失函數(binary cross-entropy loss)學習。

其中Y表示觀察到的相互作用的集合,Y-表示消極實例。當損失函數替換為加權平方損失時,提出的框架也可以輕松地應用于顯式數據集。
實驗基于三個公開數據集展開:MovieLens[12],Pinterest和Kariyer,數據集的特征見表1。對于電影推薦任務,運用包含電影字幕的標準電影字幕數據集OPUS;對于圖像推薦,用戶的Pins作為交互數據,對象類別和個人身份作為輔助數據;對于工作推薦,用戶的歷史數據作為交互數據,工作和應聘者的屬性作為輔助數據。

表1 實驗數據特征
輔助信息源有三類:分類信息、文本信息和它們的組合。但在NFR實驗中,只記錄分類信息和文本信息的組合作為輔助信息源的實驗結果。Pinterest和Kariyer數據集包含許多數據類型:自由文本,實值,二進制,單標簽和多標簽分類特征。為了處理學習過程中的所有不同類型,實驗首先采用一般的預處理步驟,例如離群值去除,標記化等。然后對實數值進行歸一化。實驗還將原始文本特性轉換為引用文本數據源的散列向量,這里不用簡單的字典實現,因為使用字典可能會出現表示極為稀疏的情況。而是利用哈希函數的優勢,將原始文本轉換為固定大小的哈希空間中的索引序列。有些詞可能根據哈希函數分配到相同的索引。哈希空間的維數受到不同單詞重疊率和嵌入層維數的影響。通過對整體性能的評價,將哈希空間維數設置為1k。
框架流程由TensorFlow實現,所有單個的模型通過等式(5)的對數損失函數來學習。對于沒有任何先驗信息訓練的單個模型,實驗使用Xavier初始化設置模型參數,再使用Adam優化算法對其優化,學習率設置為0.001,動量設置為0.9。實驗測試了一堆不同的批處理大小{16,32,64,128},發現128是性能最好的設置,但由于數據的嵌入量過大,實驗設備有限,最后采用32的批處理大小。實驗分別使用{8,16,32,64}的預測因子大小進行模型評估。值得注意的是,大的因子可能導致過擬合,降低模型性能。實驗將三個隱藏層作用于特定交互的網絡。如果預測因子大小為8,那么隱藏層的大小從上到下按32到16到8的順序選擇,嵌入大小為16。使用輔助數據訓練的網絡,相較于NHR模型增加了兩個隱藏層,達到四層隱藏層,并直觀的將嵌入大小設置為128個電影字幕,32個Pins對象類別和個人身份,4個職位名稱和候選人過去職位,16個職位資格、職位說明和候選人實驗。通過優化NCF的參數α來定義GMF和MLP之間的權衡。
為了解決缺乏負反饋[13]的問題,實驗采用從所有未觀察到的情況中抽取負實例。通過對每個正實例抽樣4個負實例來生成一組負反饋。與評估過程不同的是,在每次訓練整個數據集開始之前實時的隨機抽樣負訓練實例。這使系統能夠盡可能多的從不同的實例中學習,并在不影響數據集的可行性的情況下增加數據集的實用性。
實驗采用留一交叉驗證(leave-one-out),將數據集分割為訓練集和測試集。此評估方法在許多文獻中[14],特別是在稀疏數據集的情況下得到廣泛應用。用戶最新一次的交互作為測試集,其余作為訓練集。訓練集中用戶的最后一次交互,用于超參數調整。與類似的研究一樣,實驗從每個用戶中隨機抽取100個項目,并根據互動概率對項目進行排名。排名質量由命中率(Hit Ratio,HR)和歸一化折損累計增益(Normalized Discounted Cumulative Gain,NDCG)來評估,實驗將兩個指標的排名列表截斷為10。如此一來,HR可以直觀地衡量測試項目是否存在于前10名列表中,而DNCG通過將較高分數指定為頂級排名來計算命中的位置。
表2、表3分別顯示了在不同數量的預測因子下,各算法在不同數據集中的HR@10和NDCG@10。BPR[15]是一種極具競爭力的成對排序方法,對矩陣分解模型進行了優化并適用于隱式反饋。ALS[16]也是項目推薦的矩陣分解算法。為了確保對比實驗的公平性,BPR和ALS算法的預測因子數量和神經網絡模型中的數量相同。NFR在這兩個指標的表現明顯優于當前最先進的矩陣分解方法BPR和ALS。NCF是結合GMF和MLP方法的基于神經網絡的最新協同過濾算法,它僅從交互數據中受益,并沒有完全考慮冷啟動問題。NHR是在NCF基礎上進行改進,結合隱形反饋獲取顯性反饋無法獲取的有價值因素。NFR在兩個指標的表現也始終優于最具競爭力的參照實驗NCF和NHR。相比較于NCF和NHR,NHR在各數據集上的評估指標都有一定程度的提高。實驗結果同時表明,NFR模型不僅對前10位預測的準確命中率高之外,而且讓NDCG分數得到了較大的提高。

表2 不同數量預測因子下的HR@10

表3 不同數量預測因子下的NDCG@10
本文基于NCF通用框架模型,提出了融合輔助信息的深度神經網絡組合推薦系統。實驗設計通用框架NFR,通過融合輔助數據和歷史交互數據來對用戶和項目的交互進行建模。相比較于NCF模型,NFR在輔助數據預處理方面更為完善,以及在隱藏層的設計方面更為復雜。通過對模型的擴展,能夠挖掘來自相同數據源和不同數據源的更詳盡信息,有機會減輕依賴單方面數據源帶來的缺陷。模型不需要從零開始訓練完整的模型框架,取而代之的是,它允許推薦系統學習其組件功能的加權過程自我完善。