潮喷是什么意思| 右脸长痣代表什么意思| 巨细胞病毒是什么病| 梦见捡到钱是什么预兆| 吃什么能胖起来| 香油是什么| 孕妇吸二手烟对胎儿有什么影响| 心血管堵塞吃什么药| 忠诚是什么意思| 右胸上部隐痛什么原因| 氟利昂是什么味道| 夏天喝什么汤| 头眩晕看什么科| 怜悯之心是什么意思| 3.19是什么星座| 卫校学什么专业最好| 回奶是什么意思| 想什么来什么是什么定律| 私奔什么意思| 八月一号是什么星座| 什么分泌胆汁| 肺癌吃什么水果| 闰六月给父母买什么| 眼睛干涩用什么药| 包粽子用什么米| 抗衡是什么意思| 什么叫溶血| 脐疝是什么| 这次台风叫什么| 舌头尖有小红点这是什么症状| 什么是直女| 梦见上班迟到什么意思| gi什么意思| 降血压吃什么药| 失足妇女是什么意思| 蓝脸的窦尔敦盗御马是什么歌| 九价是什么意思| 过敏性紫癜千万不能用什么药| 肉蔻是什么样子| 入伏天是什么意思| 女性分泌物增多发黄是什么原因| 梦见别人笑什么意思| 甘油三酯偏高是什么意思| 手指代表什么生肖| 冬至为什么烧纸| 黑胡椒和白胡椒有什么区别| 腹泻期间宜吃什么食物| 生气发抖是什么原因| 浪子回头金不换是什么意思| 胃窦炎是什么原因引起的| 云南有什么少数民族| 陈丽华是慈禧什么人| 山茱萸有什么功效| 见红是什么样的| 8月1日是什么节| 海蜇长什么样子| 孩子喉咙痛吃什么药好| 什么网名好听| 犬吠是什么意思| 梦见去看病是什么意思| 望而生畏是什么意思| nba是什么意思的缩写| 暑伏为什么要吃饺子| 乳房疼挂什么科| 小孩脚抽筋是什么原因引起的| 鱼眼睛吃了有什么好处| 手心发黄是什么原因| 意尔康属于什么档次| 狗狗拉肚子是什么原因| 冲猪煞东是什么意思| 什么笑| 下载什么软件可以赚钱| 血压计什么牌子好| 淘米水洗脸有什么好处| 2003年什么年| ai是什么| 正军级是什么级别| 喝黑咖啡有什么好处| dan什么意思| 蛐蛐进屋有什么预兆| 小孩过敏性咳嗽吃什么药| 县长什么级别干部| 肉炒什么菜谱大全| 吃什么睡眠好的最快最有效| 蛇鼠一窝指什么生肖| 免疫组织化学染色诊断是什么| 唐朝什么时候灭亡的| 什么是包皮过长| 吃东西感觉口苦是什么原因| 为什么有些人显老| 苏格兰牧羊犬吃什么| 一级甲等医院是什么意思| 属羊的什么命| 低血糖的人吃什么东西最好| 鱼不能和什么食物一起吃| 颈动脉斑块是什么意思| ooc什么意思| 高血脂吃什么药效果好| 肚子突然变大是什么原因| 嗜碱性粒细胞偏低说明什么| 洛神花是什么花| 素股是什么意思| 放飞自我是什么意思| 小叶增生吃什么药| 高挑是什么意思| 扫把和什么是一套的| 什么是阳萎| 银耳不能和什么一起吃| 念珠菌阳性是什么病| 六味地黄丸什么人不能吃| 可是什么意思| 过敏应该挂什么科| 氯喹是什么药| 吹弹可破的意思是什么| 多喝水有什么好处和坏处| nt是什么意思| 尿路感染是什么原因引起的| 肛门下坠感是什么原因| 手发麻发木是什么病的前兆| cinderella是什么意思| 六月初四是什么星座| 海兔是什么动物| 神经衰弱有什么症状| 口干口臭口苦吃什么药| 机灵的动物是什么生肖| 知行合一是什么意思| 有什么花| 淋巴挂什么科| 什么叫四大皆空| 移徙是什么意思| 什么动物不睡觉| 心功能一级什么意思| 阈值是什么意思| 女人胃寒吃什么好得快| 判官是什么意思| 起伏不定是什么意思| 火龙果是什么季节的水果| 间奏是什么意思| 血小板计数偏高是什么意思| 缺钾是什么症状| 火红的太阳像什么| 姨妈发黑量少什么原因| 5月7日什么星座| 鱼腥草破壁饮片有什么功效| 盆腔炎吃什么药有效| 打胎吃什么药| 芥菜是什么菜| hpv亚型是什么意思| 呼吸困难气短是什么原因| 疱疹在什么情况下传染| 2009年出生属什么| 空调管滴水是什么原因| remember是什么意思| 痔疮术后吃什么恢复快| 头晕是什么情况| 脸长适合什么样的发型| 阴囊潮湿吃什么食物| 眼底充血用什么眼药水| 查激素水平挂什么科| cps什么意思| 1919年属什么生肖| 三手烟是什么| 嘎哈是什么意思| 黑死病是什么| 工勤人员是什么意思| 乙肝会有什么表现症状| cd3cd4cd8都代表什么| 金银花搭配什么泡水喝好| 蜂蜜什么时候喝最佳| 性激素六项什么时候检查| 砚是什么东西| 千锤百炼什么意思| 清江鱼又叫什么鱼| 什么的废墟| kbs是什么意思| 尿路感染吃什么药效果最好| 挚友是什么意思| 属蛇的人适合佩戴什么| 尿路感染需要做什么检查| 阑尾炎看什么科室| qn是什么医嘱| 反流性食管炎吃什么中成药| 今天什么日子老黄历| 爱打扮的女人说明什么| 颈椎生理曲度变直是什么意思| 支原体肺炎吃什么药| 吃什么食物对心脏有好处| mds是什么病| fast什么意思| 什么手机有红外线功能| 人为什么要呼吸| 四书五经指的是什么| 靳东妹妹叫什么名字| 肛门松弛是什么原因| t是什么| 什么是三伏贴| 茶宠为什么会变色| 八字桃花是什么意思| smr是什么意思| 两个虎念什么| 里急后重吃什么药最好| 什么叫国学| 营养不良会导致身体出现什么症状| 虾与什么食物相克| 交社保有什么用| 台湾什么时候回归| 人过留名雁过留声什么意思| 破伤风感染后会出现什么症状| 阴囊是什么部位| nt检查什么内容| 什么可以代替狗狗沐浴露| 小缺血灶是什么意思| 牙龈紫黑是什么原因| 肾盂分离是什么意思| 烂好人什么意思| 电轴不偏是什么意思| 阿咖酚散是什么药| 幸灾乐祸什么意思| 娅字五行属什么| 小孩手上脱皮是什么原因| 荨麻疹是由什么引起的| 结膜囊在眼睛什么位置| 跖疣挂什么科| 下面痒吃什么消炎药| d二聚体高是什么意思| 上腹部饱胀是什么原因| 生孩子前要注意什么| 梦见买棺材是什么征兆| 花中皇后是什么花| 西瓜与什么食物相克| 甲鱼跟什么炖最补| 空心菜什么人不能吃| 什么是丹凤眼| 发泄是什么意思| 照看是什么意思| 国家电网需要什么专业| gm墨镜是什么牌子| 耳朵发烫是什么原因| 传教士是什么| 下午6点半是什么时辰| 减肥用什么好| 血常规检查挂什么科| 梦见自己生病住院了是什么意思| 男生早上为什么会晨勃| 列席是什么意思| 孕期用什么护肤品| 强身之道的强是什么意思| 六十六大寿有什么讲究| 屌丝是什么| 什么是韵母| 38线是什么意思| 几斤几两是什么意思| 感情是什么| 心字底的字与什么有关| 憧憬未来是什么意思| 碱是什么| 1898年属什么生肖| 喝什么降火| 吃什么可以变胖| callme是什么意思| 升结肠管状腺瘤是什么意思| 白血球低是什么原因| s是什么m是什么| 乡和镇的区别是什么| 百度

Dior, The Art of Color exhibition held in Shanghai

原创 精选
开发 人工智能 新闻
本文主要介绍了美团平台在布局策略、视觉降噪、交互功能、可视化叙事、3D图谱可视化等方面的一些实践和探索。
百度 (黄山舰)老兵!黄山舰入列已近10年在国防部发表的谈话中,任国强表示:“我们要求美方切实尊重中国的主权和安全,尊重地区国家维护和平、稳定与安宁的强烈共同愿望,不要无事生非、兴风作浪。

作者 | 巍耀 诚威

知识图谱可视化可以更直观地查看和分析知识图谱的数据。本文主要介绍了美团平台在布局策略、视觉降噪、交互功能、可视化叙事、3D图谱可视化等方面的一些实践和探索,同时沉淀出了uni-graph图可视化解决方案,并支持了美团的很多业务场景,包括美团大脑、图数据库、智能IT运维、组件依赖分析、行业领域图谱等。希望能对从事知识图谱可视化方向的同学有所帮助或启发。

1 知识图谱可视化基本概念

1.1 知识图谱技术的简介

知识图谱(Knowledge Graph)是人工智能的重要分支,它是一种揭示实体之间关系的语义网络,可以对现实世界的事物及其相互关系进行形式化地描述。举个例子,“孙悟空的师傅是唐僧”就是一条知识。在这条知识里,有“孙悟空”和“唐僧”两个实体,“师傅”是描述这两个实体之间的关系,上述内容在知识图谱中就组成了一个SPO三元组(Subject-Predicate-Object)。所以,对于现实世界中实体之间的关联关系,用知识图谱进行描述的话,就显得非常合适。正是由于知识图谱的这种优势,这项技术得到迅速普及,目前在搜索、推荐、广告、问答等多个领域都有相应的解决方案。

1.2 知识图谱可视化的简介

可视化,简单来说就是将数据以一种更直观的形式表现出来。其实,我们现在常用的折线图、柱状图、饼状图(下称折柱饼),甚至Excel表格,都属于数据可视化的一种。以往,我们存储数据主要是以数据表的方式,但这种方式很难结构化地存储好知识类型的数据。对于关系类型的数据,如果用前文的例子为基础并补充一些相关信息,经过可视化后就能展示成这样:

西游记中人、物关系

这种信息就很难用“折柱饼”或者表格呈现出来,而用知识图谱可视化的方式呈现,就非常的清晰。

2 场景分析与架构设计

2.1 场景需求分析

我们梳理后发现,在美团的各个业务场景中知识图谱可视化需求主要包含以下几类:

  • 图查询应用:以图数据库为主的图谱可视化工具,提供图数据的编辑、子图探索、顶点/边信息查询等交互操作。
  • 图分析应用:对业务场景中的关系类数据进行可视化展示,帮助业务同学快速了解链路故障、组件依赖等问题。
  • 技术品牌建设:通过知识图谱向大家普及人工智能技术是什么,以及它能做什么,让AI也具备可解释性。

2.2 技术选型与架构设计

在图关系可视化上,国内外有很多图可视化的框架,由于美团的业务场景中有很多个性化的需求和交互方式,所以选择了D3.js作为基础框架,虽然它的上手成本更高一些,但是灵活度也比较高,且功能拓展非常方便。D3.js提供了力导向图位置计算的基础算法,同时也有很方便的布局干预手段。于是,我们基于D3.js封装了自己的知识图谱可视化解决方案——uni-graph。整体的功能与架构设计如下图所示,下面我们会介绍一些uni-graph的功能细节和可视化的通用技术策略。

架构图

3 技术挑战与方案设计

3.1 布局策略

在不同类型的知识图谱中,因数据差异较大,对布局效果的要求也有所不同。能让业务数据有合适的布局来做可视化呈现,是一项比较大的技术挑战。除了下面几种基本的布局之外,我们还探索了一些特定场景下的布局方案。

布局策略-基础布局

提取数据特征优化布局

D3.js提供的力导向图模块(d3-force)实现了一个velocity Verlet数值积分器,用于模拟粒子的物理运动。在不做过多干预的情况下,会根据节点与边的关系模拟物理粒子的随机运动。D3.js的力导向图提供的力学调参项主要包括Centering(向心力)、Collision(碰撞检测)、Links(弹簧力)、Many-Body(电荷力)、Positioning(定位力)。如何针对不同的节点进行合适的力学干预,是让布局更符合预期的关键。一般来讲,同一业务场景的图谱结构都具有一定的相似性,我们考虑针对业务特定的数据结构特征来做定制化的力学调优。这里举一个简单的场景进行说明,我们抽象出了在树中才有的层级和叶子节点的概念,虽然部分节点会互相成环,不满足树的定义,但是大部分数据是类似于树的结构,这样调试后,展示的关联关系就会比随机布局更加清晰,用户在寻找自己需要的数据时也会更快。

布局策略-基于数据特征优化其实,美团的各个业务场景都有个性化定制布局的需求,这里只是拿其中一个最简单的场景进行说明,uni-graph能够将力学参数调整的模块独立出来,并且梳理出一些常用的参数预设,可以支撑很多场景的布局优化。

层级数据布局方案

在很多业务场景中,用户更倾向于采用分层的方式来观察图谱数据,因为这样有利于理解和分析图谱数据,比如:根据用户探索路径分层、边关系聚合分层、业务属性归类分层、指定中心点路径分层等等,这些需求对图谱的样式和布局形式提出了更高的要求。得益于D3.js力学布局的灵活性和拓展能力,我们在业务实践的过程中实现了几种常用的布局方案:

布局策略-层级布局-1

布局策略-层级布局-2

以聚簇层布局为例,我们简单介绍一下实现过程:

首先处理图谱数据,将中心节点关联的子节点按关联关系归类,生成聚簇边和聚簇边节点,同时将子节点分层。还需要自定义一种聚簇力,聚簇力包含三个参数ClusterCenter、Strength、Radius,对应聚簇中心、力的强度、聚簇半径。在力学初始化时,我们为每个子节点定义聚簇中心节点和聚簇半径。最后在力学布局的Tick过程中,先计算子节点与其聚簇中心节点坐标偏移量,然后根据偏移量和聚簇半径的差值来判断节点的受力方向和大小,最终经过向量计算得出节点的坐标。

布局参数配置化

在特定领域的图谱可视化中,通常采用一两种布局即可满足用户的展示需求,因为这些场景下的图谱的关系结构相对固定。但作为平台性质的工具,就需要展示多个领域的图谱。为了更清晰地展现出各领域图谱的特点,布局形态就需要跟随图谱而变化。针对这种场景,我们实现了多项布局参数的配置化,用户可以根据领域图谱的特点优化布局参数,并作为配置保存下来。领域图谱可视化-网格布局参数调整

布局策略-参数配置化

图数据库可视化-布局样式参数调整

布局策略-图数据库服务链路可视化-平铺层布局参数调整布局策略-服务链路

3.2 视觉降噪

在用户使用可视化应用时,文字/节点/边等元素内容混杂在一起,如果没有做好信息的表达和呈现,会直接影响到用户的使用体验和使用效率。经过分析,我们发现这是因为在可视化过程中产生的视觉噪声太多,而通过可视化带来的有效信息太少。下面将举例展示什么叫做视觉噪声:

视觉降噪-视觉噪声

在以上几张图中,虽然将知识图谱的数据呈现了出来,但是元素数量非常多,信息杂乱,给用户的观感是“眼花缭乱”。下面我们会介绍针对这类问题的解决方案。

文字处理

文字主要用在节点和边的描述上,虽然它能提供非常重要的信息,但是节点多了后,文字会在所难免的相互重叠,而重叠后的文字很难快速识别出来,不仅起不到传递信息的作用,反而会造成很差的视觉体验。为此,我们需要对文字进行遮挡检测,根据文字的层叠关系,将置于底部的文字透明度调低,这样即使多层文字重叠后,置于顶层的文字依然能被快速识别。

视觉降噪-文字-对比

但这种解法的时间复杂度会随着节点的增多逐渐变得不可控。假如我们有100个节点,最多需要O(n!)的时间复杂度才能计算完毕。我们这里采用栅格划分的方式来做优化,先对画布进行栅格划分,然后确定节点所在的一个或多个栅格,在进行碰撞检测的时候,只需要和自己同栅格的节点做对比即可,因为不同栅格内的节点一定不会出现碰撞的情况。

视觉降噪-文字-栅格划分

这种栅格划分的理论基础就是四叉树碰撞检测,我们在此基础上做了进一步的优化。由于需要进行遮挡检测的元素是文字类型的节点,这种节点的特点是长比宽大很多。如果按照传统的四叉树分割算法,就会造成很多文字节点横跨多个栅格,对比的次数较多。在检测前,我们先计算出所有文字节点的平均长宽比,每次栅格划分是横向还是纵向,取决于哪个方向划分后栅格的长宽比更靠近文字的平均长宽比,这样做就会减少文字节点横跨多个栅格的情况,从而减少了每次需要被碰撞检测的节点数量。

视觉降噪-文字-四叉树

边处理

多边散列排布

知识图谱中存在包含大量出(入)边的中心节点,在对这些中心节点的边进行可视化展示时,往往会出现边与中心节点联结处(Nexus)重叠交错在一起的情况,进而影响视觉体验。针对这种特殊场景,我们设计了一种多边散列排布的算法,通过边夹角偏移量计算和节点半径裁剪,将Nexus分散排布在节点周围,减少边线重叠的情况,以达到更清晰的视觉效果:

边处理-散列排布

多类型可调节边

我们还实现了多种类型的边,并支持通过参数配置的方式来调整边的样式,比如:贝塞尔曲线控制点、弧度、自旋角度等参数,以满足各种复杂图谱的可视化场景。

边处理-多类型边

通过多边散列排布,改变边线类型,并调整样式参数,下面是我们将图谱中凌乱无序的边线优化后的效果:

边处理-最终对比

3.3 交互功能

合适的图谱布局能更好地表达出数据的含义,通过视觉降噪可以进一步让图谱传递出更多的有效信息。但是用户依然需要通过交互找到自己关心的信息,一个图谱可视化工具是否好用,交互功能会起到非常重要的作用。目前,我们实现了下面的基本交互功能:

  • 画布操作:拖动、缩放、动态延展、布局变换、多节点圈选。
  • 元素(节点和边)操作:样式配置、悬浮高亮、元素锁定、单击、双击、右键菜单、折叠/展开、节点拖动、边类型更改。
  • 数据操作:节点的增删改查、边的增删改查、子图探索、数据合并、更新重载。

除了上述的基础交互功能外,我们还探索了一些特殊场景的交互。在图谱可视化中交互的目的,是为了从庞大的知识图谱中找到自己关心数据的关联关系,同时也能够观察到这些关联关系在全局画布中的位置。

路径锁定

通过选取不同的节点,自动计算出节点之间的合适路径,做锁定展现,方便观察两个或多个节点是如何关联起来的。

交互功能-路径锁定

聚焦展现

对于当前不关注的图谱区域,默认布局可以密集一些来节省画布空间,关注某个区域后,会对当前关注的一小块区域重新布局,让节点排布分散一些,方便查看文字的内容。

交互功能-聚焦展现

其实,无论可视化的节点与边的数量有多庞大,当深入到业务细节中的时候,使用者关注的节点数量其实不多,重点是把使用者关心的数据从大量数据中筛选出来,并且做好清晰地呈现表达。

3.4 美团大脑可视化

美团大脑-主界面

美团大脑是围绕吃喝玩乐等多种场景,构建的生活娱乐领域超大规模知识图谱,为用户和商家建立起全方位的链接。为了让美团大脑的能力更容易的被理解和使用,我们需要通过知识图谱可视化的方式让美团大脑更具象化,并开发出便捷的知识图谱查询应用。在开发知识谱图可视化功能之前,还需要具备一些通用可视化能力。下面主要介绍一下多屏适配和动画相关的技术能力。

多屏适配方案

美团大脑呈现的终端场景非常复杂,有PC/Mac端屏幕、大屏电视、巨型宽屏等。各个屏幕的尺寸比例都有所不同,为了保持统一观感,不能出现滚动条、不能有边缘留白、不能压缩变形。同时在一些重要场合的巨型宽屏上,还要对细节做特定的适配。通过sass的函数和mixin功能可以较好地完成非等比缩放和个性化适配的需求。

code-sass

  • 非等比缩放:在长宽都需要考虑的缩放场景中,使用基于视口百分比的单位vh、vw很合适,设计稿尺寸为1920 * 1080,可以通过转换函数自动计算出对应的vh、vw值。其中为了保证字体大小在不同尺寸的屏幕上更符合预期,会用设计稿里的高为基础单位做rem的指导参数。
  • 个性化适配:在超宽的大屏尺寸下,按照比例自动缩放,在某些元素上视觉效果并不是特别完美,上面的mixin可以很方便地在CSS中对特定尺寸的屏幕做个性化适配。 
  • 像素级还原:针对不同尺寸的设计稿校准时,有些元素会带有阴影效果或者是不规则图形,但是设计师只能按照矩形切图,导致Sketch自动标注的数据不准确。这时可以把浏览器的尺寸设置成与设计稿一致,再蒙上一层半透明的设计稿图片,逐个元素做对齐,就可以快速对不同尺寸屏幕的设计稿做像素级还原。

这套大屏适配技术方案支撑了美团大脑历次的版本迭代。此前在参展亚洲美食节时,由于会场搭建情况比较复杂,屏幕分辨率经历了多次变更,只花费了0.5人日就做到了各种不同分辨率的定制、开发和适配工作。

美团大脑-多屏适配现场效果

美团大脑-多屏适配-现场

动画脚本自动化

与静态可视化界面相比,动态可视化或者交互式可视化有更好的视觉效果,并且能传递给观看者更多的信息。

静态效果对比动态效果

此外,美团大脑在展出过程中部分时间是无人值守的,而有了动态可视化后,还需要自动播放循环动画,因此就有了动画脚本自动化的需求:

  • 在无人操作时,按照配置好的动画脚本循环执行。
  • 用户与应用交互时,能够自动将动画停止。
  • 有便捷的方式重新运行动画或进行任意场景的转跳。

美团大脑的动画效果具有以下几个特点:

  • 动画类型多样化,包含3D类型、DOM Animation、SVG Animation、第三方Canvas组件、Vue组件切换。
  • 多个动画模块之间有衔接依赖,动画执行可以暂停和开始。
  • 不同模块的动画之间需要相互通信。

我们将每个动画都封装成一个函数,初期使用了setTimeout和async function的方案:setTimeout:可以管理简单的动画执行,但是只要前面的动画有时间上的变动,后续所有动画setTimeout的delay参数都需要改,非常麻烦。async function:将动画都封装成返回Promise的函数,可以解决多个动画模块依赖的问题,这个方案对不同动画模块开发者的协作效率有很大的提升,但是依然无法暂停和取消动画。

code-js异步async function的方案已经比较好用了,但是主要问题是一旦执行就不能暂停或取消,因此我们基于generator function封装成了类async function,可以做到随时暂停或取消,下面是使用封装的异步动画调度器与各种工具helper写的动画模块业务代码。

code-vue实践

整体方案主要有以下几个功能:

  • $ae是基于generator function封装的异步工具库async-eraser,CancelToken是停止生成器运行的取消令牌。
  • 定制开发了支持异步事件的EventEmitter,emit函数会返回一个Promise,resolve时就会得知emit的动画已经执行完毕,使Vue跨组件的动画调度更容易。
  • Vue组件卸载时会自动off监听的事件,同时也能自动停止当前组件内的动画调度器。
  • 监听DOM的transitionend和animationend事件,自动获取CSS动画执行结束的时机。

通过上述方案,我们让开发动画模块的同学像写异步函数一样写动画模块,极大地提高了动画模块的开发效率,让每个同学的精力都放在动画细节调试上,下面是最终的实现效果:

美团大脑-总体效果

美团大脑功能交互

美团大脑-功能交互

因为美团大脑不仅要参加各类活动与展会,还要服务于同事们的日常工作,帮助大家便捷的查询出POI的知识图谱数据,最终效果如上图所示。它主要有以下功能和交互:

  • POI信息查询:星级、评论数、均价、地址、分项评分、推荐理由。
  • 知识图谱可视化:成簇布局、环路布局、节点寻路算法、画布的缩放与拖拽、节点锁定操作、聚焦呈现。
  • 辅助信息:推荐菜、菜品标签、店铺标签词云、情感曲线、细粒度情感分析、相似餐厅。

3.5 可视化叙事的探索

美团大脑是我们团队第一个知识图谱可视化项目,通过该项目的实践,我们积累了一些可视化基础能力和知识图谱可视化的优化策略,让开发效率得到了极大的提升,同时团队开始考虑在交互和表现形式上做进一步的突破。我们也搜集到一些反馈,发现很多人依然对知识图谱这项技术是什么和能做什么了解得不是很清楚。经过团队的头脑风暴,我们认为核心原因是AI技术高深复杂,难以具象化,需要对真实场景进行还原。刚好,知识图谱相对于其他的技术而言其可解释性更强,于是我们决定进行可视化叙事的研发。数据可视化叙事(Visual Data StoryTelling)是通过隐喻对数据进行可视化,并以可视化为手段,向受众讲述数据背后的故事。下面举个例子,来对比一下纯文字与可视化叙事的不同:

可视化叙事可以看到,可视化叙事的形式要比文字更直观,能更清晰地让观看者了解数据背后的故事,还可以通过动效将重点信息呈现,引导用户按照顺序了解故事内容。下面我们会介绍几个在可视化叙事中开发动效的思路。

扫光效果

扫光效果对视觉观感的提升和视觉重点的强调非常有效,我们在做扫光效果的轮廓元素上,需要设计师提供两个文件,一个是轮廓的背景图片,一个是带有轮廓path的svg。经过技术调研,我们发现可以通过svg渐变或者蒙版来进行实现。

SVG渐变

扫光-渐变SVG蒙版

扫光-蒙版渐变方案用在弯曲角度较小的轮廓元素或图谱的边上没有问题,不过渐变只能线性的从一侧到另一侧,如果应用到弯曲角度较大的边上,渐变效果会不连续。

扫光-渐变-缺点综合分析一下两种方案,蒙版方案更加灵活,渐变性能更好。由于我们的场景可以规避弧度过大的边,因此我们选择了性能更好的渐变方案。

动效节奏调试

一个动效是否有节奏,对于观看者的体验影响非常大,但是节奏感是一个非常难掌握的东西,这里推荐两个辅助工具:animejs和贝塞尔调节。这两个工具能够给大家带来很多灵感,同时可以让设计师自己利用工具调试出或者找到期望的动效,降低动画开发的协作成本,这里展示一个使用贝塞尔函数实现的动效:

贝塞尔可视化叙事效果我们为知识图谱的可视化叙事设计了几个典型场景,对日常生活中的找店游玩、商户经营分析等需求进行情景再现,直观地将知识图谱是如何服务真实场景的需求展现出来,以下是可视化叙事的效果:

可视化叙事-总体效果

3.6 3D可视化场景的探索

上面介绍的都是在2D场景下知识图谱可视化的开发经验,为了实现更好的视觉效果,我们还探索了3D场景的技术方案。我们选择了vasturiano的3d-force-graph,主要原因如下:

  • 知识图谱布局库为d3-force-3d,是基于d3-force开发的,延续了团队之前在D3.js方向的积累,使用起来也会更熟悉。
  • 它是基于three.js做3D对象的渲染,并在渲染层屏蔽了大量的细节,又暴露出了three.js的原始对象,便于对3D场景的二次开发。

在产品与设计层面,因为我们团队在3D可视化上的经验比较少,就学习调研了很多优秀的作品,这里主要从Earth 2050项目获取了一些灵感。下面介绍我们在二次开发过程中主要的优化点。

节点样式优化

3d-force-graph中默认节点就是基础的SphereGeometry 3D对象,视觉观感一般,需要更有光泽的节点,可以通过下面的方案实现。

  • 用shader实现一个透明发光遮罩的材质。
  • 用类似高尔夫的纹理让节点更有质感。

操作虽然比较简单,但是将关键节点“点亮”后,整体的视觉观感会好很多。

3D-节点纹理

3D动效

为了在3D场景下有更好的效果,还需要添加一些动效。镜头游走我们利用了内置的相机进行四元数的旋转计算。

3D-镜头游走

粒子飞散

在飞散的时候,我们创建随机不可见的粒子,控制粒子数量缓慢出现,利用requestAnimationFrame向各自方向飞散。

3D-粒子飞散

产品效果与场景思考最终在CES会场效果如下:

3D-CES现场我们在研发了主要应用在技术推广的3D知识图谱可视化后,还考虑迁移到工具类应用中,但是发现工具类应用目前更适合2D的展示与交互,3D虽然对于空间利用率更大,但是用户交互方式也更复杂。如果后续能思考出更高效的交互方式,我们会再次尝试利用3D知识图谱可视化来提升工具类应用的产品体验。

4 落地场景

目前,知识图谱可视化技术方案已经应用在了美团多个业务场景中,包括美团大脑、图数据库、智能IT运维、组件依赖分析、商品标签管理、行业领域图谱等。未来,我们还将探索更多的应用场景。

落地场景-1落地场景-2落地场景-3

5 未来展望

最后,展望一下知识图谱可视化技术后面还可以探索的一些方向,我们从交互场景、效果呈现以及工具能力等三个维度进行说明。

交互场景

3D场景中的交互:在3D场景中做知识图谱可视化视觉震撼程度更强,但是现阶段实用程度还不够,交互的效率也不如2D场景,高效的3D交互方式需要进一步探索。虚拟现实:元宇宙的概念快速带动了VR等虚拟现实技术的发展,技术成熟后或许能带来更好的可视化体验。

效果呈现

大规模知识图谱可视化:在节点数量非常多的知识图谱可视化中,性能上的问题有WebGL、WebGPU等技术方案去解决,但是也仅限于能可视化出来,用户已经很难找到自己需要的信息了,如何既能呈现出成千上万的节点,又能让用户便捷的找到自己需要的关系数据信息很重要。布局的智能化:目前知识图谱的布局合理性主要靠半人工干预的方式来保证,后面可以考虑针对不同的数据特征去自动匹配合适的力学布局策略,用算法智能预测出最合理的布局方式,减少开发者或用户的干预成本。

工具能力

通用查询工具:目前各大知识图谱数据存储引擎都有自己的可视化查询工具,互不通用,也互有优缺点,如果有统一的可视化查询语言,就能够让一种可视化工具适配多个存储引擎和应用,提高工具应用的效率。

责任编辑:张燕妮 来源: 美团技术团队
相关推荐

2025-08-05 09:34:14

数据可视化探索

2025-08-05 14:04:16

2025-08-05 12:23:28

神经网络优化

2025-08-05 11:48:05

NLP知识图谱

2025-08-05 10:50:29

知识图谱人工智能深度学习

2025-08-05 13:04:10

数据可视化信息可视化数据图表

2025-08-05 09:10:00

算法人工智能技术

2025-08-05 19:57:56

探索商家可视化

2025-08-05 15:46:06

数据视频技术

2025-08-05 10:08:00

DBA美团SQL

2025-08-05 00:10:00

AI人工智能知识图谱

2025-08-05 10:52:15

知识图谱

2025-08-05 16:48:56

知识图谱构建存储

2025-08-05 09:18:04

2025-08-05 10:36:32

知识图谱人工智能

2025-08-05 14:19:07

阿里巴巴技术神器

2025-08-05 15:00:04

2025-08-05 09:54:16

产品经理

2025-08-05 09:53:27

移动应用美团代码

2025-08-05 14:04:53

人工智能知识图谱
点赞
收藏

51CTO技术栈公众号

pp材质是什么 脑胀是什么原因 igg是什么 夏天什么时候最热 冬菇有什么功效与作用
心慌是什么意思 开什么店最赚钱 手脚麻木吃什么药 坐月子什么不可以吃 头皮发紧是什么病的前兆
男人吃逍遥丸治什么病 牛奶不能和什么一起吃 粉瘤是什么东西 菲律宾货币叫什么 血糖为什么会高
黄体生成素高是什么原因 打车费计入什么科目 如何知道自己是什么星座 思维是什么意思 龙王庙是指什么生肖
尿酸高吃什么可以降下去wzqsfys.com 甲状腺吃什么盐好hcv7jop4ns8r.cn 七个星期五什么档次hcv8jop1ns6r.cn 罴是什么动物hcv9jop6ns8r.cn 感冒适合吃什么饭菜hcv8jop1ns7r.cn
喝羊奶有什么好处hcv8jop6ns1r.cn 梦见头上长虱子是什么意思hcv8jop5ns9r.cn 泻火是什么意思hcv7jop4ns5r.cn 小老头是什么意思hcv7jop6ns7r.cn 胀气是什么症状hcv9jop3ns1r.cn
经期吃凉的东西有什么影响xinjiangjialails.com 爱爱是什么意思hcv8jop0ns4r.cn 自控能力是什么意思wzqsfys.com nb是什么品牌hcv9jop4ns0r.cn 离子检测是检查什么hcv7jop9ns1r.cn
内分泌失调是什么原因引起的hcv7jop6ns6r.cn 降尿酸吃什么药gangsutong.com 宫内早孕什么意思hcv7jop6ns9r.cn 孕妇贫血吃什么补血最好hcv8jop1ns8r.cn 藏红花泡水是什么颜色hcv8jop8ns7r.cn
百度