通俗讲解【布尔召回和向量化召回】

news/2024/5/19 23:20:21 标签: 搜索引擎, 推荐算法, 架构, 算法

搜索推荐引擎基本上算得上是当前互联网技术领域的天花板了,是互联网技术挑战和难度较大的领域之一。这主要源于以下几个方面的原因:

  1. 数据规模与复杂性:搜索推荐引擎需要处理海量的数据,包括用户行为数据、内容数据等。这些数据不仅数量庞大,而且结构复杂,需要高效的数据处理和存储技术来支撑。

  2. 算法与模型的复杂性:搜索推荐引擎的核心在于其算法和模型。为了更准确地理解用户需求和兴趣,需要提供个性化的搜索和推荐结果,需要运用复杂的机器学习、深度学习等技术来训练和优化模型。这不仅要求算法工程师具备深厚的理论知识,还需要具备丰富的实践经验。

  3. 实时性与准确性要求:搜索推荐引擎需要实时响应用户的请求,并在短时间内提供准确的结果。这对系统的实时性能和准确性提出了很高的要求,需要不断优化系统的架构算法,以提高响应速度和推荐准确性。

  4. 用户行为的多样性与变化性:用户的搜索和推荐行为具有多样性和变化性,不同用户有不同的需求和偏好。搜索推荐引擎需要不断学习和适应这些变化,以提供更符合用户期望的结果。这要求系统具备强大的自适应能力和学习能力。

其中,召回技术算的上是搜索推荐的核心环节,主要有布尔召回、向量化召回、文本召回、KV索引召回等几种,本文主要来对比最常见的布尔召回和向量化召回。

1.布尔召回:

  • 布尔召回通常基于树、维度bitMap分组和哈希表等技术实现。
  • 广告主可以设置定向组合,如访问特定网站的人群或有特定兴趣的人群等。
  • 布尔召回的本质是基于倒排索引的布尔运算,通过构建多层索引来快速找到与用户标签匹配的定向组合广告。

布尔召回是广告召回中常用的一种策略,布尔召回之所以得名,是因为它基于布尔运算进行数据的筛选和匹配。布尔运算包括逻辑与(AND)、逻辑或(OR)和逻辑非(NOT)等基本操作,通过这些操作可以组合出复杂的查询条件。它基于倒排索引和布尔运算来实现。在广告系统中,倒排索引起着至关重要的作用。当接收到一个广告请求时,系统会根据请求中的定向信息(如用户标签、场景上下文等)从倒排索引中匹配合适的广告。

布尔召回的本质是基于这些定向信息的布尔运算。具体来说,它首先会将广告主的投放配置进行分解分组,每一个组为一个conjunction(联结),一个广告投放会对应多个conjunction。然后,系统会根据用户标签找到对应的conjunction,并基于每个conjunction取出对应的广告主集合。最后,计算这些集合的交并运算,得到最终召回的广告候选集。

这种方法的优点在于能够基于复杂的定向条件进行广告筛选,提高了召回的准确性和效率。但是,它也可能因为过于严格的筛选条件而导致召回不足的问题。

2.向量化召回:

  • 向量化召回是基于“向量空间模型”的概念,将文本、图片、视频等非结构化数据转换为结构化的数值向量。
  • 通过计算这些向量之间的相似度,可以识别出与给定查询最相关的项目。
  • 向量化通常通过深度学习模型实现,如词嵌入(Word Embedding)或BERT等模型。
  • 向量召回的核心思想是将用户特征和物料特征全部用向量来表示,然后基于向量来计算用户与物料的相似度、用户与用户的相似度、物料与物料的相似度。

向量化召回则是一种基于深度学习和向量相似度计算的召回方法。

向量化召回之所以得名,是因为其核心思想是将用户特征和物料特征全部用向量来表示,然后基于这些向量来计算用户与物料的相似度、用户与用户的相似度以及物料与物料的相似度。这种方法的基础是“向量空间模型”(Vector Space Model,VSM),它将文本或任何形式的项目转换为向量,这些向量在高维空间中表示。通过计算这些向量之间的相似度,可以识别出与给定查询最相关的项目。

它的核心思想是将用户特征和物料特征全部用向量来表示,然后基于这些向量来计算用户与物料的相似度。

在向量化召回中,首先将文本、图片、视频等非结构化数据转换为结构化的数值向量。这通常通过深度学习模型实现,如词嵌入(Word Embedding)或BERT等模型。然后,系统计算用户向量和物料向量之间的相似度,找出与用户兴趣最相似的物料。

向量化召回的优点在于能够捕捉用户和物料之间的潜在关系,提高了召回的准确性和多样性。同时,由于向量计算的高效性,它也能够在大规模数据集中快速找到与用户兴趣相似的物料。

然而,向量化召回也存在一些挑战。首先,它需要大量的训练数据来训练深度学习模型,以生成准确的向量表示。其次,对于某些复杂的特征或关系,向量表示可能无法完全捕捉,导致召回效果不佳。


http://www.niftyadmin.cn/n/5460362.html

相关文章

vue-v-for遍历index与id

一.遍历列表key的作用(index作为key) 虚拟DOM上有key,是虚拟的,但是真实DOM上没有,key是Vue内部的 当使用index作为key的时候,Vue会根据初识数据生成一个初始的虚DOM, 然后在页面上映射出真实DOM 如果向数据…

Mac air 个人免费版VMWare Fusion安装及配置教程

Mac air 安装免费版VMWare Fusion教程及问题解决 1、下载VMWare Fusion2、下载wins镜像文件3、开始配置4、出现的问题及解决方法4.1 如何跳过启动时的网络连接4.2 启动后,无法连接网络怎么办4.3 怎么实现将文件拖拽到虚拟机中 当你手上是一台Mac电脑,却需…

vlanif三层交换机实现不同网络通信

实验目的:通过三层交换机实现不同 网络通信,之前都是路由器进行不同网络转发 拓扑图 内容:左边vlan10,右边vlan20 lsw1接口通过所有vlan lsw2网路vlan10 lsw3网络vlan20 问题点:开始只是配置了最上面LSW1的交换机…

学习文件和文件操作

要将数据进⾏持久化的保存,我们可以使用文件。 磁盘(硬盘)上的⽂件是⽂件。 我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类。 程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂…

.NET CORE 分布式事务(二) DTM实现TCC

目录 引言: 1. TCC事务模式 2. TCC组成 3. TCC执行流程 3.1 TCC正常执行流程 3.2 TCC失败回滚 4. Confirm/Cancel操作异常 5. TCC 设计原则 5.1 TCC如何做到更好的一致性 5.2 为什么只适合短事务 6. 嵌套的TCC 7. .NET CORE结合DTM实现TCC分布式事务 …

【Go】三、Go指针

文章目录 1、指针2、说明 1、指针 &符号变量 就可以获取这个变量内存的地址*int 是一个指针类型 (可以理解为 指向int类型的指针) package main import("fmt" ) func main(){var age int 18//&符号变量 就可以获取这个变量内存的地…

mysql笔记:25. docker环境中mysql主从复制、主主复制实操

文章目录 一、准备工作1. 安装配置Docker2. 准备MySQL相关的配置和数据目录 二、基于日志点的主从复制1. 配置Master服务器1.1 修改配置文件1.2. 在docker中启动Master节点1.3. 创建用户并授权 2. 配置Slave1服务器2.1. 修改配置2.2. 启动服务2.3. 指定Master2.4. 开始复制 3. …

CVE-2023-38408漏洞修复 - 升级openssl和openssh

CVE-2023-38408 OpenSSH 代码问题漏洞修复 - 升级openssl和openssh ※ 重要说明: 1、升级后会导致无法用ssh远程登录,提示“Permission denied, please try again.” 2、解决方案请查看本章节【三、解决升级后无法用ssh远程登录】 目录 CVE-2023-38408 O…