基於深度學習的推薦系統(一)Overview
這是對近年來基於深度學習的推薦系統的內容的一份綜述,具體來說,大部分內容來自 ofollow,noindex">Deep Learning based Recommender System: A Survey and New Perspectives ,我翻譯和總結了其中的一些內容。同時,我有時也會閱讀該survey提到的工作的原文,並對某些更具體的內容做一些補充。
正文開始
深度學習近年來在各個領域都被廣泛應用,推薦系統也不例外,那麼,深度學習演算法是如何與推薦系統聯絡起來的呢?文章旨在全面回顧最近基於深度學習的推薦系統的研究成果,並展望未來的趨勢。
推薦系統是對資訊爆炸的防線,對於使用者的選擇起到至關重要的作用。通常,我們基於使用者偏好,專案特徵,使用者歷史以及時序資料和空間資料的一些其他附加資訊來生成推薦列表。我們把推薦系統分為協同過濾,content-based推薦系統和混合推薦系統。最近,基於深度學習的推薦系統通過克服傳統模型的一些問題和實現高推薦質量而獲得了顯著的進步。深度學習能夠有效地捕獲非線性和非平凡的使用者-專案關係,並且能夠將資料表示為更復雜的抽象的編碼。此外,它還從豐富的可訪問資料來源(如上下文,文字和可視資訊)中捕獲資料本身的錯綜複雜的關係。
近年來,基於深度學習的推薦方法的研究出版物數量呈指數增長,深度學習成為推薦系統研究中不可避免的部分。推薦系統領域領先的國際會議RecSys自2016年起開始定期進行深度學習推薦系統研討會。該研討會旨在促進研究並鼓勵基於深度學習的推薦系統的應用。我們應該瞭解學術界和工業界的深度學習模型的優缺點和應用場景。這篇survey調查的文章主要來自NIPS, ICML, ICLR, KDD, WWW, SIGIR, WSDM, RecSys等頂級會議,具有相當程度的代表性。該調查的目的是為從業人員提供一個快速查詢的目錄。該survey似乎到目前為止還在不斷更新,我這個系列只包括截止到2018.10.08的該survey中的內容。
首先,在討論問題之前,我們需要確定我們討論的範圍,並做一些預定義。
Overview of Recommendation Systems and Deep Learning
推薦系統估計user對item的偏好,並推薦user可能喜歡的item。我們把推薦系統分為協同過濾,content-based推薦系統和混合推薦系統。 協作過濾從user-item 互動歷史中進行學習並作出推薦,其中互動行為包括顯式反饋(例如,user對item的先前評分)或隱式反饋(例如,使用者的瀏覽歷史)。 基於內容的推薦主要基於一些item和user的輔助資訊,通過比較這些輔助資訊能得出一些推薦結果。 可以考慮各種輔助資訊,例如文字,影象和視訊。 混合模型是指整合兩種或更多種推薦策略的推薦系統
符號定義
我們設定如下討論情景:我們有 個user和 個item, 是互動矩陣, 是預測的互動矩陣。 代表使用者 對item 的偏好, 是模型預測的使用者 對item 的偏好。 的某一行代表一個使用者的偏好行為,表示為 。 的某一列代表一個item的被使用者偏好行為,表示為 。 和 分別代表被觀察到和未被觀察到的互動行為。我們另外使用 和 來代表user和item的latent factor(隱藏特徵)。 是隱特徵的維數。
深度學習技術
深度學習通常被認為是機器學習的子領域。 深度學習的典型定義是它學習深層表徵,即從資料中學習多層次的表示和抽象。 出於實際原因,我們將任何可分解為神經網路的架構視為“深度學習”,只要它使用隨機梯度下降(SGD)的變體優化可微的目標函式。 神經網路架構在監督和非監督學習任務中都取得了巨大的成功。 在本小節中,我們闡明瞭與本survey密切相關的各種架構正規化。
- Multilayer Perceptron (MLP):多層感知器(MLP)是一種在輸入層和輸出層之間具有多個(一個或多個)隱藏層的前饋神經網路。 這裡,感知器可以使用任意啟用函式,並不一定是嚴格的二元分類器。 MLP可以被表示為非線性變換的堆疊層,學習分層特徵表示。 MLP也被稱為通用逼近器。
- Autoencoder(AE):自編碼器(AE)是一種無監督模型,用於在輸出層中重建其輸入資料。通常,瓶頸層(最中間層)用作輸入資料的特徵表示。自編碼器有許多變體,如去噪自編碼器(denoising autoencoder),邊緣化去噪自編碼器(marginalized denoising autoencoder),稀疏自編碼器(sparse autoencoder),收縮自編碼器(contractive autoencoder)和變分自編碼器(variational autoencoder,VAE)。
- Convolutional Neural Network (CNN):卷積神經網路(CNN)是一種特殊的前饋神經網路,具有卷積層和池化操作。 它可以捕獲全域性和區域性特徵,並顯著提高效率和準確性。它在處理具有網格狀拓撲的資料方面表現良好。
- Recurrent Neural Network (RNN) :迴圈神經網路(RNN)適用於對sequential資料建模。 與前饋神經網路不同,RNN中存在迴圈和記憶結構以記住之前的計算結果。 諸如長短時記憶(LSTM)和門控迴圈單元(GRU)網路的變體通常在實踐中被部署以克服梯度消失問題。
- Restricted Boltzmann Machine (RBM) :受限玻爾茲曼機(RBM)是一個由可見層和隱藏層組成的雙層神經網路。 它可以很容易地堆疊到深網。 此處Restricted意味著可見層或隱藏層中沒有層內通訊。
- Neural Autoregressive Distribution Estimation (NADE):神經自迴歸分佈估計(NADE)是一種在自迴歸模型和前饋神經網路之上構建的無監督神經網路。 它是用於建模資料分佈和密度的易處理且有效的估計器。
- Adversarial Networks (AN) :對抗網路(AN)是一種生成神經網路,由鑑別器和發生器組成。 通過在極小極大遊戲框架中相互競爭來同時訓練兩個神經網路。
- Attentional Models (AM):注意模型(AM)是一個技巧。注意機制通常無處不在,並且在計算機視覺和自然語言處理領域中被接受。 然而,它也是深度推薦系統研究的新興趨勢。
- Deep Reinforcement Learning (DRL):深度強化學習。深度神經網路和強化學習的結合。
深度學習技術的優勢
我們總結了基於深度學習的推薦模型的優勢:
- 非線性變換。與線性模型相反,深度神經網路能夠利用非線性啟用(例如relu,sigmoid,tanh等)對資料中的非線性進行建模。該屬性使得捕獲複雜且複雜的使用者項互動模式成為可能。諸如MF,FM,稀疏線性模型的常規方法基本上是線性模型。
- 表徵學習。深度神經網路有效地從輸入資料中學習潛在的解釋因素和有用的表示。通常,在實際應用程式中可以獲得有關專案和使用者的大量描述性資訊。利用這些資訊可以促進我們對專案和使用者的理解,從而產生更好的推薦者。因此,將深度神經網路應用於推薦模型中的表示學習是一種自然的選擇。使用深度神經網路來輔助表示學習的優點有兩方面:(1)它減少了手工特徵設計的工作量。特徵工程是一項勞動密集型工作,深度神經網路能夠在無監督或監督的方法中自動從原始資料中學習特徵; (2)它使推薦模型能夠包括異構內容資訊,例如文字,影象,音訊甚至視訊。深度網路在多媒體資料處理方面取得了突破,並展示了從各種來源學習的表現形式的潛力。
- 序列建模。 深度神經網路已經在許多順序建模任務上展示了希望,例如機器翻譯,自然語言理解,語音識別,聊天機器人等等。 RNN和CNN在這些任務中發揮著關鍵作用。 RNN通過內部儲存狀態來實現這一點,而CNN通過隨著時間滑動的過濾器來實現這一點。 它們在資料探勘順序結構中具有廣泛的適用性和靈活性。
- 靈活性。深度學習技術具有很高的靈活性,特別是隨著許多流行的深度學習框架的出現,如Tensorflow,Keras,Caffe,MXnet,DeepLearning4j,PyTorch,Theano等。這些工具大多以模組化方式開發並具有活躍的社群和專業的支援。 良好的模組化使開發更有效率。 例如,很容易將不同的神經結構組合起來以形成強大的混合模型,或者用其他模組替換一個模組。 因此,我們可以輕鬆地構建混合和複合推薦模型,以同時捕獲不同的特徵和因素。
深度學習技術潛在的劣勢
- 解釋性。儘管成功,但是深度學習工作機制如同黑盒,提供可解釋的預測似乎是一項非常具有挑戰性的任務。反對深度神經網路的一個常見論點是隱藏的權重和啟用通常是不可解釋的,限制了可解釋性。然而,隨著神經元模型的出現,這種擔憂得到了一些緩解,現有的最先進模型已經能夠在一定程度上解釋意義,從而能夠提供可解釋的推薦。
- 資料要求。第二個可能的限制是,深度學習被認為是資料飢渴的,因為它需要足夠的資料才能完全支援其豐富的引數化。然而,與標記資料稀缺的其他領域(例如語言或視覺)相比,在推薦系統研究的背景下獲得大量資料相對容易。百萬/億級別的資料集不僅在工業中很常見,而且也作為學術資料集釋出。
- 廣泛的超引數調整。反對深度學習的第三個成熟論點是需要進行廣泛的超引數調整。然而,我們注意到,超引數調整不是深度學習的特有問題,而是一般的機器學習中都會出現的(例如,正規化因子和學習速率同樣必須針對傳統的矩陣分解等進行調整)。但是,在某些情況下,深度學習可能會引入額外的超引數。
深度學習推薦方法的分類
為了提供這個領域的鳥瞰,我們根據所採用的深度學習技術的型別對現有模型進行分類。 我們進一步將基於深度學習的推薦模型分為以下兩類。 下圖總結了分類方案。

- Recommendation with Neural Building Blocks: 使用單個深度學習方法的推薦。我們按照之前的八種技術分類分別討論不同的推薦方法。
- Recommendation with Deep Hybrid Models:混合模型。
表1列出了所有已被調查的模型,我們按照上述分類方案對其進行組織。 此外,我們還從表2中的任務角度總結了一些publications。我們調查的publications涉及各種推薦任務。 由於使用深度神經網路(例如基於會話的推薦,影象,視訊推薦),一些原來不常見的任務已開始受到關注。 一些任務對於推薦研究領域可能並不新穎,但DL提供了更多找到更好解決方案的可能性。 例如,如果沒有深度學習技巧的幫助,處理影象和視訊將是一項艱鉅的任務。 而深度神經網路的序列建模功能可以輕鬆捕獲使用者行為的順序模式。


我們將在之後的部落格中討論這些方法的具體細節。這個survey目前的參考文獻列表如下,感興趣的讀者可以自己索引文章:







