基於深度學習的推薦系統(一)Overview

這是對近年來基於深度學習的推薦系統的內容的一份綜述,具體來講,大部份內容來自 Deep Learning based Recommender System: A Survey and New Perspectives,我翻譯和總結了其中的一些內容。同時,我有時也會閱讀該survey提到的工做的原文,並對某些更具體的內容作一些補充。算法

正文開始

深度學習近年來在各個領域都被普遍應用,推薦系統也不例外,那麼,深度學習算法是如何與推薦系統聯繫起來的呢?文章旨在全面回顧最近基於深度學習的推薦系統的研究成果,並展望將來的趨勢。markdown

推薦系統是對信息爆炸的防線,對於用戶的選擇起到相當重要的做用。一般,咱們基於用戶偏好,項目特徵,用戶歷史以及時序數據和空間數據的一些其餘附加信息來生成推薦列表。咱們把推薦系統分爲協同過濾,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的輔助信息,經過比較這些輔助信息能得出一些推薦結果。 能夠考慮各類輔助信息,例如文本,圖像和視頻。 混合模型是指整合兩種或更多種推薦策略的推薦系統機器學習

符號定義

咱們設定以下討論情景:咱們有M個user和N個item,R是交互矩陣,\hat{R}是預測的交互矩陣。r_{ui}表明用戶u對item i的偏好,\hat{r_{ui}}是模型預測的用戶u對item i的偏好。R的某一行表明一個用戶的偏好行爲,表示爲r^{(u)} = \{r^{u1}, r^{u2}, ..., r^{uN}\}R的某一列表明一個item的被用戶偏好行爲,表示爲r^{(i)} = \{r^{1i}, r^{2i}, ..., r^{Mi}\}OO^-分別表明被觀察到和未被觀察到的交互行爲。咱們另外使用U \in R^{M*K}V \in R^{N*K}來表明user和item的latent factor(隱藏特徵)。k是隱特徵的維數。模塊化

深度學習技術

深度學習一般被認爲是機器學習的子領域。 深度學習的典型定義是它學習深層表徵,即從數據中學習多層次的表示和抽象。 出於實際緣由,咱們將任何可分解爲神經網絡的架構視爲「深度學習」,只要它使用隨機梯度降低(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等。這些工具大多以模塊化方式開發並具備活躍的社區和專業的支持。 良好的模塊化使開發更有效率。 例如,很容易將不一樣的神經結構組合起來以造成強大的混合模型,或者用其餘模塊替換一個模塊。 所以,咱們能夠輕鬆地構建混合和複合推薦模型,以同時捕獲不一樣的特徵和因素。

深度學習技術潛在的劣勢

  • 解釋性。儘管成功,可是深度學習工做機制如同黑盒,提供可解釋的預測彷佛是一項很是具備挑戰性的任務。反對深度神經網絡的一個常見論點是隱藏的權重和激活一般是不可解釋的,限制了可解釋性。然而,隨着神經元模型的出現,這種擔心獲得了一些緩解,現有的最早進模型已經可以在必定程度上解釋意義,從而可以提供可解釋的推薦。
  • 數據要求。第二個可能的限制是,深度學習被認爲是數據飢渴的,由於它須要足夠的數據才能徹底支持其豐富的參數化。然而,與標記數據稀缺的其餘領域(例如語言或視覺)相比,在推薦系統研究的背景下得到大量數據相對容易。百萬/億級別的數據集不只在工業中很常見,並且也做爲學術數據集發佈。
  • 普遍的超參數調整。反對深度學習的第三個成熟論點是須要進行普遍的超參數調整。然而,咱們注意到,超參數調整不是深度學習的特有問題,而是通常的機器學習中都會出現的(例如,正規化因子和學習速率一樣必須針對傳統的矩陣分解等進行調整)。可是,在某些狀況下,深度學習可能會引入額外的超參數。

深度學習推薦方法的分類

爲了提供這個領域的鳥瞰,咱們根據所採用的深度學習技術的類型對現有模型進行分類。 咱們進一步將基於深度學習的推薦模型分爲如下兩類。 下圖總結了分類方案。 oop

  • Recommendation with Neural Building Blocks: 使用單個深度學習方法的推薦。咱們按照以前的八種技術分類分別討論不一樣的推薦方法。
  • Recommendation with Deep Hybrid Models:混合模型。

表1列出了全部已被調查的模型,咱們按照上述分類方案對其進行組織。 此外,咱們還從表2中的任務角度總結了一些publications。咱們調查的publications涉及各類推薦任務。 因爲使用深度神經網絡(例如基於會話的推薦,圖像,視頻推薦),一些原來不常見的任務已開始受到關注。 一些任務對於推薦研究領域可能並不新穎,但DL提供了更多找到更好解決方案的可能性。 例如,若是沒有深度學習技巧的幫助,處理圖像和視頻將是一項艱鉅的任務。 而深度神經網絡的序列建模功能能夠輕鬆捕獲用戶行爲的順序模式。

咱們將在以後的博客中討論這些方法的具體細節。這個survey目前的參考文獻列表以下,感興趣的讀者能夠本身索引文章:

相關文章
相關標籤/搜索