4. 图谱特征数据源:内部交易数据、外部舆情数据、产业链数据、关联方数据的接入与清洗
金融图谱特征的质量直接决定巡检收益评估的准确性。本章聚焦四大核心数据源的接入规范与清洗策略,确保从原始数据到图谱节点的转化过程具备高保真度与低延迟特性。
4.1 四大数据源全景
金融图谱的数据源可划分为内部与外部两大类别,每类数据源在接入时需关注其特有的结构特征与时效性要求。
| 数据源类型 | 典型内容 | 接入频率 | 清洗难点 |
|---|---|---|---|
| 内部交易数据 | 银行流水、证券交易记录、信贷合同、担保记录 | T+0 实时 / 日批 | 账户去重、交易对手归一化、金额单位统一 |
| 外部舆情数据 | 新闻、社交媒体、监管公告、诉讼信息 | 分钟级 / 小时级 | 实体抽取、情感消歧、虚假信息过滤 |
| 产业链数据 | 上下游企业名录、产品关联、供应链评级 | 日批 / 周批 | 行业分类映射、层级关系补全 |
| 关联方数据 | 股东结构、实际控制人、一致行动人、亲属关系 | 日批 | 股权穿透深度控制、循环持股检测 |
关键原则: 内部交易数据以"强信号、高置信"驱动图谱边权重;外部舆情数据以"弱信号、高覆盖"驱动图谱节点风险标签。两者在清洗阶段必须保留原始时间戳,用于后续时序特征构建。
4.2 数据接入架构
接入层采用"统一网关 + 多通道适配器"模式,支持批流一体处理。以下为数据接入与清洗的软件架构示意:
4.3 内部交易数据清洗要点
内部交易数据是图谱边权重的核心来源,清洗过程需严格遵循以下步骤:
- 账户归一化: 同一企业在不同系统中的账户编码(如贷款账号、结算账号)需映射至统一企业ID。
- 交易对手消歧: 对手方名称存在简写、错别字、历史曾用名,需通过模糊匹配+人工校验库完成对齐。
- 金额单位统一: 原始数据可能混用元、万元、亿元,清洗时统一转换为元(保留两位小数)。
- 时间戳标准化: 所有交易记录统一为 ISO 8601 格式(YYYY-MM-DDTHH:mm:ss),并标记时区。
巡检收益影响: 内部交易数据清洗不彻底会导致图谱中"交易频次"特征失真,进而使收益归因分析中交易行为贡献度偏差超过 15%。
4.4 外部舆情数据清洗要点
舆情数据具有高噪声、多源异构的特点,清洗重点在于实体抽取与情感量化:
- 实体链接: 将新闻中提及的企业简称、股票代码、高管姓名链接至图谱已有节点。
- 情感极性校准: 使用金融领域预训练模型(如 FinBERT)进行情感打分,避免通用模型对"亏损""减持"等术语误判。
- 时效性衰减: 超过 30 天的舆情事件在特征计算时赋予衰减权重,避免历史噪音干扰当前巡检。
- 虚假信息过滤: 基于来源可信度评分(官方媒体 > 财经门户 > 自媒体)剔除低置信内容。
4.5 产业链与关联方数据清洗要点
这两类数据共同构建图谱的"关系骨架",清洗时需特别关注层级与循环问题:
| 数据源 | 清洗规则 | 异常处理 |
|---|---|---|
| 产业链数据 | 行业分类映射至国家标准(GB/T 4754) | 未分类企业标记为"待确认",不参与特征计算 |
| 产业链数据 | 上下游关系方向校验(A→B 与 B→A 不可共存) | 双向关系时保留置信度较高的一方 |
| 关联方数据 | 股权穿透深度限制(默认不超过 5 层) | 超过深度时截断,并在节点属性中标记"穿透截断" |
| 关联方数据 | 循环持股检测(A→B→C→A) | 循环路径整体标记为"闭环",不展开计算 |
4.6 清洗质量监控指标
接入清洗流程需建立实时监控面板,确保数据质量满足图谱特征构建要求:
- 实体对齐率: 成功链接至图谱节点的比例,目标 ≥ 95%。
- 去重率: 清洗过程中合并的重复记录占比,正常范围 3%–8%。
- 异常丢弃率: 因格式错误、字段缺失等原因丢弃的记录比例,警戒线 < 2%。
- 清洗延迟: 从数据到达至写入图谱存储的端到端耗时,实时流 < 30 秒,日批 < 4 小时。
常见避坑: 不要对关联方数据做"全量穿透"——无深度限制的股权穿透会导致图谱节点爆炸(单家企业可能关联数万节点),严重拖慢巡检查询性能。建议生产环境默认穿透深度 ≤ 5 层,分析场景可临时放宽至 8 层。
4.7 清洗后数据输出规范
清洗完成的数据需按以下格式输出至图谱构建模块:
{
"node": {
"id": "ENT_20240001",
"type": "enterprise",
"properties": {
"name": "XX科技有限公司",
"industry_code": "I651",
"register_date": "2018-03-15",
"risk_label": "normal"
}
},
"edge": {
"source_id": "ENT_20240001",
"target_id": "ENT_20240002",
"type": "trade",
"properties": {
"trade_count": 127,
"total_amount": 5830000.00,
"first_trade_date": "2023-01-10",
"last_trade_date": "2024-06-18"
}
}
}