用户案例
携程 x NebulaGraph|业务增益 32%,NebulaGraph 在携程风控场景下的落地实践
作者周伟诚,来自携程风控研发团队,专注于风控系统及特征平台领域。 2021年开始深入探索图数据,并在风控场景下进行多次落地实践,取得了显著的业务增益。
一、前言
携程作为在线旅游代理(OTA)行业中的一家头部企业,处理着海量的在线实时交易订单。然而,随着订单数量的增加,潜在的欺诈风险也随之上升。为了更有效地识别团伙欺诈和黑产攻击,同时确保实时风控系统的高响应性,携程风控研发团队对多个图数据库进行了调研和试用,最终选择了 NebulaGraph 数据库,并成功将其投入线上使用,从而实现业务增益 32%。
二、业务需求
在某些业务场景中,风控系统需要对业务事件进行补充,以丰富其风险画像,从而更有效地识别风险和防范欺诈。
然而,常规技术手段,在识别新客的业务行为时存在一定的局限性。主要原因在于,新客的历史数据较少 ,其业务风险的背景信息往往不够完善,这增加了欺诈的可能性。统计数据显示,相较于存量用户的业务行为,新客业务行为的欺诈风险高达数倍。为应对这一挑战,携程风控团队提出了利用图数据库构建实时动态图的设想,以丰富新客业务行为的风险画像,从而提高欺诈识别率。
一笔新客的业务行为通常包含多个维度的信息 ,如下图中的U,V,W 这 3 种元素。通过这些相同的元素 ,我们可以关联出一阶邻居和二阶邻居。如下图的例子所示,通过相同的元素 V1 可以关联出当前业务事件的一阶邻居,再通过相同的元素 U3 可以关联到二阶邻居的 W2。这样,我们可以从新客业务的单一信息中关联出其多阶邻居,并综合这些关联信息,更好地识别该业务行为的风险。
基于上述业务模型,我们将每个元素构建为一个节点,并使用该节点的维度作为其标签(tag)。节点的唯一标识符(vid)设置为具体的元素值。为了便于追溯,点上添加了该元素所属的业务事件号和请求时间。对于同一个业务事件中的元素,我们会创建边将这些代表元素的节点关联起来,表示它们之间存在关联关系。
在当前的业务场景中,还有个需求是保持一年内的实时关联图,对于超过一年时间的数据,将不再参与图的关联。因此,我们利用了 NebulaGraph 图数据库的一个特性,即它允许为时间戳类型的属性设置有效期(TTL)。根据业务要求,我们为所有节点的请求时间设置了一年的 TTL。一年之后,这些节点将自动过期,不再参与实时图的关联。这样可以确保当前订单的关联数据仅限于一年内的时间窗口。
三、查询逻辑
在实际的构建关联过程中,我们遇到了两个问题。第一个问题是查询存在热点问题。如下图所示,例如从 U1 元素开始,它关联查询到 N 个 W 元素的节点,然后每个 W 元素又各自关联到 N 个 V 元素。这样会导致关联查询的数量急剧膨胀,甚至可能导致超时和服务器宕机。
对于这样的热点问题,我们需要加以排除,因为其数据价值不高,并且会因为查询超时而降低整体的关联率,进而影响风险识别的最终结果。
第二个问题是,如下图所示。当某笔业务事件刚进入风控系统时,由于图数据的写入是通过消息队列推送的方式进行的,可能会出现以下情况:当该业务事件中包含的 3 个元素(U1、W1、V1)尚未被写入图数据库时,系统就要求查询 U1 的关联信息。这时,系统无法查询到 V2 和 U2 的信息。
为了解决这个问题,我们提出了一个解决方案,即将单个关联改为群组关联 。这样,即使这些元素尚未被关联写入图数据库,也能在同一笔业务事件中查找到这些元素的二阶关联邻居。
四、解决方案
以下是我们的解决方案。
首先,对于第一个热点问题,我们会根据节点的标签类型(tag)查询其关联节点。如果某类关联数据(例如 U 关联 W)超过了规定的阈值,我们将其舍弃,以确保实时风控的高响应速度。 如下图所示,如果 U1 查询到的 W 元素数量超过了规定的阈值 X,我们将这些 W 节点剔除,不再参与下一阶的关联过程。然后,我们将符合要求的一阶关联结果节点进行合并和去重,作为二阶关联的起始点。接下来,使用同样的策略查询二阶邻居,最后进行数据的整理和合并。这样可以用较小的代价剔除热点干扰。
针对上一节提到的第二个问题,即同一订单中的多个元素因关联写入延迟导致无法查询的情况,我们也提出了解决方案。具体而言,我们将同一订单中的多个元素(如 U1、W1、V1)作为一个整体,并行查询它们的关联邻居,然后将各自的结果去重合并,最终返回综合结果。此方案在下图中有所体现。
在上图所示的流程中,我们使用了一个关键的 nGQL 查询语句,如下图所示。该语句的作用是从一组起始点开始,根据它们的关联点的标签(tag)类别进行关联查询。对于超过热点阈值的某类关联数据,我们会进行过滤和剔除。 例如,在下图的例子中,起始点关联到的 W 元素数量已经超过了热点阈值,形成了一个热点,符合剔除过滤的条件。因此,W 元素将返回一个空列表,表示不再参与下一阶的关联查询过程,从而避免了热点对风控系统性能的影响。
五、业务收益
我们借助 NebulaGraph 在对此风控业务场景进行落地实践的过程中,构建了一个实时图特征平台的应用逻辑闭环,结构如下图所示。 当一笔业务行为事件进入风控系统时,会同时异步写入到图特征平台和大数据平台。 风控系统在对当笔事件进行风险评估时,会实时调用图特征平台进行关联信息的补充,从而提高资质评估的准确性。 大数据平台则会定期对图特征平台进行补数操作,确保图库数据的完整性和一致性。 同时提升图特征平台的健壮性,可以在较短时间内快速恢复缺失的数据。
业务上线后,我们额外获取了 55% 的关联业务信息,通过这些新增的特征信息,使得该场景下的覆盖率相对提升了32% ,获得了良好的业务增益。
六、未来规划
图数据库是一个新兴的技术领域,因其天然的关联属性和查询优势,十分适合于风控场景,尤其是挖掘业务行为特征。携程集团在调研了多个图库之后,选定 NebulaGraph 作为主流支持的图数据库。
携程风控研发团队目前正在积极挖掘 NebulaGraph 的使用场景,后续会探索在血缘关系,欺诈团伙识别等场景的落地实践。
在此特别感谢 NebulaGraph 团队和开源社区的技术赋能,愿未来一路同行!