基于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.mzph.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上量测新的连接点。如下…

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…

基于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站搜动脑学院 视频链接 &…

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;而构…

ProtoBuf认识与Windows下的安装

protobuf简介 Protobuf 是 Protocol Buffers 的简称&#xff0c;它是 Google 公司开发的一种数据描述语言&#xff0c;是一种轻便高效的结 构化数据存储格式&#xff0c;可以用于结构化数据&#xff0c;或者说序列化。它很适合做数据存储 或 RPC 数据交换格 式 。可用于通讯…

WebServer -- 定时器处理非活动连接(上)

目录 &#x1f34d;函数指针 &#x1f33c;基础知识 &#x1f419;整体概述 &#x1f382;基础API sigaction 结构体 sigaction() sigfillset() SIGALRM, SIGTERM 信号 alarm() socketpair() send() &#x1f4d5;信号通知流程 统一事件源 信号处理机制 &#x…

2024全球网络安全展望|构建协同生态,护航数字经济

2024年1月&#xff0c;世界经济论坛发布《2024全球网络安全展望》报告&#xff0c;指出在科技快速发展的背景下&#xff0c;网络安全不均衡问题加剧&#xff0c;需加强公共部门、企业组织和个人的合作。 报告强调&#xff0c;面对地缘政治动荡、技术不确定性和全球经济波动&am…

基于springboot+vue的美发门店管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Cartographer框架简述

catographer框架分为前端和后端 前端包括雷达数据处理&#xff1b;位姿预测&#xff1b;扫描匹配和栅格地图更新。 后端包括后端&#xff1a;线程池任务与调度&#xff1b;向位姿图添加节点&#xff0c;计算节点的子图内约束和子图间约束&#xff08;回环检测&#xff09;&…