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