基于Embedding召回和DSSM雙塔模型

文章目錄

    • 基于Embedding召回介紹
    • 基于Embedding召回算法分類
      • I2I召回
      • U2I召回
    • DSSM模型
      • DSSM雙塔模型層次

基于Embedding召回介紹

  • 基于embedding的召回是從內容文本信息和用戶查詢的角度出發,利用預訓練的詞向量模型或深度學習模型,將文本信息轉換成向量進行表示,通過計算兩個向量之間的距離或者相似度來推薦內容。這種方式主要考慮商品文本信息的語義信息,使推薦的內容更加精準。
  • Embedding召回主要的優缺點
    • 優點:
      擴展性強:基于 Embedding 的召回算法可以學習大規模物品或用戶的向量表示,因此對于超大規模推薦系統也可以進行有效召回。
      表達能力強:基于 Embedding 的召回算法可以學習到物品或用戶更為細致的特征表示,因此能夠更好地捕捉物品或用戶之間的相似性。
      可解釋性強:基于 Embedding 的召回算法可以自然地將物品或用戶表示為低維向量,這使得我們可以通過可視化等手段來更好地理解和解釋推薦結果。
    • 缺點:
      數據量大,訓練周期長,只能表示用戶與物品向量表示關系,無法進行高維度特征表示(時間序列等),調參過程比較繁瑣。

基于Embedding召回算法分類

  • 基于 Embedding 的召回算法可分為兩類有I2I 的召回和U2I的召回。

I2I召回

  • I2I也就是Item-to-Item,實際上就是要將每一個 Item 用向量來表示。在Item-to-Item 召回中,系統會根據用戶已經交互過的物品,找到這些物品的相似度,然后根據相似度來召回其他類似的物品作為推薦結果。這個向量的表示,我們就可以理解為Embedding。
  • Item-to-Item召回通常分為兩個步驟:第一步,計算物品之間的相似度;第二步:用戶請求推薦時,系統根據該用戶的歷史交互行為,找到該用戶已交互過的物品并選取與之最相似的一些物品作為推薦結果。
  • 常見的I2I召回算法有Word2Vec、Item2Vec、FastText、BERT等。

U2I召回

  • U2I也就是User-to-Item,它基于用戶的歷史行為以及用戶的一些個人信息,對系統中的候選物品進行篩選,挑選出一部分最有可能被用戶喜歡的物品,送入推薦模型進行排序和推薦。
  • 常見的U2I策略有:
    • 基于用戶歷史行為召回
    • 基于用戶畫像召回
    • 基于社交網絡召回
  • 常見的U2I召回算法有DSSM雙塔模型、YouTubeDNN等。

DSSM模型

  • DSSM模型又叫雙塔模型(全稱 Deep Structured Semantic Model),User塔適合在線計算User-Embedding;Item塔適合離線計算Item-Embedding,通過向量檢索就可以進行快速地召回。線上預測的時候,只需要在內存中計算相似度運算即可(Cosine-similarity等)。
  • DSSM雙塔模型圖
    在這里插入圖片描述
  • User塔表示用戶歷史行為的信息(如用戶的瀏覽記錄、購買記錄等)。它的輸入是一個用戶的歷史行為序列,其目標是把這個序列映射為一個固定的用戶向量表示,該向量表示用戶的興趣特征。
  • Item塔表示所有的物品的信息(如物品的標題、描述、標簽等)。它的輸入是一個物品的特征序列或向量,其目標是把這個序列或向量映射為一個固定的物品向量表示,該向量表示物品的特征。
  • 借助于用戶歷史行為和物品的特征向量表示,DSSM可以計算用戶特征向量和物品特征向量之間的相似度,預測哪些物品最符合用戶的興趣并產生最高的預測分數。這些物品可以按照預測分數的高低排序,推送給用戶進行推薦。所以DSSM雙塔模型的作用就是協同基于用戶歷史行為和物品特征對用戶興趣進行建模,并通過此模型產生個性化推薦結果。

DSSM雙塔模型層次

  • 根據上面的架構圖來看,DSSM雙塔模型主要分為三層
    • 輸入層:User側特征和Item側特征是輸入層。輸入層主要的作用是把文本映射到低維向量空間,轉化成向量提供給深度學習網絡。
    • 表示層:DNN就是表示層,DSSM模型表示層使用的是BOW(Bag Of Words)詞袋模型,沒有考慮詞序的信息。不考慮詞序其實存在明顯的問題,因為一句話可能詞相同,但是語義則相差十萬八千里。
    • 匹配層:匹配層就是針對于前面的Query和Doc進行相似度計算,這個過程實際上非常簡單,就是把Query 和Doc統一轉換成了兩個128維的語義向量,通過Cosine計算這兩個向量的余弦相似度。
  • 表示層的結構圖
    在這里插入圖片描述
  • 術語解釋:
    • Term Vector:目標文本的embedding向量
    • Word Hashing:因為目標向量維數比較大,而對BOW向量進行降維。
    • Multi-layer non-linear projection:深度學習網絡多隱層,通過降維最終生成128維。
    • Semantic Feature:Query&Doc最終生成的embedding向量。
    • Relevance measured by cosine similarity:Query&Doc所計算的余弦相似度。
    • Posterior probability computed by softmax:通過Softmax函數計算Query和正樣本Doc語義相似性進行后驗概率。
  • 所用公式:
    • DNN:
      在這里插入圖片描述

    • 激活函數:
      在這里插入圖片描述

    • 相似度計算公式:
      在這里插入圖片描述

    • softmax后驗概率公式:
      在這里插入圖片描述

    • 損失函數:
      在這里插入圖片描述
      Tips:這些截圖信息都是我在論文里找的,詳細請參考鏈接

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

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

相關文章

三、創建腳手架和腳手架分析

三、創建腳手架 一、環境準備 1、安裝node.js **下載地址:**https://nodejs.org/zh-cn/界面展示 2、檢查node.js版本 查看版本的兩種方式 node -vnode -version 出現版本號則說明安裝成功(最新的以官網為準) 3、為了提高我們的效率&…

深度學習從入門到不想放棄-7

上一章的內容 深度學習從入門到不想放棄-6 (qq.com) 今天講的也算基礎(這個系列后來我一尋思,全是基礎 ),但是可能要著重說下,今天講前向計算和反向傳播,在哪兒它都永遠是核心,不管面對什么模型 前向計算: 有的叫也叫正向傳播,正向計算的,有的直接把前向的方法梯度下…

祖龍娛樂 x Incredibuild

關于祖龍娛樂 祖龍娛樂有限公司(下文簡稱“祖龍娛樂”)是一家總部位于北京的移動游戲開發公司,成立于 2014 年,擁有成功的大型多人在線角色扮演游戲移動游戲組合,如《六龍爭霸》、《夢幻誅仙》和《萬王之王 3D》。公司…

微信小程序 ---- 慕尚花坊 項目初始化

目錄 項目介紹 01. 項目概述 02. 項目演示 03. 項目技術棧 04. 接口文檔 申請開發權限 項目初始化 01. 創建項目與項目初始化 02. 自定義構建 npm 集成Sass 03. 集成項目頁面文件 04. VsCode 開發小程序項目 項目介紹 01. 項目概述 [慕尚花坊] 是一款 同城鮮花訂購…

Context Capture無法量測連接點,Survey提示Read only只讀模式

Context Capture無法量測連接點,Surveys提示Read only只讀模式 出現這個問題一般是因為當前block已經完成三維重建,所以無法再編輯稀疏重建(空三)結果。只能把當前block復制一份,在復制的block上量測新的連接點。如下…

Netty中的Arena是什么以及LT和ET

Arena是什么 在Netty中,Arena是一種內存分配器(Memory Allocator)的概念。Arena的主要目的是提高內存分配和釋放的效率,減少碎片化,從而提高系統性能。 具體而言,Netyy中的Arena主要用于分配和管理ByteBuf對象的內存,ByteBuf是Ne…

分班問題 、幼兒園分班(C語言)

題目 幼兒園兩個班的小朋友排隊時混在了一起,每個小朋友都知道自己跟前面一個小朋友是不是同班,請你幫忙把同班的小朋友找出來 小朋友的編號為整數,與前面一個小朋友同班用Y表示,不同班用N表示 輸入 輸入為空格分開的小朋友編號…

PowerDesigner 安裝

PowerDesigner 安裝漢化破解使用過程 - 淪陷 - 博客園 (cnblogs.com)https://www.cnblogs.com/huangting/p/12654057.html

不要浪費

解法&#xff1a; 記錄一下tle的代碼 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n bool check(vector<int>& a, int l,int k) {int sum 0;for (int i 0; i < a.size() && l…

vue3中使用 tui-image-editor進行圖片處理,并上傳

效果圖 下載包 pnpm i tui-image-editor pnpm i tui-color-picker調用組件 //html部分 <el-dialog v-model"imgshow" destroy-on-close width"40%" draggable align-center :show-close"true":close-on-click-modal"false">&l…

mescroll 在uni-app 運行的下拉刷新和上拉加載的組件

官網傳送門: https://www.mescroll.com/uni.html 最近使用到了mescroll 但是一直都是整個頁面的滾動, 最近需求有需要局部滾動, 收藏了一個博主的文章覺得寫的還挺好, 傳送門: https://blog.csdn.net/Minions_Fatman/article/details/134754926?spm1001.2014.3001.5506 使用…

基于springboot+vue的視頻網站系統(前后端分離)

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

Stable Diffusion 模型分享:FenrisXL(芬里斯XL)

本文收錄于《AI繪畫從入門到精通》專欄,專欄總目錄:點這里。 文章目錄 模型介紹生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十

IO進程線程第6天

1.使用有名管道完成兩個進程的相互通信 send.c代碼如下&#xff1a; #include <myhead.h>int main(int argc, const char *argv[]) {pid_t pidfork();if(pid>0){//父進程//從管道1中讀取數據int fd-1;if((fdopen("./mkfifo1",O_RDONLY))-1){perror("…

【安卓基礎3】Activity(一)

&#x1f3c6;作者簡介&#xff1a;|康有為| &#xff0c;大四在讀&#xff0c;目前在小米安卓實習&#xff0c;畢業入職 &#x1f3c6;本文收錄于 安卓學習大全&#xff0c;歡迎關注 &#x1f3c6;安卓學習資料推薦&#xff1a; 視頻&#xff1a;b站搜動腦學院 視頻鏈接 &…

微信小程序開發教程:

準備工作 下載并安裝微信開發者工具注冊微信公眾平臺賬號并創建小程序項目 項目結構 app.js&#xff1a;小程序的入口文件&#xff0c;用于定義全局變量和函數app.json&#xff1a;小程序的全局配置文件&#xff0c;用于配置小程序的頁面、窗口樣式、網絡超時時間等app.wxss&am…

反光衣實時識別檢測系統-反光衣穿戴識別系統-智慧工地系統安全帽佩戴---豌豆云

反光衣實時識別檢測系統是根據視頻流的自動化圖像識別檢測&#xff0c;運用前沿的深度神經網絡與云計算技術&#xff0c;替代工作人員的眼睛。 在工地、化工廠、煤礦石化等生產安全地區部署反光衣實時識別檢測系統&#xff0c;運用現場已有的視頻監控可以無死角全自動檢測生產…

Sora橫空出世!AI將如何撬動未來?

近日&#xff0c;OpenAI 發布首個視頻生成“Sora”模型&#xff0c;該模型通過接收文字指令&#xff0c;即可生成60秒的短視頻。 而在2022年末&#xff0c;同樣是OpenAI發布的AI語言模型ChatGPT&#xff0c;簡化了文本撰寫、創意構思以及代碼校驗等任務。用戶僅需輸入一個指令&…

【IC設計】Chisel API之Arbiter和RRArbiter的使用

文章目錄 介紹Chisel的Valid和Ready流控build.sbtRRArbiter代碼示例 介紹 仲裁器在NoC路由器中是重要的組成部分&#xff0c;虛通道仲裁和交叉開關仲裁都需要使用仲裁器。 Chisel提供了Arbiter和RRArbiter仲裁器 Arbiter是基礎的低位優先仲裁器&#xff0c; RRArbiter初始情況…

前端構建效率優化之路

項目背景 我們的系統&#xff08;一個 ToB 的 Web 單頁應用&#xff09;前端單頁應用經過多年的迭代&#xff0c;目前已經累積有大幾十萬行的業務代碼&#xff0c;30 路由模塊&#xff0c;整體的代碼量和復雜度還是比較高的。 項目整體是基于 Vue TypeScirpt&#xff0c;而構…