作者 | 闭雨哲

来源 | ThutmoseAI

背景介绍

新冠肺炎是一种具有最长达24天潜伏期的新型突发性传染疾病,这种特性给疫情防控带来了巨大的挑战,随着感染规模的不断扩增,简单的人为治理已不太奏效,使用“大数据”技术手段来辅助人为治理社会有助于快速准确的定位问题关键,帮助决策者及时作出下一步规划。

这一个月来每天都会在各大站点查看感染人数的更新、病例的行程发布等等,然而互联信息更新总是不能赶上群众急切的小手手...

技术背景

知识图谱技术作为大数据走向人工智能的台阶,它以最契合社会行为的形式表达复杂的社会结构,非常适合分析具有关联关系的数据,使用知识图谱技术分析传染关系及社会动向非常有利于疫情的防控,对疫后的研究分析也有帮助。尽管当前大数据和人工智能的应用尚处于初级阶段,但以知识图谱为核心的研究成果正在带来一波新兴的科技潮流。

知识图谱背后的技术关键“图数据库”:

图形数据库是一种应用关系图理论存储复杂的实体之间的关系信息,即用“点”和“边”的形式来存储数据,最常见例子就是社会网络中人与人之间的关系,正是本次疫情中的关键线索。

使用技术

本文使用图特摩斯科技自研的国内首个时序图谱平台AbutionGraph作为技术支撑,主要技术突破点为:静态图+动态图+时序图+多维的存储形式。

解决问题:

  • 疫情实时统计:实时统计医院/城市/省份的确诊/疑似/死亡/接触人数等

  • 疫情实时分析:病例接触者人群溯源及时排查、高风险同行人群分析、城市区域风险等级计算等

  • 疫情数据研究:病毒传播渠道及路径、寻找疾病候选药物,提供相应的药物作用机制等

使用数据:

本次演示共使用5类实体数据:包括正常人、病例、地址、交通工具、医院等数据信息,以及各类实体之间的关联关系,如“某患者曾出现于某超市”等关系。我们使用AbutionGraph依据真实场景建模,由于详细数据不公开,本文中均使用模拟数据进行分析。

与普通图存储的技术区别

在建模前,我们有必要先来理解一下多维、动态、时序这些在图谱存储中的新概念。

1)“一维”图谱和“多维”图谱的区别

一维图谱:

(常见的图形存储结构,如:JanusGraph、Neo4J等技术中使用)

多维图谱:

AbutionGraph独有的存储形式(实体属性细分,任意维度的数据包含,如张某某具有2个维度的数据,而李某某不患有疾病,可不包含“维度2”。)

2)“静态”、“动态”及“时序”图谱的区别

假定场景:实时统计每个人之间的交易总金额。

1.静态图谱:

静态图谱统计历史账单总金额方法:10+5+5=20元

(所有交易信息都查询出来,再逐个累加汇总)

 

2.动态图谱:

动态图谱统计历史账单总金额方法:数据产生后发生存储即实时自动汇总,及时查询得出20元

3.动静结合:

静态图谱+动态图谱是AbutionGraph特有形式,即可以保持历史数据不变,又可无需人为干预实时根据历史数据统计出指标。

4.时序图谱:

时序指标计算是动态图谱的特殊形式,即根据“事件”发生的时间线,使用划分的时间区间进行实时指标计算。

如场景~统计每个人之间每天的实时交易总金额、统计每周(统计区间)实时新增病患。

新冠肺炎数据建模

了解了图形的多种存储形式后,接下来我们使用模拟数据依次建模,并详细介绍每个实体与关系的数据映射关系。

当发生突发公共事件时,我们在“正常时期”的数据图谱之上进行多维扩展,以支持更多业务,灵活应对疫情。

一)节点“人”数据建模

正常人数据(2维):

1.基本信息:性别、生日、籍贯等                     (数据来自身份证采集等渠道)

2.曾患病信息:疾病名称、发病时间、就诊医院等       (数据来自医院联网数据等渠道)

患病人数据(3维):

1.基本信息:性别、生日、籍贯等

2.曾患病信息:疾病名称、发病时间、就诊医院等

3.患新冠肺炎:感染程度、诊断时间、感染原因、症状等 (数据来自各地医院实时上报等)

二) “人”-(收治于)->“医院”

 

实体“医院数据(2维)

1.基本信息:病床数、医护数、病人数等    (实时动态数据 来自医院资源管理系统等渠道)

2.病例信息:收治数、确诊数、疑似数、病亡数、治愈数等  (实时动态数据 来自医院联网实时上报等渠道)

关系“收治于”数据(1维):

1.收治信息:收治时间、收治原因等    (数据 来自医院实时上报等渠道)

三) “人”-(住在、出现于、感染于)->“地址”

 

关系数据(3维边)

1.居住于:入住日期等  (历史数据 来自社区物业管理系统等渠道)

2.出现于:出现日期等  (历史数据 来自社区街道管理系统等渠道)

3.感染于:感染日期等  (实时数据 来自医院联网实时上报等渠道)

实体“地址”数据(1维):

1.地址:(无属性信息)

四) “人”-(乘坐)->“交通工具”

 

关系数据(1维)

1.乘坐:上车时间、上车地点、下车时间、下车地点、座位号等 (数据 来自交管部门管理系统等渠道)

实体“交通工具”数据(多维):

1.车基本信息:编号、座位数、交管局、投入时间、维修信息、描述信息 (数据 来自交管部门管理系统等)

2.高铁:司机、乘车人数、发车时间、始发站、终点站、途径站点等  (数据 来自交管部门管理系统等)

3.飞机:司机、登机人数、出发城市、到达城市、起飞时间等        (数据 来自航空公司管理系统等)

4.地铁:司机、车辆型号、发车时间、始发站、终点站、途径站点等  (数据 来自城市轨道管理系统等)

Ps:交通数据种类丰富, 有公交站点、地铁站点等静态数据,还有基于事件流的动态数据,例如,公交车进出站、地铁刷卡出行、出租车到达某一地理点等。

五) “人”-(接触、传染)->“人”

 

关系数据(1-2维):

1.接触:接触时间等      (数据 来自临时背调等渠道)

2.传染:无属性

实体“人”维度(多维可变):

健康人(未得过病)1个维度:“基本信息” 维度

亚健康(得过疾病)2个维度:“基本信息”、“曾患病信息” 维度

患病人(患新肺炎)3个维度:“基本信息”、“曾患病信息” 、“患新冠肺炎” 维度

(各维度的属性信息前章节已给出)

未确诊前样例数据:

确诊后样例数据:

感染人群数据时间线:

2020-02-07:“赵六”(未发病)--探亲->“赵七”(健康)

2020-02-10:“赵六”(发病),确诊患新冠肺炎

2020-02-11:“赵七”(未发病),但为确诊病例“赵六”密切接触者,随后查出感染

“赵七”的密切接触者“张女士”即应进入医学观察期

六) “医院”-(归属于、院上报)->“城市”

 

关系数据(2维):

1.院上报:患者姓名、患者年龄、患者病情(危重/严重/轻症)、诊断情况(确诊/疑似)、上报时间、上报人员等   (数据 来自医院病患数据采集等)

2.归属于: (无属性信息)

实体“城市”数据(2维):

1.市患者实时统计(动态):确诊总数、疑似总数、严重患者总数、轻症患者总数、时间区间-按天分区等 (数据 来自市医院医护实时汇报等)

2.市患者每日新增趋势统计(时序):确诊总数、疑似总数、严重患者总数、轻症患者总数、统计开始时间、结束时间等

七) “城市”-(归属于、市上报)->“省份”

关系数据(2维):

1.市上报(按天):确诊总数、疑似总数、严重患者总数、轻症患者总数等 (数据 来自市级数据实时自动获取)

2.归属于: (无属性信息)

实体“省份”数据(2维):

1.省总患者统计(动态):确诊总数、疑似总数、严重患者总数、轻症患者总数等 (数据 来自市医院医护实时汇报等)

2.省每日新增患者统计(时序):确诊总数、疑似总数、严重患者总数、轻症患者总数、统计开始时间、结束时间等

至此,数据建模介绍完毕。如上,数据统计部分已经实现自动化,即查即用。接下来基于此设定数据集进行一些更上层的分析场景演示。

场景分析演示

Ps:AbutionGraph查询方式偏API,暂未实现GSQL,为了方便理解,查询语句均使用相应查询逻辑的伪代码方式演示。

 

场景1、城市病例每日新增趋势查询(每日汇总)

查询:

vertex ["北京市","深圳市"]

use "市患者每日新增趋势统计"

select "开始时间" execute ">2019.01.20"  //<<--按天分区汇总(预聚合-即图库自动计算的)

select "结束时间" execute "<2020.01.24"

结果:

北京市(2020.01.20):2例

北京市(2020.01.21):6例

北京市(2020.01.22):13例

北京市(2020.01.23):8例

深圳市(2020.01.20):4例

深圳市(2020.01.21):6例

深圳市(2020.01.22):18例

深圳市(2020.01.23):19例

 

场景2、城市病例分布情况查询(指定区间全量汇总)

查询:

vertex ["北京市","深圳市"]

use "市患者实时统计维度"

select "开始时间" execute ">2019.01.20"  //<<--按天分区汇总(后聚合)

select "结束时间" execute "<2020.02.24"  //<<--不指定区间即所有天数据汇总

groupBy [] ;

结果:

北京市(2020.01.20-2020.01.24):29例

深圳市(2020.01.20-2020.01.24):47例

场景3、省份病例每日新增趋势查询(每日汇总)

查询:

vertex ["广西省"]

use "省每日新增患者统计维度"

select "开始时间" execute ">2019.02.10"

select "结束时间" execute "<2020.02.11"

count "确诊总数,疑似总数" ;

结果:

广西省(2020.02.10):

确诊总数:11

疑似总数:29

广西省(2020.02.11):

确诊总数:18

疑似总数:30

场景4、城市病例的年龄段分布情况(3跳查询)

查询:

vertex ["北京市"] toEdge [“院归属于”] toEntity ["市患者实时统计"] toEdge [“院上报”]

use ["院上报维度"] select [“患者年龄”] mean() ;

结果:

70~79岁:1人

60~69岁:4人

50~59岁:3人

40~49岁:8人

30~39岁:5人

20~29岁:1人

10~19岁:0人

0~9岁:0人

Ps:如上查询为3-跳查询,如需求固定可在建模时为此逻辑创建一个动态维度,实现自动化计算。

场景5、查出某病例确诊前3天接触过的人群

查询:

Vertex [“梁某某”,“陈某”] toEntity [“患新冠肺炎”] select [“确诊时间”] toEdge [“接触”] by [“接触时间”>“确诊时间”-3天]

use "基本信息维度" ;

结果:

梁某妹

梁某兄

陈某夫

场景6、找出所有超级传播者

Ps:假定传染人数超过4个即为超级传播者。

查询:

use ["患新冠肺炎"] toEdge [“传染”] count >= 5 ;

结果:

场景7、查找患者传播链

Ps:假定传染人数超过4个即为超级传播者。

查询:

//<<--按患者传染的路径逐步遍历,直到终点实体无“患新冠肺炎”维度

use ["患新冠肺炎"] for ( toEdge [“传染”] ) until ( toEdge [] Dimension !=“患新冠肺炎”) ;

结果:

总结

AbutionGraph是个年轻的图数据库系统,它可以满足永不掉线的实时指标计算任务以及历史数据分析,多维度的存储模式除文中介绍的场景外,我们也可以在实体上动态存储关系上的属性,反之亦然,比如:在实体“张三”的某个维度上实时统计它最近联系过的10个朋友的名字并不断更新与保存。

(*本文由AI科技大本营转载,转载请联系原作者)

【end】

精彩推荐

推荐阅读

  • 福利直达!CSDN技术公开课评选进行中

  • 一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码

  • 小米回应 50 亿疫情贷款申请;爱奇艺 App 崩溃;OpenSSH 8.2 发布

  • 大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选

  • Python 爬取李子柒辣椒酱 1794 条数据,有人嫌牛肉粒太小...... | 原力计划

  • 比特币技术栈的演进

  • 你点的每个“在看”,我都认真当成了AI

抗击新冠肺炎,如何进行实时动态时序图谱建模与分析?相关推荐

  1. 人工智能技术在抗击新冠肺炎疫情中大显身手

    作为一门高新技术,人工智能(AI)在医疗健康领域,尤其在抗击新冠肺炎(COVID-19)疫情中身手不凡,发挥着非常重要的作用.正如我国著名学者周海中教授曾经指出的那样:随着社会的发展和科技的进步,人工 ...

  2. 第四范式荣获“工业和信息化系统抗击新冠肺炎疫情先进集体”称号

    近日,在全国工业和信息化工作会议上,工信部党组为工业和信息化系统抗击新冠肺炎疫情工作中,对疫情防控.促进经济持续稳定恢复发挥重要作用的全国100家「先进集体」和300名「先进个人」进行了表彰,凭借在疫 ...

  3. 【推荐】新冠肺炎的最新数据集和可视化和预测分析(附代码)

    新冠肺炎现在情况怎么样了?推荐Github标星24.7K+的新冠肺炎公开数据集,利用这个数据集,可以用代码进行简单地可视化及预测. 推荐新冠肺炎的公开数据集: https://github.com/C ...

  4. ​​​​​​​微信、Facebook牵手合作,抗击全球新冠肺炎疫情

    抗击新冠肺炎,已经成为全球共同的一场战"疫".3月25日,在世界卫生组织(WHO)的支持下,微信联合Facebook等各大科技互联网平台共同发起了一项科技公益倡议,通过" ...

  5. 智源研究院联合多家权威机构上线“新冠肺炎(COVID-19)开放数据源”,打造全面、精细的新冠数据平台...

    2020 年 4 月 7 日,北京智源人工智能研究院数据开放研究中心联合清华大学.联合中国工程科技知识中心.清华大学附属北京长庚医院.阿里巴巴智能计算实验室.搜狗搜索.智谱.AI 宣布"新冠 ...

  6. 李飞飞团队最新研究 :「四步」AI方案助老人抵抗新冠肺炎,联合学习降低个人隐私风险

    自2018年回归学术界后,李飞飞教授便很少对外露面,近日在一次斯坦福的线上会议,让我们有机会了解她与团队的最新研究--<AI-ASSISTED IN-HOME ELDERLY CARE AMID ...

  7. 2021-2027全球与中国新冠肺炎安全和防护产品市场现状及未来发展趋势

    2021-2027全球与中国新冠肺炎安全和防护产品市场现状及未来发展趋势 COVID-19安全和预防产品是一系列保健和疾病预防产品,涵盖各种设备. 它旨在准备,预防和应对Covid-19的紧急情况并进 ...

  8. #榜样的力量#中诚信征信新冠肺炎全国疫情感染场所实时查询平台丨数据猿新冠战“疫”公益策划...

    "该项目案例由中诚信征信提交申报,参与数据猿推出的<寻找新冠战"疫",中国数据智能产业先锋力量>的公益主题策划活动. 大数据产业创新服务媒体 --聚焦数据 · ...

  9. 含最新数据! 使用Python检测新冠肺炎疫情拐点

    注:本文案例仅供技术学习,不代表研究性观点. 本文对应代码.数据及文献资料已上传至Github仓库https://github.com/CNFeffery/DataScienceStudyNotes ...

最新文章

  1. ACMNO.41C语言-数字调序 有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数
  2. java执行shell命令
  3. ESXI添加存储器步骤
  4. MySQL死锁案例分:先delete,再insert,导致死锁
  5. [LeedCode]921. 使括号有效的最少添加
  6. python简单图画程序_用Python的Turtple画图形
  7. Skeljs – 用于构建响应式网站的前端开发框架
  8. 禁止i5笔记本按Ctrl+Alt+向下键翻转屏幕
  9. paypal中授权返回_微信开放平台授权登录流程详解
  10. JAVA代码规范(二)
  11. 凸优化第四章凸优化问题 4.7 向量优化
  12. 共享服务器切换账号,win7切换用户访问共享、共享文件夹切换方法
  13. 华为 MA5680T [EPON]简单开局
  14. 致爱丽丝 之MY收藏
  15. 蜂鸟E203硬件 RV-STAR和Nuclei DDR200T和MCU200T比较
  16. null与empty区别
  17. 北京个体户税务申报如何办理?
  18. icpc2018南京站B题 tournament
  19. android 虚拟器版本,安卓虚拟机Android-X86更新至4.4版本
  20. 我为什么放弃学术选择创业:这不仅仅关乎人工智能

热门文章

  1. 存储能否导致ESXi网络性能问题?
  2. 云计算(2)it 是什么
  3. OO真经——关于面向对象的哲学体系及科学体系的探讨(上)
  4. C# MoreLinq 扩展安装
  5. sql server 的一些记录
  6. 使用java代码代替xml实现SSM
  7. Spring Cloud(十一)高可用的分布式配置中心 Spring Cloud Bus 消息总线集成(RabbitMQ)
  8. SQL中内连接、外连接、交叉连接
  9. Java(三):序列化
  10. react取消监听scroll事件