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

圖1 矩陣分解神經(jīng)網(wǎng)絡(luò)

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

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

圖2 深度神經(jīng)推薦網(wǎng)絡(luò)

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

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

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

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

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

表2 不同數(shù)量預(yù)測因子下的HR@10

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