一、下一代大数据计算引擎

自从数据处理需求超过了传统数据库能有效处理的数据量之后,Hadoop 等各种基于 MapReduce 的海量数据处理系统应运而生。从 2004 年 Google 发表 MapReduce 论文开始,经过近 10 年的发展,基于 Hadoop 开源生态或者其它相应系统的海量数据处理已经成为业界的基本需求。

但是,很多机构在开发自己的数据处理系统时都会发现需要面临一系列的问题。从数据中获取价值需要的投入远远超过预期。常见的问题包括:

  • 非常陡峭的学习曲线。刚接触这个领域的人经常会被需要学习的技术的数量砸晕。不像经过几十年发展的数据库一个系统可以解决大部分数据处理需求, Hadoop 等大数据生态里的一个系统往往在一些数据处理场景上比较擅长,另一些场景凑合能用,还有一些场景完全无法满足需求。结果就是需要好几个系统来处理不同的场景。

(来源: https://mapr.com/developercentral/lambda-architecture/ )

转载自知乎,原文链接:从谷歌到阿里,谈谈工业界推荐系统多目标预估的两种范式

多目标是什么?为什么要多目标?

我们的大脑会同时学习多种不同的任务,无论我们是想将英文翻译成中文,还是想将中文翻译成德语,我们都是使用相同的大脑架构,也就是我们自己的脑袋。同理在我们的模型中,如果我们采用的是同一个网络来同时完成这两个任务,那么我们就可以把这个任务称为 多目标学习。

在推荐系统中,即使在同一个场景中,常常也有不只一个的业务目标。在Youtube的视频推荐中,推荐排序任务不仅需要考虑到用户点击率,完播率,也需要考虑到一些满意度指标,例如,对视频是否喜欢,用户观看后对视频的评分;在淘宝的信息流商品推荐中,需要考虑到点击率,也需要考虑转化率;而在一些内容场景中,需要考虑到点击和互动、关注、停留时长等指标。

用多个模型分别对这些指标进行一个排序,然后综合起来可以吗?

可以,但是会面临一些问题。第一,会面临比较大的线上开销,考虑一下你的场景至少可以承受多少rt吧。第二,一些目标的样本比较稀疏,还存在一些问题,例如,单独对CVR进行建模,存在样本选择偏差(Sample Selection Bias,SSB)和数据稀疏性(Data Sparisity,DS)问题,其实不好解决。

什么是SSB问题,什么又是DS问题,我们后面再讲,我们知道的是,多目标预估可以通过同一个模型,解决(或者说缓解)上面的两个问题,甚至带来场景效果上的提升。

讲完了必要性,下面进入正题,下面谈谈工业界推荐系统做多目标预估的两种范式。

原文链接,作者wuchong,阿里花名云邪。

Flink 为流处理和批处理分别提供了 DataStream API 和 DataSet API。正是这种高层的抽象和 flunent API 极大地便利了用户编写大数据应用。不过很多初学者在看到官方 Streaming 文档中那一大坨的转换时,常常会蒙了圈,文档中那些只言片语也很难讲清它们之间的关系。所以本文将介绍几种关键的数据流类型,它们之间是如何通过转换关联起来的。下图展示了 Flink 中目前支持的主要几种流的类型,以及它们之间的转换关系。


本文主要介绍基于集成学习的决策树,然后对其中重要的、使用广泛的方法进行对比:RF(随机森林)), GBDT(梯度提升决策树), XGBoost, lightGBM。

一、集成学习


常见的集成学习框架有三种:Bagging,Boosting 和 Stacking。三种集成学习框架在基学习器的产生和综合结果的方式上会有些区别,我们先做些简单的介绍。


一、简介

Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS)。

传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足够高的情形下能正常提供服务。但残酷的是,这种理想情形最终会随着业务的增长走到尽头,查询会变得越来越慢。你可能通过增加更多的内存,订购更快的磁盘等等来解决问题(纵向扩展),但这只是拖延解决本质问题。如果你的需求是解决怎样快速查询出结果,那么ClickHouse也许可以解决你的问题。

一、Spark 1.X

spark 2.X开始,三者的关系发生了变化,可以参考《且谈Apache Spark的API三剑客:RDD、DataFrame和Dataset》 ,在2.X中DataFrame=DataSet[Row],其实是不知道类型。下面介绍是1.X,以免误导大家。

RDD、DataFrame和DataSet是容易产生混淆的概念,必须对其相互之间对比,才可以知道其中异同。

RDD和DataFrame



一、教程&博客

1. Flink中文视频教程

Flink系列视频教程:https://github.com/flink-china/flink-training-course

基础篇 https://ververica.cn/developers/flink-training-course-basics/

进阶篇 https://ververica.cn/developers/flink-training-course-advanced/

运维篇 https://ververica.cn/developers/flink-training-course-operation/


一、Apache Kylin 简介

Apache Kylin 是一个开源的分布式分析引擎,提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay Inc. 开发并贡献至开源社区,它能在亚秒内查询巨大的 Hive 表。

原文链接: https://juejin.cn/post/6844903585742848013
github项目: https://github.com/scarlettgin/cyclical_series_predict

1、背景

公司平台上有不同的api,供内部或外部调用,这些api承担着不同的功能,如查询账号、发版、抢红包等等。日志会记录下每分钟某api被访问了多少次,即一个api每天会有1440条记录(1440分钟),将每天的数据连起来观察,有点类似于股票走势的意思。我想通过前N天的历史数据预测出第N+1天的流量访问情况,预测值即作为合理参考,供新一天与真实值做实时对比。当真实流量跟预测值有较大出入,则认为有异常访问,触发报警。

2、数据探索

我放了一份样例数据在data文件夹下,看一下数据大小和结构

data = pd.read_csv(filename)
print('size: ',data.shape)
print(data.head())