2. 金融图谱基础:实体识别、关系抽取、图数据库选型与存储架构

构建金融图谱 Feature Store 的第一步,是将分散在交易流水、客户资料、舆情公告中的非结构化与半结构化数据,转化为结构化的“实体-关系”网络。本章聚焦图谱构建的四个核心环节:实体识别、关系抽取、图数据库选型(Neo4j vs JanusGraph)以及图谱存储架构设计。

2.1 实体识别:从文本中抽取金融节点

实体识别(Named Entity Recognition, NER)是图谱构建的起点。在金融场景中,需要识别的实体类型远超通用领域,包括但不限于:

实体类型 示例 识别难点
个人客户 张三、李四 同名消歧、别名(身份证号、手机号)
企业法人 XX科技有限公司 简称、曾用名、集团与子公司区分
金融产品 “稳健理财A款”、基金代码 产品名称与营销文案混淆
账户/卡号 6222****1234 脱敏处理与格式校验
时间/金额 2024-03-15、500万元 单位归一化(万元/元)
实践建议:在 Feature Store 的样本偏差校验中,实体识别阶段的漏召(False Negative)会直接导致后续关系抽取缺失,进而造成特征矩阵稀疏。建议在 NER 阶段引入领域词典 + BERT-CRF 双通道模型,并保留实体置信度分数用于后续偏差分析。

2.2 关系抽取:定义金融语义连接

关系抽取(Relation Extraction, RE)决定了图谱的语义密度。金融场景中常见的关系类型可归纳为以下四类:

  • 资金关系:转账、借贷、担保、投资、还款
  • 控制关系:控股、任职、实际控制人、一致行动人
  • 事件关系:涉及诉讼、股权质押、行政处罚、舆情关联
  • 属性关系:属于(行业)、位于(地区)、持有(产品)

关系抽取的精度直接影响图谱质量。在样本偏差校验场景中,关系抽取的方向性和时效性是两个关键校验点:方向错误(如将“担保”误判为“被担保”)会导致特征计算完全偏离;时效性缺失(如未识别已解除的担保关系)则会造成特征过时。

关系抽取 Pipeline 示例:
# 伪代码:基于规则+模型的混合抽取流程
def extract_relations(text, entities):
    # 1. 规则匹配:正则匹配金额、日期、特定动词
    rule_relations = rule_based_extractor(text, entities)
    # 2. 模型预测:基于预训练模型的远程监督
    model_relations = model_based_extractor(text, entities)
    # 3. 冲突消解:置信度加权融合
    final_relations = conflict_resolve(rule_relations, model_relations)
    return final_relations
金融图谱实体识别与关系抽取流程 非结构化文本 结构化数据 半结构化数据 实体识别(NER) 关系抽取(RE) 金融知识图谱

2.3 图数据库选型:Neo4j vs JanusGraph

图数据库是图谱 Feature Store 的存储引擎。在金融场景中,选型需重点考虑事务一致性、水平扩展能力、查询性能以及生态成熟度。以下从六个维度对比 Neo4j 与 JanusGraph:

对比维度 Neo4j JanusGraph
存储模型 原生图存储(Native Graph) 基于后端存储(HBase/Cassandra/Bigtable)
事务支持 ACID 强事务,单机/集群均支持 最终一致性,依赖后端存储的事务能力
水平扩展 读扩展(主从复制),写扩展有限 原生支持水平扩展,适合超大规模图
查询语言 Cypher(声明式,易用性强) Gremlin(函数式,灵活但学习曲线陡)
金融场景适用性 适合中小规模(亿级节点内)、实时风控查询 适合超大规模(百亿级)、离线批量分析
运维复杂度 中等,社区版功能受限 较高,需同时运维后端存储和索引
选型避坑:在 Feature Store 样本偏差校验场景中,如果图谱规模在 10 亿节点以内且需要毫秒级实时查询(如实时风控特征计算),优先选择 Neo4j。如果图谱规模超过百亿且以离线批量特征计算为主,JanusGraph + HBase 的组合更具成本优势。切勿在选型初期忽略“特征回填”场景的查询模式——这是样本偏差校验中最频繁的操作。

2.4 图谱存储架构:分层设计与特征索引

金融图谱 Feature Store 的存储架构通常采用三层分离设计,以兼顾实时查询与离线分析:

  • 在线层(Online Layer):使用 Neo4j 或 JanusGraph 存储热数据,支持毫秒级实体-关系查询,用于实时特征计算。
  • 离线层(Offline Layer):使用 HDFS 或对象存储存储全量图谱快照,用于批量特征工程和样本偏差校验。
  • 索引层(Index Layer):使用 Elasticsearch 或 Solr 构建实体属性倒排索引,支持模糊搜索和实体消歧。
金融图谱 Feature Store 三层存储架构 在线层(Online Layer) Neo4j / JanusGraph Redis 缓存层 实时特征计算 索引层(Index Layer) Elasticsearch 实体消歧服务 模糊匹配引擎 离线层(Offline Layer) HDFS 全量快照 Spark 批量特征 样本偏差校验

2.5 样本偏差校验视角下的图谱存储关键设计

在 Feature Store 的样本偏差校验实践中,图谱存储架构需要额外关注以下三个设计点:

  1. 时间戳版本化:每条边和属性必须携带生效时间与失效时间,支持时间旅行查询(Time Travel Query),以便校验不同时间切片的样本特征一致性。
  2. 特征血缘追踪:在存储层记录每个特征值是从哪些原始实体和关系计算而来,当样本偏差被检出时,可快速定位是 NER 漏召、RE 误判还是存储延迟导致。
  3. 冷热数据分层:将近期(如 90 天内)的交易关系放在在线层,历史关系归档到离线层。偏差校验通常需要对比“在线特征”与“离线回溯特征”,分层设计可避免全量扫描带来的性能瓶颈。
存储架构设计检查清单:
1. 是否支持边/属性的时间戳版本化?
2. 是否记录了特征计算的血缘信息(实体ID + 关系ID + 时间戳)?
3. 在线层与离线层的数据一致性校验机制是否就绪?
4. 索引层是否覆盖了实体别名、简称、历史名称?
5. 是否预留了样本偏差校验专用的“回溯查询接口”?