【实践篇】推荐算法PaaS化探索与实践

2023-11-13

作者:京东零售 崔宁

1. 背景说明

目前,推荐算法部支持了主站、企业业务、全渠道等20+业务线的900+推荐场景,通过梳理大促运营、各垂直业务线推荐场景的共性需求,对现有推荐算法能力进行沉淀和积累,并通过算法PaaS化打造通用化的推荐能力,提升各业务场景推荐赋能效率,高效赋能业务需求。

  • 为什么是PaaS化:首先,我们认为PaaS化是一个比较好的解决办法和方案,因为它提供了一种解决超级公司复杂业务的可变化、可扩展、可复用能力的基础框架,在这样的框架下,可以极大的释放重复劳动力,实现业务的高效提升;其次,我们也看到一些行业中的其它玩家,他们也是在自己的业务中台基础上进行PaaS化,并通过PaaS化提供的能力不断的孵化自己的创新项目,去减少他们的人力投入,减少他们的投入成本,而且他们还推出了很多用于商用的PaaS化工具,为实现更大的社会价值去创造机会;因此,我们认为PaaS化应当是我们当前会选择的一个比较好的解决问题方法;
  • 如何助力推荐业务能力提升通过梳理推荐场景下的共性需求,在可变化、可扩展、可复用能力的基础框架内,我们对业务需求进行分类和能力抽象,提供阶梯化的应对策略;针对通用类需求,我们提供一站式个性化推荐能力,满足业务快速接入的诉求;针对定制类需求,通过打造高效易用的PaaS化工具,一方面,减少算法人力的投入,另一方面,缩短业务需求交付的周期;

2. 方案设计

在对推荐业务需求梳理的过程中,我们将业务方诉求归结为以下两个大类:

  • 新增推荐位类业务需求
  1. 依据推荐场景划分,大致可以分为首推、我京、商详、购物车、短视频、直播、频道等推荐场景的接入;

  2. 依据个性化推荐能力划分,大致可以分为数据接入、召回、排序、过滤/调权、多样性、渲染等推荐算法模块以及AB实验、数据分析能力;

  3. 依据运营诉求划分,大致可以分为提权,定投,非定投,定坑等扶持能力;

  • 已有推荐位推荐策略迭代优化类业务需求
  1. 效果提升类业务需求:大致可以分为新增商品底池、召回新增数据源、业务标签/特征因子接入模型、扶持类、数据分析等;

  2. 用户体验类业务需求:大致可以分为调权/过滤、负反馈、多样性排序、新颖性、多素材穿插等;

  3. 可运营类需求:大致可以分为特殊商品流量扶持、赛马机制、提权,定投,定坑等可运营能力;

为了更高效的支持上述业务需求,推荐算法PaaS化围绕数据/算法组件/数据分析/算子/场景模板/服务6个PaaS化方向进行建设,以缩短需求交付周期为目标进行建设,切实提升使用者感知。

2.1 推荐算法PaaS化能力分类

作为个性化推荐能力的提供者,我们希望通过业务赋能技术,通过推荐算法PaaS化,将推荐系统透明的展示给大家,在重新认识推荐系统的基础之上,更好的推演未来;我们将推荐算法PaaS化分为数据/算法组件/数据分析/算子/场景模板/服务共6个一级能力、20个二级能力,具体如下

上述分类是基于我们现阶段对业务需求的认知,随着推荐算法PaaS化的不断推进,定义及分类也会不断迁移;

2.2 推荐算法PaaS化能力建设

2.2.1 推荐算法组件化

推荐算法组件化是平台化、配置化的前置步骤,通过组件化,我们可以将算法能力可视化,让沉淀在代码中的一些信息展示在公众面前,让算法能力成为一种真正可传承的资产,高效赋能业务需求;具体而言,我们通过将算法能力抽象及封装,集成在一个可运行的代码包中,使用者通过算法组件的介绍及使用说明,就可以“插拔式”的应用在自己的业务领域;

算法组件化建设主要包含两部分,一是推荐算法PaaS化能力建设者将推荐算法能力进行集成,二是推荐算法PaaS化能力使用者将算法组件应用在任何想应用的场景中,而且使用者自己就可以把握需求交付的节奏;

推荐算法组件化示意图

2.2.2 通用算法能力平台化

平台化的主要目的是简化推荐算法组件使用的复杂度,因此,我们对平台工具的要求是具备可用、可视、可改的特点;值得注意的是,平台化这里我们可以分为两个大类,其一是推荐能力全链路的平台化,目的是能够快速支持新增推荐位这类业务需求;其二是推荐算法模块的平台化,通过这样的平台工具,希望能够快速支持已有推荐位推荐策略迭代优化类业务需求;

  • 针对推荐能力全链路的平台化,我们和产品、架构、平台侧合作,通过打造丰富的推荐场景模板,并提供通用的个性化分发能力,满足业务快速接入的诉求;具体来说,对于业务方对不同推荐场景接入的不同诉求,PaaS化项目组已经建设了诸如全站商品综合推荐、主sku相似相关推荐、业务灵活底池推荐、全渠道门店+商品推荐、小助手商品推荐等多类通用模板,在这些模板上,推荐算法PaaS化依据可变化、可复用的基础逻辑,通过提供丰富的推荐策略供业务方选择使用,覆盖更多新增推荐位需求;

场景模板列表示意图

  • 针对推荐算法模块的平台化,我们计划和平台侧合作,通过建设一批提效工具,提高算法同学的工作效率,缩短需求的交付周期;

2.2.3 通用算法策略配置化

为了提升算法人员支持业务需求的效率,立足目前的推荐系统,同推荐架构合作,完成建设通用算子库,包括常用的取数、召回、排序、过滤、多样性等算子;在未来,这批通用算子可以直接进入小流量实验验证效果,降低算子配置的成本,提高代码的复用度,达到缩短需求交付周期的目标;

实现通用算法策略配置化前后的流程对比

2.2.4 定制化算法策略低代码开发

在支持业务需求的过程中,我们发现一个小小的算子开发也要耗费算法人员大量的时间,包括不限于:前期的开发沟通、策略的开发、环境部署、策略的验证及算子上线等,我们希望将开发流程进行精简,从而达到提效的目标,基于此,同推荐架构、平台达成共识,建设面向算法等专业人员的低代码开发工具,使定制化需求能够快速的通过低代码环节进行快速开发和发布上线;

整体思路,参考大数据的 easy studio 系统

2.2.5 推荐算法PaaS化工具建设

这里我们主要考虑定制类需求,比如召回新增数据源、敏感商品过滤、case排查工具等;对于定制类需求,我们希望提供一些高效易用的PaaS化工具,一方面,解放算法的重复劳动力,另一方面,缩短业务需求交付的周期;

3. 落地实施

3.1 案例一 场景模板个性化推荐能力建设

3.1.1 场景模板开发

场景模板作为承接新增推荐位需求的一种工具,直接开放给业务方使用,针对不同推荐场景,我们建设了丰富的模板供业务方选择使用,包括:全站商品综合推荐、商详、购物车、直播、短视频等,在每个模板上,我们配置了基础的推荐分发策略,业务方可以根据自己的需求选择使用哪些推荐策略;下面以商品聚合tab推荐为例,介绍模板个性化推荐能力的落地实施情况;

首先,在模板建设的前期,我们会和产品共同确认类似需求的量级,作为评估是否建设模板的依据;比如说,我们评估商品聚合tab推荐这类需求在每个季度平均会存在3-4个,且该类需求对算法能力的要求基本相似,因此,我们认为商品聚合tab推荐是属于通用类且比较频繁的一类需求,需要建设模板高效承接该类需求;

其次,作为算法人员,我们需要针对该类需求进行算法能力的梳理,通过过去十几个类似需求对推荐能力的要求,大致可以整理出一版功能完善,覆盖度极高的算法方案;以商品聚合tab推荐为例,在数据接入时,大部分需求中,业务方提供的数据是包含商品池(did)、虚拟类目/品牌(vcateid)及真实类目/品牌(cate_id)的底池数据,而在召回时,往往通过冷启和画像两路召回完成虚拟类目/品牌及真实类目/品牌的召回,再通过一个线性排序模型完成rank阶段的打分,辅以过滤、调权及多样性策略完成整个推荐分发能力的搭建,通过上述描述不难发现,如果大部分需求都是按照上述流程推进,那我们就可以设计完善的算法方案高效承接类似需求;

然后,在算法方案评审完成的基础上,由架构侧完成功能的开发,由平台侧完成前端页面的开发;

最后,当再存在类似业务需求时,我们对业务方开放模板能力,业务方自己就可以通过点选式的页面完成需求,且这个过程的进度均由业务方自己把控;

场景模板开发流程图

3.1.2 全自动召回词表/索引库能力建设

在我们承接业务需求的过程中,大部分情况下,每个业务方都有自己的商品底池,面对不同的商品底池,我们需要根据商品底池的变化动态的调整召回词表或者索引库,假如我们想要个性化分发能力完全自动化,那就需要打造一套新的召回词表/索引库构建工具,基于此,我们联合平台侧共同提出了一键底池/索引库创建落地方案,具体来说,算法人员将模板上所需的所有召回词表/索引库生产脚本进行抽象封装,预留入参及出参,平台侧通过前端界面获取具体召回词表/索引库创建的命令,并将该命令作为入参输入算法人员预先封装好的代码包,为了每天定时更新任务,同时自动创建BDP调度任务,代码包的出参通过DUCC回传给平台侧,作为后续创建词表/索引库的依据,从而完成召回词表或者索引库的全自动化创建;

一键底池/索引库创建落地实施

3.1.3 多业务排序模型支持

为了覆盖更多业务需求,在排序模块我们主要考虑不同业务模式下对排序能力的要求,比如,在下沉场景,更多的是需要提升UCVR指标,而主站的一些业务需求希望提升用户的UCTR指标,因此,为了兼顾多样的业务需求,我们梳理了三个常用的模型,分别是主站的多领域排序模型,特价版的下沉排序模型以及ToB的企业排序模型,将上述三个模型集成到每个模板里,并提供每个模型的介绍及使用说明,业务方可以根据需求的具体内容进行选择;

排序模型选择

3.2 案例二 打造高效易用的PaaS化工具

工具的合理使用,不仅可以提高我们的工作效率,还可以使我们的工作变得更加轻松;这里以我们在用户体验中打造的啄木鸟为例,为大家讲解PaaS化工具在业务中的应用;(名词解释之啄木鸟:支持离线过滤/解禁自主配置的平台化工具)

3.2.1 需求梳理

在用户体验模块,常常有业务需求需要对商品、类目、敏感词等进行过滤,或者在某一段时间内进行过滤,时间过后要求再释放出来;在没有打造啄木鸟之前,我们接到类似需求后,会手动将商品、类目或者是敏感词写到一个文本中,然后再将文本push到hdfs的某一个路径下,第二天的BDP调度任务执行时,会更新数据表,达到过滤或者释放的目的;观察上述流程不难发现,手动修改文本极易导致出错,无心的删除或者增加可能就会导致第二天的调度任务挂掉,不稳定;另外,有新人接手这样的需求后,培训成本极高,需要手把手教几遍才敢把这样的工作交给他,操作难度大;

为了解决这样的难题,我们计划打造一款高效易用的PaaS化工具,这样的工具可以提供稳定的增删改查,而且还要操作简单,最好是一看就知道怎么操作,基于这样的想法,我们联合平台一起打造了啄木鸟;

3.2.2 啄木鸟的设计及开发

设计思路:

通过jrec平台,能够将所有的离线过滤/释放进行paas化配置,平台需要具备如下能力:

  1. 啄木鸟平台提供过滤、释放配置入口,由jrec平台提供;

  2. 在平台配置的长期规则可以下沉至离线,降低对线上服务资源的占用;

  3. 离线过滤能够灵活配置,且支持离线释放,减少手工操作成本;

方案设计:

整体方案设计如下图所示,通过平台WEB界面配置后,数据经DUCC流转到离线计算任务部分,待离线计算任务完成后,导数到jimdb进行缓存,线上配置过滤服务或者ps的过滤算子后即可完成商品、类目或者是敏感词的过滤与释放;

啄木鸟落地实施

3.3.3 啄木鸟使用

啄木鸟建设好交付对应的算法人员进行使用,我们也提供了详细的使用手册供新人学习;

4. 实践经验总结

在推荐算法PaaS化探索与实践的过程中,我们作为能力的提供者和能力的使用者,一方面从能力提供者的角度出发,总结梳理出需要提供的PaaS化工具,另一方面,从能力使用者的角度出发,去评估工具是否高效易用;

作为能力的提供者:通过对业务需求的梳理及PaaS化建设者长期的业务经验,立足现有推荐系统,通过对推荐算法的组件化,重新认识系统,重新规划流程;

作为能力的使用者:从被动到主动,切实感知到工具对效率的提升,善于利用工具,通过PaaS化工具,轻轻松松完成复杂的业务需求,只要想干,就可以自己把握需求交付的节奏;

5. 未来工作展望

我们希望在长期主义的复利下,将推荐算法PaaS化积累成一个奇迹;基于我们目前对业务需求的认知,未来,我们将从如下几个方面不断深耕:

5.1 场景模板分层个性化推荐能力建设

在未来一段时间里,我们会针对模板的个性化能力进行升级,基于现在基础版的现状下,提供进阶版及高阶版能力,满足业务更多样的诉求;

5.2 打造高效易用的PaaS化工具

5.2.1 单素材服务能力建设

首先需要阐述一下我们为什么要建设单素材服务能力,一个重要的原因是场景模板仅能支持新增推荐位需求,且该类需求不能很复杂,而对于复杂的新增推荐位需求或者是已有推荐位的迭代优化场景模板无法提供支持;基于此,我们提出了服务复用的概念,具体来说,我们计划将单素材打造成一个一个的服务,算法人员专注的对服务进行全方位优化,而需要进行效果优化的新增推荐位需求以及已有推荐位的迭代优化则通过服务进行赋能,此举不仅可以减少算法人力的投入,还可缩短业务需求交付的周期;

5.2.2 算法组件平台化进一步升级

为了提升推荐算法PaaS化能力使用者的使用体验,我们计划将部分通用的算法能力平台化,以摆脱目前仍然需要算法人员手动复制的操作工作,真正实现点选式的操作方法,因此,后续我们也会联合平台侧,共同打造这样的平台能力,进一步释放算法人员的重复劳动力;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【实践篇】推荐算法PaaS化探索与实践 的相关文章

  • Elasticsearch与Clickhouse数据存储对比

    1 背景 京喜达技术部在社区团购场景下采用JDQ Flink Elasticsearch架构来打造实时数据报表 随着业务的发展Elasticsearch开始暴露出一些弊端 不适合大批量的数据查询 高频次分页导出导致宕机 存储成本较高 Ela
  • 云计算的三种服务模式:IaaS,PaaS和SaaS

    云 其实是互联网的一个隐喻 云计算 其实就是使用互联网来接入存储或者运行在远程服务器端的应用 数据 或者服务 云也是分层的 任何一个在互联网上提供其服务的公司都可以叫做云计算公司 其实云计算分几层的 分别是Infrastructure 基础
  • JDK 17 营销初体验 —— 亚毫秒停顿 ZGC 落地实践

    前言 自 2014 年发布以来 JDK 8 一直都是相当热门的 JDK 版本 其原因就是对底层数据结构 JVM 性能以及开发体验做了重大升级 得到了开发人员的认可 但距离 JDK 8 发布已经过去了 9 年 那么这 9 年的时间 JDK 做
  • 推荐算法实战项目:FNN 原理以及案例实战(附完整 Python 代码)

    本文要介绍的是FNN模型 出自于张伟楠老师于2016年发表的论文 Deep Learning over Multi field Categorical Data 论文提出了两种深度学习模型 分别叫做FNN Factorisation Mac
  • 多租户SaaS管理系统框架设计:多租户,多组织,用户区别

    数商云 已认证的官方帐号 转载自 多租户SaaS管理系统框架设计 多租户 多组织 用户区别 知乎 今天谈下云平台下的多租户架构 不论是在公有云还是私有云平台 是设计一个面向最终组织或用户的SaaS应用还是面向业务系统的PaaS平台 多租户都
  • 推荐系统综述:初识推荐系统

    目录 1 引言 2 发展历史 3 研究现状 4 推荐方式和效果评估 4 1 评分预测 4 2 TopN推荐 5 推荐算法 5 1 基于用户行为推荐 5 1 1 基于用户的协同过滤 User Based CF 5 1 2 基于物品的协同过滤
  • 【干货】今日头条的新闻推荐算法原理

    信息越来越海量 用户获取信息越来越茫然 而推荐算法则能有助于更好的匹配海量内容和用户需求 使之更加的 有的放矢 为让产业各方更好的了解算法分发的相关技术和原理 我们特整理了当下最具影响力的平台的相关干货 和各方分享 本期微信 我们将推荐影视
  • 毕业设计-SpringBoot-基于推荐算法的商城管理系统

    环境 开发工具 idea 数据库 MySQL5 7 jdk1 8 架构 SpringBoot 前端HTML 主要功能 前台商城系统包含首页门户 商品分类 新品上线 首页轮播 商品推荐 商品搜索 商品展示 购物车 订单结算 订单流程 个人订单
  • 《云计算-刘鹏》学习笔记-第一章:大数据与云计算

    文章目录 0 笔记说明 1 大数据时代 2 云计算 大数据的计算 3 云计算发展现状 4 云计算实现机制 5 云计算压倒性的成本优势 0 笔记说明 参考书籍为 云计算 第三版 作者为刘鹏 1 大数据时代 大数据的定义如下 海量数据或巨量数据
  • Spring Boot + Vue的网上商城之基于用户的协同过滤的商品推荐实现

    Spring Boot Vue的网上商城之基于协同过滤的商品推荐实现 协同过滤算法设计思路 构建用户 商品评分矩阵 将用户的购买行为和评价记录转化为一个用户 商品评分矩阵 矩阵中的每个元素表示用户对商品的评分 计算用户之间的相似度 通过计算
  • 推荐系统(3)——最经典的推荐算法(协同过滤算法原理部分)

    一 最经典的推荐算法 协同过滤推荐算法 Collaborative Filtering 算法思想 物以类聚 人以群分 基本的协同过滤推荐算法基于以下假设 跟你喜好相似的人喜欢的东西你也很有可能喜欢 基于用户的协同过滤推荐 User base
  • 图书推荐管理系统Python,基于Django和协同过滤算法等实现

    一 介绍 图书推荐系统 图书管理系统 以Python作为开发语言 基于Django实现 使用协同过滤算法实现对登录用户的图书推荐 二 效果展示 三 演示视频 视频 代码 https www yuque com ziwu yygu3z gq5
  • 从0到1搭建自己的脚手架(java后端)

    一 脚手架是什么 脚手架是一种基础设施工具 用于快速生成项目的框架代码和文件结构 它是一种标准化的开发工具 使开发人员能够在项目的早期阶段快速搭建出一个具备基本功能和结构的系统 二 脚手架的意义 主流的微服务架构体系下很多公司会将原有的单体
  • 【推荐算法】双塔模型代码(tensorflow)

    推荐算法 双塔模型介绍 MachineCYL的博客 CSDN博客 上文介绍了双塔模型的原理和结构 这篇介绍一下双塔模型的代码实现 我使用的是tensorflow来实现双塔模型和模型训练 一 前期准备 tensorflow使用的版本是2 0
  • 【实践篇】领域驱动设计:DDD工程参考架构

    背景 为什么要制定参考工程架构 不同团队落地DDD所采取的应用架构风格可能不同 并没有统一的 标准的DDD工程架构 有些团队可能遵循经典的DDD四层架构 或改进的DDD四层架构 有些团队可能综合考虑分层架构 整洁架构 六边形架构等多种架构风
  • vagrant启动openshift

    1 Install Vagrant 2 Install VirtualBox Ex yum install VirtualBox from the RPM Fusion repository 3 In your bashrc file or
  • 推荐算法(Recommended Algorithms)

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 一站式体验涂鸦云开发

    涂鸦智能近些年通过深耕物联网领域 沉淀了强大的IoT底层技术 稳定全面的平台能力 持续的创新能力和深厚的行业落地经验 成为更多企业实现智能化建设及应用能力打造的最佳合作伙伴 正在携手开发者共同推动万物互联时代的到来 为满足各类软硬件厂商 个
  • 不做数据采集,不碰行业应用,专注数字孪生PaaS平台,飞渡科技三轮融资成功秘诀

    12月15日 飞渡科技在北京举行2023年度投资人媒体见面会 全面分享其产品技术理念与融资之路 北京大兴经开区党委书记 管委会主任常学智 大兴经开区副总经理梁萌 北京和聚百川投资管理有限公司 以下简称 和聚百川 投资总监严玉婷 北京天穆私募
  • Cloud Foundry 解释

    所以我一直在阅读 Cloud Foundry 但我仍然对它是什么感到困惑 无论如何 这是我对 CF 上的 PaaS 的看法 希望你们能告诉我我是否错了 并更好地解释一下 Microsoft Azure 或 Google AppEngine

随机推荐

  • Tomcat及项目部署

    一 Tomcat是什么 Tomcat 是基于 Java 实现的 个开源免费 也是被 泛使 的 HTTP 服务器 二 下载安装 官 站 https tomcat apache org 选择其中的 zip 压缩包 下载后解压缩即可 解压缩的 录
  • 编译linux内核(一)

    关于linux启动流程 1 第一阶段 BIOS 1 1 硬件自检 1 2 启动顺序 2 第二阶段 主引导记录 2 1 主引导记录的结构 2 2 分区表 3 第三阶段 硬盘启动 3 1 情况A 卷引导记录 3 2 情况B 扩展分区和逻辑分区
  • 图像数据格式uint8与double以及图像类型转换

    1 图像数据格式 double 64位 matlab中数值一般采用double型存储和运算 uint8 8位无符号整数 为了节省存储空间 matlab为图像提供的特殊数据类型 imread把灰度图像存入一个8位矩阵 当为RGB图像时 就存入
  • 慕课第6周在线第2题 计算阶乘的和v2.0

    计算阶乘的和v2 0 4分 题目内容 假设有这样一个三位数m 其百位 十位和个位数字分别是a b c 如果m a b c 则这个三位数就称为三位阶乘和数 约定0 1 请编程计算并输出所有的三位阶乘和数 函数原型 long Fact int
  • 【参加CUDA线上训练营】共享内存实例1:矩阵转置实现及其优化①

    参加CUDA线上训练营 共享内存实例1 矩阵转置实现及其优化 1 完整代码 2 原理介绍 2 1 将各block 线程对应元素放入共享内存tile 2 2 实现转置 2 3 在此基础上修改 参考文献 本文参考Nvidia官方blog An
  • 唐伯虎诗集

    妒花 昨夜海棠初着雨 数点轻盈娇欲语 佳人晓起出兰房 折来对镜化红妆 问郎花好奴颜好 郎道不如花窈窕 佳人闻语发娇嗔 不信死花胜活人 将花揉碎掷郎前 请郎今日伴花眠 观鳌山 禁卫森严夜寂寥 灯山忽见翠召荛 六鳌并驾神仙府 双鹊连成帝子桥 星
  • 【H5】 图片拖入浏览器readAsDataURL与createObjectURL处理图片:

    H5 外部图片拖入浏览器 效果图如下 const file new FileReader 读到文件对象的信息 file readAsDataURL oFile 读取到文件所以的url 需要转入对象 方法一 实现代码如下
  • MongoDB下载安装与测试连接(windows)

    一 MongoDB下载 MongoDB为Windows提供了两种安装方式 分别是msi和zip方式 msi方式对4 0以上版本进行了优化 而3 x版本则需在安装后手动进行配置 zip方式解压即安装 但需要配置 故4 0以上版本推荐使用msi
  • 使用citavi快速搜索论文、下载论文

    第一步 点击在线搜索 第二步 一般需要添加下需要的数据库 这里我们添加常用的arxiv 第三步 输入需要搜索的论文名字 也可以通过作者来搜索 以及选择年份等等 第四步 添加搜索到的论文 最后 打开这个pdf 点击保存一个复制 这里也可以通过
  • 逆向某视频直播软件,破解收费观看

    https juejin im post 5cbd7bc06fb9a0324e4a376c
  • 深度操作系统Deepin V20正式版

    前言 深度科技在9月11日发布了 深度操作系统Deepin V20正式版 Deepin Desktop Community 名如其意 深度桌面系统社区版 对个人用户完全免费 没用上UOS企业版及个人版的完全可以安装Deepin V20尝尝鲜
  • vue-qr 二维码 批量 导出

    参考Vue批量生成二维码并打包下载 首先我们需要安装三个插件 jszip zip打包 file saver 文件保存 vue qr 二维码 完整代码如下 src components QRcode index vue
  • flex布局(项目-即子级)

    基本概念 采用Flex布局的元素 称为Flex容器 flex container 简称 容器 它的所有子元素自动成为容器成员 称为Flex项目 flex item 简称 项目 项目的属性 以下6个属性设置在项目上 order flex gr
  • DataOutputStream 类 和DatainputStream类 的主要方法简单介绍,及代码演示。

    DataOutputStream数据输出流 将java基本数据类型写入数据输出流中 并可以通过数据输入流DataInputStream将数据读入 DataOutputStream类 构造函数 DataOutputStream OutputS
  • Qt在QTableWidget、View等表格中添加右击菜单

    先来看效果图 鼠标点在哪里菜单显示在哪里 实现代码 在构造函数中设置右击菜单 并关联右击的槽函数 ui tableWidget gt setContextMenuPolicy Qt CustomContextMenu 设置右击菜单 conn
  • cov() missing 1 required positional argument: ‘other‘报错

    原代码 prets np dot weights log returns mean 252 计算年化风险 diag是获取对角线的数据 pvols np diag np sqrt np dot weights np dot log retur
  • 定制android ROM禁止SIM卡状态改变系统弹出提示框

    按上一篇文章 搭建可修改android 系统的环境 http blog csdn net karts article details 64124098 SIM卡状态改变系统弹出提示框 是在 Keyguard 这个apk里面进行的 1 cop
  • go语言基础-----19-----Context使用原则、接口、派生上下文(select的多路复用可以参考这里理解更好)

    1 Go语言Context介绍 为什么需要 Context 每一个处理都应该有个超时限制 需要在调用中传递这个超时 比如开始处理请求的时候我们说是 3 秒钟超时 那么在函数调用中间 这个超时还剩多少时间了 需要在什么地方存储这个信息 这样请
  • 安全意识培训:如何提高员工网络安全意识?

    随着网络技术的不断发展和应用 网络安全已经成为企业必须关注和重视的问题 尤其是在今天 企业数字化转型的大背景下 网络安全问题日益凸显 对于企业而言 员工是企业安全的第一道防线 提高员工的网络安全意识已经成为企业安全管理的关键所在 本文将从以
  • 【实践篇】推荐算法PaaS化探索与实践

    作者 京东零售 崔宁 1 背景说明 目前 推荐算法部支持了主站 企业业务 全渠道等20 业务线的900 推荐场景 通过梳理大促运营 各垂直业务线推荐场景的共性需求 对现有推荐算法能力进行沉淀和积累 并通过算法PaaS化打造通用化的推荐能力