基于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.rhkb.cn/news/261761.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows7安装指南

概要: 本篇演示Windows7的安装过程 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 电脑开机按F2可进入BIOS 2、Windows7启动U盘 Windows7启动U盘作为Windows7的安装来源 该U盘的制作可参考笔者的文章 Windows制作Windows的U盘启动盘 Windows7没有USB…

mysql 锁详解

目录 前言 一、全局锁 二、表级锁 三、行锁 前言 为什么要设计锁,锁设计初衷是为了解决多线程下并发问题。出现并发的时候用锁进行数据同步,避免因并发造成了数据错误(数据覆盖)。可见锁的重要性,并不是所有的数据库都有锁。比如Redis&a…

51单片机学习(3)-----独立按键控制LED的亮灭状态

前言:感谢您的关注哦,我会持续更新编程相关知识,愿您在这里有所收获。如果有任何问题,欢迎沟通交流!期待与您在学习编程的道路上共同进步了。 目录 一. 器件介绍及实验原理 1.独立按键 (1)独…

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作 之前用过viewer.js,算是市场上用过最全面的图片预览。v-viewer,是基于viewer.js的一个图片浏览的Vue组件,支持旋转、缩放、翻转等操作。 基本使用 安装:npm安装…

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(一)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(一) 大家好 我是寸铁👊 总结了一篇刷题关于树、dfs、bfs、回溯、递归的文章✨ 喜欢的小伙伴可以点点关注 💝 105. 从前序与中序遍历序列构造二叉树 模拟分析图 代码实现 /*** Definition for a binary tre…

说一下 JVM 运行时数据区 ?

目录 一、程序计数器(Program Counter Register) 二、Java 虚拟机栈(Java Virtual Machine Stacks) 三、本地方法栈(Native Method Stack) 四、Java 堆(Java Heap) 五、方法区&…

Imagewheel私人图床搭建结合内网穿透实现无公网IP远程访问教程

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

图——最小生成树实现(Kruskal算法,prime算法)

目录 预备知识: 最小生成树概念: Kruskal算法: 代码实现如下: 测试: Prime算法 : 代码实现如下: 测试: 结语: 预备知识: 连通图:在无向图…

代码随想录第二十三天 回溯算法 77.组合 216.组合总和 17.电话号码的字母组合

回溯算法 LeetCode 77 组合 题目描述 思路 递归函数的返回值以及参数 在这里要定义两个全局变量&#xff0c;一个用来存放符合条件单一结果&#xff0c;一个用来存放符合条件结果的集合。 代码如下&#xff1a; vector<vector<int>> result; // 存放符合条件…

【Java EE初阶十六】网络原理(一)

在网络原理中主要学习TCP/IP四层模型中的重点网络协议 1. 应用层 1.1 应用程序与协议 应用层是和程序员接触最密切的&#xff1b; 应用程序&#xff1a;在应用层这里&#xff0c;很多时候都是程序员自定义应用层协议&#xff08;步骤&#xff1a;1、根据需求&#xff0c;明确…

程序员必备技能----删库跑路大总结

删库跑路大总结&#xff0c;各个都是大杀器&#xff0c;破坏性太大&#xff0c;轻易不要尝试。 删除linux根目录&#xff0c;用户目录&#xff0c;其实还可以增加一个删除/etc。删除&#xff08;清除&#xff09;数据库。删除redis缓存和持久化文件。删除mongodb库。git push …

MCAL知识点(二十七):TC275如何通过GPT12实现ABZ解码

目录 1、概述 2、代码实现 1、概述 GPT12 - General Purpose Timer Unit (GPT12):通用定时器单元,具备较为灵活的定时器结构,可以用来做定时器、事件计数、脉冲宽度测量、产生PWM、频率调制、ABZ编码器增量测量。文章记录一下如何通过GPT12实现编码器ABZ信号的测量。 注意…

c#创建安装windows服务

背景:最近在做设备数据对接采集时,遇到一些设备不是标准的Service-Client接口,导致采集的数据不够准确;比如设备如果中途开关机后,加工的数量就会从0开始重新计数,因此需要实时监控设备的数据,进行叠加处理;考略到工厂设备比较多,实时监听接口的数据为每秒3次,因此将…

week04day01(爬虫)

一. 爬虫 只爬取公开的信息&#xff0c;不能爬取未公开的后台数据 1.爬虫的合法性 法无禁止皆可为 -- 属于法律的灰色地带https://www.tencent.com/robots.txt -- 网站/robots.txt 可以查看禁止爬取的内容 2. URL Uniform Resource Locator 统一资源定位符https://www.…

【国产MCU】-CH32V307-通用定时器(GPTM)-单脉冲模式

通用定时器(GPTM)-单脉冲模式 文章目录 通用定时器(GPTM)-单脉冲模式1、单脉冲模式介绍2、驱动API介绍3、单脉冲使用实例本文将详细介绍如何使用CH32V307通用定时器的单脉冲模式。 1、单脉冲模式介绍 单脉冲模式可以响应一个特定的事件,在一个延迟之后产生一个脉冲,延迟…

Sora--首个大型视频生成模型

Sora--首个大型视频生成模型 胡锡进于2024年2月20日认为&#xff1a;台当局怂了 新的改变世界模拟器视觉数据转换视频压缩时空补丁&#xff08;Spacetime Laten Patches&#xff09;视频生成扩展变压器算法和模型架构结语 胡锡进于2024年2月20日认为&#xff1a;台当局怂了 **T…

AI Agent规划能力全面拆解

“规划今天和每天的工作&#xff0c;然后执行规划” -- 撒切尔夫人 规划&#xff0c;无论对于人类还是智能体而言&#xff0c;本质上是一种预先设定行动的过程&#xff0c;以期望通过这些行动达到特定的目标或解决特定的问题。制定一个好的规划涉及对未来情景的预测、资源的…

机器学习面试:逻辑回归与朴素贝叶斯区别

逻辑回归与朴素贝叶斯区别有以下几个方面: (1)逻辑回归是判别模型&#xff0c;朴素贝叶斯是生成模型&#xff0c;所以生成和判别的所有区别它们都有。 (2)朴素贝叶斯属于贝叶斯&#xff0c;逻辑回归是最大似然&#xff0c;两种概率哲学间的区别。 (3)朴素贝叶斯需要条件独立假设…

ClickHouse--12-可视化工具操作

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 可视化工具操作1 tabixhttp://ui.tabix.io/ 2 DBeaverhttps://dbeaver.io/download/ 可视化工具操作 1 tabix tabix 支持通过浏览器直接连接 ClickHouse&#xff…

【Django】Django自定义后台表单——对一个关联外键对象同时添加多个内容

以官方文档为例&#xff1a; 一个投票问题包含多个选项&#xff0c;基本的表单设计只能一个选项一个选项添加&#xff0c;效率较低&#xff0c;如何在表单设计中一次性添加多个关联选项&#xff1f; 示例代码&#xff1a; from django.contrib import adminfrom .models impo…