李阳:京东零售OLAP平台建设和场景实践-编程思维

导读: 今天和大家分享京东零售OLAP平台的建设和场景的实践,主要包括四大部分: 管控面建设 优化技巧 典型业务 大促备战 -- 01 管控面建设 1. 管控面介绍 管控面可以提供高可靠高效可持续运维保障、快速部署小时交付的能力,尤其是针对ClickHouse这种运维较弱但是性能很高的OLAP核心引擎,管控面就显示得尤其重要。 2. 架构设计 管控面的整体架构设计如上图所示,从开始请求、域

苗大东:京东基于强化学习的电商搜索排序算法-编程思维

导读: 电商场景的搜索排序算法根据用户搜索请求,经过召回、粗排、精排、重排与混排等模块将最终的结果呈现给用户,算法的优化目标是提升用户转化。传统的有监督训练方式,每一步迭代的过程中优化当前排序结果的即时反馈收益。但是,实际上用户和搜索系统之间不断交互,用户状态也在不断变化,每一次交互后排序结果和用户反馈也会对后续排序产生影响。因此,我们通过强化学习来建模用户和搜索系统之间的交互过程,优化长期累

服务治理:几种开源限流算法库/应用软件介绍和使用-编程思维

一、Go time/rate 限流器 1.1 简介 Go 在 x 标准库,即 golang.org/x/time/rate 里自带了一个限流器,这个限流器是基于令牌桶算法(token bucket)实现的。 在上一篇文章讲了几种限流算法,里面就有令牌桶算法,具体可以看上篇文章介绍。 1.2 rate/time 限流构造器 这个限流构造器就是生成 token,供后面使用。 Limiter stru

图解拓扑排序+代码实现-编程思维

铺垫 有向图:我们这节要讲的算法涉及到有向图,所以我先把有向图的一些概念说一下,文章后面就不做解释啦。首先有向图节点与节点之间是用带箭头的线连接起来的。节点有出度和入度的概念,连线尾部指向的节点出度加1,连线头部,也就是箭头指向的节点入度加1。看下面这个例子,A的入度为0,出度为2,B的入度为1,出度为1,C的入度为1,出度为1,D的入度为2,出度为0。 邻接表:邻接表是存储图结构的一种有效方

杨玉基:知识图谱在美团推荐场景中的应用-编程思维

导读: 美团是一个生活服务领域的平台,需要大量知识来理解用户的搜索意图,同时对于商家侧我们也需要利用现有的知识对海量信息进行挖掘与提取,进而优化用户体验。今天分享的主题是知识图谱在美团推荐场景中的应用。主要包括以下几方面内容: 美团知识图谱介绍 美团推荐场景介绍 美团推荐中的知识应用 总结与展望 -- 01 美团知识图谱介绍 首先介绍美团的知识图谱:美团大脑。 美团所涉足的生活服务领域需要大量

池塘抽样法(水塘抽样)-均等概率随机算法-编程思维

关联题目 链表随机节点 一般语言提供了随机函数可以实现数的均等概率取,但是要考虑到本题目的链表无法直接标记,如果想直接使用下标,必然要花费空间存入数组。类推,如果是一个很大的文本流,无法在内存打开,那该如何是好?于是,我们引入池塘抽样法(又称水塘抽样) 池塘抽样法 从S中抽取首k项放入「水塘」中 对于每一个S[j]项(j ≥ k): 随机产生一个范围从0到j的整数r 若 r < k 则

AC自动机:Tire树+KMP-编程思维

简介 AC自动机是一个多模式匹配算法,在模式匹配领域被广泛应用,举一个经典的例子,违禁词查找并替换为***。AC自动机其实是Trie树和KMP 算法的结合,首先将多模式串建立一个Tire树,然后结合KMP算法前缀与后缀匹配可以减少不必要比较的思想达到高效找到字符串中出现的匹配串。 如果不知道什么是Tire树,可以先查看:图解Tire树+代码实现 如果不知道KMP算法,可以先查看:图解KMP

解读论文《Agglomerative clustering of a search engine query log》,以解决搜索推荐相关问题-编程思维

《Agglomerative clustering of a search engine query log》 论文作者:Doug Beeferman 本文将解读此篇论文,此论文利用搜索日志中的<query,url>类型点击日志,实现忽略目标url内容,基于搜索词条用户的点击数据,聚合相关搜索和连接的算法。(本解读文章个人辛苦之作,请勿随意转载 文章链接 https://www.cn

[C++]01背包问题-编程思维

基本问题 有N件物品和一个容量为V 的背包。放入第\(i\)件物品耗费的空间是\(C_i\),得到的价值是\(W_i\)。求解将哪些物品装入背包可使价值总和最大。 思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即\(F[i,v]\)表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:\(F_{i, v} = \max\{F

[模板]二分答案-编程思维

使用场景 二分答案一般使用在求解符合条件的最小值或者最大值上面,当我们遇到这两个问题的时候,一般都可以使用二分答案来解决问题。 什么是二分答案 二分答案就是通过对所有可能的答案区间进行折半查找,不断缩减范围,最终确定答案的方法。 求最小值 //求最小值 int binary(int left, int right) { int mid; while(left < right

[题解]P1783 海滩防御-编程思维

Description 链接Luogu 题目描述 WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭。于是,WLP动用了他那丰满且充实的大脑(或许更偏向前者),想出了一个好主意,他把海滩分成垂直于海岸线的若干列,在其中的几列上放置几个信号塔,试图来监视整个海滩。然而,WLP是一个

并查集——以nuist OJ P1648炼丹术为例-编程思维

并查集 定义:并查集是一种树形的数据结构,用于处理一些不相交集合的合并及查询问题 主要构成: 并查集主要由一个整型数组pre[]和两个函数find()、join()构成。 数组pre[]记录了每个点的前驱结点是谁,函数find(x)用于查找指定结点x属于哪个集合,函数join(x,y)用于合并两个结点x和y。 作用: 并查集的主要作用是求联动分支数。 代表元: 用集合中的某个元素来代表这个集合,

服务治理:常用限流算法总结-编程思维

服务治理:常用限流算法总结 一、为什么会有限流 限流,看字面意思,限制流动。 为什么要限制流动? 比如高速公路出现了事故,交警会对高速路车辆的进入进行指挥和限制。 发生了一些意外情况,才可能要限制流动。等恢复正常情况后,就解除限制。不可能无缘无故的限制流动,毕竟限制会影响正常系统运行。 在举一个例子: 足球馆看足球比赛,足球馆的场地大小是固定的,座位数是固定的,能容纳看球人数总量是有限的。如果超

图解Tire树+代码实现-编程思维

简介   Trie又称为前缀树或字典树,是一种有序树,它是一种专门用来处理串匹配的数据结构,用来解决一组字符中快速查找某个字符串的问题。Google搜索的关键字提示功能相信大家都不陌生,我们在输入框中进行搜索的时候,会下拉出一系列候选关键词。   上面这个关键词提示功能,底层最基本的原理就是我们今天说的数据结构:Trie树   我们先看看Tire树长什么样子,以单纯的单词匹配为例,首先它是一棵多

算法图解笔记-编程思维

研一的寒假,在家好好地补一下算法,先看的算法图解,从2022/1/26到2022/2/9 算法简介 算法是一组完成任务的指令 二分查找 二分查找必须有序,思路为:找中间,若没找到则往靠近的一边找,终止条件为左大于右或者右小于左(这里我用的python3,与书上python2不同) arr_list = [1,6,8,11,24,33,57,89,90,99] def binary_search(

Adjacent Swaps-编程思维

Adjacent Swaps https://atcoder.jp/contests/abc250/tasks/abc250_c           Solution 这是一个典型的利用双向链表来提供性能的问题。 利用双向链表,需要注意: (1)添加 表头 和 表尾 节点。 (2)抽象出交换相邻节点,需要用到的 prev 和 next_next节点。   #include <bi

图解KMP字符串匹配算法+代码实现-编程思维

  kmp算法跟之前讲的bm算法思想有一定的相似性。之前提到过,bm算法中有个好后缀的概念,而在kmp中有个好前缀的概念,什么是好前缀,我们先来看下面这个例子。   观察上面这个例子,已经匹配的abcde称为好前缀,a与之后的bcde都不匹配,所以没有必要再比一次,直接滑动到e之后即可。   那如果好前缀中有互相匹配的字符呢?      观察上面这个例子,这个时候如果我们直接滑到好前缀之后,则

来一起写一个跳表吧-编程思维

  跳表全称叫做跳跃表,简称跳表,是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序列表上面增加多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也提高插入和删除的性能,redis中的有序集合set就是用跳表实现的,面试时候也经常会问。          这里我们原始数据个数n=10,以间隔k=2建立索引,则第一层索引10/2=5个,第二层⌈10/2^2

图解BM(Boyer-Moore)字符串匹配算法+代码实现-编程思维

简介 本篇文章主要分为两个大的部分,第一部分通过图解的方式讲解BM算法,第二部分则代码实现一个简易的BM算法。 基本概念 bm是一个字符串匹配算法,有实验统计,该算法是著名kmp算法性能的3~4倍,其中有两个关键概念,坏字符和好后缀。 首先举一个例子 需要进行匹配的主串:a b c a g f a c j k a c k e a c 匹配的模式串:a c k e a c 坏字符 如下图所示,从模

如何提升推荐系统的可解释性?京东智能推荐卖点技术全解析-编程思维

导读:京东智能商客之推荐卖点是基于NLP的产品,目前已广泛地助力和赋能于京东商城的各个平台。今天和大家分享一下自然语言处理如何在工业界落地实现。主要围绕以下5个方面展开: 推荐卖点技术背景 架构描述 核心AI技术 模型研发与实践 产品的落地与回报 -- 01 推荐卖点技术背景 1. 什么是推荐卖点,用推荐卖点能做什么事情? 如何提升推荐系统的可解释性?京东智能推荐卖点技术全解析 推荐卖点是一