一文綜述用於推薦系統的所有深度學習方法

2021-09-05 12:41:24 字數 3030 閱讀 9940

在資訊氾濫的時代,如何快速高效地萃取出有價值資訊成為了人們的當務之急,傳統的推薦系統由此應運而生;而在諸多領域碩果累累的深度學習也被應用於推薦系統,為後者注入新的動力。機器之心編譯的這篇**,對於深度學習在推薦系統中的應用現狀作了綜述性調研,以期進一步推動推薦系統研究的進展;對於發現的新問題,文中也給出了潛在的解決方案。

隨著線上資訊的體量、複雜度和動態性的不斷增長,推薦系統已經成為了一種可以有效解決這種資訊過載問題的關鍵性解決方案。近幾年,深度學習的革命性進步在語音識別、影象分析和自然語言處理方面都受到了廣泛關注。與此同時,近期的一些研究也說明了深度學習在處理資訊檢索和推薦任務中的有效性。由於其一流的效能表現和高質量的推薦結果,將深度學習應用於推薦系統已經獲得了動力。與傳統推薦模型相比,深度學習可以更好的理解使用者需求、專案特徵及其之間的歷史性互動。

二維分類方法與定性分析:

圖 1:基於深度學習的推薦系統分類的二維體系,左側部分對神經網路模型進行了說明,右側部分則說明了整合模型。

圖 2:(a)使用的資料集;(b)使用的評測指標;(c)最有影響力的工作。

表 1:年引用次數超過 10 次的最具影響力**。

應用領域:

表 2:特定應用領域的推薦模型。

1. 基於多層感知機(multilayers perception)的推薦系統:

多層感知機是簡明且有效的模型。它廣泛應用於很多領域,尤其是工業界。多層前饋網路能夠讓任意的可測函式接近任意的期望精度。它也是很多高階模型的基礎。

圖 3:(a)神經協同過濾;(b)cccfnet;(c)寬度&深度學習;(d)deepfm。

2.基於自編碼器(autoencoders)的推薦系統

將自編碼器應用於推薦系統一般有兩種常用方式:(1)使用自編碼器在瓶頸層(bottleneck layer)來學習低維度特徵表徵;或者(2)直接在重構層填充評分矩陣的空白處。

圖 4:(a)i-autorec;(b)cfn;(c)acf;(d)cdae。

表 4:5 個基於自動編碼器的推薦模型之間的對比。

圖 5:(a)協同深度學習(左)與協同深度排序(右)的圖模型;(b)深度協同過濾框架。

3.基於卷積神經網路(cnn)的推薦系統

此種系統中的卷積神經網路大多是用於特徵提取( feature extraction)的。

圖 6:(a)基於 attention 的 cnn;(b)個性化 cnn 標籤推薦;(c)deepconn;(d)convmf。

4.基於迴圈神經網路(rnn)的推薦系統

迴圈神經網路特別適用於處理推薦系統中的評級和序列特徵的時序動態。

圖 7:(a)借助 rnn 的 session 推薦;(b)借助 rnn 的完善的 session 推薦;(c)迴圈推薦網路;(d)用於標籤推薦的基於 attention 的 rnn。

5 基於深度語義相似性模型(deep semantic similarity model)的推薦系統

深度語義相似性模型(dssm)是一種廣泛應用於資訊檢索鄰域的深度神經網路。它非常適用於排行榜(top-n)推薦。基礎型 dssm 由 mlp 組成,更高階的神經層比如卷積層和最大池化(max-pooling )層可以被很容易地新增進去。

圖 8:(a)基於深度語義相似性的個性化推薦;(b)多視角深度神經網路。

6. 基於限制性玻爾茲曼機(restricted boltzmann machine)的推薦系統

圖 9:(a)rbm-cf;(b)帶有隱式反饋的條件性 rbm-cf;(c)基於使用者和基於專案的 rbm-cf 的組合;(d)混合 rbm-cf。

7.新興方法:nade 和 gan

nade 提出了一種易於處理的方法,以對源資料的真實分布進行近似計算,並且可以在幾個試驗性資料集中產生最一流的推薦精度(與其它基於深度學習的推薦模型相比)。生成對抗網路(gan)能夠將判別模型和生成模型相融合,並且充分利用二者的優點。

圖 10:(a)基於神經自回歸的推薦系統;(b)irgan。

8. 用於推薦系統的深度復合網路(deep composite models

圖 11:現有的深度復合模型。

圖 12:(a)cnn 和 rnn 的引用推薦;(b)比較性深度學習模型;(c)nrt;(d)帶有 cnn 的深度語義相似性模型(dssm)

一文窮盡所有C 的資料型別

在 python 中,想要獲取變數型別通過type 來獲取非常方便,列印也十分清晰。雖然 c 是顯式定義變數,但是有時候我們想通過變數名來獲取資料型別,就不如 python 方便了。在 c 中,想要通過變數名來獲取資料型別,可以使用typeid var name 來獲取,但是缺點是輸出形式比較難以辨...

一文搞懂python中的is和 (深度解析)

python中的is用於比較物件的識別符號是否相等。是比較值是否相等。物件的識別符號可以簡單地理解成物件的記憶體位址,在生命週期中是固定不變的。id 可以得到物件識別符號的整數表示。示例如下 person1 person2 person3 person1 輸出各個字典物件的識別符號,系統不同,得到的...

Python執行某一資料夾下的所有py檔案

記一段 是使用python執行某一資料夾下的所有py檔案 coding utf 8 import os 當前指令碼所在的檔案絕對路徑 cur path os.path.dirname os.path.realpath file 將當前路徑設定為python的臨時環境變數,用於命令執行,需要設定是因為...