精通推薦算法8:Embedding表征學習 -- 總體架構

1 Embedding表征學習的總體架構

目前,推薦算法精排模型大多基于Embedding + MLP范式,模型底層是Embedding層,作用是將高維稀疏的輸入特征轉換為低維稠密的特征向量,并實現一定的模糊查找能力。模型上層是MLP層,作用是對特征向量進行交叉和融合,并提取高階信息,得到最終輸出。Embedding作為推薦模型的第一層,擁有絕大多數參數,意義重大。

Embedding表征學習分為向量構建向量檢索兩部分。向量構建主要實現Embedding從無到有的過程,其主要方法有序列化建模、圖模型構建和端到端學習。向量檢索主要解決Top K近鄰Embedding檢索問題,其主要方法有哈希算法、基于樹的算法、向量量化算法和近鄰圖算法等。

推薦算法Embedding表征學習的知識框架如圖1所示。

1 ?Embedding表征學習的知識框架

2? Embedding概述

Embedding常被稱為“嵌入”或“向量”,它可以將高維稀疏特征轉換為低維稠密向量,實現降維,其最典型的應用是自然語言處理中的詞向量(Word Embedding)。通過Embedding,我們可以將單詞間的語義關系轉換為向量間的距離關系。例如“書籍”和“書本”,兩者語義很相似,詞向量的余弦距離也很接近。

在推薦系統中,每個特征值都可以被向量化。例如用戶ID、用戶性別、物品ID和物品類目等。特征值的物理含義越接近,其Embedding向量距離越短。例如在電商場景中,“拖鞋”和“皮鞋”兩個商品類目特征的向量距離,比“拖鞋”和“紙巾”要小,如圖2所示。

2 ?特征值物理含義越接近,Embedding向量距離越短

在深度學習中,Embedding可以通過一個全連接層實現。 原始輸入數據通常是一個獨熱編碼向量。由于輸入數據一般是獨熱向量,因此全連接可以退化為一個查表操作。

3 Embedding表征學習的意義

Embedding是大多數推薦算法模型的第一層,其訓練質量在很大程度上決定了模型的成敗。Embedding表征學習已經在召回和排序等領域得到了廣泛應用,意義重大,主要如下。

  • Embedding是模型的第一層,可以將高維稀疏的輸入特征轉換為低維稠密的特征向量,輸入上層全連接神經網絡。同時,它包含大量語義信息,可以很好地度量特征間的相似度,并具備一定的模糊查找能力。一般來說,兩個特征越相似,其Embedding向量距離越短。
  • Embedding可以用于預訓練。為了加快訓練速度,可以將當前模型的Embedding作為下一版模型或者兄弟場景模型的預訓練參數,從而實現熱啟動(Warm Start)。Embedding一般擁有推薦模型的絕大部分參數,因此模型訓練速度往往取決于Embedding的收斂速度。預訓練Embedding可以加快模型訓練速度,并減少對樣本量的依賴。另外,對于長尾特征Embedding難收斂的問題,預訓練一般也能起到一定作用。
  • Embedding可以應用在召回和排序等很多領域。利用Embedding向量可以計算任意用戶和物品的相似度,從而為目標用戶推薦與其距離最近的Top K物品,這就是典型的u2i召回。Embedding還可以計算物品和物品間的相似度,從而基于目標用戶點擊過或購買過的物品,推薦與之最相似的Top K物品,這就是典型的i2i召回。需要注意的是,不要直接把排序模型的Embedding用在召回任務上,二者的候選集和優化目標差別很大。

4 ?Embedding表征學習的基本范式

Embedding訓練一直以來都是推薦算法中的難點,因為其參數規模很大,導致收斂速度慢。Embedding的訓練方法主要有以下幾種。

  • 端到端學習。最簡單的方法是將Embedding層參數隨機初始化,然后和模型其他層一起訓練。這種方法的一致性很好,可以保證Embedding與模型其他層的目標完全一致,但缺點也很明顯,主要是整體訓練速度受限于Embedding的收斂速度,且需要大量樣本。除了隨機初始化,還可以利用上一版模型或者兄弟場景模型對Embedding參數初始化,然后微調(Finetune),從而加快模型收斂速度。
  • 序列化建模。類似于自然語言處理中的Word2vec,基于Skip-gramCBOW算法對用戶行為序列構建正負樣本并訓練模型,最終得到EmbeddingItem2vec便采用了這種方法,6.2節會重點闡述。
  • 圖模型構建。先利用用戶行為構建用戶和物品關系圖,然后訓練模型并得到圖節點的Embedding,主要有游走類圖神經網絡兩種方式。其中,游走類可以利用物品ID構建同構圖,例如DeepWalkNode2vec;也可以加入物品屬性特征,構建異構圖,例如Metapath2vecEGES。圖神經網絡是一個很大的技術方向,也是目前推薦算法中比較前沿的技術,可以使用GraphSAGEGATDGIGraphSAINTAdaGCN等經典模型,6.36.46.5節會重點闡述。

Skip-gram模型結構

DeepWalk的主要實現步驟

Metapath2vec和Metapath2vec++的Skip-gram網絡結構圖

EGES模型結構圖

GraphSAGE應用流程圖

5?Embedding表征學習的主要難點

Embedding表征學習的難點主要如下。

  • 參數規模大,存儲資源消耗大。特別是用戶ID和物品ID等高維稀疏特征,其枚舉值很多,必須使用維度較高的Embedding向量才能對其進行充分表征。Embedding的維度一般建議取特征枚舉值個數的四次方根,枚舉值多,向量維度高,會導致參數規模過大。Embedding通常會占據模型體積的80%以上,消耗極多的存儲資源。
  • 收斂速度慢,訓練時間長。從梯度下降反向傳播中可以看出,輸入特征為0Embedding向量無法更新。特征輸入層往往比較稀疏,其他層則稠密得多,這導致Embedding層參數的訓練機會比其他層少很多。另外,Embedding層需要訓練的參數很多,這加劇了其收斂速度慢的問題。一般來說,模型整體訓練時間取決于Embedding層的收斂速度,預訓練Embedding對緩解這一問題有一定的作用。
  • 長尾不收斂,冷啟動效果不好。長尾特征值在樣本中出現的概率低、數據稀疏,容易出現不收斂的問題,特別是對于用戶ID和物品ID等高維特征,收斂難度更大,對冷啟動造成了很大影響。近幾年,Group Embedding方法的應用對緩解這一問題起到了一定的作用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/bicheng/20289.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20289.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20289.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在鯤鵬服務器上安裝nginx

華為鯤鵬服務器采用華為自研cpu ARMv8架構,提供 Windows 和多個Linux 系統 常使用 CentOS 7.6 64bit with ARM Nginx 和 Apache 一樣都是一種 Web 服務器。是基于 REST 架構風格,以統一資源描述符URI 或者統一資源定位符URL 作為溝通依據,通過 HTTP 協議…

【C++進階】深入STL之string:掌握高效字符串處理的關鍵

📝個人主頁🌹:Eternity._ ?收錄專欄?:C “ 登神長階 ” 🤡往期回顧🤡:C模板入門 🌹🌹期待您的關注 🌹🌹 ?STL之string 📒1. STL基本…

前端(JS)對URL的編碼和解碼方式以及重要性——IE瀏覽器必須對中文URL進行編碼

工作記錄-前端——前端(JS)對URL的編碼和解碼方式以及重要性——IE瀏覽器必須對中文URL進行編碼 創作場景前端JS對URL的三種編碼和解碼方式1. escape 和 unescape2. encodeURI 和 decodeURI3. encodeURIComponent 和 decodeURIComponent 本文重點 創作場…

net語言編程:深入探索其奧秘與挑戰

net語言編程:深入探索其奧秘與挑戰 在當今信息化社會,編程語言如同構建數字世界的磚瓦,而net語言編程便是其中的一顆璀璨明珠。它以其獨特的魅力吸引著無數開發者,但同時也伴隨著一系列令人困惑和充滿挑戰的問題。本文將從四個方…

大模型學習資料整理:如何從0到1學習大模型,搭建個人或企業RAG系統,如何評估與優化(更新中...)

通過本文您可以了解到: 學習:從小白如何入手,從0到1開始學習大模型。RAG系統:我想搭建屬于自己或者企業的RAG系統,我該怎么去做?評估:微調后的模型或者RAG系統,如何評估自己的模型和…

windows配置dns訪問git , 加快訪問速度保姆級教程

設置 DNS 訪問 Git 需要修改電腦的 DNS 配置。下面是具體的操作流程: 第一步:打開命令提示符或終端窗口 在 Windows 系統中,可以按下 Win R 組合鍵,然后輸入 “cmd”,按下 Enter 鍵打開命令提示符窗口。在 macOS 或 …

【活動】GPT-4O:AI語言生成技術的新里程碑

🌈個人主頁: 鑫寶Code 🔥熱門專欄: 閑話雜談| 炫酷HTML | JavaScript基礎 ?💫個人格言: "如無必要,勿增實體" 文章目錄 GPT-4O:AI語言生成技術的新里程碑引言GPT系列簡史回顧GPT-1: 初露鋒…

國際薦酒師(香港)協會亮相香港國際葡萄酒和烈酒展覽會

2024年5月28日至30日,備受矚目的香港國際葡萄酒和烈酒展覽會VINEXPO Hong Kong在香港盛大舉辦。作為亞太區最盛大的葡萄酒展會,本屆展會不僅吸引了全球葡萄酒和烈酒行業的目光,更見證了國際薦酒師(香港)協會&#xff0…

(2) qml誕生的原因 和Qt Creator開發環境的介紹

文章目錄 qml誕生原因Qt Quick應?程序Qt Creator環境1、MSVC2、MinGWMSVC的優缺點MinGW的優缺點 最后的選擇延伸閱讀 一些常用的快捷鍵統一格式化代碼統一qml 語言的格式Locator 定位器幫助 qml誕生原因 可以在Qt5中開發的不同類型的經典應?程序。桌?應?程 序正在發?著改…

物聯網斷點續傳

斷點續傳是一種在網絡傳輸中斷后,能夠從中斷的位置繼續傳輸的技術。它可以有效地避免因為網絡不穩定、服務器故障、用戶操作等原因導致的傳輸失敗,節省了用戶的時間和流量,提高了傳輸的效率和可靠性。斷點續傳在很多場景中都有廣泛的應用&…

GIS結合物聯網:塑造智慧地球的新篇章

在信息技術飛速發展的今天,地理信息系統(GIS)與物聯網(IoT)的深度融合,正以前所未有的方式重塑著我們對世界的認知。本文將深入探討GIS與物聯網結合的原理、應用實踐以及面臨的挑戰與未來展望,共…

鄉村振興與鄉村旅游品牌化:打造具有地方特色的鄉村旅游品牌,提升鄉村旅游吸引力,促進美麗鄉村建設

目錄 一、引言 二、鄉村旅游品牌化的重要性 (一)增強鄉村旅游的辨識度 (二)提升鄉村旅游的附加值 (三)促進鄉村文化的傳承與創新 三、打造具有地方特色的鄉村旅游品牌 (一)明…

Python知識點6---列表和元組

提前說一點:如果你是專注于Python開發,那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了,而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的列表和和元組定義方式如下,且注意列表和元組擁有…

【深度強化學習入門:結合直覺與算法的學習之旅】

文章目錄 前言深度強化學習的關鍵要素簡單的深度Q網絡(DQN)實現分析代碼結論 前言 深度強化學習結合了深度學習的表征學習能力和強化學習的決策制定機制,這使得機器能夠在復雜環境中自我學習并做出合理的行動策略。它在游戲玩耍、自動駕駛、…

Linux實驗報告(二)——Linux系統中的常用命令

目錄 一、實驗名稱: 二、儀器、設備: 三、參考資料: 四、實驗目的: 五、實驗內容(步驟): 六、實驗數據(程序)記錄: ?編輯 ?編輯 七、實驗結果分析…

Python知識點9---推導式

提前說一點:如果你是專注于Python開發,那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了,而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python提供的推導式,只對列表、字典、集合三種數據類型生…

公司網站模板制作

公司網站模板的制作是一項極其重要的工作,因為網站模板決定了網站的整體風格和用戶體驗。一個漂亮、易用的網站模板將會吸引更多的用戶,而一個糟糕的網站模板則會讓用戶不供選擇。下面就讓我們介紹一下公司網站模板的制作。 首先,一個好的網站…

iCold編程入門:探索未知的編程世界

iCold編程入門:探索未知的編程世界 在浩瀚的數字宇宙中,iCold編程猶如一顆璀璨的新星,吸引著無數好奇而勇敢的探險家。然而,對于初學者來說,這個神秘的世界往往充滿了未知與挑戰。今天,我們就將一同踏入這…

前端 CSS 經典:mac docker 效果

前言:瀏覽器上實現 mac docker 效果,實現思路,1. 布局,方框間距用元素代替,因為有放大縮小功能,不用元素的話,不好控制。2. 定義個 css 變量 i,用來代表放大比例。3. 確定每個元素的…

信息系統項目管理師軟考高級論文教程必過論文分享

很多人提到軟考就會想到信息系統項目管理師和系統集成項目管理工程師,這兩個不同的軟考內容的區別不僅僅在于一個是高級,一個是中級,還有一個區別是它們的考試內容也是不同的,高級的信息系統項目管理師考試多了一項論文的考試&…