HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

超越 TensorFlow!未来我们需要基于图的全新计算模式

  • 2019-06-23
  • 本文字数:5051 字

    阅读完需:约 17 分钟

超越TensorFlow!未来我们需要基于图的全新计算模式

图神经网络是当前 AI 领域最为火爆的研究热点之一,学术界与工业界各大公司纷纷投入大量资源研究。它在因果推理上拥有巨大潜力,有望解决深度学习无法处理的关系推理、可解释性等一系列问题,而这些问题被业界认为是能够推动 AI 出现实质性进展的关键。目前图神经网络尚处于发展早期,虽然研究成果和论文频出,但真正在业界落地并对外分享的案例仍然偏少。为了更好地了解图神经网络在实际业务落地中可能遇到的挑战和解决方案,InfoQ 采访了极验 Geetest 的算法负责人刘忠雨,对 GCN 的落地场景和实际效果、图计算框架和模型的选型经验、算法落地部署的难点等话题进行逐一探讨。


“图数据本身非常复杂,深度学习数据样本之间可以随意切割,但图数据不行,因为节点之间存在关联。深度学习时代,我们通常基于 TensorFlow 框架,将数据 Tensor 放到一个计算图里在显卡中做计算。未来,我们的计算模式可能是完全基于一张图,通过节点之间的信息传递与聚合这样一个视角去组织新的计算模式。那可能就称之为 GraphFlow,而不是 TensorFlow 了。”

GCN 天然适合关联模式识别

极验 Geetest 深耕交互安全领域,业务方向包括行为验证、身份认证、风控等。这些业务场景无一不需要收集大量用户行为数据或异常数据,从中挖掘出异常行为的模式,进而提供实时拦截、标记和风险控制。而这正是图神经网络擅长处理的:挖掘海量数据之间的关联模式。


极验在 2014 左右开始使用机器学习和深度学习解决行为验证过程中的人机判别问题,主要是利用 CNN 对用户行为轨迹数据进行自动学习和建模。在这个过程中,研发团队逐渐发现了隐藏其中的数据风险关联模式。黑产在进行攻击的时候,往往是调用某些打码平台的 API 接口或者不断复用自己构建的一套破解代码,这都导致黑产的数据之间存在一些或明或暗的关联模式,风险的传递性很强。最初,研发团队只能通过手工规则来定义这些关联模式,但这种规则定义方式过于简单,很容易被黑产绕过。


后来极验开始使用图聚类的方法挖掘异常,比如最早的社群检测,再到后来的高密子图等算法。这些算法是无监督算法,优点是不需要人工添加标签,但灵活性比较差。如果数据有了更多信息,或有更好的标签质量,这些信息很难融合到原来的算法模型中。如此一来,信息融合和关系建模成为了突破的关键。


2017 年,图神经网络研究开始在业界崭露头角,也进入了极验研发团队的视线。图蕴含了大量多元化信息,能够建立起更全的数据维度,进而比较全面地识别黑产数据。极验从 2018 年开始引入 GCN(图卷积神经网络),利用 GCN 技术实现防御模型升级,进而提升数据挖掘与安全分析的能力。


对于极验来说,GCN 是一套行之有效且拥有巨大潜力的建模方法,只要场景中存在数据和标签,就可以尝试用 GCN 学习其中的模式。以极验深知这款产品为例,GCN 主要用来提升其人机判别能力。极验拥有大量的行为数据户,包括用户操作行为的序列数据、IP 及设备的关联数据等,这些数据涵盖了几乎所有行业的用户,数据之间存在或明或暗的关联性。借助 GCN,研发团队可以对这些海量数据进行集成建模,达到更好的模式识别效果。从模型的 AOC 指标和稳定性指标这两个考察维度来看,相比原来的模型,引入 GCN 之后的算法模型在这两个维度上分别有 1.2-1.5 倍的提升,不论从最终效果还是模型鲁棒性来说都十分有益。据介绍,即使将网络中的节点属性特征全部抹去,只提取节点之间的关联特征,当前的模型依然能够得到非常好的效果。这些都离不开 GCN 模型强大的关系建模能力和极验海量数据的支持。

GCN 落地实践经验

GCN 落地应用难在哪?

从考虑引入 GCN 到真正落地,极验用了一年多的时间,到现在为止,相关计算模型已经经过了两次大版本的迭代。对于 GCN 落地实际业务过程中遇到的问题,刘忠雨总结为三个方面:


  1. 如何解决大规模图的训练问题。比如 GraphSage 通过图采样操作把大图切分成很多小图再进行训练,并且这个操作一定是要有 online 的效率保障,这样才能使 GPU 的计算资源不会被 CPU 上的数据采样操作所拖累,因此如何保证图采样操作的高效性是至关重要的。而现在的图数据库对这类图采样算子并没有原生的支持。

  2. GCN 模型怎么做实时预测。我们的业务场景不同于推荐营销,数据的表征可以定时更新,然后把数据推到业务线去做实时的推荐;在风控领域,一般我们需要不断地去判断每一次新的业务事件是否带有风险,这需要我们把模型推到业务线上去做实时的预测。图神经网络是一个协同式的训练与预测过程,需要把数据累计到一定量之后再进行预测,这是 GCN 的优势所在,但同时也大大提升了模型实时预测的难度。如何在线上预测输出接下来的数据的表现,需要对算法模型本身做一些改造工作,并且配套大量工程化的工作。

  3. 图数据建模 Pipleline 的各个环节设计。其中最为核心的是图数据的预处理和图模式(Schema)的设计。图模式反映的是对于业务问题的理解,需要基于数据本身的路径和上层业务建模的特性来设计图的模式。刘忠雨认为,图数据预处理和图模式设计比后面的算法模型更重要,做好前两项对于算法模型的效果提升大有裨益。


因此,从算法落地层面考虑,极验花费了很大精力解决包括图采样效率、实时数据预测、图数据建模流水线、图数据预处理等问题。


针对大规模图的分布式训练问题,极验重点完成了图采样操作所需要的存储层重构工作,数据库选用了非常成熟的 HBase 将数据组织管理起来,同时在索引上做了大量的开发,尽量保证图上相近的数据在一个数据分片上,同时优化了数据的遍历性能。这一套配合下来,基本满足了团队对大规模图数据的分布式训练要求。


同时团队也在稳步推进基于 Graph Partitioning 的数据存储方案,这样不仅能更进一步地提高模型的训练效率,同时也能将分布式训练拓展到超大规模(如百亿边量级以上)的图数据上。这一套方案的开源也在计划中,等方案打磨得更加稳定成熟后,极验希望提供给工业界一套扎实可用的图数据分布式训练方案。


另外,极验针对数据建模的整体流程,如数据导入、数据预处理、图模式设计、模型配置与训练、模型评估等环节,开发了一套 Web 平台来辅助高效便捷的建模工作。磨刀不误砍柴工,事实证明,这是一本万利的工程性投资,加快了模型调研的同时,也大大降低了模型的后期维护成本。

图计算框架选择

图神经网络当前已经有不少专门的框架,比如亚马逊的 DGL、阿里的 Euler、基于 PyTorch 的 PyG,同时主流的深度学习框架也会支持图神经网络和图计算。但在 2017 年极验开始调研图神经网络的时候,还没有这么多开源框架可供选择,为了解决前面提到的三个落地问题,极验自己开发了一个内部的图计算引擎,做了一些图数据存储底层组件的定制化开发和优化工作,上层再与 TensorFlow 做整合。


在刘忠雨看来,图神经网络计算框架是未来深度学习计算框架一个新的主流,因此今年以来各类框架层出不穷。对于目前市面上主流的几个图神经网络计算框架,刘忠雨认为各个框架都有自己的鲜明的特点。比如,基于 PyTorch 的 PyG 非常适合用于学术研究,其内部已经汇聚了很多任务模型的实现。如果图数据规模比较小,用户希望做一些学术研究或开发新算法,DGL 也非常合适,它提供了一个非常通用的图神经网络的编程模式,并且最新的 0.3 版本也对性能做了比较大的优化。刘忠雨认为 DGL 未来的开发方向会朝着学术和工业两条线并行发展。阿里开源的 Euler 定位更加精准,就是如何在一个工业级别的大图上高效地训练算法。

算法模型选择

当前图神经网络已经有非常多的算法模型,包括大量变体,比较出名的有 GraphSage、Graph Attention Network、RGCNN,在这之上还有一个比较通用的 GNN 编程模式叫做 message passing 机制,稍微改造一下就可以适配属性图的学习,而属性图可以代表最广泛的图数据格式。这些功能基本上已经能够覆盖极验实际业务中非常多的场景。因此,对于模型选择,刘忠雨认为一个 Message Passing 方法就够了,其他变体算法其实没有什么本质上的区别。真正在实际业务落地中,重心应该放在数据本身和业务特点上,根据特定的业务数据和相关任务进行落地模型的考量。变体虽多,但在实际业务中使用的可能性或者性价比比较低,比如 Graph Attention Network 对于显卡计算负载过大,相比较而言,给业务带来的收益却并不明显。

模型更新问题

图蕴含的数据量往往特别大,全量更新的成本比较高,但是新产生的数据(如用户行为数据)时效性更强,价值也更大,那么如何做好 GNN 模型更新的工作?刘忠雨认为可以分三个层面来做。


首先可以直接用 GNN 模型去预测,现在的图模型大多是支持 inductive learning 的,基本可以直接对新数据进行预测,这本身就是在衡量模型算法的泛化能力。其次,如果数据变化比较快或者新出现的数据比较多,模型需要快速跟进并适配这些数据,就可以采用一些小技巧。比如将变化比较大的节点以及部分采样出来的就数据结合到一起,对这部分数据进行模型的 FineTune,从而做到模型的快速更新。第三步,还是需要选择一个适应业务指标需求建模的窗口数据来进行模型的训练,从而得到更好的校正效果。总体来说,极验的思路就是上述三个步骤的循环,优先保证模型本身的泛化性,再通过对新数据的微调来补充模型的快速响应能力。

GCN 未来展望

图神经网络在工业界尚未成为现象级技术

刘忠雨告诉 InfoQ,目前图神经网络在工业界并没有成为现象级的技术,但在大公司已有尝试,比如阿里将图神经网络用在了搜索排序和欺诈用户检测,国外的图片社交网站 Pinterest 发布了第一篇大规模图神经网络落地应用的论文等。虽然整体来看图神经网络的落地应用尚处于早期,还没有大范围推广开,但刘忠雨非常看好图神经网络的落地前景。图神经网络天然适用于大规模业务数据挖掘的需求,而前一波深度学习浪潮积累下来的软硬件设施也为图神经网络的落地打下了基础。


首先,很多公司的业务数据本身就存在大量的关系模式,关系建模可以帮助解决很多业务问题,典型场景比如反欺诈、营销推荐等,这给 GNN 的发展奠定了很好的数据与业务的基础。其次,很多企业已经在这波 AI 浪潮中搭建了自己的建模团队和机器集群,GNN 和 CNN、RNN 是一脉相承的,都是深度学习在新领域的推进,这又给 GNN 的发展奠定了很好的技术基础。基于这两点,刘忠雨认为 GNN 后续的研发和应用都会十分迅速,2 年之内应该就能真正落地


图神经网络的典型应用场景主要包括以下 5 类:


  1. 反欺诈。通过 GNN 对数据进行更深层的挖掘,识别恶意用户的模式,从而进行风险控制。

  2. 营销推荐。原来我们可能只是关注用户与商品之间的交互矩阵,但其实用户可能与商品还有更多层次的交互,比如用户与商家、商品跟商品之间的交互,而且用户与商品本身也有很多属性信息。这些信息以及前面提到的交互性的关联信息怎么做端到端的学习?图神经网络就提供了对应的解决方案,这可能是未来推荐系统非常普适的一个方向。

  3. 推理。推理现在可以说是学术界研究 GNN 非常火的一个方向,它指的是把信息或概念融合之后得到推断。很多信息和概念之间是存在一定关联的,因此可以协同考虑,这一过程与 GNN 的计算模式不谋而合。常见的应用包括视觉问答、视觉推理、语义图等。

  4. 3D 视觉。前几年业界主要使用 CNN 来解决 2D 图形的分割检测等问题,而现在 CVPR 接收论文有相当大的一部分都在做 3D 视觉,比如 3D 点云识别分割等,其中有大量工作都是基于图神经网络的思想。

  5. 学术场景,如生物的蛋白质活性检测、RNA 分类、物理领域的研究等。

图神经网络落地的瓶颈

刘忠雨告诉 InfoQ,图神经网络本身是一个产学研结合非常紧密的方向,但当前还存在几大瓶颈问题待解决。


首先是算法的可扩展性。虽然以采样操作为核心的 GraphSage 算法可以适应数十亿边规模的图,但它不是最优的解决方案。未来业界还需要考虑更高效的针对图建模的通用优化算法,这对于 GCN 在工业界全面落地能够提供非常大的帮助。目前来看,学术界已经逐渐有一些关注图学习优化的论文出来,这在未来会成为一个比较重要的学术研究方向。


另一个瓶颈是 GCN 的过平滑问题。目前图神经网络不能设计成特别深的层,否则节点的表达就趋于一致了,导致这个问题的一个主要原因就是过平滑,这个问题现在也已经有了一些解决方向。(注:参考论文 https://arxiv.org/abs/1806.03536https://arxiv.org/abs/1810.05997


未来极验在 GCN 的工作重点会继续放在图建模流水线的优化上,以加快业务产出的效率;另外也会把部分精力放在更高效的图的优化方法上,包括如何更快速地进行图算法模型的迭代等。

采访嘉宾介绍

刘忠雨,毕业于华中科技大学,极验算法负责人。负责极验各项目的算法研究以及技术路线制定,在图神经网络方面有比较深入的研究。


2019-06-23 09:0010789
用户头像
蔡芳芳 InfoQ主编

发布了 799 篇内容, 共 548.6 次阅读, 收获喜欢 2788 次。

关注

评论

发布
暂无评论
发现更多内容

自助洗车机投放在哪里比较好?

共享电单车厂家

自助洗车加盟 车白兔自助洗车 自助洗车机投放 自助洗车场地

Golang名库观止 | 配置解析神器viper使用详解

程序员读书

Go golng golang 面试

AIRIOT物联网低代码平台如何配置http客户端?

AIRIOT

物联网 HTTP 低代码平台

最佳实践 | 用腾讯云AI文字识别从0到1实现通信行程卡识别

牵着蜗牛去散步

腾讯 文字识别 技术实践 腾讯云AI 疫情防控

密钥管理系统-为你的天翼云资产上把“锁

天翼云开发者社区

数据 数据安全 密码管理

Authing 宣布推出云原生「多租户」身份解决方案

Authing

身份云 数字化转型 SaaS 多租户

Chrome Devtools调试小技巧

百度Geek说

后端

Nebula Graph|信息图谱在携程酒店的应用

NebulaGraph

图数据库 知识图谱 NebulaGraph

自助洗车机投放应该注意哪些问题?

共享电单车厂家

自助洗车加盟 自助洗车机投放 自助洗车场地

6元自助洗车怎么加盟?有啥门槛

共享电单车厂家

自助洗车怎么加盟 6元自助洗车 自助洗车加盟门槛

客户体验和客户服务的区别

龙国富

客户服务 客户体验管理

2022 开源之夏 | Curve 邀你与中国存储软件共成长,赢万元奖金

网易数帆

分布式 云原生 存储 Ceph curve

案例成果展 | 一朵“航空云”为国航APP核心业务保驾护航

York

云原生 敏捷实践 应用现代化

在nginx中使用proxy protocol协议

程序那些事

Java nginx 网络协议 程序那些事 5月月更

关于electron-builder打包遇到的一点点问题

空城机

Electron Node 5月月更

“微博评论”的高性能高可用计算架构

Dean.Zhang

实战攻略:企业如何一步步建立自己的数字孪生

WorkPlus

自助洗车机如何使用?其实很简单

共享电单车厂家

自助洗车加盟 自助洗车机使用

​对 Jenkins 和 CloudBees CI 的 UI 改进

龙智—DevSecOps解决方案

CloudBees

技术干货| MongoDB时间序列集合

MongoDB中文社区

mongodb

2022年国内外好用的10大甘特图软件(团队使用)

爱吃小舅的鱼

项目管理 Worktile 研发管理 甘特图 PingCode

游戏美术和设计师的福音,Helix DAM 测试版来了!

龙智—DevSecOps解决方案

perforce Helix DAM

架构实战营作业五

热猫

架构训练 模块五

小马

「架构实战营」

小插件大功能!轻量化森BIM插件手把手教学

ThingJS数字孪生引擎

插件 数字孪生 BIM

Klocwork 2022.1推出Kotlin分析引擎

龙智—DevSecOps解决方案

klocwork perforce

关于数据一致性解决方案

穿过生命散发芬芳

数据一致性 5月月更

自助洗车怎么洗?来看看洗车教程

共享电单车厂家

自助洗车加盟 自助洗车怎么洗 自助洗车机使用

融云一图看懂 | 居家办公的正确姿势

融云 RongCloud

钉钉宜搭发布大学生低代码实践计划,一起为公益发光发热!

一只大光圈

低代码 公益 钉钉宜搭

前车之鉴:聊聊钉钉 Flutter 落地桌面端踩过的“坑” | Dutter

阿里巴巴终端技术

flutter 钉钉 移动端 跨端框架 桌面端

超越TensorFlow!未来我们需要基于图的全新计算模式_AI&大模型_蔡芳芳_InfoQ精选文章