3. 知识图谱基础:实体、关系、属性的概念,图数据库(Neo4j)简介与数据模型
在金融风控场景中,传统关系型数据库在处理复杂、多跳的关联关系(如“A 担保 B,B 投资 C,C 与 D 为同一法人”)时,往往需要大量 JOIN 操作,性能低下且难以扩展。知识图谱(Knowledge Graph)通过图结构的数据模型,将实体、关系与属性显式表达,天然适合关联挖掘与反欺诈推理。本章将系统讲解知识图谱的核心概念、图数据库 Neo4j 的基础特性及其数据模型。
3.1 知识图谱核心概念:实体、关系、属性
知识图谱本质上是一种语义网络,其基本构成单元为三元组(Triple):(实体,关系,实体) 或 (实体,属性,属性值)。在风控领域,这些元素对应具体的业务对象与关联。
| 概念 | 定义 | 风控场景示例 |
|---|---|---|
| 实体(Entity) | 客观存在且可区分的对象,即图中的节点(Node)。 | 借款人、企业、手机号、设备指纹、银行卡号。 |
| 关系(Relationship) | 实体之间的有向语义连接,即图中的边(Edge)。 | “担保”、“投资”、“同 IP 登录”、“亲属”、“法人代表”。 |
| 属性(Property) | 描述实体或关系的特征信息,以键值对形式存储。 | 实体属性:年龄、授信额度、注册时间;关系属性:担保金额、担保开始日期。 |
风控要点: 在构建反欺诈图谱时,关系 的语义粒度直接影响推理能力。例如,仅记录“联系人”关系过于模糊,应细化为“紧急联系人”、“直系亲属”、“同事”等,以提升团伙识别准确率。
下图展示了风控场景中一个典型的三元组结构:
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),其核心构成如下:
- 节点(Node):表示实体,可拥有 0 个或多个标签(Label),以及 0 个或多个属性(Property)。
- 关系(Relationship):连接两个节点,必须有且仅有一个类型(Type),且必须具有方向(Direction)。关系也可以携带属性。
- 路径(Path):由节点和交替出现的关系组成的序列,是图遍历的基本结果。
下图展示了风控场景中一个简化的属性图模型:
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 语法,可快速表达多跳关联查询,是风控规则引擎与图谱分析的重要工具。
- 在实际风控系统中,图数据库与关系型数据库协同工作,分别承担关联推理与事务存储的角色。