0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何將神經(jīng)網(wǎng)絡用于推薦系統(tǒng)應用

星星科技指導員 ? 來源:NVIDIA ? 作者:Benedikt Schifferer ? 2022-04-22 10:11 ? 次閱讀

深度學習( Deep learning , DL )是解決計算機視覺或自然語言等機器學習問題的最新方法,它的性能優(yōu)于其它方法。最近的趨勢包括將 DL 技術應用于推薦引擎。許多大型公司,如 AirBnB 、 Facebook 、 Google 、 Home Depot 、 LinkedIn 和 Pinterest ,都分享了他們將 DL 用于推薦系統(tǒng)的經(jīng)驗。

最近, NVIDIA 和 RAPIDS 。 AI 團隊與 DL 贏得了三場比賽: VZX1 、 信號和日期挑戰(zhàn) 和 ACM WSDM2021 Booking 。 com 挑戰(zhàn)賽 。

推薦系統(tǒng)的領域是復雜的。在這篇文章中,我將重點介紹神經(jīng)網(wǎng)絡體系結構及其組件,例如嵌入層和完全連接層、遞歸神經(jīng)網(wǎng)絡單元( LSTM 或 GRU )和變壓器塊。我討論了流行的網(wǎng)絡架構,比如 Google 的 Wide & Deep 和 Facebook 的 Deep Learning Recommender Model ( DLRM )。

DL 推薦系統(tǒng)的優(yōu)點

有許多不同的技術來設計推薦系統(tǒng),例如關聯(lián)規(guī)則、基于內容或協(xié)同過濾、矩陣分解或訓練線性或基于樹的模型來預測交互可能性。

使用神經(jīng)網(wǎng)絡的優(yōu)點是什么?一般來說, DL 模型可以獲得更高的精度。首先, DL 可以利用額外的數(shù)據(jù)。許多傳統(tǒng)的機器學習技術需要更多的數(shù)據(jù)。但是,當您增加神經(jīng)網(wǎng)絡的容量時,該模型可以使用更多的數(shù)據(jù)來提高性能。

第二,神經(jīng)網(wǎng)絡的設計是靈活的。例如,您可以針對多個目標(多任務學習)訓練 DL 模型,例如“用戶是否將項目添加到購物車中?”、“使用項目開始結賬?”、或“購買項目?”。每個目標都有助于模型從數(shù)據(jù)中提取信息,并且目標可以相互支持。

其他設計方法包括向推薦模型中添加多模態(tài)數(shù)據(jù)。您可以通過使用卷積神經(jīng)網(wǎng)絡處理產(chǎn)品圖像或使用 NLP 模型處理產(chǎn)品描述來實現(xiàn)這一點。神經(jīng)網(wǎng)絡應用于許多領域。您可以將新開發(fā)(如優(yōu)化器或新層)轉移到推薦系統(tǒng)。

最后, DL 框架經(jīng)過了高度優(yōu)化,可以處理各種域的數(shù) TB 到數(shù) PB 的數(shù)據(jù)。下面是如何為推薦系統(tǒng)設計神經(jīng)網(wǎng)絡。

基本構造塊:嵌入層

嵌入層用密集向量表示類別。這種技術在自然語言處理中非常流行,可以嵌入具有密集表示的單詞。具有相似意義的詞具有相似的嵌入向量。

您可以將相同的技術應用于推薦系統(tǒng)。最簡單的推薦系統(tǒng)是基于用戶和項目的:您應該向用戶推薦哪些項目?您有用戶 ID 和項目 ID 。單詞是 users 和 items ,因此使用兩個嵌入表(圖 1 )。

pYYBAGJiDsCAKBl2AADJPefLtp4158.png

圖 1 。嵌入維度為 4 的表

計算用戶嵌入和項目嵌入之間的點積,得到最終分數(shù),即用戶與項目交互的可能性。最后一步可以應用 sigmoid 激活函數(shù)將輸出轉換為 0 到 1 之間的概率。

latex.php?latex=dot+product%3A+u+%5Ccdot+v+%3D+%5CSigma+a_i+%5Ccdot+b_i&bg=ffffff&fg=000&s=2&c=20201002

poYBAGJiDsGAUHxvAACFEkyRuNM823.png

圖 2 。具有兩個嵌入表和點積輸出的神經(jīng)網(wǎng)絡

該方法等價于矩陣分解或交替最小二乘法( ALS )。

具有完全連接層的較深模型

神經(jīng)網(wǎng)絡的性能是基于具有多個非線性層的深層結構。通過將嵌入層的輸出通過多個具有 ReLU 激活的完全連接層提供,可以擴展先前的模型。

一個設計選擇是如何組合兩個嵌入向量。您可以僅串聯(lián)嵌入向量,也可以將向量逐元素相乘,類似于點積。輸出之后是多個隱藏層。

pYYBAGJiDsKAdwFBAADV4f76e1M154.png

圖 3 。具有兩個嵌入表和多個完全連接層的神經(jīng)網(wǎng)絡

向神經(jīng)網(wǎng)絡中添加元數(shù)據(jù)信息

到目前為止,您只使用了用戶 ID 和產(chǎn)品 ID 作為輸入,但是您通??梢垣@得更多的信息。其他用戶信息可以是性別、年齡、城市(地址)、自上次訪問以來的時間或用于支付的信用卡。一件商品通常有一個品牌、價格、類別或在過去 7 天內售出的數(shù)量。這些信息有助于模型更好地推廣。修改神經(jīng)網(wǎng)絡以使用附加特征作為輸入。

poYBAGJiDsKAeI4QAACDPv33ycM555.png

圖 4 。具有元信息和多個完全連接層的神經(jīng)網(wǎng)絡

流行建筑

嵌入層和完全連接層是理解一些最新出版的神經(jīng)網(wǎng)絡結構的主要組成部分。在這篇文章中,我將從 2016 年開始報道谷歌的廣度和深度,從 2019 年開始報道 Facebook 的 DLRM 。

谷歌的廣度和深度

谷歌的廣度和深度包含兩個部分:

記憶共同特征組合的寬塔

用來概括罕見或未觀察到的特征組合的深塔

創(chuàng)新之處在于,這兩個組件同時訓練,這是可能的,因為神經(jīng)網(wǎng)絡是靈活的。深塔通過嵌入層提供分類特征,并將輸出與數(shù)字輸入特征連接起來。級聯(lián)向量通過多個完全連接的層饋送。

你聽上去熟悉嗎?是的,那是你以前的神經(jīng)網(wǎng)絡設計。新的組成部分是寬塔,它只是輸入特征的線性組合,具有類似的線性/邏輯回歸。每個塔的輸出相加,得到最終的預測值。

Facebook 的 DLRM

Facebook 的 DLRM 與帶有元數(shù)據(jù)的神經(jīng)網(wǎng)絡結構類似,但有一些特定的差異。數(shù)據(jù)集可以包含多個分類特征。 DLRM 要求所有的分類輸入都通過一個具有相同維數(shù)的嵌入層。稍后,我將討論這一點的重要性。

接下來,將連續(xù)的輸入串聯(lián)起來并通過稱為底部多層感知器( MLP )的多個完全連接的層饋送。底層 MLP 的最后一層具有與嵌入層向量相同的維數(shù)。

DLRM 使用了一個新的組合層。它在所有嵌入向量對和底部 MLP 輸出之間應用按元素相乘。這就是為什么每個向量都有相同的維數(shù)。所得到的向量被串聯(lián)并饋送到另一組完全連接的層(頂部 MLP )。

pYYBAGJiDsOAbM9wAAE9ps7wIZ0181.png

圖 5 。左側顯示廣度和深度架構,右側顯示 DLRM 架構。

基于會話的推薦系統(tǒng)

當我為推薦系統(tǒng)分析不同的基于 DL 的體系結構時,我假設輸入具有表格數(shù)據(jù)結構,而忽略了用戶交互的本質。但是,用戶在訪問網(wǎng)站時,在一個會話中有多個交互。例如,他們訪問一家商店并查看多個產(chǎn)品頁面。您可以使用用戶交互序列作為輸入來提取模式嗎?

在一個會話中,用戶連續(xù)查看多條牛仔褲,您應該推薦另一條牛仔褲。在另一個會話中,同一個用戶連續(xù)查看多雙鞋,您應該推薦另一雙鞋。這就是基于會話的推薦系統(tǒng)背后的直覺。

謝天謝地,您可以將 NLP 中的一些技術應用于推薦系統(tǒng)域。用戶的交互具有順序結構。

pYYBAGJiDsWAWB7HAAEAE9DMGpA620.png

圖 6 ?;跁挼纳窠?jīng)網(wǎng)絡體系結構

序列可以通過使用遞歸神經(jīng)網(wǎng)絡( RNN )或基于變壓器的結構作為序列層來處理。用嵌入向量表示項目 ID ,并通過序列層提供輸出。序列層的隱藏表示可以添加為深度學習體系結構的輸入。

其他選擇

當我把這篇文章的重點放在將 DL 應用于推薦系統(tǒng)的理論上時,我沒有涉及到很多其他的挑戰(zhàn)。我在這里簡要介紹一下,以提供一個起點:

嵌入表可以超過 CPUGPU 內存。由于在線服務可能有數(shù)百萬用戶,嵌入表可以達到數(shù)兆字節(jié)。 NVIDIA 提供了 HugeCTR 框架,可以將嵌入表擴展到 CPU 或 GPU 內存之外。

在培訓期間最大限度地利用 GPU ?;?DL 的推薦系統(tǒng)有一個淺層的網(wǎng)絡結構,只有幾個完全連接的層。數(shù)據(jù)加載器有時是訓練管道中的瓶頸。為了抵消這一點, NVIDIA 為 PyTorch 和 TensorFlow 開發(fā)了一個 高度優(yōu)化的 GPU 數(shù)據(jù)加載器 。

生成建議需要對用戶項對進行評分。最壞的情況是預測所有可用產(chǎn)品的可能性,并選擇最佳產(chǎn)品。在實踐中,這是不可行的,候選人產(chǎn)生了一個低開銷的模型,如近似近鄰。

概括

這篇文章向您介紹了基于 DL 的推薦系統(tǒng)。我首先介紹了基于兩個輸入的基本矩陣分解,然后介紹了使用 transformer 層的最新基于會話的體系結構。

您可以使用遞歸神經(jīng)網(wǎng)絡( RNN )或基于轉換器的體系結構作為序列層來處理序列。用嵌入向量表示項目 ID ,并通過序列層提供輸出。添加序列層的隱藏表示作為 DL 架構的輸入。

關于作者

Benedikt Schifferer 是 NVIDIA 的深度學習工程師,致力于推薦系統(tǒng)。在他在 NVIDIA 的工作之前,他畢業(yè)于紐約哥倫比亞大學的數(shù)據(jù)科學碩士,并為德國電子商務公司開發(fā)了推薦系統(tǒng)。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    4855

    瀏覽量

    102711
  • 深度學習
    +關注

    關注

    73

    文章

    5466

    瀏覽量

    120891
收藏 人收藏

    評論

    相關推薦

    怎么對神經(jīng)網(wǎng)絡重新訓練

    重新訓練神經(jīng)網(wǎng)絡是一個復雜的過程,涉及到多個步驟和考慮因素。 引言 神經(jīng)網(wǎng)絡是一種強大的機器學習模型,廣泛應用于圖像識別、自然語言處理、語音識別等領域。然而,隨著時間的推移,數(shù)據(jù)分布可能會
    的頭像 發(fā)表于 07-11 10:25 ?402次閱讀

    BP神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的關系

    廣泛應用的神經(jīng)網(wǎng)絡模型。它們各自具有獨特的特點和優(yōu)勢,并在不同的應用場景中發(fā)揮著重要作用。以下是對BP神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡關系的詳細探討,內容涵蓋兩者的定義、原理、區(qū)別、聯(lián)系以及應
    的頭像 發(fā)表于 07-10 15:24 ?1063次閱讀

    BP神經(jīng)網(wǎng)絡和人工神經(jīng)網(wǎng)絡的區(qū)別

    BP神經(jīng)網(wǎng)絡和人工神經(jīng)網(wǎng)絡(Artificial Neural Networks,簡稱ANNs)之間的關系與區(qū)別,是神經(jīng)網(wǎng)絡領域中一個基礎且重要的話題。本文將從定義、結構、算法、應用及未來發(fā)展等多個方面,詳細闡述BP
    的頭像 發(fā)表于 07-10 15:20 ?721次閱讀

    機器人神經(jīng)網(wǎng)絡系統(tǒng)的特點包括

    腦啟發(fā)的計算模型,具有高度的并行性和自適應性。機器人神經(jīng)網(wǎng)絡系統(tǒng)神經(jīng)網(wǎng)絡技術應用于機器人領域的研究和應用,具有以下特點: 高度的復雜性:神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-09 09:45 ?321次閱讀

    rnn是遞歸神經(jīng)網(wǎng)絡還是循環(huán)神經(jīng)網(wǎng)絡

    RNN(Recurrent Neural Network)是循環(huán)神經(jīng)網(wǎng)絡,而非遞歸神經(jīng)網(wǎng)絡。循環(huán)神經(jīng)網(wǎng)絡是一種具有時間序列特性的神經(jīng)網(wǎng)絡,能夠處理序列數(shù)據(jù),具有記憶功能。以下是關于循環(huán)
    的頭像 發(fā)表于 07-05 09:52 ?463次閱讀

    遞歸神經(jīng)網(wǎng)絡與循環(huán)神經(jīng)網(wǎng)絡一樣嗎

    時具有各自的優(yōu)勢和特點。本文介紹遞歸神經(jīng)網(wǎng)絡和循環(huán)神經(jīng)網(wǎng)絡的概念、結構、工作原理、優(yōu)缺點以及應用場景。 遞歸神經(jīng)網(wǎng)絡(Recursive Neural Network,RvNN) 1
    的頭像 發(fā)表于 07-05 09:28 ?626次閱讀

    遞歸神經(jīng)網(wǎng)絡是循環(huán)神經(jīng)網(wǎng)絡

    。 遞歸神經(jīng)網(wǎng)絡的概念 遞歸神經(jīng)網(wǎng)絡是一種具有短期記憶功能的神經(jīng)網(wǎng)絡,它能夠處理序列數(shù)據(jù),如時間序列、文本、語音等。與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡不同,遞歸
    的頭像 發(fā)表于 07-04 14:54 ?596次閱讀

    循環(huán)神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的區(qū)別

    結構。它們在處理不同類型的數(shù)據(jù)和解決不同問題時具有各自的優(yōu)勢和特點。本文將從多個方面比較循環(huán)神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡的區(qū)別。 基本概念 循環(huán)神經(jīng)網(wǎng)絡是一種具有循環(huán)連接的神經(jīng)網(wǎng)絡結構,它可
    的頭像 發(fā)表于 07-04 14:24 ?1016次閱讀

    卷積神經(jīng)網(wǎng)絡與循環(huán)神經(jīng)網(wǎng)絡的區(qū)別

    網(wǎng)絡結構,分別適用于不同的應用場景。本文將從基本概念、結構組成、工作原理及應用領域等方面對這兩種神經(jīng)網(wǎng)絡進行深入解讀。
    的頭像 發(fā)表于 07-03 16:12 ?2210次閱讀

    bp神經(jīng)網(wǎng)絡是深度神經(jīng)網(wǎng)絡

    Network)有相似之處,但它們之間還是存在一些關鍵的區(qū)別。 一、引言 神經(jīng)網(wǎng)絡是一種模擬人腦神經(jīng)元結構的計算模型,它由大量的神經(jīng)元(或稱為節(jié)點)組成,這些神經(jīng)元通過權重連接在一起
    的頭像 發(fā)表于 07-03 10:14 ?596次閱讀

    bp神經(jīng)網(wǎng)絡和卷積神經(jīng)網(wǎng)絡區(qū)別是什么

    BP神經(jīng)網(wǎng)絡(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN)是兩種不同類型的人工神經(jīng)網(wǎng)絡,它們在
    的頭像 發(fā)表于 07-03 10:12 ?883次閱讀

    卷積神經(jīng)網(wǎng)絡訓練的是什么

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文詳細介紹卷積神經(jīng)網(wǎng)絡
    的頭像 發(fā)表于 07-03 09:15 ?319次閱讀

    卷積神經(jīng)網(wǎng)絡的原理是什么

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,簡稱CNN)是一種深度學習模型,廣泛應用于圖像識別、語音識別、自然語言處理等領域。本文詳細介紹卷積神經(jīng)網(wǎng)絡的原
    的頭像 發(fā)表于 07-02 14:44 ?520次閱讀

    卷積神經(jīng)網(wǎng)絡和bp神經(jīng)網(wǎng)絡的區(qū)別

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,簡稱CNN)和BP神經(jīng)網(wǎng)絡(Backpropagation Neural Networks,簡稱BPNN)是兩種
    的頭像 發(fā)表于 07-02 14:24 ?2338次閱讀

    神經(jīng)網(wǎng)絡在數(shù)學建模中的應用

    數(shù)學建模是一種利用數(shù)學方法和工具來描述和分析現(xiàn)實世界問題的過程。神經(jīng)網(wǎng)絡是一種模擬人腦神經(jīng)元結構和功能的計算模型,可以用于解決各種復雜問題。在數(shù)學建模中,神經(jīng)網(wǎng)絡可以作為一種有效的工具
    的頭像 發(fā)表于 07-02 11:29 ?782次閱讀