《超大规模图计算引擎在在线零售场景中的应用-在线零售增长引擎技术分论坛(17页).pdf》由会员分享,可在线阅读,更多相关《超大规模图计算引擎在在线零售场景中的应用-在线零售增长引擎技术分论坛(17页).pdf(17页珍藏版)》请在三个皮匠报告上搜索。
1、超大规模图计算引擎在在线零售场景中的应用伯远AI OS-Platform-GraphContents目录01背景介绍02iGraph的能力及实现03使用案例iGraph 简介自助接入,数据托管、智能运维图存储与检索千亿节点,万亿边全量/单表千万qps秒级实时更新支持自研图查询语言&gremlin标准知识图谱管理系统认知图谱:用户实时行为基础数据用户全网曝光数据用户/商品/店铺/CPV关系数据OneID&Gprofile电商/全网/视频知识图谱应用场景:搜推广、安全TPPDIIWSearchiGraph ProxyTPPMainseCommoniGraph SearcherZone1Zone2Z
2、oneN全量/批量:ODPS实时增量:SwiftAuto-umarsiGraphConsoleTPPConsole3业务场景图谱使用iGraph认知图谱生产2w+表数据用户表商品表品牌表i2is2i交易表c2i产品表SPU表演员表电影表主演表城市表推荐场景1广告场景搜索场景1Youku推荐场景用户认知图谱商品认知图谱用户实时行为表视频知识图谱全网知识图谱类目表特产表iGraph的能力及实现2背景介绍1业务介绍3Content 系统特点 业务场景 原生gremlin引擎 全异步化架构Gremlin是什么?6to graph/查询marko创作的软件的属性g.E(1).hasLabel(”crea
3、ted).inV().hasLabel(”software)=label:software,lang:java,name:lop,pk:3/查询marko创作的软件并返回路径信息g.V(“1”).hasLabel(“person”).outE().hasLabel(”created“).inV().hasLabel(“software”).path()/查询marko认识的人创作的软件g.E(“1”).hasLabel(“knows”).outE().hasLabel(“created”).inV().hasLabel(“software”)/使用属性lang=java来查询软件g.V().b
4、y(software_index).indexQuery(match:lang:java)=label:software,lang:java,name:lop,pk:3=label:software,lang:java,name:ripple,pk:5Gremlin是什么?7其他使用场景多路遍历g.V(“id”).hasLabel(user).union(out(“click”).order().by(“score”).limit(50),out(“pay”).order().by(“score”).limit(50)随机游走g.V().repeat(bothE().sample(1).by(
5、weight).otherV().times(5).path()嵌套遍历g.V(“id”).hasLabel(user).out().where(outE().count().is(gt(5)局部变量g.withSack(1.0f,sum).V().repeat(outE().sack(mult).by(weight).inV().times(2).barrier()Gremlin引擎-业界实现8TitanAzure CosmosAWS NeptuneIBM GraphBaidu HugeGraph华为EYWAGremlin ServerExternal Storage低效存储无法掌控计算下沉
6、难Java语言栈,GC适合分析型场景Gremlin100个算子嵌套Gremlin很难下沉ParseParse&ValidateCacheExpressionPredicateStepCavaUtilitySerializeStrategyvertex,edgetraversermap,set StructureSession pool谓词下沉Optimizer路径优化列裁剪多表操作下沉Executor并行&异步框架ExecutorStrategyCacheKVStorageKKV 倒排向量原生Gremlin引擎Auto UmarsOPS全异步化架构体系Local SSDLocal Optane
7、PanguNVME更高IOPS存储计算分离高性能-kv/kkv/倒排/向量多种高效索引组织-io_uring及多级cache的磁盘访问模型高稳定-混合协程全异步框架-表切换磁盘cache渐进预热自适应-根据表流量周期,自适应选择存储介质降低至原先的1/81/9,异常抖动降级QPS趋近于0GremlinHybrid CoroutineAsync PrimitiveLazy(c+20 coroutine)UthreadLinux io_uringfuture litestorageiGraph的能力及实现背景介绍1业务介绍3Content 系统特点 业务场景 原生gremlin引擎 全异步化架构2
8、 电商关系图谱 图在风控场景的使用 最优路径规划 知识图谱推理 Graph Embedding电商关系图谱商品?店铺?优惠券?标签?品牌?类目?用户?点击 购买 曝光 收藏 相似 收藏 打标 访问 购买 相似 偏好 喜欢 提供 持有 相似 购买力 主营 热门 属于 用户偏好 模型特征 购买过滤.在风控场景的使用newuser1medium1newuser2belongedbelongedregisteredregisteredoutE()filter(user_id!=1 ANDabs(registration_time-70)10)filter(user_id!=1 A
9、NDabs(registration_time-70)10)user_id=1,registration_time=70user_id=2,registration_time=75outE()outE()最优路径规划找到出港航班多的 top 10 邻居城市g(flight_route_plan).V(LON-2020-05-01).hasLabel(city_date).outE(city_fly).order().by(outE().count(),decr).range(0,10).values(skey”)将这些城市做为航
10、班连接图的顶点,去找大城市到目的地最快的一转,再将结果做为整个路线规划的第二转城市g(“flight_route_plan”).V(这里放前面查到的结点).hasLabel(city_date).outE(city_fly).not(has(arr_city,LON).sack(Operator.sum).by(min_duration).as(transfer1).outE(city_fly_2).sack(Operator.sum).by(duration).has(arr_city,BJS).sack().order().by(Order.incr).select(transfer1).
11、dedup().by(skey).range(0,10).values(skey).aggregate(transfer_cities2).fold()最后PushDownStrategy做side_effect下沉,将整个一转二转作为输入条件连起来查,找到最快的航班组合g(“flight_route_plan”).withStrategies(PushDownStrategy(“transfer_cities2”).withSack(supplier(normal,integer,“0”).上面查一转的语句.V(“LON-2020-05-01”).hasLabel(“city_date”)略
12、userquery婴儿奶粉concept孕早期饮食item辅食concept孕早期保健食品/书籍concept孕早期教育item婴儿书籍lifestage孕早期preference婴幼儿婴幼儿用品用品recentqueryitemrelateditemsubconceptrelatedconceptuserpayuserclicklifestagepreferenceRanksubconceptsubconceptsimconceptrelatedconceptrelatedconceptsubconcept3度查询rt:6ms知识图谱推理Graph Embedding 全量模型训练在线推理增量模型训练TF OPNode2VecGraphSageGCNGATuserqueryitemshopGremlin UDFTHANKS