自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

rover

干货铺

  • 博客(20)
  • 资源 (4)
  • 收藏
  • 关注

原创 经典论文阅读(六)--DeepFM

DeepFM来自哈工大深圳与华为诺亚方舟联合实验室2017年发表的论文。该模型借鉴了Wide & Deep模型的结构,将Wide部分替换为FM模型,不再需要人工特征工程;并很巧妙地在FM的二阶部分和神经网络的Embedding层共享权重,减少了大量参数,提高训练速度。在CTR预估中非常经典。1. Motivation和简介DeepFM在一种新的神经网络结构中结合了用于推荐的FM和用于特征学习的深度学习的能力。与谷歌最新的Wide & Deep模型相比,DeepFM在其“Wide”和“De

2020-06-18 12:01:57 550 1

原创 Douglas–Peucker算法python实现

递归方式实现的Douglas–Peucker算法用于GPS轨迹压缩,参考的原文找不到了,把它封装成一个类。import mathclass Point(object): def __init__(self, id, x, y): self.id = id self.x = x self.y = yclass DPCompress(object): def __init__(self, pointList, tolerance):

2020-06-29 18:59:50 2222 2

原创 SVM训练后的模型参数中要保存支持向量?

svm模型学到的是什么?模型存储了哪些参数?为什么只需保存支持向量?高维映射和核方法?高维映射显然可以提高模型的拟合能力,也就是准确度。理论上做完高维映射以后的LR,准确度应该是跟SVM会是一样的。那我们为什么不把LR也高维映射一下呢?别忘了,做高维映射是有代价的,计算高维映射的过程太费时间了。你可能会说,我们不是还有核方法吗?对啊,确实可以用核方法避开高维映射计算,那对应也是有代价的,我们得保存下来所有训练样本。保存所有训练样本对于样本过大的时候,LR几乎是不可接受的。SVM强就强在,它根本不需要保

2020-06-27 15:51:22 2470

原创 node2vec随机游走源码

论文中的源码在 https://github.com/aditya-grover/node2vec/,python3的话main中的learn_embeddings()需要简单修改以下,然后就能跑通了。node2vec是基于word2vec的,难点在于Alias Method 抽样算法,其代码的实现比字符串匹配的kmp算法还难以捉摸。本文加了注释,有助于解析node2vec。先看使用node2vec的部分:def read_graph(): ''' Reads the input n

2020-06-20 17:51:34 1493 3

原创 新项目方案的提出

从技术管理者的角度,要提出一套新的技术方案或者一个新Project项目,大体要考虑以下几个方面。业务模型分析 业务应用场景 产品原型设计 实现技术路线 投入成本预估 量化效果评价这跟软件工程的流程基本一致:需求分析->概要设计->详细设计->开发测试->迭代运维。技术管理者最大的好处是有一些时间,可以不那么忙,更有利于技术精进,考虑问题也更全面了。思考是个好东西,希望坚持每天有两个小时的学习。...

2020-06-18 10:38:47 1081 2

原创 经典论文阅读(五)--Factorization Machines(FM)

Factorization Machines(FM)1. 摘要FM综合了SVM和factorization models的优势。FMs是一种适用于任何实值特征向量的通用预测器。与支持向量机相比,FMs使用因式分解的参数来建模变量之间的所有交互作用。因此,即使在支持向量机失效的情况下(比如推荐系统),它们也能够估计交互作用(interactions)。结果表明,FMs的模型方程可以在线性时间内计算,从而可以直接优化FMs。因此,与非线性SVM不同的是,不需要对偶形式的转换,可以直接估计模型参数,而不需

2020-06-17 18:03:20 541 1

原创 经典论文阅读(四)--ESMM(阿里Entire Space Multi-Task Model)

1. Motivation在诸如信息检索、推荐系统、在线广告投放系统等工业级的应用中准确预估转化率(post-click conversion rate,CVR)是至关重要的。例如,在电商平台的推荐系统中,最大化场景商品交易总额(GMV)是平台的重要目标之一,而GMV可以拆解为流量×点击率×转化率×客单价,可见转化率是优化目标的重要因子;从用户体验的角度来说准确预估的转换率被用来平衡用户的点击偏好与购买偏好。user actions follow a sequential pattern of impr

2020-06-16 17:31:11 945 1

原创 Alias Method: 非均匀随机抽样算法

在游戏中经常遇到按一定的掉落概率来随机掉落指定物品的情况,例如按照:钻石10%,金币20%,银币50%,饰品10%,装备10% 来计算掉落物品的类型。问题的抽象给定一个集合,要从中以给定的概率分布随机抽取其中的元素。给定一个离散型随机变量的概率分布P(X=i)=pi,i∈1,...N;  ∑i=1Npi=1.P(X=i)=p_i,\quad i\in 1,...N; \,\,\sum_{i=1}^{N} p_i = 1.P(X=i)=pi​,i∈1,...N;∑i=1N​pi​=1.,从离散集合中进行

2020-06-15 13:38:08 3505 1

原创 word2vec的参数选择及原理简介

node2vec中用到了word2vec,作为序列的embedding模型,word2vec不止用于NLP领域。官方文档见https://radimrehurek.com/gensim/models/word2vec.htmlclass gensim.models.word2vec.Word2Vec(  sentences=None, corpus_file=None, size=100, alpha=0.025, window=5, min_count=5,  max_vocab_size=N

2020-06-14 10:37:52 8930

原创 kafka源码阅读-Controller(四)Replica状态机

分区状态机有四种状态,replica状态机有七种状态,较为复杂。ReplicaStateMachine这个类代表副本集的状态机。它定义了一个副本所在的状态,以及将副本移动到另一个合法的状态的变迁。不同的状态如下:NewReplica: Controller可以在分配分区时创建新副本。在这个状态,一个副本只能请求成为follower。有效的前置状态是NonExistentReplica。OnlineReplica: replica一旦被启动,并且作为分配了partition的副本集的一部分,该副本就进

2020-06-13 10:13:17 395

原创 Kafka源码阅读-Controller(三)Partition状态机

再看onControllerFailover(),先调用partitionStateMachine和replicaStateMachine的registerListeners(),随后启动了replica状态机和partition状态机: def onControllerFailover() { if(isRunning) { ...... partitionStateMachine.registerListeners() replicaStateMachin

2020-06-11 01:08:49 343

原创 经典论文阅读(三)--MLR: mixed logistic regression

论文中为了严谨性使用LS-PLM: Large Scale Piecewise Linear Model 来命名MLR算法。1. Motivation:传统模型的不足:LR模型的优点是可以很容易的实现并行化,轻松的处理上亿条训练样本。LR是线性模型,它的学习能力有限,所以需要引入大量的领域知识来人为进行特征工程,构造交叉特征来间接补充算法的非线性拟合能力,迁移性不够友好。SVM kernel方法:复杂度太高。Facebook在2014年提出了GBDT+LR的模型。Tree-Based有效的解决了

2020-06-09 12:10:04 1173

原创 基于随机游走的PersonalRank

《推荐系统实战》中介绍了基于图的推荐算法,将用户行为数据表示成图的形式。Standford的Haveliwala于2002年在他《Topic-sensitive pagerank》一文中提出了PersonalRank算法。原理上与PageRank是很相似的,区别在于PageRank 中的链接是有向的,而PersonalRank中人于物品之间的连接是无向的,或者说是双向的。1.1 用户行为的二分图表示  假设用户行为数据是由一系列二元数组组成的,每个二元组(u, i)表示用户u对物品i产生过行为。这种数据

2020-06-08 15:22:46 1158

原创 Kafka源码阅读-Controller(二)管理brokers

上一篇kafka源码(一)correspond to/explain Kafka设计解析(二) 中的3.2、3.3。以前一直用kafka 0.8.2.x,那时候redis开始风靡,hadoop方兴未艾,一晃四五年过去了,终于老得可以读读源码。不得不说Kafka的代码风格比spark好多了。毕竟spark太庞大,相对来说kafka小而美吧。可能出于性能的考虑,以及ZooKeeper的机制,kafka大部分都是异步回调的事件机制。类似epoll对IO的处理。源码中几乎对每个回调函数都注释了该方法什么情况下

2020-06-07 17:33:08 249

原创 经典论文阅读(二)--DIN:深度兴趣网络

DIN(Deep Interest Network)是由阿里妈妈精准定向广告算法团队在KDD2018提出的针对电商场景深入理解用户兴趣的预估模型,也可适用于其他场景。主要贡献:指出了使用固定长度的向量来表达用户多样性的兴趣的局限性,设计了新颖的Deep Intrest Network,它引入了局部激活单元(local activation unit)来自适应地从给定广告的历史行为中学习用户兴趣的表达。开发了两种技术来训练工业级深度网络:i) mini-batch aware的正则化,避免了在NN的巨

2020-06-06 14:29:55 1250

原创 Kafka源码阅读-Controller(一)

引用 Kafka Controller Internals:In a Kafka cluster, one of the brokers serves as the controller, which is responsible for managing the states ofpartitions and replicas and for performing administrative tasks like reassigning partitions.集群中的broker尝试在Zook

2020-06-05 18:46:04 259

原创 TF-IDF原理及spark使用

TF-IDF(Term Frequency/Inverse Document Frequency,词频-逆文档频率)是一种统计方法,旨在反映关键词(Term)对集合或语料库中的文档的重要程度。它经常被用作搜索信息检索,文本挖掘和用户建模的加权因子。tf-idf值按比例增加一个单词出现在文档中的次数,并被包含该单词的语料库中的文档数量所抵消,这有助于调整某些单词在一般情况下更频繁出现的事实。搜索引擎经常使用tf-idf加权方案的变体作为在给定用户查询的情况下对文档的相关性进行评分和排序的中心工具。tf-idf

2020-06-04 18:54:29 466

原创 spark RDD和streaming的容错机制

RDD Lineage容错分布式系统中,常通过副本机制通过数据冗余,来提供高可用性HA。个人认为RDD主要是通过冗余计算的方式来容错的。RDD并不提供副本机制。RDD的分布式是指,一个RDD可以切分多个分区(partition),不同的分区可能在集群的不同节点上。RDD从HDFS读出前,或者写入到HDFS后,通过hadoop.dfs.replication实现数据冗余。RDD防止数据丢失的机制,是通过"血统重建"(lineage)实现的。spark在计算时,会对RDD应用不同的transforma

2020-06-02 13:45:17 1149

原创 HDFS架构设计和读写流程

HDFS是一种分布式文件系统,具有高度的容错能力,旨在部署在低成本硬件上。设计目标:考虑硬件故障,检测故障并快速、自动地从故障中恢复是HDFS的核心目标。HDFS设计用于批处理,而不是用户交互使用。重点在于数据访问的高吞吐量,而不是数据访问的低延迟。大数据集。它应该提供较高的聚合数据带宽,并可以扩展到单个群集中的数百个节点。简化了数据一致性模型。考虑应用场景出于简化设计和实现的目的,HDFS假设了一种 write-once-read-many 的文件访问模型。支持将内容追加到文件末尾,但不能在任

2020-06-01 17:22:14 498

原创 spark实现pagerank算法解析

网上有这样一个题目:PageRank是执行多次连接的一个迭代算法,因此它是RDD分区操作的一个很好的用例。算法会维护两个数据集:一个由(pageID,linkList)的元素组成,包含每个页面的相邻页面的列表;另一个由(pageID,rank)元素组成,包含每个页面的当前排序值。它按如下步骤进行计算。将每个页面的排序值初始化为1.0。在每次迭代中,对页面p,向其每个相邻页面(有直接链接的页面)发送一个值为rank§/numNeighbors§的贡献值。将每个页面的排序值设为0.15 + 0.85

2020-06-01 11:50:53 1215

Hive用户指南(Hive_user_guide)_中文版.pdf

Hive用户指南,使用手册,简明扼要。内容包括架构、基本操作、参数设置、UDF,以及优化及使用技巧等等。

2020-07-28

Effective C++ 中文版

Effective C++ 精简版,经典名著你懂的

2014-12-22

DebugHacks深入调试.pdf

DebugHacks深入调试.pdf 电子书

2014-12-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除