关于推荐场景的一些思考

这篇具有很好参考价值的文章主要介绍了关于推荐场景的一些思考。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

由于用户数的飙升,推荐使用的技术栈也在不断升级,以满足更高并发和更大数据量的推荐场景。
推荐相关的原始数据从小几十万到几百万,到几千万,再到上亿。

推荐1.0

从全库的用户数据中load出满足条件的用户,在jvm做计算,得到推荐结果。
随着用户数量的上升,满足条件的用户越来越多,导致计算量越来越大,性能逐渐变低

推荐2.0

一边从数据库中load出满足条件的用户,一边用sql在数据库做计算,直接得到推荐结果。利用索引,性能提升五倍左右。随着用户量继续上升,性能也在逐渐变低。

推荐3.0

将数据库推荐相关的数据,通过canal同步到ES,在ES中对数据重新建模,类似宽表,依靠ES的自定义评分机制,得到推荐结果,性能提升15-20倍。
ES虽然支持大数据量的检索,但是并不适合做高并发的推荐需求。随着并发上来,性能再一次出现瓶颈。

推荐4.0

在正式推荐之前增加一个预推荐的过程,尽可能多的过滤用户,留下不超过一万的数据,然后在JVM内存中做计算,得到推荐结果。

推荐5.0

如果推荐4.0再次遇到推荐瓶颈,可以考虑通过数据建模+机器学习的方式。除此之外,将推荐相关数据自定义压缩后放到Redis中,为推荐提供数据源。文章来源地址https://www.toymoban.com/news/detail-405443.html

结论

  1. 如果推荐原始数据只有大几十万,可以直接在java内存中完成推荐。
  2. 如果推荐原始数据有几千万,一定要做一次预匹配的过程,留下不超过一万的数据,在Java中得到推荐结果即可。
  3. 如果原始推荐数据大几千万甚至上亿,需要考虑数据建模,将数据源从mysql备份到redis。
  4. ES适合做大数据量的检索,但是不适合当作缓存来抵抗高并发请求,也不适合用ES脚本做复杂的计算操作。

到了这里,关于关于推荐场景的一些思考的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 关于自动化测试用例失败重试的一些思考

    关于自动化测试用例失败重试的一些思考

    自动化测试用例失败重跑有助于提高自动化用例的稳定性,那我们来看一下,python和java生态里都有哪些具体做法? 如果是在python生态里,用pytest做测试驱动,那么可以通过pytest的插件pytest-rerunfailures来实现失败用例重跑,具体的使用方式有两种,一种是通过命令行指定pytes

    2024年02月14日
    浏览(5)
  • Oauth2.0四种授权模式适用场景和授权流程介绍以及个人的一些思考

    Oauth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准,先前曾经了解过在 spring-security-oauth2 中 Oauth 四种模式的实现,也通过 Shiro 实现了 Oauth 的授权流程。 目前 spring-security-oauth2 已经被逐步废弃, Spring 也提供了新的框架 spring-authorization-server ,整个框架基于

    2024年02月03日
    浏览(11)
  • 【C++】一些关于visual stdio,vscode,Mingw的思考 |bug

    【C++】一些关于visual stdio,vscode,Mingw的思考 |bug

    今天在做YOLOV8的C++部署时遇到的一些问题: 在进行一系列的操作之后会生成解决方案文件sln: 当然按道理到这一步之后,应该使用make命令进行下一步操作(但是我确实不会make命令,所以准备进sln来生成解决方案): 点开后会发现有一个解析命令行参数的库文件没有(因为这

    2024年02月11日
    浏览(9)
  • 关于生成式语言大模型的一些工程思考 paddlenlp & chatglm & llama

    关于生成式语言大模型的一些工程思考 paddlenlp & chatglm & llama

    生成式语言大模型,随着chatgpt的爆火,市场上涌现出一批高质量的生成式语言大模型的项目。近期百度飞桨自然语言处理项目paddlenlp发布了2.6版本。更新了以下特性:全面支持主流开源大模型Bloom, ChatGLM, GLM, Llama, OPT的训练和推理;Trainer API新增张量训练能力, 简单配置即可开

    2024年02月12日
    浏览(9)
  • ARB之后,都过于焦虑了,关于撸空投这个事的一些思考和分析。

    关于撸空投这个事的一些思考和分析。 多号+长期交互+防女巫+猜项目方心思 L2上撸毛写个交互脚本其实门槛很低,因为各大L2都在对接ETH-EVM,能在ETH主网上跑的脚本甚至接口都不用动。 也别说什么脚本容易被女巫,这都不是事,如果一个人写的脚本被查那么手动一样被查。

    2024年02月22日
    浏览(6)
  • Flink去重计数统计用户数

    1.数据 订单表,分别是店铺id、用户id和支付金额 2.可运行案例 sql: 3.运行结果 :7 (true,+U[shop-2, 2, 3]) :1 (true,+U[shop-1, 4, 8])   4.原理 Flink回撤流原理

    2024年02月03日
    浏览(13)
  • jmeter负载测试如何找到最大并发用户数

    jmeter负载测试如何找到最大并发用户数

    在性能测试中,当我们接到项目任务时,很多时候我们是不知道待测接口能支持多少并发用户数的。此时,需要我们先做负载测试,通过逐步加压,来找到最大并发用户数。那么当我们找到一个区间,怎么找到具体的值呢? 在区间中逐步增加步长,出现以下任意现象时,即是

    2024年01月21日
    浏览(11)
  • Hive SQL面试题-流失回流用户数统计

    根据用户最后一次登录记录表,统计每天的流失(一段时间未登录平台)用户数量,和回流用户(一段时间未登录平台,但今天重新登录了平台)数量。 执行环境:Hive on Spark 1 统计指标 从用户最后一次登录记录表中统计如下指标, 当日流失用户数量 、 当日回流用户数量

    2023年04月08日
    浏览(13)
  • QPS、TPS、RT、并发用户数、吞吐量

    QPS QPS Queries Per Second 是每秒查询率 ,是 一台服务器 每秒能够相应的查询次数,是对一个特定的查询服务器 在规定时间内 所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。 TPS TPS Transactions Per Second 也就是事务数/秒。一个事务是指一个客户机向服务器发

    2024年02月05日
    浏览(12)
  • 「SQL面试题库」 No_66 查询近30天活跃用户数

    「SQL面试题库」是由 不是西红柿 发起,全员免费参与的SQL学习活动。我每天发布1道SQL面试真题,从简单到困难,涵盖所有SQL知识点,我敢保证只要做完这100道题,不仅能轻松搞定面试,代码能力和工作效率也会有明显提升。 1.1 活动流程 整理题目 :西红柿每天无论刮风下雨

    2024年02月05日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包