从架构的角度看搜索与推荐

news2024/11/16 4:27:41

搜索与推荐的区别

1. 场景需求不同

搜索的场景故名思义,就是用户提供想要寻找的内容的描述,系统返回给用户匹配到的结果,常见的场景如文字输入框的搜索,图片搜索,听音识曲,标签筛选等,看似很多场景,其实只是用户输入内容的形式不同。

推荐的场景我们常见的有各大App首页的个性化推荐(如猜你喜欢/每日歌曲推荐),选择页面的关联推荐(买了还买,看了还看,买了它的用户还买等等)等,推荐的场景更加的丰富,因为没有用户提供的内容的限制,场景更具多样性,推荐方法也多种多样,例如基于内容的推荐,基于用户行为的推荐,协同过滤等等。

各大互联网平台由于服务内容不同,平台成熟度的不同,对搜索和推荐的偏重程度也就不尽相同,但都是缺一不可。

例如对于房地产应用来说,用户目标明确,搜索服务会带来更大的购买力,但关联推荐会给用户带来更多的选择,同样也是不可缺少的。

对于短视频平台而言,由于用户较难通过文字或图片提供内容的描述,那么自然会偏重推荐服务。

对于电商在初期肯定是搜索服务带来了更多的购买率,当购买率到达瓶颈时,推荐带来的购买率就是突破瓶颈和继续发展的必要手段。

2. 输入输出不同

在这里插入图片描述
不论搜索还是推荐,实际上对于用户来说,都是一个提供服务的黑盒,它能够根据用户/物品/场景等信息,从候选物品的池子中选出与用户匹配的的物品列表。

不同的是对于搜索服务,还额外提供了用户对于自己诉求的描述信息(当然可能描述的并不准确)。

输入的区别天然的导致了用户对于结果的不同期待:

(1) 个性化程度不同

推荐系统更强调个性化,甚至更注重惊喜感。往往要在准确性和多样性之间作出权衡;搜索系统更强调相关性,如果搜索结果与用户的目标不符,用户的接受程度会很差,个性化对于搜索系统来说既没意义又有风险。

(2) 排的更好与搜的更全

对于推荐系统来说,排序更加重要,因为只有最开始的推荐结果吸引了用户,用户才可能向后浏览。

对于搜索系统来说,召回更加重要,因为用户会主动向后浏览,以期望找到自己的目标,但如果最终没有找到,也就是搜的不全,就会有很差的用户体验。

(3) 快速满足还是持续服务

提到搜索系统,往往会提到马太效应,只有与用户搜索的结果更为匹配的物品才会被呈现给用户,让用户得到快速满足,那么满足需求的物品那么多,搜索的越准确,用户就越不会向后浏览,最终点击的热度就只会集中在少量的物品上。这也就是为什么广告最初诞生在搜索系统中的原因。提到推荐系统,往往会提到长尾效应,也就是让用户时刻保持新鲜感和惊喜感,考虑用户的长期兴趣,提高用户粘性,期望留住用户,并提供持续的服务,这也就是为什么刷短视频停不下来的原因。

(4) 实时性与滞后性

搜索的数据实时性要求是特别高的,数据常常要求秒级更新,例如一个商品已经没有货了就不应该被搜出来了。而推荐的数据很多是可以容忍天级更新的,由于推荐要考虑大量的用户行为信息,一定是具有一定滞后性的。

搜索与推荐的联系

1. 相同的本质

搜索与推荐本质上都是当前时代信息过载的产物,解决的根本思路都是通过匹配(召回)、排序为用户在过载的信息中挑选出用户想要的信息。只是根据业务场景的不同,在召回,排序阶段考虑的侧重点不同。

2. 搜索与推荐的协同作用

(1) 推荐中的搜索

推荐服务中基于内容的推荐实际上相当于一种无声的搜索,常常在实现时会采用搜索服务的中的倒排索引等技术,例如基于内容的推荐,常常是通过规则或推荐模型得到用户感兴趣的内容的标签,然后利用搜索服务的方法进行标签搜索和匹配即可得到最终的推荐列表。

(2) 搜索中的推荐

当搜索出来符合用户的数据量很多时,需要根据推荐服务中用户画像等结果帮助搜索服务匹配用户的需求。例如周一的晚上进行搜索得到的结果列表和周五的晚上进行搜索得到结果列表就会有所差异。

推荐与搜索常常在一个页面中协同为用户提供服务,例如搜索引擎搜索结果页面的关联推荐,电商软件搜索浏览页面的相关推荐等。

架构演进与架构统一

1. 搜索架构的演进

在这里插入图片描述
一般而言,一个企业的搜索引擎,由于在初始阶段业务线不多,提供简单的搜索服务即可。随着业务的不断增多,对搜索需求的不断抽象和统一,逐渐可以发展为平台阶段,提供多数据源的写入与多业务的统一搜索能力,不同业务的不同需求可以灵活配置。

等到业务线不断增多,对接业务的工作占据了大部分的开发时间时,开发更加方便的运维与管理能力,帮入业务自助接入平台就能够进一步提高搜索功能开发的效率,此时搜索架构就进入到了运维更为便捷的云平台的阶段。

2. 推荐架构的演进

在这里插入图片描述
对于推荐引擎,起步阶段一般会采用基于内容的推荐方法,由于数据不足,企业初期会基于业务侧提供的经验规则对物品和用户进行标注,然后通过在线匹配标签的方式进行推荐。继续发展,随着业务的不断丰富和迭代,会对推荐系统有更多的期望,当不断修改或增加经验规则却满足不了业务需求时,就需要一些基于模型的推荐方法以及个性化的推荐的服务了。再进一步,与搜索引擎一样,推荐引擎也需要对接多个业务线,向平台阶段发展,提供统一的公共服务,通过配置满足不同的业务线的需求。

3. 架构统一

从上面的介绍和架构演进我们可以发现,推荐和搜索的架构有很多可以复用的地方,因而可以进行架构的统一。
在这里插入图片描述
(1) 流程上的统一:不论是搜索还是推荐,都会经历召回-排序-重排等流程,最终得到呈现给用户的物品列表,只不过流程中各个阶段的目标会不太相同。

(2) 数据与数据平台的复用:被搜索的物品和被推荐的物品是统一的,召回排序训练模型时所需要的埋点数据/用户行为数据等也是统一的,那么自然获取数据/处理数据的平台自然就是可以复用的。

(3) 算法与算法平台的复用:搜索和推荐发展到一定阶段,当简单的专家规则不再能够支撑复杂的搜索和推荐需求时,都会发展到基于模型进行召回排序的阶段,此时都需要根据用户数据/物品数据/埋点数据进行模型训练,只不过由于二者的训练目标不同,训练的模型的参数可能会不相同,但算法平台或者大家常说的机器学习/AI平台是可以复用的。

(4) A/B Test实验平台的复用:由于业务需求的不断变化,模型的不断更替,通过A/B Test平台能够通过分流的方式拿到真实的生产环境中的用户反馈,以帮助企业不断验证和优化搜索和推荐策略。

(5) 配置中心的复用:可以通过配置中心针对不同业务和服务配置不同的搜索和推荐策略,并且提供便捷的一键部署能力。

所以很多公司,在业务领域上搜索和推荐分属于不同的部门,但很多的公共的部分都有成熟的内部平台可以快速复用。

总结

本篇文章介绍了搜索和推荐的区别与联系,架构演进以及架构统一。我们都知道架构是因为需求的扩增而不断演进来的,例如从服务阶段发展到平台阶段,是因为要提高多业务的对接效率;从基于内容的推荐到复杂的融合在线用户画像和离线用户画像的个性化推荐,是因为简单基于规则或标签的推荐无法满足用户和业务侧的需求。

所以不要在一开始被过于复杂的架构绑住手脚,可以针对自身业务的需求进行搜索/推荐的简单架构设计,然后逐步演进和优化架构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/420185.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TypeScript - 泛型 Generics(通俗易懂详细教程)

前言 关于概念,本文不会过多叙述。 先来看个例子,体会一下泛型解决的问题吧。 我们定义一个 print 函数,这个函数的功能是把传入的参数打印出来,最后再返回这个参数,传入参数的类型是 string,函数返回类型…

Kyligence Zen 产品体验 --- 全方位总结

Kyligence Zen 是一个企业级大数据分析平台,基于 Hadoop 和 Spark 技术栈,具有高性能、可扩展性和易用性等优点。本文将从体验者角度出发,对 Kyligence Zen 进行详细的描述,包括使用场景、功能特点和使用体验。 一、使用场景 Kyl…

springboot 统一异常处理 + 日志记录

在项目的开发中,在某些情况下,比如非业务的操作,日志记录,权限认证和异常处理等。我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect。先…

JavaScript【四】JavaScript中的函数

文章目录🌟前言🌟什么是函数?🌟函数声明方式🌟 function关键字🌟 字面量定义(匿名函数)🌟 实例化构造函数🌟函数调用方式🌟通过括号调用🌟自调用(IIFE)🌟通过…

企业电子招投标采购系统——功能模块功能描述+数字化采购管理 采购招投标

​ 功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外…

windows安装Metasploit

近期在大佬群里各种炫技,各种工具使用,漏洞利用与复现,感觉自己常规安全测试就是个小学生,于是好心的大佬发了个Rapid7Setup-Windows64.exe的渗透工具,但是自己的电脑安装了,破解不了,导致失败&…

计算机组成原理——第四章指令系统(上)

提示:待到秋来九月八,我花开后百花杀 文章目录前言4.1.1 指令格式4.1.2 扩展操作码指令格式4.2.1 指令寻址4.2.2 数据寻址4.2.3 偏移寻址4.2.4 堆栈寻址汇总前言 通过第二章我们学习了运算器是如何进行加减乘除,移位运算操作的,通…

【密码算法 之七】GCM 浅析

文章目录1. 概述1.1 GHASH1.3 GCTR2. GCM 加密3. GCM 解密4. 总结在我的另一篇博客【密码算法 之三】分组密码工作模式 (ECB \ CBC \ CFB \ OFB \ CTR \ XTS)浅析 中已经详细的介绍了对称算法(也称为“分组密码算法”)的各种工作模…

排序算法(一)

一、排序算法 排序算法就是将数组按照数值或者字母序排列,常用的排序算法有很多,如下: 详细细节可以直接看维基百科:https://zh.wikipedia.org/zh-cn/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95 C的库中实现了常用的排序算法&#x…

Linux_红帽8学习笔记分享_4

Linux_红帽8学习笔记分享_4 文章目录Linux_红帽8学习笔记分享_41.用户管理useradd命令的使用1.1使用useradd添加用户1.2 Linux系统底层的四个连锁反应2.账户信息文件/etc/passwd中七个字段的含义3.组信息文件/etc/group中四个字段的含义4.影子文件/etc/shadow两个字段的含义5.相…

C++STL——map与set介绍及使用

map与set介绍及使用关联式容器健值对setmultisetmapmultimap关联式容器 之前我们学的list,vector等等是序列式容器,这里的set和map和之后的哈希表都是关联式容器,比如说搜索二叉树我们想插入一个值,不能随意的插入,因…

【JVM】JVM之执行引擎

文章目录前言名词解释机器码指令指令集汇编语言高级语言字节码虚拟机&物理机前端编译器&后端编译器JVM之执行引擎执行引擎是如何工作的?解释器即时编译器(JIT)分层编译策略虚拟机执行模式热点代码&探测方式1)方法调用…

Android 屏蔽锁屏界面上的通知显示

一. 前言 [定制需求描述]:在插入SD后, 锁屏状态下, 去掉提示“SD卡可用于传输照片和媒体文件” 需求拆解: 要求正常显示在SystemUI下拉状态栏, 只需要屏蔽在锁屏状态下的通知. 二. 发送通知 首先来找找这个字符串"可用于传输照片和媒体文件" 是在/f…

buuctf_随便注

根据题目猜测这是一道SQL注入的题目输入一个单引号触发报错,根据报错信息得知闭合条件就是一对单引号继续构造表达式,得出一共包含两个回显位构造表达式求出当前数据库的名称,但是根据回显数据和实践来看,此题是对select进行了过滤…

【软件设计师12】数据流图DFD

数据流图DFD 必考下午第一道大题!!! 基本概念、数据字典、数据平衡原则 1. 基本概念 顶层图是系统,再看中间跟外部数据的交换流不变,内部细化,最底层图进一步细化 数据存储在题干描述时,要么…

一文弄清-BP的过拟合与validationCheck

本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com BP神经网络的训练经常会遇到过拟合的情况,导致模型在训练效果上很好但预测效果差 正因如此,matlab工具箱引入validationCheck来防止BP神经网络走向过拟合 本文介绍过拟合是…

SOTIF 预期功能安全ISO21448介绍、功能安全标准ISO26262 与若干安全标准的适用范围和开发流程映射

SOTIF 预期功能安全ISO21448介绍、功能安全标准ISO26262 与若干安全标准的适用范围和开发流程映射 ISO 21448 中规定了预期功能安全的设计开发流程图, 如下图所示。首先从 第 5 条出发, 进行规范和设计。该部分是将进行整车级、 系统级、 组件级等功能规…

快速了解Depop注册新方法,轻松一分钟入驻

东哥我是在几个月前第一次认识depop这个平台,原因是当时主要是让手底下的员工去操作,团队毕竟涉及到的平台都比较多,我就没那么多精力放在depop上,但却意外发现这个平台给我们带来很不错的业绩!所以东哥今天打算给大家…

阿里p8大牛三年整理出全网最全的5万字的《Java核心知识手册》

利用空余时间整理了一份《Java核心知识手册》,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。 前段时间,朋友圈分享了这份这份面试手册的初稿,在几位同学的提议下,对手册进…

线程夯死的排查及解决

最近做的业务一直是和第三方交互的业务,为了加快速度,基本上都是采用多线程,然而时不时总是发生一些推送任务莫名的卡死,知道前几天的一次发现,让我开始了线程的排查之路,希望对大家的有一定的启发和借鉴一…