算法
文章平均质量分 88
源远流长
余镇源的技术博客:主要在搜索引擎,大数据,推荐,后端领域
展开
-
推荐策略平台
推荐策略平台一、项目背景与目标1、背景概况 推荐业务接⼝内部逻辑⿊盒,且耦合在⼀起,重⽤困难,开发⾮常耗时。 接⼝协议按需制定,没有标准化,新来一个业务开发完接⼝都要重新找⼈对接⼀遍 越来越多的业务推荐业务场景,开发效率慢,重造轮子成本明显太高 2、目标成果 减少⼈力和时间成本:对接通⽤接⼝,只需一份⽂档即可对接,减少沟通成本;拆成模块,配置成图即完成⼀个业务,提高搭建服务效率 为决策提供便利:决策者可通过业务流程图,结合报表,调整和优化⽅方案,摆...原创 2020-09-29 19:06:27 · 896 阅读 · 0 评论 -
ABTEST实验平台
ABTEST实验与闭环一、单层实验一般早期的ab-test都是单层实验,逻辑非常简单,比如使用userId/deviceId做hash然后取模,将流 量打在0-99,做成100份。有如下问题:1、扩展性差,只能同时支持少量实验。但是以数据驱动的业务,需要极快的创新速度,大量的创新 需要被测试,会严重delay业务。2、如果在单层同时进行多个实验,实验之间不是独立事件,并行的时候,同一个策略,只能进行一 个实验,如果多个并行支持,无法实现。不同策略之间也有影响。3、流量饥饿问...原创 2020-09-29 16:51:32 · 2493 阅读 · 0 评论 -
推荐系统实时推荐架构演进
推荐系统实时召回引擎升级问题背景 用户体验问题,由于离线推荐性能问题,离线推荐大部分引擎只计算昨天活跃用户,当用户较前几天活跃时候,当用户打开app,触发拿到的推荐数据其实是比较老旧的; 离线推荐存量问题,在feed架构存储的数据也有比较多,原有设计都是为了避免离线推荐数据消费完无数据可推荐,但这个对于业务的调整都没感知,比如内容敏感下架,用户兴趣变化; 推荐数据不足,离线推荐的数据会很快受到用户的刷新过量快速消费完,导致召回源数据不足,多样性不够,需要补充引擎; .原创 2020-09-24 19:11:53 · 2141 阅读 · 0 评论 -
音频UGC内容推荐系统的思考
2018到2019年,荔枝推荐平台架构演进荔枝平台架构与未来规划原创 2020-03-25 17:56:05 · 456 阅读 · 0 评论 -
看solr源代码的笔记,主要是代码简单解析
配置solr 对一个搜索请求的的流程在solrconfig.xml会配置一个handler。配置了前置处理组件preParams,还有后置处理组件filterResult,当然还有默认的组件 preParams explicit 10 0原创 2011-11-12 18:32:22 · 8161 阅读 · 5 评论 -
推荐视频反馈系统设计
反馈系统设计日志收集: 展示:带多一个vids参数,表示展示相关的视频集合,按展示顺序拼接起来 show_vids=12_32_32_32点击: 现有from_vid=1&to_vid=2 从哪个视频点击到哪个视频情况 日志计算:(MR程序实现)from_vid—>to_vid 的点击率存储:原创 2014-03-07 18:37:38 · 3339 阅读 · 0 评论 -
单机对大数据的排序处理
引用请声明原文:http://blog.csdn.net/duck_genuine/article/details/9155705由于引用数据以hash的方式放在不同的文件里需要将其合并排序写到一个文件。数据量暂时是有几千万级别。文件的每行是一条json格式的记录,格式如下: { "_id" : { "$oid" : "51ace243bb15094b6c40ada5" }, "c原创 2013-06-23 16:49:47 · 4495 阅读 · 4 评论 -
监控服务程序调度算法实现
转贴请声明原文:http://blog.csdn.net/duck_genuine/article/details/8276169监控服务程序实现调度算法完成nginx服务监控(从nginx配置解析出对应的服务作为监控对象之五,还有可以从数据库里读出待监控的服务)与更新服务后的监控算法: 处理休眠队列---------将所有的待监控服务记原创 2012-12-09 23:25:17 · 2381 阅读 · 0 评论 -
SIFT算法学习心得
这篇文章主要介绍 SIFT 算法。希望通过对 SIFT 算法的总结来更加深入地了解“尺度不变特征变换”,除此之外,也加深来对 SURF 算法的理解。附件:SIFT—Scale Invariant Feature Transform1 SIFT 发展历程及主要思想SIFT算法由D.G.Lowe 1999年提出,2004年完善总结。后来Y.Ke将其描述子部分用PCA代替直方图的方式转载 2012-08-30 12:54:41 · 1541 阅读 · 0 评论 -
lucene实现的top k优先队列PriorityQueue简单原理
Lucene里使用比较多的一种集合就是这个PriorityQueue比如取前10条相关结果。jdk本身也有一个优先级队列,为什么lucene要实现自己的呢。。后面看了jdk的 PriorityQueue ,它是使用最大堆来实现的,而且它的长度是什么可以变长的,就是如果我要一个top k的数据,但它会将所有数据都存起来,当然小数据无所谓,但如果达到几十万,几百万的时候原创 2012-05-23 23:16:51 · 3353 阅读 · 1 评论 -
统计外站的搜索关键词的词频
统计外站的搜索关键词的词频 通过外站的链接主要是百度,谷歌,soso等,每天都有通过记录在日志文件中,每天会运行程序进行统计。每天产生有10多个文件,每个文件1G左右, 每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。要按照解析query中的关键词,并对统计其频度,取出搜索次数最多的前1000个关键词。第一次直接遍历所有文件并按照Map方式原创 2010-09-28 16:03:00 · 2484 阅读 · 0 评论 -
使用素数解决表示多个标签组合查询
某一个商品可能有多个标签属性,比如A,B,C,D,E,F,G,H每个属性分别有出现与不出现的情况。。所有是一个组合的关系 。用一个二进制的字符串或者数字来表示出现与不出现,但是这样要搜索包含某个标签 的时候,得枚举所有的情况,然后以OR的关系去搜索。这样肯定麻烦。。既然要为了存储与索引搜索方便,我暂时想用素数来解决。。对每一个标签分配一个素数,比如A-》2,B->3,C->5,D-原创 2012-04-06 00:56:43 · 2757 阅读 · 4 评论 -
solr FieldType代码
今天在群里看到有人在问:如何用solr设置某个字段是索引但不分词的?一想到的就是solr.strField类型,突发其想看一下源代码 StrField简单的继承父类FieldType,其中有个分析字段,如果在配置中没有设置这个类型的索引与查询分词器,就会使用默认的分词器DefaultAnalyzer ,如下,这个分词器没有进行切词,不过有限定字符长度 。小于这个长度的字符串会原串保存下原创 2011-11-16 10:51:00 · 2295 阅读 · 0 评论 -
Solr Cache使用介绍及分析
<br /> <br />原文:http://www.cnblogs.com/wycg1984/archive/2010/08/02.html<br /> <br />本文将介绍Solr查询中涉及到的Cache使用及相关的实现。Solr查询的核心类就是SolrIndexSearcher,每个core通常在 同一时刻只由当前的SolrIndexSearcher供上层的handler使用(当切换SolrIndexSearcher时可能会有两个同时提供服 务),而Solr的各种Cache是依附于Sol转载 2011-04-28 11:49:00 · 2022 阅读 · 0 评论 -
关于JVM的Thin Lock, Fat Lock, SPIN Lock与Tasuki Lock
<br /> <br />原文http://www.blogjava.net/security/archive/2009/02/16/jvm_thin-lock_fat-lock__spin-lock_tasuki-lock.html<br />Java很多ThreadDump中,都可以看到Thin Lock, Fat Lock, Spin Lock,这些Lock都与Java语言、OS有密切的关系。<br />回到一个简单的问题,在Java中,如何实现Synchronizd?<br />最简单的一种转载 2010-10-14 10:48:00 · 2014 阅读 · 1 评论 -
拼写检查的Lucene源码分析
<br />原文出处http://lolorosa.blogbus.com/logs/45646288.html<br /> <br />1. 首先来说一个N-Gram的概念,我不知道中文里怎么称呼这个,从Lucene SpellChecker的实现来看,N-Gram是指将一个单词划分成若干等长的字串,每一个成为一个gram,n就是用来控制每个gram的长度的。<br />2. 对于一个单词我们往往会给不同的N做多次切割,这样便于做搜索建议和拼写检查。<br />3. 构建词典<br /> a转载 2010-08-11 11:39:00 · 1758 阅读 · 0 评论 -
Bit数组
public class BitArray{//用byte数组模拟实现以个同步的bit一维数组 private byte[] array=null; private int size=0; //0xfe=11111110b;这个数和byte数与运算,第一位总会被置为0其他位不变 private byte[] zero = {(byte)0xfe,(byte)0xfd,(byte)0xfb,(byte)0xf7,(byte)0xef,(byte)0xdf,(byte)0xbf,(byte)0x转载 2010-08-04 10:57:00 · 2748 阅读 · 1 评论 -
《编程珠玑》笔记
<br />Column 1. Cracking the oyster<br />问题:<br /> 输入:7位电话号码的数据文件,纪录数量是百万级的;<br /> 输出:排序后的数据文件;<br /> 限制:内存只有2M,尽量快速;<br />分析:<br />后面有七位数字,它们的范围是[0, 9999999],,纪录个数是千万级,而1M内存能存储25000个整数。<br />该问题的本质是数学上的Dense-Set,可以用Bit Map(或者叫Bit Ve转载 2010-08-03 17:32:00 · 912 阅读 · 0 评论 -
大数据量,海量数据 处理方法总结
[转载]大数据量,海量数据 处理方法总结 作者phylips@bmy <br />转自:http://i.yoho.cn/473260/logview/1816730.html<br />大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 <br /><br />下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题转载 2010-08-03 16:37:00 · 1246 阅读 · 0 评论