上海QCon2017参会分享

简介: 标签(空格分隔): QCon --- 10.17-10.19在上海度过了Qcon的三天。今年的Qcon主题非常的散,这也是近两年无论ArchSummit还是QCon的一个特点,基本涵盖了以互联网技术为主的所有领域。 我个人主要关注还是云计算、机器学习和大数据相关的话题,因此主要参与的topic也集中于此。本文就印象深刻的一些展开一点分享。 会场第一个关注的话题,是复旦危辉教

标签(空格分隔): QCon


10.17-10.19在上海度过了Qcon的三天。今年的Qcon主题非常的散,这也是近两年无论ArchSummit还是QCon的一个特点,基本涵盖了以互联网技术为主的所有领域。

我个人主要关注还是云计算、机器学习和大数据相关的话题,因此主要参与的topic也集中于此。本文就印象深刻的一些展开一点分享。

会场第一个关注的话题,是复旦危辉教授讲的人工智能的一个概述,怎么说呢?这个topic在这个时候回看,是整个QCon我个人认为最棒的topic,偏哲学层面,主要纠正了一些大家对AI的认知,同时也再次强调了要正确认识DeepLearning。可惜这块没有PPT,真心无法传播分享其精髓了。

机器学习应用

理解为算法应用好了,其实方法论确实是大同小异,只是场景的不同,可以看出不同的技术团队在各自场景中的一些取舍。

可配置系统的性能学习

首先看一个例子——《可配置系统的性能学习》。华东理工大学的AP做了基于机器学习来调整可配置系统的参数,期望获取复杂参数系统中“最优”运行的参数组合。因为复杂的参数组合有组合爆炸的问题,在期望有较好性能的情况下能调节有效参数,对于复杂配置系统有很大帮助。具体的一个solution是通用的机器学习方法论,如下图:
可配置系统

唯品金融机器学习

唯品金融的同学分享了他们的机器学习实战经验,比较贴地气。有个谈法挺朴实——没有高大上,面向业务的机器学习。
唯品金融在4大产品方向上做尝试。

唯品1

当然这些也不是都实现了,分享的讲师提到了一个有意思的话题:算法平台vs算法应用,那他也展示了在唯品金融,算法应用和平台又是如何建设的。

唯品2

可以看到平台、应用(预测模型)和策略层(人工干预)很清晰的分层。anyway无论高大上与否,我认为这是一种正确且cost based的架构。

携程度假智能云客服平台

毕竟在客服团队,看到客服平台还是忍不住去听了一下。携程的客服场景对应于CCO体系内,业务模式其实主要对标飞猪。其现状

携程度假客服

也是在解决多渠道(热线、在线)多环节(售前、行中、售后)的各种咨询和维权问题。那么面对复杂业务场景,携程度假做了一层业务抽象

携程度假客服2

可以看到,对于智能问答、智能分配、预警,与我们集团CCO的技术产品有同质性,也就是说在客服场景中,如此复杂的业务逻辑,必须通过几个核心步骤和域划分开。其中对于用户意愿的持续追踪,我觉得与我们当前团队做的主动服务以及小蜜团队的障碍预测很类似。就是要基于数据在用户动作前预知到用户的意图。具体如何做的呢?很遗憾,演讲者没有细节深入,只有一个架构图粗略的描述了整体系统的模块划分。不得不说太遗憾了。

携程度假系统

这里演讲者着重讲了携程自己做的Easy AI平台,看UI截图其实功能很简单,就是集成了标注和一些model的管理。算是工程层面的一个特色吧。

TensorFlow与深度学习

这个topic是Google Brain团队带来的,主要是TF的特性介绍,几个新特性比较吸引人,如微博上前段时间比较火的eager execution,还有auto learning的Learn2learn。我对后者比较感兴趣,这里截了一些图片简单介绍。
复杂网络

复杂网络2

如上图这样的复杂网络,是很难炼丹完成的,那么learn2learn可以解决这类问题,一个主要方法就是迭代优选。就像去年和寿哥团队简单了解autolearning一样,基本就是需要迭代来尝试。

迭代

TF的learn2learn能力据说还不错,很快可以搞出一个性能不错的net。

l2l结果

Pinterest如何利用机器学习实现两亿月活跃用户

这是硅谷专场的一个topic,Pinterest的同学分享了一个推荐rank的系统演化。算是比较经典吧,而且进度和集团手淘的千人千面也差不多。基本上第一阶段都是规则策略,然后演化为线性模型,接下来GBDT用boost组合的方式来优化,到如今演化到DeepLearning。

其首页的推荐核心是个性化主页
问题场景

核心问题是
核心问题

系统演化刚开始的规则(基于时间)
p1

线性预测(LR、500+稀疏特征)
p2

GBDT(XGboost、深度7、700+特征)
p3

DL(TensorFlow、1层embeding+4层全连接的神经网络、ReLu+SigmoidGate混合神经元)
p4

系统演化
p5

最后的总结还是不错的。线性模型不能很好的利用高维复杂特征,另外cross feature都要手工做,同时用户特征(年龄、性别等)对于模型无意义,因为不同的user-item pair,user维度是一致的。那GBDT其实是演讲者最推崇的一个模型,因为这个模型对于性能的提升是巨大的,且有效的探索和丰富了特征空间,能做特征分析的算法,我个人也倾向于应该是一种合理的算法(符合人类直觉),我相信如果不是DEEPLearning太火,Pinterest的首页推荐应该就是GBDT了。因为讲者自己也说了,GBDT的离散特征处理不足的问题,也可以通过加embedding解决。

大数据

最后还是要谈回大数据,之前archsummit思考里就讲过离线计算的大数据架构已经是一个稳态架构,果然在2017大家已经不谈了,实时计算出现了稳定的专场占据着大数据专场的一个固定席位。今年的实时主要是阿里的介绍为主,包含Blink Sql和毅行的Porshe,因为内部有更多机会了解,因此没去。主要听了一个talkingData的内存计算和Linkedin的系统分享。

基于内存的分布式计算

这个话题扯的太大了,其实TalkingData就是在做我4年前在无线和一群小伙伴做的事,实时计算uv。他们提到的架构主要是用bitmap来去重,而bitmap又是以blob的结构存mysql的,导致binlog巨大。因此提出一个改进的方案在内存中分布式的存储来计算。大体流程是这样:

td流程

这个blade就是核心的内存计算框架,大体集群包含

td集群

这里主从是双写的,也无法解决完全的高可用,只能是相比老系统提高。这里当时会场有很多人有疑问,不过没有深入细究。

Building Invisible Data Infrastructure at LinkedIn

linkedin的这个topic话题很大,不过主要介绍了两个开源的系统:Helix和Nuage。

topic开始先普及了一下分布式系统,介绍了一些难点:
分布式系统难点

Helix主要是负责做分布式的集群管理,而Nuage则关注云平台。Helix的抽象主要面向Node和机器,管理的资源就是Database和Job。主要的资源状态包括master、slave、online和offline。核心通过zk来协调,有个spectator负责做资源mapping。细节比如如何高可用的利用zk,没有仔细讲。主要架构简图如下:

helix

Helix照演讲者介绍来看,基本管理了linkedin的全部db资源,不仅是关系数据库,包括文档数据库、kv数据库、OLAP数据库都是通过helix管理的。而Nuage更像一个管理平台,Nuage本意就是法语的cloud的意思。其提出两个核心概念——Automation、Self-service,这个听起来很好。而Nuage的目标也是做这样的事情。让开发和运维过程更自动化和自服务,降低犯错的可能性,统一审批和安全流程、一致的监控和告警、做容量预估,anyway,这样的管理平台可想象的空间真的很大。这两年看到集团内部这么多的基础运维平台出现,如果打包合并,就是Ali的Nuage。智能自动化运维不是梦。

Nuage

最后附一个LinkedIn的data infrastructure图结束。外加一句总结:大数据离线&实时架构稳定了、高可用高并发互联网架构稳定了、机器学习的套路也算固定了,后面会是什么呢?我非常看好Robotics,including chatbot。

linkedin

Reference

目录
相关文章
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
527 1
|
Android开发 数据格式 XML
Android FrameLayout子view居中(左居中,右居中)等
Android的布局FrameLayout默认是把布局内的子view堆砌在左上角,但是,可以通过设置子view的: android:layout_gravity 此参数控制子view的布局位置,实现FrameLayou...
2900 0
|
2月前
|
人工智能 前端开发 IDE
AI 原生研发范式:从“代码中心”到“文档驱动”的演进
本文讲述在 AI 编程时代,通过 SDD解决上下文腐烂、审查瘫痪、维护断层三大工程失序问题,并提供一套轻量、可落地的人机协作 SOP。
AI 原生研发范式:从“代码中心”到“文档驱动”的演进
|
SQL 存储 消息中间件
Flink+StarRocks 实时数据分析新范式
StarRocks 社区技术布道师谢寅,在 Flink Forward Asia 2022 实时湖仓的分享。
2993 2
Flink+StarRocks 实时数据分析新范式
|
机器学习/深度学习 数据采集 算法
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
Python实现PSO粒子群优化支持向量机回归模型(svr算法)项目实战
|
API 调度 Android开发
Android经典实战之处理后台任务的2个工具
本文介绍Android后台任务管理,涵盖WorkManager与JobScheduler的使用方法及区别。WorkManager属Jetpack库,确保任务可靠执行,支持延迟与条件依赖。JobScheduler则针对特定条件下的任务调度,如网络类型。两者各有优势,WorkManager适用于多数场景。
537 0
|
敏捷开发 缓存 Java
阿里云云效产品使用合集之如何配置流水线里的npm构建
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
Android开发
Android获取横竖屏状态及监听
Android获取横竖屏状态及监听
488 0
|
Android开发
Android stdio 无法新建或打开AIDL文件(解决方法)
Android stdio 无法新建或打开AIDL文件(解决方法)
1570 0
|
存储 安全 Android开发
Android 动态权限请求的设计与实现
【4月更文挑战第6天】在现代安卓应用开发中,用户隐私和安全性日益受到重视。因此,操作系统引入了动态权限请求机制,要求应用在运行时请求特定权限而非安装时一次性获取所有权限。本文将详细探讨Android动态权限请求的关键概念、设计原则以及实现过程,旨在帮助开发者构建更加安全且用户体验友好的应用。通过深入分析Android系统权限模型及其演变,我们将展示如何在实际项目中有效地实施动态权限请求,并处理可能遇到的挑战。
453 0
下一篇
开通oss服务