基于深度学习的推荐系统(一)Overview
這是對近年來基于深度學習的推薦系統的內容的一份綜述,具體來說,大部分內容來自
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的輔助信息,通過比較這些輔助信息能得出一些推薦結果。 可以考慮各種輔助信息,例如文本,圖像和視頻。 混合模型是指整合兩種或更多種推薦策略的推薦系統
符號定義
我們設定如下討論情景:我們有 M M M個user和 N N N個item, R R R是交互矩陣, R ^ \hat{R} R^是預測的交互矩陣。 r u i r_{ui} rui?代表用戶 u u u對item i i i的偏好, r u i ^ \hat{r_{ui}} rui?^?是模型預測的用戶 u u u對item i i i的偏好。 R R R的某一行代表一個用戶的偏好行為,表示為 r ( u ) = { r u 1 , r u 2 , . . . , r u N } r^{(u)} = \{r^{u1}, r^{u2}, ..., r^{uN}\} r(u)={ru1,ru2,...,ruN}。 R R R的某一列代表一個item的被用戶偏好行為,表示為 r ( i ) = { r 1 i , r 2 i , . . . , r M i } r^{(i)} = \{r^{1i}, r^{2i}, ..., r^{Mi}\} r(i)={r1i,r2i,...,rMi}。 O O O和 O ? O^- O?分別代表被觀察到和未被觀察到的交互行為。我們另外使用 U ∈ R M ? K U \in R^{M*K} U∈RM?K和 V ∈ R N ? K V \in R^{N*K} V∈RN?K來代表user和item的latent factor(隱藏特征)。 k k 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等。這些工具大多以模塊化方式開發并具有活躍的社區和專業的支持。 良好的模塊化使開發更有效率。 例如,很容易將不同的神經結構組合起來以形成強大的混合模型,或者用其他模塊替換一個模塊。 因此,我們可以輕松地構建混合和復合推薦模型,以同時捕獲不同的特征和因素。
深度學習技術潛在的劣勢
- 解釋性。盡管成功,但是深度學習工作機制如同黑盒,提供可解釋的預測似乎是一項非常具有挑戰性的任務。反對深度神經網絡的一個常見論點是隱藏的權重和激活通常是不可解釋的,限制了可解釋性。然而,隨著神經元模型的出現,這種擔憂得到了一些緩解,現有的最先進模型已經能夠在一定程度上解釋意義,從而能夠提供可解釋的推薦。
- 數據要求。第二個可能的限制是,深度學習被認為是數據饑渴的,因為它需要足夠的數據才能完全支持其豐富的參數化。然而,與標記數據稀缺的其他領域(例如語言或視覺)相比,在推薦系統研究的背景下獲得大量數據相對容易。百萬/億級別的數據集不僅在工業中很常見,而且也作為學術數據集發布。
- 廣泛的超參數調整。反對深度學習的第三個成熟論點是需要進行廣泛的超參數調整。然而,我們注意到,超參數調整不是深度學習的特有問題,而是一般的機器學習中都會出現的(例如,正規化因子和學習速率同樣必須針對傳統的矩陣分解等進行調整)。但是,在某些情況下,深度學習可能會引入額外的超參數。
深度學習推薦方法的分類
為了提供這個領域的鳥瞰,我們根據所采用的深度學習技術的類型對現有模型進行分類。 我們進一步將基于深度學習的推薦模型分為以下兩類。 下圖總結了分類方案。
- Recommendation with Neural Building Blocks: 使用單個深度學習方法的推薦。我們按照之前的八種技術分類分別討論不同的推薦方法。
- Recommendation with Deep Hybrid Models:混合模型。
表1列出了所有已被調查的模型,我們按照上述分類方案對其進行組織。 此外,我們還從表2中的任務角度總結了一些publications。我們調查的publications涉及各種推薦任務。 由于使用深度神經網絡(例如基于會話的推薦,圖像,視頻推薦),一些原來不常見的任務已開始受到關注。 一些任務對于推薦研究領域可能并不新穎,但DL提供了更多找到更好解決方案的可能性。 例如,如果沒有深度學習技巧的幫助,處理圖像和視頻將是一項艱巨的任務。 而深度神經網絡的序列建模功能可以輕松捕獲用戶行為的順序模式。
我們將在之后的博客中討論這些方法的具體細節。這個survey目前的參考文獻列表如下,感興趣的讀者可以自己索引文章:
總結
以上是生活随笔為你收集整理的基于深度学习的推荐系统(一)Overview的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蒂森MC2_TKC蓝牙连接调试工具
- 下一篇: OnlyOffice6.1.0新体验