热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何利用“图计算”实现大规模实时预测分析

一、何为“图计算”相比起“Hadoop、Spark”这种流行的大数据处理平台,说起“图计算”,可能许多人还比较陌生。甚至有人会误把它当成专门进行“图像”

一、何为“图计算”

相比起“Hadoop、Spark”这种流行的大数据处理平台,说起“图计算”,可能许多人还比较陌生。甚至有人会误把它当成专门进行“图像”处理的技术。 首先我们互联网上通常的定义来说明一下图计算:

“图计算”是以“图论”为基础的对现实世界的一种“图”结构的抽象表达,以及在这种数据结构上的计算模式。通常,在图计算中,基本的数据结构表达就是:

G = (V,E,D) V = vertex (顶点或者节点) E = edge (边) D = data (权重)。比如说:对于一个消费者的原始购买行为,有两类节点:用户和产品,边就是购买行为,权重是边上的一个数据结构,可以是购买次数和最后购买时间。对于许多我们面临的物理世界的数据问题,都可以利用图结构的来抽象表达:比如社交网络,网页链接关系,用户传播网络,用户网络点击、浏览和购买行为,甚至消费者评论内容,内容分类标签,产品分类标签等等。

图数据结构很好的表达了数据之间的关联性( dependencies between data ),关联性计算是大数据计算的核心——通过获得数据的关联性,可以从噪音很多的海量数据中抽取有用的信息。比如,通过为购物者之间的关系建模,就能很快找到口味相似的用户,并为之推荐商品;或者在社交网络中,通过传播关系发现意见领袖。但现有的并行计算框架像MapReduce还无法满足复杂的关联性计算。比如,笔者曾经发现有公司利用MapReduce进行社交用户推荐,对于5000万注册用户,50亿关系对,利用10台机器的集群,需要超过10个小时的计算。

最近有许多新型的基于图的计算平台和引擎出现,来应对这种复杂的需求。比如开始有专注与图结构化存储与查询的图数据库 Neo4j,infinitegraph等。Google为了应对图计算的需求,推出了新的“计算框架”——Pregel。CMU给出了一个开源的版本——GraphLab,虽然二者都是对于复杂机器学习计算的处理框架,用于迭代型(iteration)计算,但是二者的实现方法却采取了不同的路径——Pregel是基于大块的消息传递机制,GraphLab是基于内存共享机制。同样的,最近非常火的“Spark”也有支持图计算机器学习的模块——GraphX,可以实现复杂的图数据挖掘。

二、业务挑战

时趣SocialTouch是数据驱动的移动营销解决方案提供商。所涉及的客户数据源涵盖了自媒体行为,关系,内容。企业内部营销,销售,售后数据,以及其他第三方和广告投放数据。数据来源结构复杂。数据的应用类型也比较多样化,主要包括:消费者画像,交互式消费者洞察分析,潜在消费群体挖掘,个性化内容等等。因此,从业务出发面临许多现实的技术挑战:

1、大数据量:SocialTouch提供的是SaaS 模式的数据管理平台,那么对于不同的应用,可能会用到不同的算法策略。而一家客户的数据平均都在100T以上,同时还在持续增加。如何利用不同的算法策略在同样的数据结构之上进行计算,而不是为了使用不同的算法需要修改和迁移海量的数据。需要我们采取一致性的数据结构。

2、动态变化:营销的核心是研究“人”,而对人的描述的主要数据是行为数据。SocialTouch通常会根据客户的需求,持续采集消费者的行为数据。而用户行为往往是实时动态发生,因此需要数据与模型也能够实时更新。

3、实时性:对于数据分析人员来说,往往许多分析的维度不是事先预定的,需求总是不断在变化。能够进行交互式的数据的钻取,无疑有助于更好的发现营销“真相”。因此,对于大数据量的实时计算就成为了一个挑战。同时,基于消费者个体画像和当前的“上下文”触发的个性化营销也是移动营销的主流需求。因此,这就需要服务器端在毫秒级别内给出个性化的预测结果。目前针对复杂机器学习的“图计算”虽然可以支持“批处理”模式的迭代计算,比如著名的PageRank模型。但对于实时分析和预测,并不是最好的解决方法。

4、关联性:对于营销来说“预测性”分析不仅仅是发现营销的好坏,更重要的是发现为何好,以进行优化。比如“归因分析”和“相似人群”等预测性模型,都需要关联计算的支持。而且,这种关联性计算也对实时性有一定的要求。虽然一些图数据库可以支持图数据结构的读取访问,但对于大数据量的关联计算支持较差。

三、CrowdGraph——从业务出发的选择

为了应对以上业务需求。SocialTouch从构建大数据架构开始,就启动研发了专利技术——CrowdGraph,专业应对消费者行为数据处理的实时图计算引擎。并成功应用于SocialTouch BI,社会化聆听,数据管理平台等产品中。下图给出了CrowdGraph的逻辑架构:

0?wx_fmt=png 

整体架构从逻辑上划分为4层, 分别为应用服务层,计算查询层,索引管理层和索引层。应用服务层提供稳定高效的网络服务和相关的Query解析,查询计算层负责 查找、筛选、分组过滤、游走等算法。索引管理层主要负责索引段的管理和适配,保证索引的灵活使用。索引分为vertex和edge两种类型,vertex、edge的属性支持Scheme定义,索引建立支持采用hadoop离线完成。 整体上索引和算法是核心。

0?wx_fmt=png

以微博用户的影响力标签计算为例子,只需要简单的三步:

第一步:用户以等边上概率游走到粉丝,根据粉丝属性值计算此步游走的权重。

第二步:粉丝以等边概率游走到标签,根据标签的属性值计算此步的权重。

第三步:对相同相同标签所在的路径的权值累加后,对候选标签进行排序、过滤。

在实践应用中,GrowdGraph主要用于存储各种对象(用户,信息(商品页面,广告页面)之间的互动关系,经过测试,它具有以下特点:

  • 高性能与实时:由于本身就是专为挖掘关系设计的数据系统, CrowdGraph预先建立和存储了对象关系数据,同时考虑了块读取和内存加速,所以与关系型数据库相比,具有更高的查询性能和无法比拟的计算性能,比如计算超过百万潜在的消费者的属性分布,只需要秒级返回结果,是传统数据库查询的60—1200倍。

  • 灵活性:与传统BI系统和数据仓库相比,由于CrowdGraph不必预先设计表格的结构,所以可以动态的插入任意关系类型,非常适合存储动态变化的信息(如人的行为)。

  • 抽象性: CrowdGraph高度抽象了各种关系,不必定义结构,就可以可以很好的表达人的行为,属性,社会活动,广告点击,内容浏览和商品交易等各种抽象关系。

  • 精准性:与其他开源的图数据库不同, CrowdGraph中间包括了相关算法框架层,可以直接支持实时聚类,归因分析,贝叶斯网络等模型。同时避免直接访问抽象的数据,可以提供面向业务逻辑的精准预测服务。

四、结束语

图是一种抽象人类行为的方法,就像一句谚语所说“知道的越多,未知的就更多。对人类的行为的分析不是一个简单的“分类”问题,而是一种概率预测和排序问题。图计算的应用才刚刚开始,随着大数据研究和应用的发展,我们相信更多的支持“图计算”的系统会被大量使用。如果你有兴趣参与其中,希望和我们一起探讨。



原文发布时间为:2015-09-22

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号




推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • MongoDB用户验证auth的权限设置及角色说明
    本文介绍了MongoDB用户验证auth的权限设置,包括readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase、cluster相关的权限以及root权限等角色的说明和使用方法。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
author-avatar
呼噜垃圾桶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有