Everybody 国庆快乐~
「美图数据技术团队」已经周周不息地推送了 3 个多月啦!
国庆 7 天长假如果没有外出安排
不如跟着 MT 酱来系统地做个复盘
本次复盘分为 3 部分
MTdata 实践篇
美图数据技术团队在大数据与 AI 领域的实践经验谈
Spark 系列篇
由浅入深介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你
科普干货篇
数学、深度学习、大数据组件...从基础到流行算法一举拿下
欢迎大家根据自身情况查缺补漏~
Part.1 MTdata 实践篇
美图个性化推荐的实践与探索
互联网技术将我们带入了信息爆炸的时代,面对海量的信息,一方面用户难以迅速发现自己感兴趣的信息,另一方面长尾信息得不到曝光。为了解决这些问题,个性化推荐系统应运而生。美图拥有海量用户的同时积累了海量图片与视频,本文分享了美图数据技术团队在个性化推荐上的实践与探索,展现了美图个性化的发展路线,通过推荐系统有效建立了用户与内容的连接,大幅度提升产品的用户体验。
美图大数据平台架构实践
大数据在各行业的应用越来越广泛:运营基于数据关注运营效果,产品基于数据分析关注转化率情况,开发基于数据衡量系统优化效果等。美图公司有美拍、美图秀秀、美颜相机等十几个 app,每个 app 都会基于数据做个性化推荐、搜索、报表分析、反作弊、广告等,整体对数据的业务需求比较多、应用也比较广泛。本文从美图数据平台整体架构展开,介绍了美图数据平台的搭建及针对业务的改良路线。
大数据集群安全组件解析
大数据集群的基本是数据以及用于计算的资源,企业将相应的数据和资源开放给对应的用户使用,防止被窃取、破坏等,这些都涉及到大数据安全。基于以上关键点,考虑到美图公司原有的系统较为庞大复杂,在第一阶段内我们采取轻量级的改造方案进行了大数据集群安全的初探索,通过本文与大家交流相关经验。
基于用户行为的视频聚类方案
在个性化推荐系统中,通常是由挖掘物品属性来理解用户兴趣,从而构建推荐模型。从用户行为去理解物品属性往往做得比较简单,通常只是一些简单的标签统计。为了深入到用户行为去理解内容,美拍利用用户的点击、播放行为对视频的内容进行聚类,一方面打破了从视觉角度去理解视频内容的限制,另一方面可以挖掘出非人工总结的分类知识,从而提升个性化推荐的效果。本文介绍了基于用户行为的视频聚类方案,并探讨视频聚类在美拍推荐系统中的一些实践。
美图分布式 Bitmap 实践:Naix
Bitmap 作为一种大数据需求下产生的计算体系,有着计算速度快、信息密度高、支持海量数据等众多优势。美图拥有海量用户数据,每天都有大量数据计算任务,而 Bitmap 技术能大幅度减少计算的开销,节省数据存储的成本,美图研发了自己的分布式 Bitmap 系统,应用于美图各个场景下的相关数据计算任务。
深度模型 DNN 在个性化推荐场景中的应用
互联网所面临的信息超载问题愈演愈烈,其中个性化推荐是重要的信息过滤手段。本文以短视频为切入点,探索如何将深度模型应用于个性化推荐场景,这样的模型「深度」的理解用户偏好的同时又能保持一定的推理效率。
美图离线 ETL 实践
美图收集的日志需要通过 ETL 程序清洗、规整,并持久化地落地于 HDFS / Hive,便于后续的统一分析处理。本文介绍了美图离线 ETL 的架构设计、实现原理及该系统优势。
美图 AB Test 实践:Meepo 系统
AB 实验辅助决策的场景十分广:视觉设计、页面布局、文案内容、推荐算法、灰度发布等。基于以上所述需求,结合美图的业务情况,美图搭建了 AB 实验系统—Meepo。
一览美图数据开发与 SQL 解析
2008 年成立至今美图打造了数款 App 产品,而随之带来的是扑面而来的用户数据与其相关的业务需求。多种业务需要不同的统计方式,数据量的暴涨意味着维护成本也在同步提高,愈来愈多的重复性工作......美图数据技术团队通过改变人力对接方式、平台化、业务配置化、增加数据分析表、任务依赖升级等方式对此进行改革。
Part.2 Spark,从入门到精通
Hello Spark!
当我们在谈 Spark 的时候可能是指一个 Spark 应用程序,替代 MapReduce 运行在 Yarn上,存储在 HDFS 上的一个大数据批处理程序;也可能是指使用包含 Spark sql、Spark streaming 等子项目;甚至 Tachyon、Mesos 等大数据处理的统一平台,或者称为 Spark 生态。
Spark on Yarn
Yarn 作为 Hadoop 的一个组件,官方对它的定义是一个工作调度和集群资源管理的框架。Spark 集群考虑到了未来对接一些更强大的资源管理系统,没有在资源管理的设计上对外封闭,所以 Spark 架构设计时将资源管理抽象出了一层,通过这种抽象能够构建一种插件式的资源管理模块。这二者能碰撞出怎样的火花?
Spark 任务调度
Spark 任务调度中各个 RDD 之间存在着依赖关系,这些依赖关系就形成有向无环图 DAG,DAGScheduler 负责对这些依赖关系形成的 DAG 并进行 Stage 划分;TaskScheduler 是在 SparkContext 中通过 createTaskScheduler 把引用传给 DAGScheduler 的构造函数;调度池决定 TaskSetManager 的调度顺序,然后由 TaskSetManager 根据就近原则来确定 Task 运行在哪个 Executor。本文将通过 DAGScheduler 、TaskScheduler、调度池和 Executor 四部分介绍 Spark 的任务调度原理及过程。
RDD 原理与基本操作
传统的 MapReduce 虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是在迭代计算的时候,要进行大量的磁盘 IO 操作,而 RDD(Resilient Distributed Dataset 弹性分布式数据集)正是解决这一缺点的抽象方法。
Spark Streaming
Spark Streaming 是批处理的流式实时计算框架,支持从多种数据源获取数据,如 Kafka、TCP sockets、文件系统等。它可以使用诸如 map、reduce、join 等高级函数进行复杂算法的处理,最后还可以将处理结果存储到文件系统,数据库等。
Spark Streaming VS Flink
本文从编程模型、任务调度、时间机制、Kafka 动态分区的感知、容错及处理语义、背压等几个方面对比 Spark Strming 与 Flink,希望对有实时处理需求业务的企业端用户在框架选型有所启发。
Part.3 科普干货篇
贝叶斯概率模型一览
所有概率模型描述的都是在系统参数 w 下观测变量对 X,Y 的联合概率分布或条件概率分布,即 P(Y,X|w) 。设计好概率模型后,剩下的问题就是如何通过大量的观测数据来决定参数 w, 这时出现了贝叶斯理论。
梯度下降优化算法概述
平时我们说的训练神经网络就是最小化损失函数的过程,损失函数的值衡量了模型在给定数据集下的表现(拟合)能力。位于三维空间里的任意一个点都可以找到与之相切的平面,在高维的情况下也能找到超平面与其相切。那么在相切平面上的任意一个点都有多种方向,但只有一个方向能使该函数值上升最快,这个方向我们称之为梯度方向,而这个梯度方向的反方向就是函数值下降最快的方向,这就是梯度下降的过程。
叮!给你寻找最优解的思路
启发式算法(Heuristic Algorithm)是一种基于直观或经验的构造的算法,对具体的优化问题能在可接受的计算成本(计算时间、占用空间等)内,给出一个近似最优解,这个近似解与真实最优解的偏离程度一般不能被预计。启发式算法不是一种确切的算法,而是提供了一个寻找最优解的框架。
快速、安全、可靠!Yarn!
Yarn 主要由四个核心组件进行协调工作,其中 ResourceManager 负责资源调度;NodeManager 负责资源管理,可启动 Container;ApplicationMaster 管理具体的应用程序,负责启动具体的任务;Container 设计比较精巧,将机器资源封装后用于计算任务,它是具体执行任务最小的单元,若任务较大可并行多个 Container 共同执行,这也是分布式任务的优势。
浅谈博弈论
生活中我们常常出现的打牌、猜拳、下棋、踢球等行为主题选择策略并相互影响的过程可以称之为博弈,博弈论则是指研究决策主体的行为发生直接相互作用时候的决策,以及这种决策的均衡问题。博弈论通常用来进行决策、均衡等目的。
再次祝大家国(fang)庆(jia)快乐!