3. 知识图谱基础:实体、关系、属性的概念,图数据库(Neo4j)简介与数据模型

在金融风控场景中,传统关系型数据库在处理复杂、多跳的关联关系(如“A 担保 B,B 投资 C,C 与 D 为同一法人”)时,往往需要大量 JOIN 操作,性能低下且难以扩展。知识图谱(Knowledge Graph)通过图结构的数据模型,将实体、关系与属性显式表达,天然适合关联挖掘与反欺诈推理。本章将系统讲解知识图谱的核心概念、图数据库 Neo4j 的基础特性及其数据模型。

3.1 知识图谱核心概念:实体、关系、属性

知识图谱本质上是一种语义网络,其基本构成单元为三元组(Triple):(实体,关系,实体) 或 (实体,属性,属性值)。在风控领域,这些元素对应具体的业务对象与关联。

概念 定义 风控场景示例
实体(Entity) 客观存在且可区分的对象,即图中的节点(Node)。 借款人、企业、手机号、设备指纹、银行卡号。
关系(Relationship) 实体之间的有向语义连接,即图中的边(Edge)。 “担保”、“投资”、“同 IP 登录”、“亲属”、“法人代表”。
属性(Property) 描述实体或关系的特征信息,以键值对形式存储。 实体属性:年龄、授信额度、注册时间;关系属性:担保金额、担保开始日期。
风控要点: 在构建反欺诈图谱时,关系 的语义粒度直接影响推理能力。例如,仅记录“联系人”关系过于模糊,应细化为“紧急联系人”、“直系亲属”、“同事”等,以提升团伙识别准确率。

下图展示了风控场景中一个典型的三元组结构:

知识图谱三元组示例:实体-关系-实体 借款人 A 实体 担保 企业 B 实体 属性示例 实体属性:{姓名: "张三", 身份证: "110...", 授信额度: 50万} 关系属性:{担保金额: 30万, 担保日期: "2024-01-15"}

3.2 图数据库与 Neo4j 简介

图数据库(Graph Database)采用图结构进行存储与查询,其核心优势在于关联遍历的效率。与传统数据库不同,图数据库中的“关系”是一等公民,无需通过外键或中间表计算,可直接通过指针或索引进行跳转。

3.2.1 图数据库 vs 关系型数据库

对比维度 关系型数据库(MySQL) 图数据库(Neo4j)
数据模型 表、行、列、外键 节点、关系、属性、标签
关联查询 多表 JOIN,深度关联时性能指数级下降 遍历边,深度关联性能稳定(局部图遍历)
灵活性 Schema 严格,变更需 DDL 迁移 Schema-less,可动态添加标签和属性
风控适用场景 交易流水、用户信息存储 团伙欺诈识别、担保圈分析、资金链路追踪
选型建议: 在风控系统中,通常采用“混合架构”——关系型数据库存储核心交易与用户档案,图数据库存储关联网络与黑名单图谱,两者通过 ETL 工具同步。

3.2.2 Neo4j 核心特性

Neo4j 是目前最成熟的图数据库之一,其原生图存储引擎专为关联数据优化。以下特性使其在金融风控中广泛使用:

  • 原生图存储(Native Graph Storage):节点和关系在磁盘上物理相邻存储,遍历时无需随机 I/O。
  • 属性图模型(Property Graph Model):节点和关系均可携带任意数量的键值对属性。
  • 标签(Label):用于对节点进行分组和索引,如 :Person、:Company、:Device。
  • 声明式查询语言 Cypher:语法直观,专为图模式匹配设计,学习成本低。
  • ACID 事务支持:保证数据写入的原子性与一致性,适合风控规则实时写入。

3.3 Neo4j 数据模型:属性图

Neo4j 采用属性图模型(Property Graph Model),其核心构成如下:

  1. 节点(Node):表示实体,可拥有 0 个或多个标签(Label),以及 0 个或多个属性(Property)。
  2. 关系(Relationship):连接两个节点,必须有且仅有一个类型(Type),且必须具有方向(Direction)。关系也可以携带属性。
  3. 路径(Path):由节点和交替出现的关系组成的序列,是图遍历的基本结果。

下图展示了风控场景中一个简化的属性图模型:

Neo4j 属性图模型示例:风控关联网络 借款人 标签: Person 属性: 姓名, 身份证 手机号 标签: Device 属性: 号码, 运营商 企业 标签: Company 属性: 名称, 统一代码 银行卡 标签: BankCard 属性: 卡号, 开户行 使用 任职 绑定 收款 图例:每个节点拥有标签(如 :Person)和属性(键值对);每条关系拥有类型(如 :USE)和方向。 Cypher 示例:MATCH (p:Person)-[:USE]->(d:Device) RETURN p, d

3.4 Cypher 查询语言入门

Cypher 是 Neo4j 的声明式查询语言,其语法灵感来源于 ASCII 艺术,通过 () 表示节点,[] 表示关系,--> 表示方向。以下为风控场景中的常用模式:

// 查询与借款人张三有直接担保关系的企业
MATCH (p:Person {name: '张三'})-[r:GUARANTEE]->(c:Company)
RETURN p.name AS 借款人, c.name AS 被担保企业, r.amount AS 担保金额

// 查询二度关联:张三的手机号绑定的所有银行卡
MATCH (p:Person {name: '张三'})-[:USE]->(d:Device)-[:BIND]->(b:BankCard)
RETURN d.number AS 手机号, b.card_no AS 银行卡号

// 查询担保圈(环检测):A 担保 B,B 担保 C,C 担保 A
MATCH path = (a:Person)-[:GUARANTEE*2..5]->(a)
RETURN path LIMIT 10
性能注意: 在风控实时查询中,应避免无限制的深度遍历(如 [*])。建议对路径深度设置上限(如 [*1..4]),并配合节点标签和属性索引,防止查询超时。

3.5 本章小结

  • 知识图谱以实体-关系-属性三元组为基础,天然适配金融风控中的关联网络建模。
  • Neo4j 作为原生图数据库,采用属性图模型,将节点、关系、标签和属性作为一等公民,支持高效的关联遍历。
  • Cypher 语言通过直观的 ASCII 语法,可快速表达多跳关联查询,是风控规则引擎与图谱分析的重要工具。
  • 在实际风控系统中,图数据库与关系型数据库协同工作,分别承担关联推理与事务存储的角色。